Browse Source

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>
master
Heiko Schocher 10 years ago
committed by Wolfgang Denk
parent
commit
62a813bcac
2 changed files with 12 additions and 2 deletions
  1. +8
    -2
      common/cmd_cramfs.c
  2. +4
    -0
      fs/cramfs/cramfs.c

+ 8
- 2
common/cmd_cramfs.c View File

@ -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];


+ 4
- 0
fs/cramfs/cramfs.c View File

@ -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)
{


Loading…
Cancel
Save