From 0dc4d050f990b7a8e872b7d625efce591fb1cb0b Mon Sep 17 00:00:00 2001 From: Ross Philipson Date: Wed, 12 Aug 2009 04:16:18 -0400 Subject: [PATCH] Unified SMBIOS patch. Changes to be committed: deleted: master/rm-oem-smbios-files.patch modified: master/series modified: master/smbios deleted: master/smbios-table2.patch --- master/rm-oem-smbios-files.patch | 250 ---------------- master/series | 2 - master/smbios | 499 +++++++++++-------------------- master/smbios-table2.patch | 156 ---------- 4 files changed, 175 insertions(+), 732 deletions(-) delete mode 100644 master/rm-oem-smbios-files.patch delete mode 100644 master/smbios-table2.patch diff --git a/master/rm-oem-smbios-files.patch b/master/rm-oem-smbios-files.patch deleted file mode 100644 index 272eabc..0000000 --- a/master/rm-oem-smbios-files.patch +++ /dev/null @@ -1,250 +0,0 @@ -diff --git a/oem/dell-960-optiplex-smbios.patch b/oem/dell-960-optiplex-smbios.patch -deleted file mode 100644 -index bd5613e..0000000 ---- a/oem/dell-960-optiplex-smbios.patch -+++ /dev/null -@@ -1,49 +0,0 @@ --diff -Nur a/tools/firmware/hvmloader/markers.h b/tools/firmware/hvmloader/markers.h ----- a/tools/firmware/hvmloader/markers.h 2008-11-25 12:47:54.000000000 -0500 --+++ b/tools/firmware/hvmloader/markers.h 2008-11-25 12:53:27.000000000 -0500 --@@ -17,22 +17,22 @@ -- struct bios_vendor_struct { -- char marker[65]; -- char value[65]; ---} bios_vendor = {BIOS_VENDOR_MARKER, "Xen"}; --+} bios_vendor = {BIOS_VENDOR_MARKER, "Dell Inc."}; -- -- struct bios_version_struct { -- char marker[65]; -- char value[65]; ---} bios_version = {BIOS_VERSION_MARKER, ""}; --+} bios_version = {BIOS_VERSION_MARKER, "X20"}; -- -- struct sys_manufacturer_struct { -- char marker[65]; -- char value[65]; ---} sys_manufacturer = {SYS_MANUFACTURER_MARKER, "Xen"}; --+} sys_manufacturer = {SYS_MANUFACTURER_MARKER, "Dell Inc."}; -- -- struct sys_product_name_struct { -- char marker[65]; -- char value[65]; ---} sys_product_name = {SYS_PRODUCT_NAME_MARKER, "HVM domU"}; --+} sys_product_name = {SYS_PRODUCT_NAME_MARKER, "OptiPlex 960"}; -- -- struct sys_product_version_struct { -- char marker[65]; --@@ -57,15 +57,15 @@ -- struct sys_enclosure_manufacturer_struct { -- char marker[65]; -- char value[65]; ---} sys_enclosure_manufacturer = {SYS_ENCLOSURE_MANUFACTURER_MARKER, "Xen"}; --+} sys_enclosure_manufacturer = {SYS_ENCLOSURE_MANUFACTURER_MARKER, "Dell Inc."}; -- -- struct sys_enclosure_serial_struct { -- char marker[65]; -- char value[65]; -- } sys_enclosure_serial = {SYS_ENCLOSURE_SERIAL_MARKER, ""}; -- ---const char *oem_strings_array[1] = { --- NULL --+const char *oem_strings_array[2] = { --+ "www.dell.com", NULL -- }; -- -- #endif /* __HVMLOADER_MARKERS_H__ */ -diff --git a/oem/dell-e6500-latitude-smbios.patch b/oem/dell-e6500-latitude-smbios.patch -deleted file mode 100644 -index b949c7c..0000000 ---- a/oem/dell-e6500-latitude-smbios.patch -+++ /dev/null -@@ -1,49 +0,0 @@ --diff -Nur a/tools/firmware/hvmloader/markers.h b/tools/firmware/hvmloader/markers.h ----- a/tools/firmware/hvmloader/markers.h 2008-12-15 14:44:08.000000000 -0500 --+++ b/tools/firmware/hvmloader/markers.h 2008-12-15 14:56:51.000000000 -0500 --@@ -17,22 +17,22 @@ -- struct bios_vendor_struct { -- char marker[65]; -- char value[65]; ---} bios_vendor = {BIOS_VENDOR_MARKER, "Xen"}; --+} bios_vendor = {BIOS_VENDOR_MARKER, "Dell Inc."}; -- -- struct bios_version_struct { -- char marker[65]; -- char value[65]; ---} bios_version = {BIOS_VERSION_MARKER, ""}; --+} bios_version = {BIOS_VERSION_MARKER, "A09"}; -- -- struct sys_manufacturer_struct { -- char marker[65]; -- char value[65]; ---} sys_manufacturer = {SYS_MANUFACTURER_MARKER, "Xen"}; --+} sys_manufacturer = {SYS_MANUFACTURER_MARKER, "Dell Inc."}; -- -- struct sys_product_name_struct { -- char marker[65]; -- char value[65]; ---} sys_product_name = {SYS_PRODUCT_NAME_MARKER, "HVM domU"}; --+} sys_product_name = {SYS_PRODUCT_NAME_MARKER, "Latitude E6500"}; -- -- struct sys_product_version_struct { -- char marker[65]; --@@ -57,15 +57,15 @@ -- struct sys_enclosure_manufacturer_struct { -- char marker[65]; -- char value[65]; ---} sys_enclosure_manufacturer = {SYS_ENCLOSURE_MANUFACTURER_MARKER, "Xen"}; --+} sys_enclosure_manufacturer = {SYS_ENCLOSURE_MANUFACTURER_MARKER, "Dell Inc."}; -- -- struct sys_enclosure_serial_struct { -- char marker[65]; -- char value[65]; -- } sys_enclosure_serial = {SYS_ENCLOSURE_SERIAL_MARKER, ""}; -- ---const char *oem_strings_array[1] = { --- NULL --+const char *oem_strings_array[4] = { --+ "Dell System", "5[0031]", "13[PP04X]", NULL -- }; -- -- #endif /* __HVMLOADER_MARKERS_H__ */ -diff --git a/oem/hp-6930p-elitebook-smbios.patch b/oem/hp-6930p-elitebook-smbios.patch -deleted file mode 100644 -index 8441b2a..0000000 ---- a/oem/hp-6930p-elitebook-smbios.patch -+++ /dev/null -@@ -1,67 +0,0 @@ --diff -Nur a/tools/firmware/hvmloader/markers.h b/tools/firmware/hvmloader/markers.h ----- a/tools/firmware/hvmloader/markers.h 2008-11-25 12:47:54.000000000 -0500 --+++ b/tools/firmware/hvmloader/markers.h 2008-11-25 12:46:41.000000000 -0500 --@@ -17,27 +17,27 @@ -- struct bios_vendor_struct { -- char marker[65]; -- char value[65]; ---} bios_vendor = {BIOS_VENDOR_MARKER, "Xen"}; --+} bios_vendor = {BIOS_VENDOR_MARKER, "Hewlett-Packard"}; -- -- struct bios_version_struct { -- char marker[65]; -- char value[65]; ---} bios_version = {BIOS_VERSION_MARKER, ""}; --+} bios_version = {BIOS_VERSION_MARKER, "68PCU Ver. F.0B"}; -- -- struct sys_manufacturer_struct { -- char marker[65]; -- char value[65]; ---} sys_manufacturer = {SYS_MANUFACTURER_MARKER, "Xen"}; --+} sys_manufacturer = {SYS_MANUFACTURER_MARKER, "Hewlett-Packard"}; -- -- struct sys_product_name_struct { -- char marker[65]; -- char value[65]; ---} sys_product_name = {SYS_PRODUCT_NAME_MARKER, "HVM domU"}; --+} sys_product_name = {SYS_PRODUCT_NAME_MARKER, "HP EliteBook 6930p"}; -- -- struct sys_product_version_struct { -- char marker[65]; -- char value[65]; ---} sys_product_version = {SYS_PRODUCT_VERSION_MARKER, ""}; --+} sys_product_version = {SYS_PRODUCT_VERSION_MARKER, "F.0B"}; -- -- struct sys_product_serial_struct { -- char marker[65]; --@@ -47,25 +47,25 @@ -- struct sys_product_sku_struct { -- char marker[65]; -- char value[65]; ---} sys_product_sku = {SYS_PRODUCT_SKU_MARKER, ""}; --+} sys_product_sku = {SYS_PRODUCT_SKU_MARKER, "GB996EA#ABU"}; -- -- struct sys_product_family_struct { -- char marker[65]; -- char value[65]; ---} sys_product_family = {SYS_PRODUCT_FAMILY_MARKER, ""}; --+} sys_product_family = {SYS_PRODUCT_FAMILY_MARKER, "103C_5336AN"}; -- -- struct sys_enclosure_manufacturer_struct { -- char marker[65]; -- char value[65]; ---} sys_enclosure_manufacturer = {SYS_ENCLOSURE_MANUFACTURER_MARKER, "Xen"}; --+} sys_enclosure_manufacturer = {SYS_ENCLOSURE_MANUFACTURER_MARKER, "Hewlett-Packard"}; -- -- struct sys_enclosure_serial_struct { -- char marker[65]; -- char value[65]; -- } sys_enclosure_serial = {SYS_ENCLOSURE_SERIAL_MARKER, ""}; -- ---const char *oem_strings_array[1] = { --- NULL --+const char *oem_strings_array[4] = { --+ "ABS 70/71 79 7A 7B 7C", "CSM v01.24", "www.hp.com", NULL -- }; -- -- #endif /* __HVMLOADER_MARKERS_H__ */ -diff --git a/oem/lenovo-x200-thinkpad-smbios.patch b/oem/lenovo-x200-thinkpad-smbios.patch -deleted file mode 100644 -index 26d1f09..0000000 ---- a/oem/lenovo-x200-thinkpad-smbios.patch -+++ /dev/null -@@ -1,61 +0,0 @@ --diff -Nur a/tools/firmware/hvmloader/markers.h b/tools/firmware/hvmloader/markers.h ----- a/tools/firmware/hvmloader/markers.h 2008-12-15 14:44:08.000000000 -0500 --+++ b/tools/firmware/hvmloader/markers.h 2008-12-16 10:09:53.000000000 -0500 --@@ -17,27 +17,27 @@ -- struct bios_vendor_struct { -- char marker[65]; -- char value[65]; ---} bios_vendor = {BIOS_VENDOR_MARKER, "Xen"}; --+} bios_vendor = {BIOS_VENDOR_MARKER, "LENOVO"}; -- -- struct bios_version_struct { -- char marker[65]; -- char value[65]; ---} bios_version = {BIOS_VERSION_MARKER, ""}; --+} bios_version = {BIOS_VERSION_MARKER, "6DET33WW (1.10 )"}; -- -- struct sys_manufacturer_struct { -- char marker[65]; -- char value[65]; ---} sys_manufacturer = {SYS_MANUFACTURER_MARKER, "Xen"}; --+} sys_manufacturer = {SYS_MANUFACTURER_MARKER, "LENOVO"}; -- -- struct sys_product_name_struct { -- char marker[65]; -- char value[65]; ---} sys_product_name = {SYS_PRODUCT_NAME_MARKER, "HVM domU"}; --+} sys_product_name = {SYS_PRODUCT_NAME_MARKER, "74542NU"}; -- -- struct sys_product_version_struct { -- char marker[65]; -- char value[65]; ---} sys_product_version = {SYS_PRODUCT_VERSION_MARKER, ""}; --+} sys_product_version = {SYS_PRODUCT_VERSION_MARKER, "ThinkPad X200"}; -- -- struct sys_product_serial_struct { -- char marker[65]; --@@ -52,20 +52,20 @@ -- struct sys_product_family_struct { -- char marker[65]; -- char value[65]; ---} sys_product_family = {SYS_PRODUCT_FAMILY_MARKER, ""}; --+} sys_product_family = {SYS_PRODUCT_FAMILY_MARKER, "ThinkPad X200"}; -- -- struct sys_enclosure_manufacturer_struct { -- char marker[65]; -- char value[65]; ---} sys_enclosure_manufacturer = {SYS_ENCLOSURE_MANUFACTURER_MARKER, "Xen"}; --+} sys_enclosure_manufacturer = {SYS_ENCLOSURE_MANUFACTURER_MARKER, "LENOVO"}; -- -- struct sys_enclosure_serial_struct { -- char marker[65]; -- char value[65]; -- } sys_enclosure_serial = {SYS_ENCLOSURE_SERIAL_MARKER, ""}; -- ---const char *oem_strings_array[1] = { --- NULL --+const char *oem_strings_array[2] = { --+ "IBM ThinkPad Embedded Controller -[7XHT21WW-1.03 ]-", NULL -- }; -- -- #endif /* __HVMLOADER_MARKERS_H__ */ diff --git a/master/series b/master/series index 70f8e75..c027f7b 100644 --- a/master/series +++ b/master/series @@ -18,5 +18,3 @@ tools-hvm-info default-iommu-inclusive-mapping igd-cmd-reg-change-for-reboot xblanker -rm-oem-smbios-files.patch -smbios-table2.patch diff --git a/master/smbios b/master/smbios index 0923261..d53ea93 100644 --- a/master/smbios +++ b/master/smbios @@ -1,260 +1,7 @@ -diff -diff --git a/oem/dell-960-optiplex-smbios.patch b/oem/dell-960-optiplex-smbios.patch -new file mode 100644 -index 0000000..bd5613e ---- /dev/null -+++ b/oem/dell-960-optiplex-smbios.patch -@@ -0,0 +1,49 @@ -+diff -Nur a/tools/firmware/hvmloader/markers.h b/tools/firmware/hvmloader/markers.h -+--- a/tools/firmware/hvmloader/markers.h 2008-11-25 12:47:54.000000000 -0500 -++++ b/tools/firmware/hvmloader/markers.h 2008-11-25 12:53:27.000000000 -0500 -+@@ -17,22 +17,22 @@ -+ struct bios_vendor_struct { -+ char marker[65]; -+ char value[65]; -+-} bios_vendor = {BIOS_VENDOR_MARKER, "Xen"}; -++} bios_vendor = {BIOS_VENDOR_MARKER, "Dell Inc."}; -+ -+ struct bios_version_struct { -+ char marker[65]; -+ char value[65]; -+-} bios_version = {BIOS_VERSION_MARKER, ""}; -++} bios_version = {BIOS_VERSION_MARKER, "X20"}; -+ -+ struct sys_manufacturer_struct { -+ char marker[65]; -+ char value[65]; -+-} sys_manufacturer = {SYS_MANUFACTURER_MARKER, "Xen"}; -++} sys_manufacturer = {SYS_MANUFACTURER_MARKER, "Dell Inc."}; -+ -+ struct sys_product_name_struct { -+ char marker[65]; -+ char value[65]; -+-} sys_product_name = {SYS_PRODUCT_NAME_MARKER, "HVM domU"}; -++} sys_product_name = {SYS_PRODUCT_NAME_MARKER, "OptiPlex 960"}; -+ -+ struct sys_product_version_struct { -+ char marker[65]; -+@@ -57,15 +57,15 @@ -+ struct sys_enclosure_manufacturer_struct { -+ char marker[65]; -+ char value[65]; -+-} sys_enclosure_manufacturer = {SYS_ENCLOSURE_MANUFACTURER_MARKER, "Xen"}; -++} sys_enclosure_manufacturer = {SYS_ENCLOSURE_MANUFACTURER_MARKER, "Dell Inc."}; -+ -+ struct sys_enclosure_serial_struct { -+ char marker[65]; -+ char value[65]; -+ } sys_enclosure_serial = {SYS_ENCLOSURE_SERIAL_MARKER, ""}; -+ -+-const char *oem_strings_array[1] = { -+- NULL -++const char *oem_strings_array[2] = { -++ "www.dell.com", NULL -+ }; -+ -+ #endif /* __HVMLOADER_MARKERS_H__ */ -diff --git a/oem/dell-e6500-latitude-smbios.patch b/oem/dell-e6500-latitude-smbios.patch -new file mode 100644 -index 0000000..b949c7c ---- /dev/null -+++ b/oem/dell-e6500-latitude-smbios.patch -@@ -0,0 +1,49 @@ -+diff -Nur a/tools/firmware/hvmloader/markers.h b/tools/firmware/hvmloader/markers.h -+--- a/tools/firmware/hvmloader/markers.h 2008-12-15 14:44:08.000000000 -0500 -++++ b/tools/firmware/hvmloader/markers.h 2008-12-15 14:56:51.000000000 -0500 -+@@ -17,22 +17,22 @@ -+ struct bios_vendor_struct { -+ char marker[65]; -+ char value[65]; -+-} bios_vendor = {BIOS_VENDOR_MARKER, "Xen"}; -++} bios_vendor = {BIOS_VENDOR_MARKER, "Dell Inc."}; -+ -+ struct bios_version_struct { -+ char marker[65]; -+ char value[65]; -+-} bios_version = {BIOS_VERSION_MARKER, ""}; -++} bios_version = {BIOS_VERSION_MARKER, "A09"}; -+ -+ struct sys_manufacturer_struct { -+ char marker[65]; -+ char value[65]; -+-} sys_manufacturer = {SYS_MANUFACTURER_MARKER, "Xen"}; -++} sys_manufacturer = {SYS_MANUFACTURER_MARKER, "Dell Inc."}; -+ -+ struct sys_product_name_struct { -+ char marker[65]; -+ char value[65]; -+-} sys_product_name = {SYS_PRODUCT_NAME_MARKER, "HVM domU"}; -++} sys_product_name = {SYS_PRODUCT_NAME_MARKER, "Latitude E6500"}; -+ -+ struct sys_product_version_struct { -+ char marker[65]; -+@@ -57,15 +57,15 @@ -+ struct sys_enclosure_manufacturer_struct { -+ char marker[65]; -+ char value[65]; -+-} sys_enclosure_manufacturer = {SYS_ENCLOSURE_MANUFACTURER_MARKER, "Xen"}; -++} sys_enclosure_manufacturer = {SYS_ENCLOSURE_MANUFACTURER_MARKER, "Dell Inc."}; -+ -+ struct sys_enclosure_serial_struct { -+ char marker[65]; -+ char value[65]; -+ } sys_enclosure_serial = {SYS_ENCLOSURE_SERIAL_MARKER, ""}; -+ -+-const char *oem_strings_array[1] = { -+- NULL -++const char *oem_strings_array[4] = { -++ "Dell System", "5[0031]", "13[PP04X]", NULL -+ }; -+ -+ #endif /* __HVMLOADER_MARKERS_H__ */ -diff --git a/oem/hp-6930p-elitebook-smbios.patch b/oem/hp-6930p-elitebook-smbios.patch -new file mode 100644 -index 0000000..8441b2a ---- /dev/null -+++ b/oem/hp-6930p-elitebook-smbios.patch -@@ -0,0 +1,67 @@ -+diff -Nur a/tools/firmware/hvmloader/markers.h b/tools/firmware/hvmloader/markers.h -+--- a/tools/firmware/hvmloader/markers.h 2008-11-25 12:47:54.000000000 -0500 -++++ b/tools/firmware/hvmloader/markers.h 2008-11-25 12:46:41.000000000 -0500 -+@@ -17,27 +17,27 @@ -+ struct bios_vendor_struct { -+ char marker[65]; -+ char value[65]; -+-} bios_vendor = {BIOS_VENDOR_MARKER, "Xen"}; -++} bios_vendor = {BIOS_VENDOR_MARKER, "Hewlett-Packard"}; -+ -+ struct bios_version_struct { -+ char marker[65]; -+ char value[65]; -+-} bios_version = {BIOS_VERSION_MARKER, ""}; -++} bios_version = {BIOS_VERSION_MARKER, "68PCU Ver. F.0B"}; -+ -+ struct sys_manufacturer_struct { -+ char marker[65]; -+ char value[65]; -+-} sys_manufacturer = {SYS_MANUFACTURER_MARKER, "Xen"}; -++} sys_manufacturer = {SYS_MANUFACTURER_MARKER, "Hewlett-Packard"}; -+ -+ struct sys_product_name_struct { -+ char marker[65]; -+ char value[65]; -+-} sys_product_name = {SYS_PRODUCT_NAME_MARKER, "HVM domU"}; -++} sys_product_name = {SYS_PRODUCT_NAME_MARKER, "HP EliteBook 6930p"}; -+ -+ struct sys_product_version_struct { -+ char marker[65]; -+ char value[65]; -+-} sys_product_version = {SYS_PRODUCT_VERSION_MARKER, ""}; -++} sys_product_version = {SYS_PRODUCT_VERSION_MARKER, "F.0B"}; -+ -+ struct sys_product_serial_struct { -+ char marker[65]; -+@@ -47,25 +47,25 @@ -+ struct sys_product_sku_struct { -+ char marker[65]; -+ char value[65]; -+-} sys_product_sku = {SYS_PRODUCT_SKU_MARKER, ""}; -++} sys_product_sku = {SYS_PRODUCT_SKU_MARKER, "GB996EA#ABU"}; -+ -+ struct sys_product_family_struct { -+ char marker[65]; -+ char value[65]; -+-} sys_product_family = {SYS_PRODUCT_FAMILY_MARKER, ""}; -++} sys_product_family = {SYS_PRODUCT_FAMILY_MARKER, "103C_5336AN"}; -+ -+ struct sys_enclosure_manufacturer_struct { -+ char marker[65]; -+ char value[65]; -+-} sys_enclosure_manufacturer = {SYS_ENCLOSURE_MANUFACTURER_MARKER, "Xen"}; -++} sys_enclosure_manufacturer = {SYS_ENCLOSURE_MANUFACTURER_MARKER, "Hewlett-Packard"}; -+ -+ struct sys_enclosure_serial_struct { -+ char marker[65]; -+ char value[65]; -+ } sys_enclosure_serial = {SYS_ENCLOSURE_SERIAL_MARKER, ""}; -+ -+-const char *oem_strings_array[1] = { -+- NULL -++const char *oem_strings_array[4] = { -++ "ABS 70/71 79 7A 7B 7C", "CSM v01.24", "www.hp.com", NULL -+ }; -+ -+ #endif /* __HVMLOADER_MARKERS_H__ */ -diff --git a/oem/lenovo-x200-thinkpad-smbios.patch b/oem/lenovo-x200-thinkpad-smbios.patch -new file mode 100644 -index 0000000..26d1f09 ---- /dev/null -+++ b/oem/lenovo-x200-thinkpad-smbios.patch -@@ -0,0 +1,61 @@ -+diff -Nur a/tools/firmware/hvmloader/markers.h b/tools/firmware/hvmloader/markers.h -+--- a/tools/firmware/hvmloader/markers.h 2008-12-15 14:44:08.000000000 -0500 -++++ b/tools/firmware/hvmloader/markers.h 2008-12-16 10:09:53.000000000 -0500 -+@@ -17,27 +17,27 @@ -+ struct bios_vendor_struct { -+ char marker[65]; -+ char value[65]; -+-} bios_vendor = {BIOS_VENDOR_MARKER, "Xen"}; -++} bios_vendor = {BIOS_VENDOR_MARKER, "LENOVO"}; -+ -+ struct bios_version_struct { -+ char marker[65]; -+ char value[65]; -+-} bios_version = {BIOS_VERSION_MARKER, ""}; -++} bios_version = {BIOS_VERSION_MARKER, "6DET33WW (1.10 )"}; -+ -+ struct sys_manufacturer_struct { -+ char marker[65]; -+ char value[65]; -+-} sys_manufacturer = {SYS_MANUFACTURER_MARKER, "Xen"}; -++} sys_manufacturer = {SYS_MANUFACTURER_MARKER, "LENOVO"}; -+ -+ struct sys_product_name_struct { -+ char marker[65]; -+ char value[65]; -+-} sys_product_name = {SYS_PRODUCT_NAME_MARKER, "HVM domU"}; -++} sys_product_name = {SYS_PRODUCT_NAME_MARKER, "74542NU"}; -+ -+ struct sys_product_version_struct { -+ char marker[65]; -+ char value[65]; -+-} sys_product_version = {SYS_PRODUCT_VERSION_MARKER, ""}; -++} sys_product_version = {SYS_PRODUCT_VERSION_MARKER, "ThinkPad X200"}; -+ -+ struct sys_product_serial_struct { -+ char marker[65]; -+@@ -52,20 +52,20 @@ -+ struct sys_product_family_struct { -+ char marker[65]; -+ char value[65]; -+-} sys_product_family = {SYS_PRODUCT_FAMILY_MARKER, ""}; -++} sys_product_family = {SYS_PRODUCT_FAMILY_MARKER, "ThinkPad X200"}; -+ -+ struct sys_enclosure_manufacturer_struct { -+ char marker[65]; -+ char value[65]; -+-} sys_enclosure_manufacturer = {SYS_ENCLOSURE_MANUFACTURER_MARKER, "Xen"}; -++} sys_enclosure_manufacturer = {SYS_ENCLOSURE_MANUFACTURER_MARKER, "LENOVO"}; -+ -+ struct sys_enclosure_serial_struct { -+ char marker[65]; -+ char value[65]; -+ } sys_enclosure_serial = {SYS_ENCLOSURE_SERIAL_MARKER, ""}; -+ -+-const char *oem_strings_array[1] = { -+- NULL -++const char *oem_strings_array[2] = { -++ "IBM ThinkPad Embedded Controller -[7XHT21WW-1.03 ]-", NULL -+ }; -+ -+ #endif /* __HVMLOADER_MARKERS_H__ */ -diff --git a/tools/firmware/hvmloader/markers.h b/tools/firmware/hvmloader/markers.h -new file mode 100644 -index 0000000..7673d22 ---- /dev/null -+++ b/tools/firmware/hvmloader/markers.h -@@ -0,0 +1,71 @@ +diff -r 13fe7f07df15 tools/firmware/hvmloader/markers.h +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/tools/firmware/hvmloader/markers.h Mon Aug 10 08:13:40 2009 -0400 +@@ -0,0 +1,90 @@ +#ifndef __HVMLOADER_MARKERS_H__ +#define __HVMLOADER_MARKERS_H__ + @@ -268,6 +15,10 @@ index 0000000..7673d22 +#define SYS_PRODUCT_SKU_MARKER "##########################################SYS_PRODUCT_SKU_MARKER" +#define SYS_PRODUCT_FAMILY_MARKER "#######################################SYS_PRODUCT_FAMILY_MARKER" + ++#define SYS_BOARD_MANUFACTURER_MARKER "###################################SYS_BOARD_MANUFACTURER_MARKER" ++#define SYS_BOARD_PRODUCT_NAME_MARKER "###################################SYS_BOARD_PRODUCT_NAME_MARKER" ++#define SYS_BOARD_SERIAL_MARKER "#########################################SYS_BOARD_SERIAL_MARKER" ++ +#define SYS_ENCLOSURE_MANUFACTURER_MARKER "###############################SYS_ENCLOSURE_MANUFACTURER_MARKER" +#define SYS_ENCLOSURE_SERIAL_MARKER "#####################################SYS_ENCLOSURE_SERIAL_MARKER" + @@ -311,6 +62,21 @@ index 0000000..7673d22 + char value[65]; +} sys_product_family = {SYS_PRODUCT_FAMILY_MARKER, ""}; + ++struct sys_board_manufacturer_struct { ++ char marker[65]; ++ char value[65]; ++} sys_board_manufacturer = {SYS_BOARD_MANUFACTURER_MARKER, "Xen"}; ++ ++struct sys_board_product_name_struct { ++ char marker[65]; ++ char value[65]; ++} sys_board_product_name = {SYS_BOARD_PRODUCT_NAME_MARKER, "HVM domU"}; ++ ++struct sys_board_serial_struct { ++ char marker[65]; ++ char value[65]; ++} sys_board_serial = {SYS_BOARD_SERIAL_MARKER, ""}; ++ +struct sys_enclosure_manufacturer_struct { + char marker[65]; + char value[65]; @@ -326,10 +92,9 @@ index 0000000..7673d22 +}; + +#endif /* __HVMLOADER_MARKERS_H__ */ -diff --git a/tools/firmware/hvmloader/smbios.c b/tools/firmware/hvmloader/smbios.c -index 64fa799..c6024c4 100644 ---- a/tools/firmware/hvmloader/smbios.c -+++ b/tools/firmware/hvmloader/smbios.c +diff -r 13fe7f07df15 tools/firmware/hvmloader/smbios.c +--- a/tools/firmware/hvmloader/smbios.c Thu Aug 06 13:27:53 2009 +0100 ++++ b/tools/firmware/hvmloader/smbios.c Mon Aug 10 08:13:40 2009 -0400 @@ -27,6 +27,7 @@ #include "util.h" #include "hypercall.h" @@ -338,7 +103,14 @@ index 64fa799..c6024c4 100644 static int write_smbios_tables(void *start, -@@ -54,6 +55,10 @@ static void * +@@ -49,11 +50,17 @@ + smbios_type_1_init(void *start, const char *xen_version, + uint8_t uuid[16]); + static void * ++smbios_type_2_init(void *start); ++static void * + smbios_type_3_init(void *start); + static void * smbios_type_4_init(void *start, unsigned int cpu_number, char *cpu_manufacturer); static void * @@ -349,7 +121,7 @@ index 64fa799..c6024c4 100644 smbios_type_16_init(void *start, uint32_t memory_size_mb, int nr_mem_devs); static void * smbios_type_17_init(void *start, uint32_t memory_size_mb, int instance); -@@ -62,9 +67,13 @@ smbios_type_19_init(void *start, uint32_t memory_size_mb, int instance); +@@ -62,9 +69,13 @@ static void * smbios_type_20_init(void *start, uint32_t memory_size_mb, int instance); static void * @@ -363,7 +135,7 @@ index 64fa799..c6024c4 100644 static void get_cpu_manufacturer(char *buf, int len) -@@ -93,6 +102,10 @@ write_smbios_tables(void *start, +@@ -93,6 +104,10 @@ char *p, *q; char cpu_manufacturer[15]; int i, nr_mem_devs; @@ -374,7 +146,11 @@ index 64fa799..c6024c4 100644 get_cpu_manufacturer(cpu_manufacturer, 15); -@@ -112,6 +125,8 @@ write_smbios_tables(void *start, +@@ -109,9 +124,12 @@ + do_struct(smbios_type_0_init(p, xen_version, xen_major_version, + xen_minor_version)); + do_struct(smbios_type_1_init(p, xen_version, uuid)); ++ do_struct(smbios_type_2_init(p)); do_struct(smbios_type_3_init(p)); for ( cpu_num = 1; cpu_num <= vcpus; cpu_num++ ) do_struct(smbios_type_4_init(p, cpu_num, cpu_manufacturer)); @@ -383,7 +159,7 @@ index 64fa799..c6024c4 100644 /* Each 'memory device' covers up to 16GB of address space. */ nr_mem_devs = (memsize + 0x3fff) >> 14; -@@ -126,7 +141,26 @@ write_smbios_tables(void *start, +@@ -126,7 +144,26 @@ do_struct(smbios_type_20_init(p, dev_memsize, i)); } @@ -410,16 +186,16 @@ index 64fa799..c6024c4 100644 do_struct(smbios_type_127_init(p)); #undef do_struct -@@ -280,9 +314,33 @@ static void * +@@ -281,9 +318,33 @@ smbios_type_0_init(void *start, const char *xen_version, uint32_t xen_major_version, uint32_t xen_minor_version) { -- struct smbios_type_0 *p = (struct smbios_type_0 *)start; - static const char *smbios_release_date = __SMBIOS_DATE__; -+ struct smbios_type_0 *p = (struct smbios_type_0 *)start; ++ static const char *smbios_release_date = __SMBIOS_DATE__; + struct smbios_type_0 *p = (struct smbios_type_0 *)start; +- static const char *smbios_release_date = __SMBIOS_DATE__; + struct hvm_sminfo_table *pa_sm; + struct hvm_smtable_header *header; -+ + + /* if passed a struct, use it */ + pa_sm = get_hvm_sminfo_table(); + while (pa_sm != NULL) { @@ -440,12 +216,12 @@ index 64fa799..c6024c4 100644 + + return (start + header->sm_length); + } - ++ + /* fall back to building our own */ memset(p, 0, sizeof(*p)); p->header.type = 0; -@@ -295,6 +353,7 @@ smbios_type_0_init(void *start, const char *xen_version, +@@ -296,6 +357,7 @@ p->release_date_str = 3; p->rom_size = 0; @@ -453,7 +229,7 @@ index 64fa799..c6024c4 100644 /* BIOS Characteristics. */ p->characteristics[0] = 0x80; /* PCI is supported */ p->characteristics[2] = 0x08; /* EDD is supported */ -@@ -308,10 +367,16 @@ smbios_type_0_init(void *start, const char *xen_version, +@@ -309,10 +371,16 @@ p->embedded_controller_minor = 0xff; start += sizeof(struct smbios_type_0); @@ -474,14 +250,14 @@ index 64fa799..c6024c4 100644 strcpy((char *)start, smbios_release_date); start += strlen(smbios_release_date) + 1; -@@ -326,7 +391,27 @@ smbios_type_1_init(void *start, const char *xen_version, +@@ -327,7 +395,27 @@ { char uuid_str[37]; struct smbios_type_1 *p = (struct smbios_type_1 *)start; + int next = 5; + struct hvm_sminfo_table *pa_sm; + struct hvm_smtable_header *header; -+ + + /* if passed a struct, use it */ + pa_sm = get_hvm_sminfo_table(); + while (pa_sm != NULL) { @@ -497,12 +273,12 @@ index 64fa799..c6024c4 100644 + + return (start + header->sm_length); + } - ++ + /* fall back to building our own */ memset(p, 0, sizeof(*p)); p->header.type = 1; -@@ -341,20 +426,46 @@ smbios_type_1_init(void *start, const char *xen_version, +@@ -342,31 +430,138 @@ memcpy(p->uuid, uuid, 16); p->wake_up_type = 0x06; /* power switch */ @@ -560,7 +336,72 @@ index 64fa799..c6024c4 100644 *((uint8_t *)start) = 0; return start+1; -@@ -365,7 +476,26 @@ static void * + } + ++/* Type 2 -- System Board */ ++static void * ++smbios_type_2_init(void *start) ++{ ++ struct smbios_type_2 *p = (struct smbios_type_2 *)start; ++ struct hvm_sminfo_table *pa_sm; ++ struct hvm_smtable_header *header; ++ uint8_t *bptr; ++ ++ /* if passed a struct, use it */ ++ pa_sm = get_hvm_sminfo_table(); ++ while (pa_sm != NULL) { ++ header = get_sminfo_by_type(pa_sm, 2, NULL); ++ if (header == NULL) ++ break; ++ if (header->sm_length < sizeof(struct smbios_type_2)) ++ break; ++ memcpy(start, ((uint8_t*)header + sizeof(struct hvm_smtable_header)), header->sm_length); ++ ++ /* fix up some bits */ ++ p->header.handle = 0x200; ++ /* NOTE: if this code is enhanced to allow multiple instances of some tables like ++ this one, chassis info, etc. then work will have to be done to match these handles */ ++ if (header->sm_length >= 13) { ++ bptr = ((uint8_t*)start) + 11; ++ if (*((uint16_t*)bptr) != 0) ++ *((uint16_t*)bptr) = 0x300; /* current chassis handle */ ++ } ++ return (start + header->sm_length); ++ } ++ ++ /* fall back to building our own */ ++ memset(p, 0, sizeof(*p)); ++ ++ p->header.type = 2; ++ p->header.length = sizeof(struct smbios_type_2); ++ p->header.handle = 0x200; ++ ++ p->manufacturer_str = 1; ++ p->product_name_str = 2; ++ p->version_str = 0; ++ p->serial_number_str = 0; ++ ++ start += sizeof(struct smbios_type_2); ++ ++ strcpy((char *)start, sys_board_manufacturer.value); ++ start += strlen(sys_board_manufacturer.value) + 1; ++ ++ strcpy((char *)start, sys_board_product_name.value); ++ start += strlen(sys_board_product_name.value) + 1; ++ ++ /* no internal defaults for this if the value is not set */ ++ if ( strlen(sys_board_serial.value) != 0 ) { ++ strcpy((char *)start, sys_board_serial.value); ++ start += strlen(sys_board_serial.value) + 1; ++ p->serial_number_str = 3; ++ } ++ ++ *((uint8_t *)start) = 0; ++ return start+1; ++} ++ + /* Type 3 -- System Enclosure */ + static void * smbios_type_3_init(void *start) { struct smbios_type_3 *p = (struct smbios_type_3 *)start; @@ -588,7 +429,7 @@ index 64fa799..c6024c4 100644 memset(p, 0, sizeof(*p)); p->header.type = 3; -@@ -384,8 +514,18 @@ smbios_type_3_init(void *start) +@@ -385,8 +580,16 @@ start += sizeof(struct smbios_type_3); @@ -603,13 +444,11 @@ index 64fa799..c6024c4 100644 + start += strlen(sys_enclosure_serial.value) + 1; + p->serial_number_str = 2; + } -+ else -+ p->serial_number_str = 0; + *((uint8_t *)start) = 0; return start+1; } -@@ -440,6 +580,85 @@ smbios_type_4_init( +@@ -441,6 +644,85 @@ return start+1; } @@ -695,7 +534,7 @@ index 64fa799..c6024c4 100644 /* Type 16 -- Physical Memory Array */ static void * smbios_type_16_init(void *start, uint32_t memsize, int nr_mem_devs) -@@ -548,6 +767,54 @@ smbios_type_20_init(void *start, uint32_t memory_size_mb, int instance) +@@ -549,6 +831,54 @@ return start+2; } @@ -750,7 +589,7 @@ index 64fa799..c6024c4 100644 /* Type 32 -- System Boot Information */ static void * smbios_type_32_init(void *start) -@@ -584,6 +851,17 @@ smbios_type_127_init(void *start) +@@ -585,6 +915,17 @@ return start + 2; } @@ -768,11 +607,26 @@ index 64fa799..c6024c4 100644 /* * Local variables: * mode: C -diff --git a/tools/firmware/hvmloader/smbios_types.h b/tools/firmware/hvmloader/smbios_types.h -index 273db4a..a867657 100644 ---- a/tools/firmware/hvmloader/smbios_types.h -+++ b/tools/firmware/hvmloader/smbios_types.h -@@ -115,6 +115,27 @@ struct smbios_type_4 { +diff -r 13fe7f07df15 tools/firmware/hvmloader/smbios_types.h +--- a/tools/firmware/hvmloader/smbios_types.h Thu Aug 06 13:27:53 2009 +0100 ++++ b/tools/firmware/hvmloader/smbios_types.h Mon Aug 10 08:13:40 2009 -0400 +@@ -84,6 +84,15 @@ + uint8_t family_str; + } __attribute__ ((packed)); + ++/* SMBIOS type 2 - Base Board Information */ ++struct smbios_type_2 { ++ struct smbios_structure_header header; ++ uint8_t manufacturer_str; ++ uint8_t product_name_str; ++ uint8_t version_str; ++ uint8_t serial_number_str; ++} __attribute__ ((packed)); ++ + /* SMBIOS type 3 - System Enclosure */ + struct smbios_type_3 { + struct smbios_structure_header header; +@@ -115,6 +124,27 @@ uint8_t upgrade; } __attribute__ ((packed)); @@ -800,38 +654,37 @@ index 273db4a..a867657 100644 /* SMBIOS type 16 - Physical Memory Array * Associated with one type 17 (Memory Device). */ -@@ -167,6 +188,26 @@ struct smbios_type_20 { +@@ -167,6 +197,26 @@ uint8_t interleaved_data_depth; } __attribute__ ((packed)); +/* SMBIOS type 22 - Portable battery */ +struct smbios_type_22 { -+ struct smbios_structure_header header; -+ uint8_t location_str; -+ uint8_t manufacturer_str; -+ uint8_t manufacturer_date_str; -+ uint8_t serial_number_str; -+ uint8_t device_name_str; -+ uint8_t device_chemistry; -+ uint16_t device_capacity; -+ uint16_t device_voltage; -+ uint8_t sbds_version_number; -+ uint8_t max_error; -+ uint16_t sbds_serial_number; -+ uint16_t sbds_manufacturer_date; -+ uint8_t sbds_device_chemistry; -+ uint8_t design_capacity_multiplier; -+ uint32_t oem_specific; ++ struct smbios_structure_header header; ++ uint8_t location_str; ++ uint8_t manufacturer_str; ++ uint8_t manufacturer_date_str; ++ uint8_t serial_number_str; ++ uint8_t device_name_str; ++ uint8_t device_chemistry; ++ uint16_t device_capacity; ++ uint16_t device_voltage; ++ uint8_t sbds_version_number; ++ uint8_t max_error; ++ uint16_t sbds_serial_number; ++ uint16_t sbds_manufacturer_date; ++ uint8_t sbds_device_chemistry; ++ uint8_t design_capacity_multiplier; ++ uint32_t oem_specific; +} __attribute__ ((packed)); + /* SMBIOS type 32 - System Boot Information */ struct smbios_type_32 { struct smbios_structure_header header; -diff --git a/tools/firmware/hvmloader/util.c b/tools/firmware/hvmloader/util.c -index ccf9bf9..530897c 100644 ---- a/tools/firmware/hvmloader/util.c -+++ b/tools/firmware/hvmloader/util.c -@@ -542,32 +542,32 @@ void __bug(char *file, int line) +diff -r 13fe7f07df15 tools/firmware/hvmloader/util.c +--- a/tools/firmware/hvmloader/util.c Thu Aug 06 13:27:53 2009 +0100 ++++ b/tools/firmware/hvmloader/util.c Mon Aug 10 08:13:40 2009 -0400 +@@ -542,32 +542,32 @@ asm volatile ( "ud2" ); } @@ -880,7 +733,7 @@ index ccf9bf9..530897c 100644 } struct hvm_info_table *get_hvm_info_table(void) -@@ -580,7 +580,11 @@ struct hvm_info_table *get_hvm_info_table(void) +@@ -580,7 +580,11 @@ t = (struct hvm_info_table *)HVM_INFO_PADDR; @@ -893,7 +746,7 @@ index ccf9bf9..530897c 100644 table = t; -@@ -650,6 +654,107 @@ int hpet_exists(unsigned long hpet_base) +@@ -650,6 +654,107 @@ return ((hpet_id >> 16) == 0x8086); } @@ -1001,11 +854,10 @@ index ccf9bf9..530897c 100644 /* * Local variables: * mode: C -diff --git a/tools/firmware/hvmloader/util.h b/tools/firmware/hvmloader/util.h -index e9e0dfd..9eac225 100644 ---- a/tools/firmware/hvmloader/util.h -+++ b/tools/firmware/hvmloader/util.h -@@ -111,6 +111,12 @@ static inline void cpu_relax(void) +diff -r 13fe7f07df15 tools/firmware/hvmloader/util.h +--- a/tools/firmware/hvmloader/util.h Thu Aug 06 13:27:53 2009 +0100 ++++ b/tools/firmware/hvmloader/util.h Mon Aug 10 08:13:40 2009 -0400 +@@ -111,6 +111,12 @@ struct hvm_info_table *get_hvm_info_table(void); #define hvm_info (get_hvm_info_table()) @@ -1018,10 +870,9 @@ index e9e0dfd..9eac225 100644 /* String and memory functions */ int strcmp(const char *cs, const char *ct); int strncmp(const char *s1, const char *s2, uint32_t n); -diff --git a/xen/include/public/hvm/hvm_info_table.h b/xen/include/public/hvm/hvm_info_table.h -index b898455..3388479 100644 ---- a/xen/include/public/hvm/hvm_info_table.h -+++ b/xen/include/public/hvm/hvm_info_table.h +diff -r 13fe7f07df15 xen/include/public/hvm/hvm_info_table.h +--- a/xen/include/public/hvm/hvm_info_table.h Thu Aug 06 13:27:53 2009 +0100 ++++ b/xen/include/public/hvm/hvm_info_table.h Mon Aug 10 08:13:40 2009 -0400 @@ -28,6 +28,12 @@ #define HVM_INFO_PFN 0x09F #define HVM_INFO_OFFSET 0x800 @@ -1035,7 +886,7 @@ index b898455..3388479 100644 struct hvm_info_table { char signature[8]; /* "HVM INFO" */ -@@ -66,4 +72,19 @@ struct hvm_info_table { +@@ -66,4 +72,19 @@ uint32_t high_mem_pgend; }; diff --git a/master/smbios-table2.patch b/master/smbios-table2.patch deleted file mode 100644 index 766bb65..0000000 --- a/master/smbios-table2.patch +++ /dev/null @@ -1,156 +0,0 @@ -diff --git a/tools/firmware/hvmloader/markers.h b/tools/firmware/hvmloader/markers.h -index 7673d22..48cbd49 100644 ---- a/tools/firmware/hvmloader/markers.h -+++ b/tools/firmware/hvmloader/markers.h -@@ -11,6 +11,10 @@ - #define SYS_PRODUCT_SKU_MARKER "##########################################SYS_PRODUCT_SKU_MARKER" - #define SYS_PRODUCT_FAMILY_MARKER "#######################################SYS_PRODUCT_FAMILY_MARKER" - -+#define SYS_BOARD_MANUFACTURER_MARKER "###################################SYS_BOARD_MANUFACTURER_MARKER" -+#define SYS_BOARD_PRODUCT_NAME_MARKER "###################################SYS_BOARD_PRODUCT_NAME_MARKER" -+#define SYS_BOARD_SERIAL_MARKER "#########################################SYS_BOARD_SERIAL_MARKER" -+ - #define SYS_ENCLOSURE_MANUFACTURER_MARKER "###############################SYS_ENCLOSURE_MANUFACTURER_MARKER" - #define SYS_ENCLOSURE_SERIAL_MARKER "#####################################SYS_ENCLOSURE_SERIAL_MARKER" - -@@ -54,6 +58,21 @@ struct sys_product_family_struct { - char value[65]; - } sys_product_family = {SYS_PRODUCT_FAMILY_MARKER, ""}; - -+struct sys_board_manufacturer_struct { -+ char marker[65]; -+ char value[65]; -+} sys_board_manufacturer = {SYS_BOARD_MANUFACTURER_MARKER, "Xen"}; -+ -+struct sys_board_product_name_struct { -+ char marker[65]; -+ char value[65]; -+} sys_board_product_name = {SYS_BOARD_PRODUCT_NAME_MARKER, "HVM domU"}; -+ -+struct sys_board_serial_struct { -+ char marker[65]; -+ char value[65]; -+} sys_board_serial = {SYS_BOARD_SERIAL_MARKER, ""}; -+ - struct sys_enclosure_manufacturer_struct { - char marker[65]; - char value[65]; -diff --git a/tools/firmware/hvmloader/smbios.c b/tools/firmware/hvmloader/smbios.c -index c6024c4..2337321 100644 ---- a/tools/firmware/hvmloader/smbios.c -+++ b/tools/firmware/hvmloader/smbios.c -@@ -50,6 +50,8 @@ static void * - smbios_type_1_init(void *start, const char *xen_version, - uint8_t uuid[16]); - static void * -+smbios_type_2_init(void *start); -+static void * - smbios_type_3_init(void *start); - static void * - smbios_type_4_init(void *start, unsigned int cpu_number, -@@ -122,6 +124,7 @@ write_smbios_tables(void *start, - do_struct(smbios_type_0_init(p, xen_version, xen_major_version, - xen_minor_version)); - do_struct(smbios_type_1_init(p, xen_version, uuid)); -+ do_struct(smbios_type_2_init(p)); - do_struct(smbios_type_3_init(p)); - for ( cpu_num = 1; cpu_num <= vcpus; cpu_num++ ) - do_struct(smbios_type_4_init(p, cpu_num, cpu_manufacturer)); -@@ -471,6 +474,68 @@ smbios_type_1_init(void *start, const char *xen_version, - return start+1; - } - -+/* Type 2 -- System Board */ -+static void * -+smbios_type_2_init(void *start) -+{ -+ struct smbios_type_2 *p = (struct smbios_type_2 *)start; -+ struct hvm_sminfo_table *pa_sm; -+ struct hvm_smtable_header *header; -+ uint8_t *bptr; -+ -+ /* if passed a struct, use it */ -+ pa_sm = get_hvm_sminfo_table(); -+ while (pa_sm != NULL) { -+ header = get_sminfo_by_type(pa_sm, 2, NULL); -+ if (header == NULL) -+ break; -+ if (header->sm_length < sizeof(struct smbios_type_2)) -+ break; -+ memcpy(start, ((uint8_t*)header + sizeof(struct hvm_smtable_header)), header->sm_length); -+ -+ /* fix up some bits */ -+ p->header.handle = 0x200; -+ /* NOTE: if this code is enhanced to allow multiple instances of some tables like -+ this one, chassis info, etc. then work will have to be done to match these handles */ -+ if (header->sm_length >= 13) { -+ bptr = ((uint8_t*)start) + 11; -+ if (*((uint16_t*)bptr) != 0) -+ *((uint16_t*)bptr) = 0x300; /* current chassis handle */ -+ } -+ return (start + header->sm_length); -+ } -+ -+ /* fall back to building our own */ -+ memset(p, 0, sizeof(*p)); -+ -+ p->header.type = 2; -+ p->header.length = sizeof(struct smbios_type_2); -+ p->header.handle = 0x200; -+ -+ p->manufacturer_str = 1; -+ p->product_name_str = 2; -+ p->version_str = 0; -+ p->serial_number_str = 0; -+ -+ start += sizeof(struct smbios_type_2); -+ -+ strcpy((char *)start, sys_board_manufacturer.value); -+ start += strlen(sys_board_manufacturer.value) + 1; -+ -+ strcpy((char *)start, sys_board_product_name.value); -+ start += strlen(sys_board_product_name.value) + 1; -+ -+ /* no internal defaults for this if the value is not set */ -+ if ( strlen(sys_board_serial.value) != 0 ) { -+ strcpy((char *)start, sys_board_serial.value); -+ start += strlen(sys_board_serial.value) + 1; -+ p->serial_number_str = 3; -+ } -+ -+ *((uint8_t *)start) = 0; -+ return start+1; -+} -+ - /* Type 3 -- System Enclosure */ - static void * - smbios_type_3_init(void *start) -@@ -523,8 +588,6 @@ smbios_type_3_init(void *start) - start += strlen(sys_enclosure_serial.value) + 1; - p->serial_number_str = 2; - } -- else -- p->serial_number_str = 0; - - *((uint8_t *)start) = 0; - return start+1; -diff --git a/tools/firmware/hvmloader/smbios_types.h b/tools/firmware/hvmloader/smbios_types.h -index a867657..76c177e 100644 ---- a/tools/firmware/hvmloader/smbios_types.h -+++ b/tools/firmware/hvmloader/smbios_types.h -@@ -84,6 +84,15 @@ struct smbios_type_1 { - uint8_t family_str; - } __attribute__ ((packed)); - -+/* SMBIOS type 2 - Base Board Information */ -+struct smbios_type_2 { -+ struct smbios_structure_header header; -+ uint8_t manufacturer_str; -+ uint8_t product_name_str; -+ uint8_t version_str; -+ uint8_t serial_number_str; -+} __attribute__ ((packed)); -+ - /* SMBIOS type 3 - System Enclosure */ - struct smbios_type_3 { - struct smbios_structure_header header; -- 2.39.5