On Tue, Mar 11, 2014 at 11:46:17AM -0400, Kevin O'Connor wrote: > I would suggest being "bug for bug" compatible in the first set of > patches, and then add patches on top to add the additional > functionality. Just my 2 cents.
With the patch enclosed at the end of this email, I can get it down to this: -Handle 0x0401, DMI type 4, 32 bytes +Handle 0x0401, DMI type 4, 35 bytes Processor Information Socket Designation: CPU 1 Type: Central Processor Family: Other Manufacturer: Bochs ID: FB 06 00 00 FF FB 8B 0F Version: Not Specified Voltage: Unknown External Clock: Unknown Max Speed: 2000 MHz Current Speed: 2000 MHz Status: Populated, Enabled Upgrade: Other L1 Cache Handle: Not Provided L2 Cache Handle: Not Provided L3 Cache Handle: Not Provided + Serial Number: Not Specified + Asset Tag: Not Specified + Part Number: Not Specified and -Handle 0x1100, DMI type 17, 21 bytes +Handle 0x1100, DMI type 17, 27 bytes Memory Device Array Handle: 0x1000 - Error Information Handle: 0x0000 + Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 16384 MB Form Factor: DIMM Set: None Locator: DIMM 0 Bank Locator: Not Specified Type: RAM Type Detail: None + Speed: Unknown + Manufacturer: QEMU + Serial Number: Not Specified + Asset Tag: Not Specified + Part Number: Not Specified which is basically a predictable value for type 17 error info handle, and v2.3 fields for types 4 and 17. When fixing the error info handle in SeaBIOS, do you plan on using anything other than "Not Provided" ? Re. v2.3 fields, in Seabios src/fw/smbios.c, lines 44 and 45, the smbios major/minor version is set to 2.4, so I think having all types be compliant with v2.4 is also important. That basically means bringing 4 and 17 in compliance with v2.3 :) The QEMU smbios_set_defaults patch I used is below. I can add it as #14 in the series, once we all get past the review for the other items. Thanks again, --Gabriel diff --git a/hw/i386/smbios.c b/hw/i386/smbios.c index 64f570f..1112c11 100644 --- a/hw/i386/smbios.c +++ b/hw/i386/smbios.c @@ -615,6 +615,7 @@ void smbios_set_defaults(const char *manufacturer, ram_addr_t below_4g_mem_size, ram_addr_t above_4g_mem_size) { + const char *compat = "Bochs"; smbios_have_defaults = true; assert(ram_size == below_4g_mem_size + above_4g_mem_size); @@ -630,11 +631,11 @@ void smbios_set_defaults(const char *manufacturer, SMBIOS_SET_DEFAULT(type2.manufacturer, manufacturer); SMBIOS_SET_DEFAULT(type2.product, product); SMBIOS_SET_DEFAULT(type2.version, version); - SMBIOS_SET_DEFAULT(type3.manufacturer, manufacturer); - SMBIOS_SET_DEFAULT(type3.version, version); + SMBIOS_SET_DEFAULT(type3.manufacturer, compat); + /* SMBIOS_SET_DEFAULT(type3.version, version); */ SMBIOS_SET_DEFAULT(type4.sock_pfx, "CPU"); - SMBIOS_SET_DEFAULT(type4.manufacturer, manufacturer); - SMBIOS_SET_DEFAULT(type4.version, version); + SMBIOS_SET_DEFAULT(type4.manufacturer, compat); + /* SMBIOS_SET_DEFAULT(type4.version, version); */ SMBIOS_SET_DEFAULT(type17.loc_pfx, "DIMM"); SMBIOS_SET_DEFAULT(type17.manufacturer, manufacturer); }