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>
diff --git a/spi.c b/spi.c
index 5cfc052..786d555 100644
--- a/spi.c
+++ b/spi.c
@@ -71,8 +71,12 @@
 	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 {