[U-Boot-Users] MTD Concat support

Vlad Lungu vlad at comsys.ro
Wed Apr 16 20:39:53 CEST 2008


Luigi 'Comio' Mantellini wrote:
>>
>> Well, it all depends if you really mean loopback or if it is ramdisk. 
>> Loopback feels totally wrong unless the rootfs is read-only.
>>     
>
> The rootfs will be Read-only. Any write access will be redirected to a
> ramdisk. Only during the "upgrading" activity the JFFS2 will be write
> from an custom user application, while during the normal activity both
> JFFS2 and loopback-mounted Root filesystem will be Read-only.
>
>   
It still feels wrong :-), but I see how this is supposed to work.  
You're probably using just that 2 Mo piece for
data or you're not saving anything on the NOR flash. Highly customized 
application.
>> Really.
>> If it is ramdisk, I guess you could store uImages directly in the NOR 
>> flash (one at the beginning, one at the end so you know you can
>> easily replace any of them, or if you know that they are <9Mo, 3 of them 
>> equally spaced).
>>     
>
> I cannot store the uImages in separated memory space...
>
>   
I have some ideas about how you could do it, but it might be too much 
trouble and not enough gain.
>> Anyway,  back to your original question: if the flash devices are 
>> identical and the erase sectors have the same size, you could probably
>>  fill flash_info[] yourself instead of auto-detecting and pretend you 
>> have a single flash twice the size (i.e. 32Mo). After all, this is NOR
>> flash so you're not  actually using sector numbers like with NAND parts. 
>> And the addresses are consecutive, so for all intents and purposes,
>> it looks like a big flash until you do READ_ID.
>>
>>     
>
> Ok. This can be a solution.

This should be very easy to test. First, check the data sheet and see if 
all erase sectors are the same size (64ko or 128ko) or
inspect the device geometry (Number of Erase Block Regions,offset 2c in 
the CFI id string, should be 1). If not,
this will probably not work like described and you'll need to hack some 
structures a bit(provide fake erase block region info, from 2 to 4,
if more than 2, you're out of luck, but that's highly unlikely).  If 
they are equal:
a) if you're configuring flash_info[] by hand, double the sector number 
in the first element and don't fill the second
b) if you're auto-detecting, don't :-) Dump the info and fill the first 
element by hand, with twice the number of sectors.

Good luck,
Vlad





More information about the U-Boot mailing list