[openwrt/openwrt] mediatek: spi-nand: check for 1 byte BBM only

LEDE Commits lede-commits at lists.infradead.org
Thu Apr 28 07:01:41 PDT 2022


981213 pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/2138956bdc3145fac26d2ba8ac966f31d33cd290

commit 2138956bdc3145fac26d2ba8ac966f31d33cd290
Author: Chuanhong Guo <gch981213 at gmail.com>
AuthorDate: Thu Apr 7 10:05:56 2022 +0800

    mediatek: spi-nand: check for 1 byte BBM only
    
    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 at gmail.com>
---
 .../patches-5.15/121-hack-spi-nand-1b-bbm.patch      | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

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
index 0000000000..eccd363395
--- /dev/null
+++ b/target/linux/mediatek/patches-5.15/121-hack-spi-nand-1b-bbm.patch
@@ -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;




More information about the lede-commits mailing list