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