[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <66b2b859-72db-33cc-75ae-2493a4aad235@microchip.com>
Date: Wed, 23 May 2018 15:52:15 +0300
From: Tudor Ambarus <tudor.ambarus@...rochip.com>
To: Marek Vasut <marek.vasut@...il.com>,
<cyrille.pitchen@...rochip.com>, <dwmw2@...radead.org>,
<computersforpeace@...il.com>, <boris.brezillon@...tlin.com>,
<richard@....at>
CC: <linux-mtd@...ts.infradead.org>, <linux-kernel@...r.kernel.org>,
<nicolas.ferre@...rochip.com>, <Cristian.Birsan@...rochip.com>
Subject: Re: [RFC PATCH] mtd: spi-nor: add support to non-uniform SPI NOR
flash memories
Hi, Marek,
On 05/23/2018 12:56 PM, Marek Vasut wrote:
[...]
>>> [...]
>>>
>>>>>> + while (len) {
>>>>>> + cmd = spi_nor_find_best_erase_cmd(map, region, addr, len);
>>>>>> + if (!cmd)
>>>>>> + return -EINVAL;
>>>>> What would happen if you realize mid-way that you cannot erase some
>>>>> sector , do you end up with partial erase ?
>>>> Is this possible? In non-overlaid regions, the address is aligned with
>>>> at least one of the erase commands, else -EINVAL. For overlaid regions
>>>> alignment doesn't matter. But yes, if this is possible, in this case,
>>>> this proposal will do a partial erase.
>>> Shouldn't we fail up front instead ?
>> It will be great if we can do this without having performance penalties.
>> Can we loose the conditions for the last erase command? If one wants to
>> erase 80k chunk starting from offset 0 and only 32k and 64k erase type
>> are supported, can we erase 96k?
> No. But can you maybe build a list of erase commands to be executed once
> you validate that the erase can be performed for example ?
My second choice was an array witch saves u8 opcode and u32 erasesize.
There are flashes of 256MB, in the worst case scenario with 4k erase
type, we will end up with 64K entries.
How about enforcing the length to be multiple of mtd->erasesize, like we
do in uniform_erase? With this, the problem disappears.
Thanks,
ta
Powered by blists - more mailing lists