[PATCH 3/3] MTD: spi-nor: add flag to not use sector erase.

Jonas Gorski jogo at openwrt.org
Fri May 1 03:50:04 PDT 2015


On Fri, May 1, 2015 at 9:05 AM, Michal Suchanek <hramrach at gmail.com> wrote:
> On 1 May 2015 at 01:13, Marek Vasut <marex at denx.de> wrote:
>> On Thursday, April 30, 2015 at 11:13:12 PM, Michal Suchanek wrote:
>>> The sector size of the flash memory is unclear from datasheet or may
>>> possibly vary between chips so add a flag to always use 4k blocks.
>>> Currently 4k blocks are always used when possible but in the future
>>> somebody might want to do some optimizations with sector erase.
>>> Signed-off-by: Michal Suchanek <hramrach at gmail.com>
>> I _think_ you might be able to determine the size, no ?
>> One way is to ask the vendor, but you can also try something like:
>> 1) erase the whole SPI NOR
>> 2) overwrite it with zeroes (or ones ? I think it should be all ones after
>> erasing).
>> 3) Erase sector 0
>> 4) Read some 128 KiB back
>> 5) Observe what is the difference.
> I can determine it for this particular chip. However, when the vendor
> datasheet says the block is 64/32K it might mean that chips with this
> ID can have either block size.
> It's a value that we don't use anyway so I just mark it as unknown
> here for future reference.

It will be used if MTD_SPI_NOR_USE_4K_SECTORS is unset, so you should
add some code to properly handle that case.

Also I'd suggest switching the order of 2 and 3, so you add the flag
handling first and then add support for a flash chip with this issue.


More information about the linux-mtd mailing list