imx6: Nand flash BB erase issue/question...

Sascha Hauer s.hauer at pengutronix.de
Thu Dec 18 22:27:56 PST 2014


On Wed, Dec 17, 2014 at 03:05:58PM -0500, Michael D. Burkey wrote:
> I have run into an issue that I wonder if anyone else has seen.
> 
> We have our kernel stored in NAND flash and have it partition and have
> the nand0.kernel and nand0.kernel.bb entries.
> 
> As I understand it, the nand0.kernel.bb entry is the correct one to
> use for day to day operations as it handles bad blocks.
> 
> The issue comes when I try erasing the kernel prior to updating it on
> a SOM with a known bad block inside the kernel area.
> 
> Doing an erase of nand0.kernel works fine and skips the bad block.
> 
> Doing an erase of nand0.kernel.bb however generates an error message:
> 
> nand: nand_erase_nand: attempt to erase a bad block at page
> 0x00000bc0
> 
> It then exits with an "erase: I/O error".
> 
> Specifically, it looks like an attempt to erase a .bb device calls
> nand_erase_nand() (in nand_base.c) which then uses
> nand_block_checkbad() to determine if the block is bad and then just
> generates an error exit rather than attempting to skip the bad block.
> 
> To me, this seems wrong.
> 
> Shouldn't an attempt to erase a .bb NAND device actually HANDLE the
> bad blocks by skipping them rather than simply erroring out?

You are absolutely right. This must be a bug.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list