ramips: fix reboot with W25Q256 with 4-address-mode enabled
authorDaniel Golle <daniel@makrotopia.org>
Wed, 6 Jun 2018 23:51:58 +0000 (01:51 +0200)
committerJo-Philipp Wich <jo@mein.io>
Tue, 18 Dec 2018 08:43:58 +0000 (09:43 +0100)
commitcc7fa7fcecbdf31828ee0fd3ce23aef144c43c9d
treec568a38a507b040a7a56f63adcf5cc1035fc2cf5
parenta6b561dd01d3f0bd2b207a6ca37e34caa3bf49e5
ramips: fix reboot with W25Q256 with 4-address-mode enabled

Some board vendors actually changed the loader to expect the chip
to come up in 4-address-mode and flipped the ADP bit in the flash
chip's configuration register which makes it come up in 4-address-mode.
Hence it doesn't make sense to avoid switching to 4-address-mode on
those boards but the opposite as otherwise reboot hangs eg. on the
WrtNode2 boards. Fix this by checking the ADP register and only using
SPI_NOR_4B_READ_OP on chips which have ADP==0 (come up in 3-byte mode).

See also datasheet section 7.1.11 Power Up Address Mode (ADP)

Fixes: 22d982ea0 ("ramips: add support for switching between 3-byte and 4-byte addressing on w25q256 flash")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(backported from 8796680277f4b231386fbc6e8a1ccae91d9fcbe8)
target/linux/ramips/patches-4.14/0054-mtd-spi-nor-w25q256-respect-default-mode.patch [new file with mode: 0644]