summaryrefslogtreecommitdiffstats
path: root/flashrom.c
diff options
context:
space:
mode:
authorNico Huber <nico.h@gmx.de>2018-12-22 16:54:59 +0100
committerNico Huber <nico.h@gmx.de>2019-04-02 16:55:43 +0000
commitdc5af547df8b2f852deb5ddad86bb90ff0fc50c0 (patch)
tree3b23dcce1e43e520ca0a6db314d6920a89b1f72a /flashrom.c
parent3d7b1e3b5c04304d3680bd950e7672f6336b01d6 (diff)
downloadflashrom-dc5af547df8b2f852deb5ddad86bb90ff0fc50c0.tar.gz
flashrom-dc5af547df8b2f852deb5ddad86bb90ff0fc50c0.tar.bz2
flashrom-dc5af547df8b2f852deb5ddad86bb90ff0fc50c0.zip
dediprog: Disable 4BA completelyv1.1-rc1
This is an interim solution. We'll have to enable 4BA step-by-step for each dediprog protocol version. Change-Id: I08efcbb09ab3499ef6902a698e9ce3d6232237c4 Signed-off-by: Nico Huber <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/c/flashrom/+/30386 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Diffstat (limited to 'flashrom.c')
-rw-r--r--flashrom.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/flashrom.c b/flashrom.c
index 135cc3e00..d6c4d248d 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -2333,6 +2333,16 @@ int prepare_flash_access(struct flashctx *const flash,
flash->address_high_byte = -1;
flash->in_4ba_mode = false;
+ /* Be careful about 4BA chips and broken masters */
+ if (flash->chip->total_size > 16 * 1024 && spi_master_no_4ba_modes(flash)) {
+ /* If we can't use native instructions, bail out */
+ if ((flash->chip->feature_bits & FEATURE_4BA_NATIVE) != FEATURE_4BA_NATIVE
+ || !spi_master_4ba(flash)) {
+ msg_cerr("Programmer doesn't support this chip. Aborting.\n");
+ return 1;
+ }
+ }
+
/* 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)) {
int ret;