mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* imx6: Nand flash BB erase issue/question...
@ 2014-12-17 20:05 Michael D. Burkey
  2014-12-19  6:27 ` Sascha Hauer
  0 siblings, 1 reply; 2+ messages in thread
From: Michael D. Burkey @ 2014-12-17 20:05 UTC (permalink / raw)
  To: barebox

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?

Thanks,
Michael Burkey

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: imx6: Nand flash BB erase issue/question...
  2014-12-17 20:05 imx6: Nand flash BB erase issue/question Michael D. Burkey
@ 2014-12-19  6:27 ` Sascha Hauer
  0 siblings, 0 replies; 2+ messages in thread
From: Sascha Hauer @ 2014-12-19  6:27 UTC (permalink / raw)
  To: Michael D. Burkey; +Cc: barebox

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 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-12-19  6:28 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-17 20:05 imx6: Nand flash BB erase issue/question Michael D. Burkey
2014-12-19  6:27 ` Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox