Nico Huber merged this change.
Add a SPI command class to `struct flashchip`
By default, we want to probe for SPI25 chips only. Other SPI use cases,
like the ENE/EDI protocol, might use commands that can confuse these
common chips.
Now, flashrom will probe for a chip only if one of these conditions is
true:
1) no chip has been specified AND the chip uses the SPI25 commands
2) this chip has been specified by -c | --chip <chipname>
The CLI can later be extended to probe for a specific class of chips.
Change-Id: I89a53ccaef2791a2ac32904d7ab813da7478a6f0
Signed-off-by: Mike Banon <mikebdp2@gmail.com>
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/23262
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Kocialkowski <contact@paulk.fr>
---
M flash.h
M flashrom.c
2 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/flash.h b/flash.h
index d31b256..a71fec1 100644
--- a/flash.h
+++ b/flash.h
@@ -183,6 +183,17 @@
enum test_state write;
} tested;
+ /*
+ * Group chips that have common command sets. This should ensure that
+ * no chip gets confused by a probing command for a very different class
+ * of chips.
+ */
+ enum {
+ /* SPI25 is very common. Keep it at zero so we don't have
+ to specify it for each and every chip in the database.*/
+ SPI25 = 0,
+ } spi_cmd_set;
+
int (*probe) (struct flashctx *flash);
/* Delay after "enter/exit ID mode" commands in microseconds.
diff --git a/flashrom.c b/flashrom.c
index ac987fd..a7de995 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -1209,6 +1209,9 @@
buses_common = mst->buses_supported & chip->bustype;
if (!buses_common)
continue;
+ /* Only probe for SPI25 chips by default. */
+ if (chip->bustype == BUS_SPI && !chip_to_probe && chip->spi_cmd_set != SPI25)
+ continue;
msg_gdbg("Probing for %s %s, %d kB: ", chip->vendor, chip->name, chip->total_size);
if (!chip->probe && !force) {
msg_gdbg("failed! flashrom has no probe function for this flash chip.\n");
To view, visit change 23262. To unsubscribe, or for help writing mail filters, visit settings.