
Dear Stefan,
in message 200607141047.08126.sr@denx.de you wrote:
I find it hard to believe that a linux NAND erase operation will stop upon reaching a bad block. But you are right: the code in question is the same in the current linux mtd driver. From my experience, I never had problems erasing NAND flash devices (from U-Boot & linux) which had bad blocks.
The code in the MTD CVS is also the same.
Note that in my understanding this code never gets executed for bad blocks (see comment "we do not erase bad blocks") in Linux, i. e. it attempts to catch previous errors.
I see. You have a good point here. This needs some testing on a device with bad blocks. "Unfortunately" the device on my desk has no bad blocks at all:
=> nand bad
Device 0 bad blocks:
Perhaps somebody else can jump in here and test the current linux mtd driver behavior on a device with bad blocks. Thanks.
If you like you can use the "dave" board in our virtual lab. It has a couple of bad blocks in device 1:
=> nand device 1 Device 1: NAND 32MiB 3,3V 8-bit... is now current device => nand bad
Device 1 bad blocks: 00000000 00004000 00008000 0000c000 00010000 =>
Best regards,
Wolfgang Denk