i2c/smbus_eeprom: Add feature bit to SPD data
authorBALATON Zoltan <balaton@eik.bme.hu>
Thu, 15 Jul 2021 16:50:44 +0000 (18:50 +0200)
committerDavid Gibson <david@gibson.dropbear.id.au>
Thu, 29 Jul 2021 00:59:49 +0000 (10:59 +1000)
Add the differential clock input feature bit to the generated SPD
data. Most guests don't seem to care but pegasos2 firmware version 1.2
checks for this bit and stops with unsupported module type error if
it's not present. Since this feature is likely present on real memory
modules add it in the general code rather than patching the generated
SPD data in pegasos2 board only.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <19d42ade295d5297aa624a9eb757b8df18cf64d6.1626367844.git.balaton@eik.bme.hu>
Acked-by: Corey Minyard <cminyard@mvista.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
hw/i2c/smbus_eeprom.c

index 4d2bf99207a791b47a1eb8f811a42c5da8c2b143..12c5741f3884a3ce17a9583f5661722e91efdf75 100644 (file)
@@ -276,7 +276,7 @@ uint8_t *spd_data_generate(enum sdram_type type, ram_addr_t ram_size)
     spd[18] = 12;   /* ~CAS latencies supported */
     spd[19] = (type == DDR2 ? 0 : 1); /* reserved / ~CS latencies supported */
     spd[20] = 2;    /* DIMM type / ~WE latencies */
-                    /* module features */
+    spd[21] = (type < DDR2 ? 0x20 : 0); /* module features */
                     /* memory chip features */
     spd[23] = 0x12; /* clock cycle time @ medium CAS latency */
                     /* data access time */