From a758f5100dd6266af29d63302e745b1a3ad89bed Mon Sep 17 00:00:00 2001 From: Carl-Daniel Hailfinger Date: Wed, 14 May 2008 12:03:06 +0000 Subject: Check the JEDEC vendor ID for correct parity Flash chips which can be detected by JEDEC probe routines all have vendor IDs with correct parity. Use a parity check as additional hint whether a vendor ID makes sense. Note: Device IDs have no parity requirements whatsoever. Corresponding to flashrom svn r231 and coreboot v2 svn r3308. Signed-off-by: Carl-Daniel Hailfinger Acked-by: Peter Stuge --- spi.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'spi.c') diff --git a/spi.c b/spi.c index 5cfc052..786d555 100644 --- a/spi.c +++ b/spi.c @@ -71,8 +71,12 @@ int probe_spi(struct flashchip *flash) uint32_t manuf_id; uint32_t model_id; if (!spi_rdid(readarr)) { + if (!oddparity(readarr[0])) + printf_debug("RDID byte 0 parity violation.\n"); /* Check if this is a continuation vendor ID */ if (readarr[0] == 0x7f) { + if (!oddparity(readarr[1])) + printf_debug("RDID byte 1 parity violation.\n"); manuf_id = (readarr[0] << 8) | readarr[1]; model_id = readarr[2]; } else { -- cgit v1.1