mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-26 14:42:36 +02:00
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> Reviewed-on: https://review.coreboot.org/c/flashrom/+/85592 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nikolai Artemiev <nartemiev@google.com> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
This commit is contained in:
parent
225241817e
commit
b184e013e2
8
ichspi.c
8
ichspi.c
@ -1823,8 +1823,12 @@ static int ich_spi_send_multicommand(const struct flashctx *flash,
|
||||
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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user