diff options
author | Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> | 2008-05-14 12:03:06 +0000 |
---|---|---|
committer | Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> | 2008-05-14 12:03:06 +0000 |
commit | a758f5100dd6266af29d63302e745b1a3ad89bed (patch) | |
tree | 96e3402473e7630b467b7befe97e0a03ecdc21f4 /spi.c | |
parent | 4e84dfb7849b1d1de298c4f5212348a3c96b5b2f (diff) | |
download | ast2050-flashrom-a758f5100dd6266af29d63302e745b1a3ad89bed.zip ast2050-flashrom-a758f5100dd6266af29d63302e745b1a3ad89bed.tar.gz |
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 <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Peter Stuge <peter@stuge.se>
Diffstat (limited to 'spi.c')
-rw-r--r-- | spi.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -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 { |