Citeren Weijie Gao <hackpas...@gmail.com>:

2015-11-08 4:42 GMT+08:00 Shonn Lu <countryside...@qq.com>:

Signed-off-by: Shonn Lu <countryside...@qq.com>
---
 .../0064-reset-m25p80-when-shutdown.patch          | 24
++++++++++++++++++++++
 1 file changed, 24 insertions(+)
 create mode 100644
target/linux/ramips/patches-3.18/0064-reset-m25p80-when-shutdown.patch

diff --git
a/target/linux/ramips/patches-3.18/0064-reset-m25p80-when-shutdown.patch
b/target/linux/ramips/patches-3.18/0064-reset-m25p80-when-shutdown.patch
new file mode 100644
index 0000000..76f916a
--- /dev/null
+++
b/target/linux/ramips/patches-3.18/0064-reset-m25p80-when-shutdown.patch
@@ -0,0 +1,24 @@
+--- a/drivers/mtd/devices/m25p80.c
++++ b/drivers/mtd/devices/m25p80.c
+@@ -319,6 +319,12 @@
+ {
+       struct m25p     *flash = spi_get_drvdata(spi);
+
++    //        play4fun: add spi flash reset code
++      flash->command[0] = 0x66;
++      spi_write(flash->spi, flash->command, 1);
++      flash->command[0] = 0x99;
++      spi_write(flash->spi, flash->command, 1);
++
+       /* Clean up MTD stuff. */
+       return mtd_device_unregister(&flash->mtd);
+ }
+@@ -382,6 +388,8 @@
+       .id_table       = m25p_ids,
+       .probe  = m25p_probe,
+       .remove = m25p_remove,
++      //      play4fun add shutdown method to reset spi flash
++      .shutdown = m25p_remove,
+
+       /* REVISIT: many of these chips have deep power-down modes, which
+        * should clearly be entered on suspend() to minimize power use.
--
1.9.1
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


This is not enough for w25q256.

It is.

The Extended Address Register (EAR) must be cleared, or the higher half
16MB may be accessed in 3-byte addressing mode, and this will cause a boot
failure.

From the W25Q256FV datasheet (page 23):

"Upon power up or after the execution of a Software/Hardware Reset, the Extended Address Register
values will be cleared to 0."

So sending the device a software reset, should be sufficient as the EAR will be cleared.
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to