From 62a813bcacd944cf3adcca05dc705721974ac53a Mon Sep 17 00:00:00 2001 From: Heiko Schocher Date: Tue, 3 May 2011 02:15:15 +0000 Subject: cramfs: make cramfs usable without a NOR flash cc: Wolfgang Denk cc: Detlev Zundel cc: Valentin Longchamp cc: Holger Brunck Signed-off-by: Valentin Longchamp --- common/cmd_cramfs.c | 10 ++++++++-- fs/cramfs/cramfs.c | 4 ++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/common/cmd_cramfs.c b/common/cmd_cramfs.c index 9060ecc58e..e7f496e4ea 100644 --- a/common/cmd_cramfs.c +++ b/common/cmd_cramfs.c @@ -45,6 +45,12 @@ #ifdef CONFIG_CRAMFS_CMDLINE #include +#ifdef CONFIG_SYS_NO_FLASH +# define OFFSET_ADJUSTMENT 0 +#else +# define OFFSET_ADJUSTMENT (flash_info[id.num].start[0]) +#endif + #ifndef CONFIG_CMD_JFFS2 #include char *mkmodestr(unsigned long mode, char *str) @@ -119,7 +125,7 @@ int do_cramfs_load(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) dev.id = &id; part.dev = &dev; /* fake the address offset */ - part.offset = addr - flash_info[id.num].start[0]; + part.offset = addr - OFFSET_ADJUSTMENT; /* pre-set Boot file name */ if ((filename = getenv("bootfile")) == NULL) { @@ -182,7 +188,7 @@ int do_cramfs_ls(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) dev.id = &id; part.dev = &dev; /* fake the address offset */ - part.offset = addr - flash_info[id.num].start[0]; + part.offset = addr - OFFSET_ADJUSTMENT; if (argc == 2) filename = argv[1]; diff --git a/fs/cramfs/cramfs.c b/fs/cramfs/cramfs.c index 2956d390da..910955dfc8 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) { -- cgit v1.2.1