Add v2.3 fields to Type 17 (Memory Device) structure. Without these, selecting "About This Mac" on an OS X guest will crash and restart the GUI.
Signed-off-by: Gabriel Somlo somlo@cmu.edu --- src/fw/smbios.c | 6 ++++++ src/std/smbios.h | 6 ++++++ 2 files changed, 12 insertions(+)
diff --git a/src/fw/smbios.c b/src/fw/smbios.c index 55c662a..b2d7f14 100644 --- a/src/fw/smbios.c +++ b/src/fw/smbios.c @@ -417,6 +417,12 @@ smbios_init_type_17(void *start, u32 size_mb, int instance) set_field_with_default(17, memory_type, 0x07); /* RAM */ set_field_with_default(17, type_detail, 0);
+ set_field_with_default(17, speed, 0); /* unknown */ + load_str_field_or_skip(17, manufacturer_str); + load_str_field_or_skip(17, serial_number_str); + load_str_field_or_skip(17, asset_tag_number_str); + load_str_field_or_skip(17, part_number_str); + *end = 0; end++; if (!str_index) { diff --git a/src/std/smbios.h b/src/std/smbios.h index 0513716..ba0e95d 100644 --- a/src/std/smbios.h +++ b/src/std/smbios.h @@ -127,6 +127,12 @@ struct smbios_type_17 { u8 bank_locator_str; u8 memory_type; u16 type_detail; + /* v2.3 fields: */ + u16 speed; + u8 manufacturer_str; + u8 serial_number_str; + u8 asset_tag_number_str; + u8 part_number_str; } PACKED;
/* SMBIOS type 19 - Memory Array Mapped Address */