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