Anastasia Klimchuk has uploaded this change for review. ( https://review.coreboot.org/c/flashrom/+/85612?usp=email )
Change subject: ichspi: Check whether chipset is locked when probing opcode ......................................................................
ichspi: Check whether chipset is locked when probing opcode
This is follow up (or fix) for commit 26a1eb514ccefc61b110068cf0eea73c397ba045
When probing opcode, all opcodes in POSSIBLE_OPCODES are reported as supported, even if the opcode is not in curopcodes. This is relying on reprogramming on-the-fly to handle the gap between POSSIBLE_OPCODES and curopcodes. However, for locked chipsets on-the-fly is not happening (is not possible, since list of opcodes is locked), so we can't rely on it. So, we need to check whether chipset is locked.
Ticket: https://ticket.coreboot.org/issues/573
Change-Id: I701a86f030cfef43a1158bf075287ade569254e6 Signed-off-by: Anastasia Klimchuk aklm@flashrom.org Tested-by: Matt DeVillier matt.devillier@gmail.com --- M ichspi.c 1 file changed, 6 insertions(+), 2 deletions(-)
git pull ssh://review.coreboot.org:29418/flashrom refs/changes/12/85612/1
diff --git a/ichspi.c b/ichspi.c index fc994db..94227de 100644 --- a/ichspi.c +++ b/ichspi.c @@ -1823,8 +1823,12 @@ static bool ich_spi_probe_opcode(const struct flashctx *flash, uint8_t opcode) { int ret = find_opcode(curopcodes, opcode); - if ((ret == -1) && (lookup_spi_type(opcode) <= 3)) - /* opcode is in POSSIBLE_OPCODES, report supported. */ + if ((ret == -1) && (lookup_spi_type(opcode) <= 3) && (!ichspi_lock)) + /* opcode is in POSSIBLE_OPCODES, report supported. + * Relying on reprogramming on-the-fly + * when opcode is not in curopcodes, but is in POSSIBLE_OPCODES. + * + * on-the-fly does not work for locked chipsets, therefore checking ichspi_lock. */ return true; return ret >= 0; }