[SeaBIOS] [PATCH 1/2] SMBIOS: Update Type 17 (Memory Device) struct to v2.3

Gabriel L. Somlo gsomlo at gmail.com
Tue Feb 4 20:02:59 CET 2014


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 at 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 */
-- 
1.8.1.4




More information about the SeaBIOS mailing list