hc
2023-11-22 f743a7adbd6e230d66a6206fa115b59fec2d88eb
u-boot/drivers/mtd/nand/spi/core.c
....@@ -510,7 +510,7 @@
510510 const struct nand_page_io_req *req,
511511 bool ecc_enabled)
512512 {
513
- u8 status;
513
+ u8 status = 0;
514514 int ret;
515515
516516 ret = spinand_load_page_op(spinand, req);
....@@ -518,6 +518,12 @@
518518 return ret;
519519
520520 ret = spinand_wait(spinand, &status);
521
+ /*
522
+ * When there is data outside of OIP in the status, the status data is
523
+ * inaccurate and needs to be reconfirmed
524
+ */
525
+ if (spinand->id.data[0] == 0x01 && status && !ret)
526
+ ret = spinand_wait(spinand, &status);
521527 if (ret < 0)
522528 return ret;
523529
....@@ -837,6 +843,9 @@
837843 #ifdef CONFIG_SPI_NAND_ESMT
838844 &esmt_spinand_manufacturer,
839845 #endif
846
+#ifdef CONFIG_SPI_NAND_XINCUN
847
+ &xincun_spinand_manufacturer,
848
+#endif
840849 #ifdef CONFIG_SPI_NAND_XTX
841850 &xtx_spinand_manufacturer,
842851 #endif
....@@ -867,6 +876,9 @@
867876 #ifdef CONFIG_SPI_NAND_SKYHIGH
868877 &skyhigh_spinand_manufacturer,
869878 #endif
879
+#ifdef CONFIG_SPI_NAND_GSTO
880
+ &gsto_spinand_manufacturer,
881
+#endif
870882 };
871883
872884 static int spinand_manufacturer_match(struct spinand_device *spinand,