mediatek: spi-nand: check for 1 byte BBM only
authorChuanhong Guo <gch981213@gmail.com>
Thu, 7 Apr 2022 02:05:56 +0000 (10:05 +0800)
committerChuanhong Guo <gch981213@gmail.com>
Thu, 28 Apr 2022 10:06:00 +0000 (18:06 +0800)
the OOB layout in MTK SNFI uses the 2nd byte, and anything using OOB
will make the block a bad-block in spi-nand driver.
Hack it for now. We need a proper solution upstream.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
target/linux/mediatek/patches-5.15/121-hack-spi-nand-1b-bbm.patch [new file with mode: 0644]

diff --git a/target/linux/mediatek/patches-5.15/121-hack-spi-nand-1b-bbm.patch b/target/linux/mediatek/patches-5.15/121-hack-spi-nand-1b-bbm.patch
new file mode 100644 (file)
index 0000000..eccd363
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/drivers/mtd/nand/spi/core.c
++++ b/drivers/mtd/nand/spi/core.c
+@@ -715,7 +715,7 @@ static int spinand_mtd_write(struct mtd_
+ static bool spinand_isbad(struct nand_device *nand, const struct nand_pos *pos)
+ {
+       struct spinand_device *spinand = nand_to_spinand(nand);
+-      u8 marker[2] = { };
++      u8 marker[1] = { };
+       struct nand_page_io_req req = {
+               .pos = *pos,
+               .ooblen = sizeof(marker),
+@@ -726,7 +726,7 @@ static bool spinand_isbad(struct nand_de
+       spinand_select_target(spinand, pos->target);
+       spinand_read_page(spinand, &req);
+-      if (marker[0] != 0xff || marker[1] != 0xff)
++      if (marker[0] != 0xff)
+               return true;
+       return false;