Print at least the vendor for SPI flash chips if the exact chip ID is
unknown. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Ronald G. Minnich <rminnich@gmail.com> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3032 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
717f66d1eb
commit
b5f9bd6ac9
|
@ -59,10 +59,13 @@ extern struct flashchip flashchips[];
|
||||||
* entry of each section should be the manufacturer ID, followed by the
|
* entry of each section should be the manufacturer ID, followed by the
|
||||||
* list of devices from that manufacturer (sorted by device IDs).
|
* 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.
|
* 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 ALLIANCE_ID 0x52 /* Alliance Semiconductor */
|
||||||
|
|
||||||
#define AMD_ID 0x01 /* AMD */
|
#define AMD_ID 0x01 /* AMD */
|
||||||
|
|
|
@ -185,5 +185,13 @@ struct flashchip flashchips[] = {
|
||||||
probe_jedec, erase_chip_jedec, write_49f002},
|
probe_jedec, erase_chip_jedec, write_49f002},
|
||||||
{"S29C31004T", SYNCMOS_ID, S29C31004T, 512, 128,
|
{"S29C31004T", SYNCMOS_ID, S29C31004T, 512, 128,
|
||||||
probe_jedec, erase_chip_jedec, write_49f002},
|
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,}
|
{NULL,}
|
||||||
};
|
};
|
||||||
|
|
|
@ -262,14 +262,19 @@ int probe_spi(struct flashchip *flash)
|
||||||
manuf_id = readarr[0];
|
manuf_id = readarr[0];
|
||||||
model_id = (readarr[1] << 8) | readarr[2];
|
model_id = (readarr[1] << 8) | readarr[2];
|
||||||
printf_debug("%s: id1 0x%x, id2 0x%x\n", __FUNCTION__, manuf_id, model_id);
|
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) {
|
if (manuf_id == flash->manufacture_id &&
|
||||||
/* Print the status register before erase to tell the
|
model_id == flash->model_id) {
|
||||||
|
/* Print the status register to tell the
|
||||||
* user about possible write protection.
|
* user about possible write protection.
|
||||||
*/
|
*/
|
||||||
generic_spi_prettyprint_status_register(flash);
|
generic_spi_prettyprint_status_register(flash);
|
||||||
|
|
||||||
return 1;
|
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;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue