summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Agner <stefan.agner@toradex.com>2014-07-23 10:03:51 +0200
committerStefan Agner <stefan.agner@toradex.com>2014-07-23 10:07:41 +0200
commit320a3a8340c4c5289a12d6de78411bdfd72738f8 (patch)
tree914898e96d914bb43a3f54f108103775a3da5f61
parentc798a6d9e4035d8427857bcb41cd521972e4332d (diff)
colibri vf50/61: detect bad blocks in U-Boot area
The boot ROM was not able to detect bad blocks in the U-Boot area due to disabled "bad block marking swap" functionality. The description of this field is a bit unclear, but tests show that skipping bad blocks in U-Boot area only work if this field is set to 0.
-rw-r--r--arch/arm/imx-common/cmd_writebcb.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/arm/imx-common/cmd_writebcb.c b/arch/arm/imx-common/cmd_writebcb.c
index 9a7757d11a..e6fc125760 100644
--- a/arch/arm/imx-common/cmd_writebcb.c
+++ b/arch/arm/imx-common/cmd_writebcb.c
@@ -123,8 +123,11 @@ static void create_fcb(nand_info_t *nand, uint8_t *buf, int fw1_start_address,
/* This is typically the first byte of the pages OOB area */
fcb->bb_marker_physical_offset = nand->writesize;
- /* Disable swapping of bad block marker byte */
- fcb->disbbm = 1;
+ /*
+ * Enable swapping of bad block marker byte (required for boot ROM in
+ * order to detect factory marked bad blocks)
+ */
+ fcb->disbbm = 0;
fcb->disbbm_search = 0;
fcb->disbbm_search_limit = 8;