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 ---------------------------------------------------------------- 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 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox