mtd nand erase and bad block
Matteo Facchinetti
matteo.facchinetti at sirius-es.it
Thu May 31 08:12:41 EDT 2012
Hi,
I'm developing a mtd driver for a nand flash controller and I need help;
I'm to the end of the work, and I have problems and dubts about bad
block handling.
For test, I mark manually bad block byte on flash block.
When I erase with flash_erase, all works and skip the bad block:
:~# flash_erase /dev/mtd6 0 0
Erasing 1024 Kibyte @ 100000 -- 2 % complete flash_erase: Skipping bad
block at 00200000
Erasing 1024 Kibyte @ 2700000 -- 100 % complete
If I try to erase with -N parameter I read the following output:
~# flash_erase -N /dev/mtd6 0 0
Erasing 1024 Kibnand_erase_nand: attempt to erase a bad block at page
0x00001600
yte @ 200000 -- 5 % complete libmtd: error!: MEMERASE64 ioctl failed
for eraseblock 2 (mtd6)
error 5 (Input/output error)
flash_erase: error!: /dev/mtd6: MTD Erase failure
error 5 (Input/output error)
Erasing 1024 Kibyte @ 2700000 -- 100 % complete
I espected that with -N option, flash_erase should erase the
hand-damaged block, recovering the usability of the block. Is it true?
What's going wrong?
Best Regards,
Matteo
More information about the linux-mtd
mailing list