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);
}