summaryrefslogtreecommitdiffstats
path: root/src/include/smbios.h
diff options
context:
space:
mode:
authorFrancois Toguo <francois.toguo.fotso@intel.com>2019-03-20 12:22:17 -0700
committerPatrick Georgi <pgeorgi@google.com>2019-03-22 12:25:33 +0000
commitb7daf7e8fa18de7bfb3cd102791bc6af89bac4b6 (patch)
treeeab5ad2a46f6a0eed36adbd3b9563346372cf319 /src/include/smbios.h
parentc912f76486ef802f013d71b4128ac895370033de (diff)
downloadcoreboot-b7daf7e8fa18de7bfb3cd102791bc6af89bac4b6.tar.gz
coreboot-b7daf7e8fa18de7bfb3cd102791bc6af89bac4b6.tar.bz2
coreboot-b7daf7e8fa18de7bfb3cd102791bc6af89bac4b6.zip
src/arch: An upgrade of SMBIOS to latest version 3.2
This is the second of 2 patches upgrading the SMBIOS interface to the latest 3.2 First patch is in mosys. Newer required fields are added to various types definitions BUG=NONE TEST=Boot to OS on GLK Sparky Change-Id: Iab98e063874c9738e48a387cd91341d266391156 Signed-off-by: Francois Toguo <francois.toguo.fotso@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/31997 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Richard Spiegel <richard.spiegel@silverbackltd.com>
Diffstat (limited to 'src/include/smbios.h')
-rw-r--r--src/include/smbios.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/include/smbios.h b/src/include/smbios.h
index af83bfe30409..2f3bc7aa52a3 100644
--- a/src/include/smbios.h
+++ b/src/include/smbios.h
@@ -52,6 +52,10 @@ const char *smbios_mainboard_asset_tag(void);
u8 smbios_mainboard_feature_flags(void);
const char *smbios_mainboard_location_in_chassis(void);
u8 smbios_mainboard_enclosure_type(void);
+u16 smbios_processor_core_thread_count(u16 level_type);
+#ifdef CONFIG_MAINBOARD_FAMILY
+const char *smbios_mainboard_family(void);
+#endif
#define BIOS_CHARACTERISTICS_PCI_SUPPORTED (1 << 7)
#define BIOS_CHARACTERISTICS_PC_CARD (1 << 8)
@@ -100,6 +104,11 @@ u8 smbios_mainboard_enclosure_type(void);
#define MEMORY_OPERATING_MODE_CAP_BYTE_ACCESS_PERSISTENT (1 << 4)
#define MEMORY_OPERATING_MODE_CAP_BLOCK_ACCESS_PERSISTENT (1 << 5)
+#define PROC_THREAD_TYPE 0x1
+#define PROC_CORE_TYPE 0x2
+
+#define BYTE_LIMIT 255
+
typedef enum {
MEMORY_BUS_WIDTH_8 = 0,
MEMORY_BUS_WIDTH_16 = 1,
@@ -299,6 +308,8 @@ struct smbios_type2 {
u8 location_in_chassis;
u16 chassis_handle;
u8 board_type;
+ u8 num_cont_obj_handles;
+ u16 cont_obj_hanles[256];
u8 eos[2];
} __packed;
@@ -390,6 +401,9 @@ struct smbios_type4 {
u8 thread_count;
u16 processor_characteristics;
u16 processor_family2;
+ u16 core_count2;
+ u16 core_enabled2;
+ u16 thread_count2;
u8 eos[2];
} __packed;
@@ -401,6 +415,11 @@ struct smbios_type11 {
u8 eos[2];
} __packed;
+typedef struct {
+ u8 type;
+ u8 format_descriptor;
+} log_type_descriptor;
+
struct smbios_type15 {
u8 type;
u8 length;
@@ -471,6 +490,17 @@ struct smbios_type17 {
u16 minimum_voltage;
u16 maximum_voltage;
u16 configured_voltage;
+ u8 memory_technology;
+ u16 operating_mode_capability;
+ u8 fw_version;
+ u16 manufacturer_id;
+ u16 product_id;
+ u16 sub_ctrl_manufacturer_id;
+ u16 sub_ctrl_product_id;
+ u64 non_volatile_size;
+ u64 volatile_size;
+ u64 cache_size;
+ u64 logical_size;
u8 eos[2];
} __packed;