diff options
author | Heiko Schocher <hs@denx.de> | 2011-05-03 02:15:15 +0000 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2011-05-10 22:47:32 +0200 |
commit | 62a813bcacd944cf3adcca05dc705721974ac53a (patch) | |
tree | 7959959bad0aabcbe3bfe6db104e614f94ddd97e | |
parent | ee8bc961a47563b0e6f92f3843959304a19412dc (diff) | |
download | u-boot-62a813bcacd944cf3adcca05dc705721974ac53a.zip u-boot-62a813bcacd944cf3adcca05dc705721974ac53a.tar.gz u-boot-62a813bcacd944cf3adcca05dc705721974ac53a.tar.bz2 |
cramfs: make cramfs usable without a NOR flash
cc: Wolfgang Denk <wd@denx.de>
cc: Detlev Zundel <dzu@denx.de>
cc: Valentin Longchamp <valentin.longchamp@keymile.com>
cc: Holger Brunck <holger.brunck@keymile.com>
Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
-rw-r--r-- | common/cmd_cramfs.c | 10 | ||||
-rw-r--r-- | 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 9060ecc..e7f496e 100644 --- a/common/cmd_cramfs.c +++ b/common/cmd_cramfs.c @@ -45,6 +45,12 @@ #ifdef CONFIG_CRAMFS_CMDLINE #include <flash.h> +#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 <linux/stat.h> 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 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) { |