summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorYe Li <ye.li@nxp.com>2018-12-27 00:59:11 -0800
committerYe Li <ye.li@nxp.com>2019-01-16 02:23:57 -0800
commitedc9581d87d7a6f27b7f9673e2959169c9be15c7 (patch)
treef1d4ee112fd209e9f6a2bbf2cd679b887d1bcaac /drivers
parent48d58d07b9005c94c62fcdc345e65b0a8236d378 (diff)
MLK-20664-4 mtd: mxc_nand: Enable flash BBT
Current MXC NAND driver uses memory BBT, it will create memory BBT in each booting by searching bad blocks. This patch enables the flash BBT, so the NAND driver can read back Bad block table on the flash chip to create memory BBT. Signed-off-by: Ye Li <ye.li@nxp.com> Acked-by: Peng Fan <peng.fan@nxp.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mtd/nand/mxs_nand.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/mtd/nand/mxs_nand.c b/drivers/mtd/nand/mxs_nand.c
index ae1570e060..e2df50f791 100644
--- a/drivers/mtd/nand/mxs_nand.c
+++ b/drivers/mtd/nand/mxs_nand.c
@@ -82,6 +82,14 @@ struct nand_ecclayout fake_ecc_layout;
static int chunk_data_size = MXS_NAND_CHUNK_DATA_CHUNK_SIZE;
static int galois_field = 13;
+static uint8_t scan_ff_pattern[] = { 0xff };
+static struct nand_bbt_descr gpmi_bbt_descr = {
+ .options = 0,
+ .offs = 0,
+ .len = 1,
+ .pattern = scan_ff_pattern
+};
+
/*
* Cache management functions
*/
@@ -1339,6 +1347,8 @@ int board_nand_init(struct nand_chip *nand)
nand_set_controller_data(nand, nand_info);
nand->options |= NAND_NO_SUBPAGE_WRITE;
+ nand->bbt_options = NAND_BBT_USE_FLASH | NAND_BBT_NO_OOB;
+ nand->badblock_pattern = &gpmi_bbt_descr;
nand->cmd_ctrl = mxs_nand_cmd_ctrl;