[U-Boot] PATCH: bugfix for nand erase failure with bad blocks
Scott Wood
scottwood at freescale.com
Tue Jun 16 22:19:19 CEST 2009
Wolfgang Denk wrote:
> Dear "Michele De Candia (VT)",
>
> In message <4A37F7BF.2090101 at valueteam.com> you wrote:
>>>> this patch fixes a bug for 'nand erase' command: when bad blocks are
>>>> present into erasing area, they were skipped but the erased size was
>>>> updated anyway.
>>> And what exactly is the bug in this behaviour?
>>>
>> I think that 'erase' should have the same behaviour of 'write' and
>> 'read' commands: skip bad blocks until read/write size is reached. If
>> you write a script that erases and then writes a NAND area and bad
>> blocks are not skipped while erasing (as U-Boot actually does), the
>> following 'write' is successfully done but ECC checks fail on next read
>> on the same area.
>
> I see - thanks for the explanation.
>
> Hm... actually I think the write should fail in such a case...
>
> Scott, what do you think?
I think the current behavior is reasonable. You're erasing a specific
region of flash, not an amount needed to hold a certain amount of data.
While I can see the appeal of Michele's suggestion, I think it would be
more error-prone as people trying to erase a region rather than just the
size of data could erase too much.
It definitely should not be an error to erase a region that happens to
contain a bad block. Bad blocks are expected and we need to work around
them.
-Scott
More information about the U-Boot
mailing list