[PATCH 1/2] cramfs: make cramfs usable without a NOR flash

Signed-off-by: Heiko Schocher <h...@denx.de>
---

- changes since v1:
  added comments from Wolfgang Denk:
  get rid of flash_info_t define in board config
  (to get this working patch 1/2 is introduced/needed)

 common/cmd_cramfs.c |   12 +++++++++++-
 fs/cramfs/cramfs.c  |    4 ++++
 2 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/common/cmd_cramfs.c b/common/cmd_cramfs.c
index 55e2d36..9e92163 100644
--- a/common/cmd_cramfs.c
+++ b/common/cmd_cramfs.c
@@ -43,7 +43,9 @@
 #endif

 #ifdef CONFIG_CRAMFS_CMDLINE
-flash_info_t flash_info[1];
+#if !defined(CONFIG_SYS_NO_FLASH)
+extern flash_info_t flash_info[];
+#endif

 #ifndef CONFIG_CMD_JFFS2
 #include <linux/stat.h>
@@ -119,7 +121,11 @@ int do_cramfs_load(cmd_tbl_t *cmdtp, int flag, int argc, 
char *argv[])
        dev.id = &id;
        part.dev = &dev;
        /* fake the address offset */
+#if !defined(CONFIG_SYS_NO_FLASH)
        part.offset = addr - flash_info[id.num].start[0];
+#else
+       part.offset = addr;
+#endif

        /* pre-set Boot file name */
        if ((filename = getenv("bootfile")) == NULL) {
@@ -182,7 +188,11 @@ int do_cramfs_ls(cmd_tbl_t *cmdtp, int flag, int argc, 
char *argv[])
        dev.id = &id;
        part.dev = &dev;
        /* fake the address offset */
+#if !defined(CONFIG_SYS_NO_FLASH)
        part.offset = addr - flash_info[id.num].start[0];
+#else
+       part.offset = addr;
+#endif

        if (argc == 2)
                filename = argv[1];
diff --git a/fs/cramfs/cramfs.c b/fs/cramfs/cramfs.c
index 2956d39..910955d 100644
--- a/fs/cramfs/cramfs.c
+++ b/fs/cramfs/cramfs.c
@@ -41,8 +41,12 @@ struct cramfs_super super;

 /* CPU address space offset calculation macro, struct part_info offset is
  * device address space offset, so we need to shift it by a device start 
address. */
+#if !defined(CONFIG_SYS_NO_FLASH)
 extern flash_info_t flash_info[];
 #define PART_OFFSET(x) (x->offset + flash_info[x->dev->id->num].start[0])
+#else
+#define PART_OFFSET(x) (x->offset)
+#endif

 static int cramfs_read_super (struct part_info *info)
 {
-- 
1.6.2.5
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to