Commit e973b057 authored by Carl-Daniel Hailfinger's avatar Carl-Daniel Hailfinger
Browse files

Print at least the vendor for SPI flash chips if the exact chip ID is unknown


Corresponding to flashrom svn r173 and coreboot v2 svn r3032.
Signed-off-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: default avatarRonald G. Minnich <rminnich@gmail.com>
parent 2736e328
......@@ -59,10 +59,13 @@ extern struct flashchip flashchips[];
* entry of each section should be the manufacturer ID, followed by the
* list of devices from that manufacturer (sorted by device IDs).
*
* All LPC/FWH parts (parallel flash) have 8-bit device IDs.
* All LPC/FWH parts (parallel flash) have 8-bit device IDs if there is no
* continuation code.
* All SPI parts have 16-bit device IDs.
*/
#define GENERIC_DEVICE_ID 0xffff /* Only match the vendor ID */
#define ALLIANCE_ID 0x52 /* Alliance Semiconductor */
#define AMD_ID 0x01 /* AMD */
......
......@@ -185,5 +185,13 @@ struct flashchip flashchips[] = {
probe_jedec, erase_chip_jedec, write_49f002},
{"S29C31004T", SYNCMOS_ID, S29C31004T, 512, 128,
probe_jedec, erase_chip_jedec, write_49f002},
{"EON unknown SPI chip", EON_ID_NOPREFIX, GENERIC_DEVICE_ID, 0, 0,
probe_spi, NULL, NULL},
{"MX unknown SPI chip", MX_ID, GENERIC_DEVICE_ID, 0, 0,
probe_spi, NULL, NULL},
{"SST unknown SPI chip", SST_ID, GENERIC_DEVICE_ID, 0, 0,
probe_spi, NULL, NULL},
{"ST unknown SPI chip", ST_ID, GENERIC_DEVICE_ID, 0, 0,
probe_spi, NULL, NULL},
{NULL,}
};
......@@ -262,14 +262,19 @@ int probe_spi(struct flashchip *flash)
manuf_id = readarr[0];
model_id = (readarr[1] << 8) | readarr[2];
printf_debug("%s: id1 0x%x, id2 0x%x\n", __FUNCTION__, manuf_id, model_id);
if (manuf_id == flash->manufacture_id && model_id == flash->model_id) {
/* Print the status register before erase to tell the
if (manuf_id == flash->manufacture_id &&
model_id == flash->model_id) {
/* Print the status register to tell the
* user about possible write protection.
*/
generic_spi_prettyprint_status_register(flash);
return 1;
}
/* Test if this is a pure vendor match. */
if (manuf_id == flash->manufacture_id &&
GENERIC_DEVICE_ID == flash->model_id)
return 1;
}
return 0;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment