Reduce the size of a probed flash for broken HW
Franck Bui-Huu
vagabon.xyz at gmail.com
Mon Apr 24 10:40:34 EDT 2006
[discussed with Vitaly Wool on IRC]
My hardware has some problem to access my onboard flashes specially
the last 64Ko of them. So I need a way to restrict access to these areas.
Several solutions comes in mind:
- In the mapping driver, try to modify the mtd_info and cfi_info
setup by the MTD probing functions to reduce the detected
size. This solution is really hackish since it modifies internal
structures of the MTD layer that the mapping driver is not
supposed to be aware of. I just did this in my driver:
*mtd = do_map_probe("xxx_probe", map);
while ((*mtd)->size > 32Mo - 64Ko)
(*mtd)->size -= (*mtd)->erasesize;
and it seems to work fine...
- Use a partition that exclude the last 64Ko of the flash. This
solution was suggested by Nicolas Pitre, but I think it imposes
some restrictions on flash concatenation for example.
- Modify the common MTD layer to take into account the value of the
mapping size given by the hardware: if the driver setup a mapping
size of the flash lesser than the real flash size then the MTD
layer should use the map size instead of simply ignoring it. Thus
the MTD layer gives the opportunity to the driver to reduce the
size of the flash.
Can anybody gives some feedback or others solutions ?
Thanks
--
Franck
[Please CC me, I'm not subscribed to this list]
More information about the linux-mtd
mailing list