[PATCH] fix i.MX external NAND boot bad block handling

Sascha Hauer s.hauer at pengutronix.de
Tue Mar 12 05:29:53 EDT 2013

The i.MX external NAND boot code relied very much on all block
used for the bootloader are good. It has some bad block checking,
but unfortunately it tested for a bad block in each page of a
block and skipped this page instead of checking for a bad block
at the beginning of a block and skipping the whole block then.

The handling of 2k page NAND flashes has another problem with bad
blocks. We rely on a bad block table since we cannot properly keep
the BBM on flash. This also means that the external NAND boot code
cannot detect bad blocks. This series adds a barebox update handler
to generate a bad block table (well, as long as we consider a 32bit
bitmask a table ;) inside the initial 2k page.


Sascha Hauer (4):
      ARM: i.MX: external nand boot: check for bad blocks
      ARM: head: Add some space behind the image header
      ARM: i.MX: Add bbu handler for external NAND boot
      ARM: i.MX pcm043: register external nand boot handler

 arch/arm/boards/pcm043/pcm043.c           |   6 +
 arch/arm/include/asm/barebox-arm-head.h   |  10 ++
 arch/arm/mach-imx/Kconfig                 |   6 +
 arch/arm/mach-imx/Makefile                |   1 +
 arch/arm/mach-imx/external-nand-boot.c    |  59 +++++++--
 arch/arm/mach-imx/imx-bbu-external-nand.c | 204 ++++++++++++++++++++++++++++++
 arch/arm/mach-imx/include/mach/bbu.h      |  11 ++
 arch/arm/mach-imx/include/mach/imx-nand.h |   6 +
 8 files changed, 289 insertions(+), 14 deletions(-)
 create mode 100644 arch/arm/mach-imx/imx-bbu-external-nand.c

More information about the barebox mailing list