[openwrt/openwrt] generic: unlock Winbond flash on boot

LEDE Commits lede-commits at lists.infradead.org
Thu Jan 11 02:52:42 PST 2018


neoraider pushed a commit to openwrt/openwrt.git, branch master:
https://git.lede-project.org/1abb5c6db11bd8a3c79b9e24ac4511985fe39ea4

commit 1abb5c6db11bd8a3c79b9e24ac4511985fe39ea4
Author: Matthias Schiffer <mschiffer at universe-factory.net>
AuthorDate: Tue Jan 9 21:03:00 2018 +0100

    generic: unlock Winbond flash on boot
    
    The underlying issue breaking Spansion flash has been fixed with "mtd: spi-nor:
    wait until lock/unlock operations are ready" and "mtd: spi-nor: wait for SR_WIP
    to clear on initial unlock", so we can support unlocking for Winbond flash
    again.
    
    This is necessary to have writable flash on certain UBNT devices with some
    bootloader versions.
    
    Signed-off-by: Matthias Schiffer <mschiffer at universe-factory.net>
---
 ...spi-nor-fix-Spansion-regressions-aliased-.patch | 37 ++++++++++++++++++++++
 ...spi-nor-fix-Spansion-regressions-aliased-.patch | 37 ++++++++++++++++++++++
 2 files changed, 74 insertions(+)

diff --git a/target/linux/generic/pending-4.14/466-Revert-mtd-spi-nor-fix-Spansion-regressions-aliased-.patch b/target/linux/generic/pending-4.14/466-Revert-mtd-spi-nor-fix-Spansion-regressions-aliased-.patch
new file mode 100644
index 0000000..b787729
--- /dev/null
+++ b/target/linux/generic/pending-4.14/466-Revert-mtd-spi-nor-fix-Spansion-regressions-aliased-.patch
@@ -0,0 +1,37 @@
+From: Matthias Schiffer <mschiffer at universe-factory.net>
+Date: Tue, 9 Jan 2018 20:41:48 +0100
+Subject: [PATCH] Revert "mtd: spi-nor: fix Spansion regressions (aliased with
+ Winbond)"
+
+This reverts commit 67b9bcd36906e12a15ffec19463afbbd6a41660e.
+
+The underlying issue breaking Spansion flash has been fixed with "mtd: spi-nor:
+wait until lock/unlock operations are ready" and "mtd: spi-nor: wait for SR_WIP
+to clear on initial unlock", so we can support unlocking for Winbond flash
+again.
+
+Signed-off-by: Matthias Schiffer <mschiffer at universe-factory.net>
+---
+ drivers/mtd/spi-nor/spi-nor.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/mtd/spi-nor/spi-nor.c
++++ b/drivers/mtd/spi-nor/spi-nor.c
+@@ -2717,6 +2717,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+ 	    JEDEC_MFR(info) == SNOR_MFR_INTEL ||
+ 	    JEDEC_MFR(info) == SNOR_MFR_MACRONIX ||
+ 	    JEDEC_MFR(info) == SNOR_MFR_SST ||
++	    JEDEC_MFR(info) == SNOR_MFR_WINBOND ||
+ 	    info->flags & SPI_NOR_HAS_LOCK) {
+ 		write_enable(nor);
+ 		write_sr(nor, 0);
+@@ -2735,7 +2736,8 @@ int spi_nor_scan(struct spi_nor *nor, co
+ 
+ 	/* NOR protection support for STmicro/Micron chips and similar */
+ 	if (JEDEC_MFR(info) == SNOR_MFR_MICRON ||
+-			info->flags & SPI_NOR_HAS_LOCK) {
++	    JEDEC_MFR(info) == SNOR_MFR_WINBOND ||
++	    info->flags & SPI_NOR_HAS_LOCK) {
+ 		nor->flash_lock = stm_lock;
+ 		nor->flash_unlock = stm_unlock;
+ 		nor->flash_is_locked = stm_is_locked;
diff --git a/target/linux/generic/pending-4.9/466-Revert-mtd-spi-nor-fix-Spansion-regressions-aliased-.patch b/target/linux/generic/pending-4.9/466-Revert-mtd-spi-nor-fix-Spansion-regressions-aliased-.patch
new file mode 100644
index 0000000..e032b08
--- /dev/null
+++ b/target/linux/generic/pending-4.9/466-Revert-mtd-spi-nor-fix-Spansion-regressions-aliased-.patch
@@ -0,0 +1,37 @@
+From: Matthias Schiffer <mschiffer at universe-factory.net>
+Date: Tue, 9 Jan 2018 20:41:48 +0100
+Subject: [PATCH] Revert "mtd: spi-nor: fix Spansion regressions (aliased with
+ Winbond)"
+
+This reverts commit 67b9bcd36906e12a15ffec19463afbbd6a41660e.
+
+The underlying issue breaking Spansion flash has been fixed with "mtd: spi-nor:
+wait until lock/unlock operations are ready" and "mtd: spi-nor: wait for SR_WIP
+to clear on initial unlock", so we can support unlocking for Winbond flash
+again.
+
+Signed-off-by: Matthias Schiffer <mschiffer at universe-factory.net>
+---
+ drivers/mtd/spi-nor/spi-nor.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/mtd/spi-nor/spi-nor.c
++++ b/drivers/mtd/spi-nor/spi-nor.c
+@@ -1597,6 +1597,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+ 	    JEDEC_MFR(info) == SNOR_MFR_INTEL ||
+ 	    JEDEC_MFR(info) == SNOR_MFR_MACRONIX ||
+ 	    JEDEC_MFR(info) == SNOR_MFR_SST ||
++	    JEDEC_MFR(info) == SNOR_MFR_WINBOND ||
+ 	    info->flags & SPI_NOR_HAS_LOCK) {
+ 		write_enable(nor);
+ 		write_sr(nor, 0);
+@@ -1615,7 +1616,8 @@ int spi_nor_scan(struct spi_nor *nor, co
+ 
+ 	/* NOR protection support for STmicro/Micron chips and similar */
+ 	if (JEDEC_MFR(info) == SNOR_MFR_MICRON ||
+-			info->flags & SPI_NOR_HAS_LOCK) {
++	    JEDEC_MFR(info) == SNOR_MFR_WINBOND ||
++	    info->flags & SPI_NOR_HAS_LOCK) {
+ 		nor->flash_lock = stm_lock;
+ 		nor->flash_unlock = stm_unlock;
+ 		nor->flash_is_locked = stm_is_locked;



More information about the lede-commits mailing list