summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeiko Schocher <hs@denx.de>2011-05-03 02:15:15 +0000
committerWolfgang Denk <wd@denx.de>2011-05-10 22:47:32 +0200
commit62a813bcacd944cf3adcca05dc705721974ac53a (patch)
tree7959959bad0aabcbe3bfe6db104e614f94ddd97e
parentee8bc961a47563b0e6f92f3843959304a19412dc (diff)
downloadu-boot-imx-62a813bcacd944cf3adcca05dc705721974ac53a.zip
u-boot-imx-62a813bcacd944cf3adcca05dc705721974ac53a.tar.gz
u-boot-imx-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.c10
-rw-r--r--fs/cramfs/cramfs.c4
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)
{