[U-Boot] [PATCH 1/2 v2] cramfs: make cramfs usable on non NOR flash
Heiko Schocher
hs at denx.de
Thu Jan 28 12:02:48 CET 2010
Hello Wolfgang,
Wolfgang Denk wrote:
> In message <4B613D24.7060604 at denx.de> you wrote:
[...]
>>> What about systems that have both NOR _and_ NAND?
>> Are there such systems, with cramfs support? Actual cramfs support
>> in mainline is only for NOR devices ...
>
> Yes, but I understand that you want to also support cramfs when not
> stored in NOR.
>
> With your code I can read files from a cramfs image stored in RAM
> (when there is nor NOR flash), _or_ I can read it from NOR flash.
> Right?
No. This should work also!
Accessing a cramfs through a nor, the "cramfs_load()" is used,
as in ./common/cmd_jffs2.c, and if reading a file which resists
in RAM "cramfsload" command is used for reading the file.
> But what about reading from files a cramfs image stored in RAM on a
> system that _has_ NOR flash? And being able to read files a cramfs
> image stored in NOR as well? It seems your code cannot do this.
in fs/cramfs/cramfs.c
#define PART_OFFSET(x) (x->offset + flash_info[x->dev->id->num].start[0])
and in common/cmd_cramfs.c
part.offset = addr - flash_info[id.num].start[0];
so, flash_info[id.num].start[0] is not really used, if using
cramfsload, so it should be possible to load a file out
of a cramfs, wherever the cramfs resides ... Nevertheless,
flash_info_t is defined or not, also, using "cramfs_load()"
on a NOR flash works, because there is no change.
My Patch is only necessary, because, if a board have no NOR flash,
flash_info_t is not defined.
> I understand that the suggested patch is an improvement over the
> existing state (it adds the capability to read cramfs in RAM on
> NOR-les systems), but I think this restriction ("on NOR-less
> systems") should be lifted as well.
>
> In other words: I think, the decision whether to use
>
> part.offset = addr - flash_info[id.num].start[0];
> or
> part.offset = addr;
>
> should be made at run time (based on the location of the image - in
but on a board without NOR flash, you have no flash_info_t
defined, which results in a compilerror.
bye
Heiko
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
More information about the U-Boot
mailing list