[coreboot-gerrit] Change in coreboot[master]: SMBIOS: [test] Upgrade to 3.20
Elyes HAOUAS (Code Review)
gerrit at coreboot.org
Wed Nov 14 22:13:51 CET 2018
Elyes HAOUAS has uploaded this change for review. ( https://review.coreboot.org/29641
Change subject: SMBIOS: [test] Upgrade to 3.20
......................................................................
SMBIOS: [test] Upgrade to 3.20
Change-Id: I8bccedd277beb755b643a663f3278af25f8fbf96
Signed-off-by: Elyes HAOUAS <ehaouas at noos.fr>
---
M src/arch/x86/smbios.c
M src/include/smbios.h
M src/mainboard/samsung/lumpy/mainboard.c
3 files changed, 54 insertions(+), 38 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/41/29641/1
diff --git a/src/arch/x86/smbios.c b/src/arch/x86/smbios.c
index babe61b..154991a 100644
--- a/src/arch/x86/smbios.c
+++ b/src/arch/x86/smbios.c
@@ -670,11 +670,10 @@
t->length = len - 2;
t->reference_designation = smbios_add_string(t->eos, name);
t->device_type = SMBIOS_DEVICE_TYPE_OTHER;
- t->device_status = 1;
t->device_type_instance = instance;
t->segment_group_number = segment;
t->bus_number = bus;
- t->device_number = device;
+ t->device_function_number = (device << 3) | (function << 0);
t->function_number = function;
len = t->length + smbios_string_table_len(t->eos);
@@ -764,20 +763,16 @@
handle++));
memset(se, 0, sizeof(struct smbios_entry));
- memcpy(se->anchor, "_SM_", 4);
+ memcpy(se->anchor, "_SM3_", 5);
se->length = sizeof(struct smbios_entry);
- se->major_version = 2;
- se->minor_version = 7;
+ se->major_version = 3;
+ se->minor_version = 2;
+ se->docrev = 0;
se->max_struct_size = max_struct_size;
- se->struct_count = handle;
- memcpy(se->intermediate_anchor_string, "_DMI_", 5);
- se->struct_table_address = (u32)tables;
+ se->struct_table_address = (u64)tables;
se->struct_table_length = len;
- se->intermediate_checksum = smbios_checksum((u8 *)se + 0x10,
- sizeof(struct smbios_entry)
- - 0x10);
se->checksum = smbios_checksum((u8 *)se, sizeof(struct smbios_entry));
return current;
}
diff --git a/src/include/smbios.h b/src/include/smbios.h
index 91777e3..eaabb99 100644
--- a/src/include/smbios.h
+++ b/src/include/smbios.h
@@ -52,18 +52,25 @@
const char *smbios_mainboard_family(void);
#endif
-#define BIOS_CHARACTERISTICS_PCI_SUPPORTED (1 << 7)
-#define BIOS_CHARACTERISTICS_PC_CARD (1 << 8)
-#define BIOS_CHARACTERISTICS_PNP (1 << 9)
-#define BIOS_CHARACTERISTICS_APM (1 << 10)
-#define BIOS_CHARACTERISTICS_UPGRADEABLE (1 << 11)
-#define BIOS_CHARACTERISTICS_SHADOW (1 << 12)
-#define BIOS_CHARACTERISTICS_BOOT_FROM_CD (1 << 15)
-#define BIOS_CHARACTERISTICS_SELECTABLE_BOOT (1 << 16)
-#define BIOS_CHARACTERISTICS_BIOS_SOCKETED (1 << 17)
+#define BIOS_CHARACTERISTICS_ISA_SUPPORTED (1 << 4)
+#define BIOS_CHARACTERISTICS_MCA_SUPPORTED (1 << 5)
+#define BIOS_CHARACTERISTICS_EISA_SUPPORTED (1 << 6)
+#define BIOS_CHARACTERISTICS_PCI_SUPPORTED (1 << 7)
+#define BIOS_CHARACTERISTICS_PC_CARD (1 << 8)
+#define BIOS_CHARACTERISTICS_PNP (1 << 9)
+#define BIOS_CHARACTERISTICS_APM (1 << 10)
+#define BIOS_CHARACTERISTICS_UPGRADEABLE (1 << 11)
+#define BIOS_CHARACTERISTICS_SHADOW (1 << 12)
+#define BIOS_CHARACTERISTICS_VL_VESA_SUPPORTED (1 << 13)
+#define BIOS_CHARACTERISTICS_ESCD_SUPPORT_AVAILABLE (1 << 14)
+#define BIOS_CHARACTERISTICS_BOOT_FROM_CD (1 << 15)
+#define BIOS_CHARACTERISTICS_SELECTABLE_BOOT (1 << 16)
+#define BIOS_CHARACTERISTICS_BIOS_SOCKETED (1 << 17)
+#define BIOS_CHARACTERISTICS_BOOT_FROM_PCMCIA (1 << 18)
+#define BIOS_CHARACTERISTICS_EDD_SPEC_SUPPORTED (1 << 19)
-#define BIOS_EXT1_CHARACTERISTICS_ACPI (1 << 0)
-#define BIOS_EXT2_CHARACTERISTICS_TARGET (1 << 2)
+#define BIOS_EXT1_CHARACTERISTICS_ACPI (1 << 0)
+#define BIOS_EXT2_CHARACTERISTICS_TARGET (1 << 2)
#define BIOS_MEMORY_ECC_SINGLE_BIT_CORRECTING (1 << 3)
#define BIOS_MEMORY_ECC_DOUBLE_BIT_CORRECTING (1 << 4)
@@ -83,7 +90,7 @@
#define MEMORY_TYPE_DETAIL_NON_VOLATILE (1 << 12)
#define MEMORY_TYPE_DETAIL_REGISTERED (1 << 13)
#define MEMORY_TYPE_DETAIL_UNBUFFERED (1 << 14)
-
+#define MEMORY_TYPE_DETAIL_LRDIMM (1 << 16)
typedef enum {
MEMORY_BUS_WIDTH_8 = 0,
MEMORY_BUS_WIDTH_16 = 1,
@@ -203,20 +210,18 @@
} smbios_struct_type_t;
struct smbios_entry {
- u8 anchor[4];
+ u8 anchor[5];
u8 checksum;
u8 length;
u8 major_version;
u8 minor_version;
- u16 max_struct_size;
+ u8 docrev;
u8 entry_point_rev;
- u8 formwatted_area[5];
- u8 intermediate_anchor_string[5];
- u8 intermediate_checksum;
+ u8 reserved[1];
+ u16 max_struct_size;
u16 struct_table_length;
- u32 struct_table_address;
- u16 struct_count;
- u8 smbios_bcd_revision;
+ u64 struct_table_address;
+ u8 eos[2];
} __packed;
struct smbios_type0 {
@@ -235,6 +240,7 @@
u8 system_bios_minor_release;
u8 ec_major_release;
u8 ec_minor_release;
+ u16 extended_bios_rom_size;
u8 eos[2];
} __packed;
@@ -282,6 +288,8 @@
u8 location_in_chassis;
u16 chassis_handle;
u8 board_type;
+ u8 count_contained_object_handles;
+ u16 contained_object_handles;
u8 eos[2];
} __packed;
@@ -342,6 +350,7 @@
u8 number_of_power_cords;
u8 element_count;
u8 element_record_length;
+ u8 contained_elements;
u8 sku_number;
u8 eos[2];
} __packed;
@@ -373,6 +382,9 @@
u8 thread_count;
u16 processor_characteristics;
u16 processor_family2;
+ u16 core_count2;
+ u16 core_enabled2;
+ u16 thread_count2;
u8 eos[2];
} __packed;
@@ -398,6 +410,7 @@
u8 header_format;
u8 log_type_descriptors;
u8 log_type_descriptor_length;
+ u8 list_supported_event_log_type_descriptors;
u8 eos[2];
} __packed;
@@ -454,6 +467,17 @@
u16 minimum_voltage;
u16 maximum_voltage;
u16 configured_voltage;
+ u8 memory_technology;
+ u16 memory_operating_mode_capability;
+ u8 firmware_version;
+ 16 module_manufacturer_id;
+ u16 module_product_id;
+ u16 memory_sub_controller_manufacturer_id;
+ u16 memory_sub_controller_product_id;
+ u64 non-volatile_size;
+ u64 volatile_size;
+ u64 cache_size;
+ u64 logical_size;
u8 eos[2];
} __packed;
@@ -477,6 +501,7 @@
u64 base_address;
u8 base_address_modifier;
u8 irq;
+ u8 eos[2];
} __packed;
enum smbios_bmc_interface_type {
@@ -504,13 +529,11 @@
u8 length;
u16 handle;
u8 reference_designation;
- u8 device_type: 7;
- u8 device_status: 1;
+ u8 device_type;
u8 device_type_instance;
u16 segment_group_number;
u8 bus_number;
- u8 function_number: 3;
- u8 device_number: 5;
+ u8 device_function_number;
u8 eos[2];
} __packed;
diff --git a/src/mainboard/samsung/lumpy/mainboard.c b/src/mainboard/samsung/lumpy/mainboard.c
index 8664217..76ddc49 100644
--- a/src/mainboard/samsung/lumpy/mainboard.c
+++ b/src/mainboard/samsung/lumpy/mainboard.c
@@ -57,12 +57,10 @@
t->length = len - 2;
t->reference_designation = smbios_add_string(t->eos, name);
t->device_type = SMBIOS_DEVICE_TYPE_OTHER;
- t->device_status = 1;
t->device_type_instance = irq;
t->segment_group_number = 0;
t->bus_number = addr;
- t->function_number = 0;
- t->device_number = 0;
+ t->device_function_number = 0;
len = t->length + smbios_string_table_len(t->eos);
*current += len;
--
To view, visit https://review.coreboot.org/29641
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I8bccedd277beb755b643a663f3278af25f8fbf96
Gerrit-Change-Number: 29641
Gerrit-PatchSet: 1
Gerrit-Owner: Elyes HAOUAS <ehaouas at noos.fr>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20181114/e8986b5f/attachment-0001.html>
More information about the coreboot-gerrit
mailing list