Edward O'Callaghan has uploaded this change for review. ( https://review.coreboot.org/c/flashrom/+/64371 )
Change subject: flashrom.c: Validate BUS before trying 4BA commands ......................................................................
flashrom.c: Validate BUS before trying 4BA commands
4BA is sort of broken for opaque masters.
Instead of just leaning on the chip feature flag to determine when to enter_exit out of 4ba modes, validate '(flash->chip->bustype == BUS_SPI)'. The following chips; - GD25Q256D - MX25L25635F/MX25L25645G - W25Q256.V - W25Q256JV_M Have issue with opaque masters that tries incorrectly to issue 4BA commands which results in failure.
Change-Id: Ie26732b03a67bfafc8eae1f642dc85c6d37f7772 Signed-off-by: Edward O'Callaghan quasisec@google.com --- M flashrom.c 1 file changed, 2 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/flashrom refs/changes/71/64371/1
diff --git a/flashrom.c b/flashrom.c index 7f54488..356de79 100644 --- a/flashrom.c +++ b/flashrom.c @@ -1845,7 +1845,8 @@ }
/* Enable/disable 4-byte addressing mode if flash chip supports it */ - if (flash->chip->feature_bits & (FEATURE_4BA_ENTER | FEATURE_4BA_ENTER_WREN | FEATURE_4BA_ENTER_EAR7)) { + if ((flash->chip->bustype == BUS_SPI) && + (flash->chip->feature_bits & (FEATURE_4BA_ENTER | FEATURE_4BA_ENTER_WREN | FEATURE_4BA_ENTER_EAR7))) { int ret; if (spi_master_4ba(flash)) ret = spi_enter_4ba(flash);