From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Thu, 28 Jan 2010 12:02:48 +0100 Subject: [U-Boot] [PATCH 1/2 v2] cramfs: make cramfs usable on non NOR flash In-Reply-To: <20100128101537.501C83F6C0@gemini.denx.de> References: <4B459395.2050301@denx.de> <20100117235121.5E479C88AE@gemini.denx.de> <4B5FE9EC.6090909@denx.de> <4B5FEB9E.3040908@denx.de> <20100127192831.32327D334C9@gemini.denx.de> <4B613D24.7060604@denx.de> <20100128101537.501C83F6C0@gemini.denx.de> Message-ID: <4B616ED8.6000109@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Wolfgang, Wolfgang Denk wrote: > In message <4B613D24.7060604@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