Message ID | 20200420132826.8879-2-armbru@redhat.com |
---|---|
State | New |
Headers | show |
Series | Subject: [PATCH 0/4] smbus: SPD fixes | expand |
diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c index 898453cf30..856bc0b5a3 100644 --- a/hw/ppc/sam460ex.c +++ b/hw/ppc/sam460ex.c @@ -335,7 +335,8 @@ static void sam460ex_init(MachineState *machine) dev = sysbus_create_simple(TYPE_PPC4xx_I2C, 0x4ef600700, uic[0][2]); i2c = PPC4xx_I2C(dev)->bus; /* SPD EEPROM on RAM module */ - spd_data = spd_data_generate(DDR2, ram_sizes[0], &err); + spd_data = spd_data_generate(ram_sizes[0] < 256 * MiB ? SDR : DDR2, + ram_sizes[0], &err); if (err) { warn_report_err(err); }
Requesting 32 or 64 MiB of RAM with the sam460ex machine type produces a useless warning: qemu-system-ppc: warning: Memory size is too small for SDRAM type, adjusting type This is because sam460ex_init() asks spd_data_generate() for DDR2, which is impossible, so spd_data_generate() corrects it to DDR. The warning goes back to commit 08fd99179a "sam460ex: Clean up SPD EEPROM creation". Turns out that commit changed memory type and number of banks to RAM size #banks type bank size 128 MiB 1 DDR2 128 MiB 64 MiB 2 DDR 32 MiB 32 MiB 1 DDR 32 MiB from RAM size #banks type bank size 128 MiB 2 SDR 64 MiB 64 MiB 2 SDR 32 MiB 32 MiB 2 SDR 16 MiB Reverting that change also gets rid of the warning. I doubt physical Sam460ex boards can take SDR or DDR modules, though. The commit changed SPD contents in other places, too. So does commit fb1b0fcc03 "target/mips: fulong2e: Dynamically generate SPD EEPROM data" for machine type fulong2e. I'm not reverting these changes. Signed-off-by: Markus Armbruster <armbru@redhat.com> --- hw/ppc/sam460ex.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)