Nico Huber has submitted this change and it was merged. ( https://review.coreboot.org/c/coreboot/+/29477 )
Change subject: x86/smbios: Untangle system and board tables ......................................................................
x86/smbios: Untangle system and board tables
We were used to set the same values in the system and board tables. We'll keep the mainboard values as defaults for the system tables, so nothing changes unless somebody overrides the system table hooks.
Change-Id: I3c9c95a1307529c3137647a161a698a4c3daa0ae Signed-off-by: Nico Huber nico.huber@secunet.com Reviewed-on: https://review.coreboot.org/c/coreboot/+/29477 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Richard Spiegel richard.spiegel@silverbackltd.com Reviewed-by: HAOUAS Elyes ehaouas@noos.fr --- M src/Kconfig M src/arch/x86/smbios.c M src/drivers/i2c/at24rf08c/lenovo_serials.c M src/include/smbios.h M src/mainboard/emulation/qemu-i440fx/fw_cfg.c M src/mainboard/google/fizz/mainboard.c M src/mainboard/google/hatch/mainboard.c M src/mainboard/google/kahlee/mainboard.c M src/mainboard/google/octopus/mainboard.c M src/mainboard/google/poppy/variants/nami/mainboard.c M src/mainboard/google/poppy/variants/nautilus/mainboard.c M src/mainboard/google/poppy/variants/rammus/mainboard.c M src/mainboard/google/reef/mainboard.c M src/mainboard/google/sarien/sku.c M src/mainboard/pcengines/apu1/mainboard.c M src/mainboard/pcengines/apu2/mainboard.c M src/mainboard/scaleway/tagada/ramstage.c 17 files changed, 65 insertions(+), 54 deletions(-)
Approvals: build bot (Jenkins): Verified HAOUAS Elyes: Looks good to me, approved Richard Spiegel: Looks good to me, approved
diff --git a/src/Kconfig b/src/Kconfig index e527751..62b3818 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -631,33 +631,33 @@ default n
config MAINBOARD_SERIAL_NUMBER - string "SMBIOS Serial Number" + prompt "SMBIOS Serial Number" if !SMBIOS_PROVIDED_BY_MOBO + string depends on GENERATE_SMBIOS_TABLES - depends on !SMBIOS_PROVIDED_BY_MOBO default "123456789" help The Serial Number to store in SMBIOS structures.
config MAINBOARD_VERSION - string "SMBIOS Version Number" + prompt "SMBIOS Version Number" if !SMBIOS_PROVIDED_BY_MOBO + string depends on GENERATE_SMBIOS_TABLES - depends on !SMBIOS_PROVIDED_BY_MOBO default "1.0" help The Version Number to store in SMBIOS structures.
config MAINBOARD_SMBIOS_MANUFACTURER - string "SMBIOS Manufacturer" + prompt "SMBIOS Manufacturer" if !SMBIOS_PROVIDED_BY_MOBO + string depends on GENERATE_SMBIOS_TABLES - depends on !SMBIOS_PROVIDED_BY_MOBO default MAINBOARD_VENDOR help Override the default Manufacturer stored in SMBIOS structures.
config MAINBOARD_SMBIOS_PRODUCT_NAME - string "SMBIOS Product name" + prompt "SMBIOS Product name" if !SMBIOS_PROVIDED_BY_MOBO + string depends on GENERATE_SMBIOS_TABLES - depends on !SMBIOS_PROVIDED_BY_MOBO default MAINBOARD_PART_NUMBER help Override the default Product name stored in SMBIOS structures. diff --git a/src/arch/x86/smbios.c b/src/arch/x86/smbios.c index 1d0ced1..8cb59df 100644 --- a/src/arch/x86/smbios.c +++ b/src/arch/x86/smbios.c @@ -402,8 +402,6 @@ return len; }
-#if !CONFIG(SMBIOS_PROVIDED_BY_MOBO) - const char *__weak smbios_mainboard_serial_number(void) { return CONFIG_MAINBOARD_SERIAL_NUMBER; @@ -424,12 +422,6 @@ return CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME; }
-void __weak smbios_mainboard_set_uuid(u8 *uuid) -{ - /* leave all zero */ -} -#endif - const char *__weak smbios_mainboard_asset_tag(void) { return ""; @@ -450,18 +442,36 @@ return SMBIOS_BOARD_TYPE_UNKNOWN; }
-const char *__weak smbios_mainboard_sku(void) +const char *__weak smbios_system_serial_number(void) +{ + return smbios_mainboard_serial_number(); +} + +const char *__weak smbios_system_version(void) +{ + return smbios_mainboard_version(); +} + +const char *__weak smbios_system_manufacturer(void) +{ + return smbios_mainboard_manufacturer(); +} + +const char *__weak smbios_system_product_name(void) +{ + return smbios_mainboard_product_name(); +} + +void __weak smbios_system_set_uuid(u8 *uuid) +{ + /* leave all zero */ +} + +const char *__weak smbios_system_sku(void) { return ""; }
-#ifdef CONFIG_MAINBOARD_FAMILY -const char *smbios_mainboard_family(void) -{ - return CONFIG_MAINBOARD_FAMILY; -} -#endif /* CONFIG_MAINBOARD_FAMILY */ - static int smbios_write_type1(unsigned long *current, int handle) { struct smbios_type1 *t = (struct smbios_type1 *)*current; @@ -472,17 +482,17 @@ t->handle = handle; t->length = len - 2; t->manufacturer = smbios_add_string(t->eos, - smbios_mainboard_manufacturer()); + smbios_system_manufacturer()); t->product_name = smbios_add_string(t->eos, - smbios_mainboard_product_name()); + smbios_system_product_name()); t->serial_number = smbios_add_string(t->eos, - smbios_mainboard_serial_number()); - t->sku = smbios_add_string(t->eos, smbios_mainboard_sku()); - t->version = smbios_add_string(t->eos, smbios_mainboard_version()); + smbios_system_serial_number()); + t->sku = smbios_add_string(t->eos, smbios_system_sku()); + t->version = smbios_add_string(t->eos, smbios_system_version()); #ifdef CONFIG_MAINBOARD_FAMILY - t->family = smbios_add_string(t->eos, smbios_mainboard_family()); + t->family = smbios_add_string(t->eos, CONFIG_MAINBOARD_FAMILY); #endif - smbios_mainboard_set_uuid(t->uuid); + smbios_system_set_uuid(t->uuid); len = t->length + smbios_string_table_len(t->eos); *current += len; return len; @@ -526,7 +536,7 @@ t->handle = handle; t->length = len - 2; t->manufacturer = smbios_add_string(t->eos, - smbios_mainboard_manufacturer()); + smbios_system_manufacturer()); t->bootup_state = SMBIOS_STATE_SAFE; t->power_supply_state = SMBIOS_STATE_SAFE; t->thermal_state = SMBIOS_STATE_SAFE; diff --git a/src/drivers/i2c/at24rf08c/lenovo_serials.c b/src/drivers/i2c/at24rf08c/lenovo_serials.c index 60b12ce..0a6b343 100644 --- a/src/drivers/i2c/at24rf08c/lenovo_serials.c +++ b/src/drivers/i2c/at24rf08c/lenovo_serials.c @@ -115,7 +115,7 @@ return lenovo_mainboard_partnumber(); }
-void smbios_mainboard_set_uuid(u8 *uuid) +void smbios_system_set_uuid(u8 *uuid) { static char result[16]; unsigned i; diff --git a/src/include/smbios.h b/src/include/smbios.h index c046b1a..af83bfe 100644 --- a/src/include/smbios.h +++ b/src/include/smbios.h @@ -35,22 +35,23 @@ const char *name, u8 instance, u16 segment, u8 bus, u8 device, u8 function);
+const char *smbios_system_manufacturer(void); +const char *smbios_system_product_name(void); +const char *smbios_system_serial_number(void); +const char *smbios_system_version(void); +void smbios_system_set_uuid(u8 *uuid); +const char *smbios_system_sku(void); + const char *smbios_mainboard_manufacturer(void); const char *smbios_mainboard_product_name(void); - const char *smbios_mainboard_serial_number(void); const char *smbios_mainboard_version(void); -void smbios_mainboard_set_uuid(u8 *uuid); + const char *smbios_mainboard_bios_version(void); const char *smbios_mainboard_asset_tag(void); u8 smbios_mainboard_feature_flags(void); const char *smbios_mainboard_location_in_chassis(void); - -const char *smbios_mainboard_sku(void); u8 smbios_mainboard_enclosure_type(void); -#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) diff --git a/src/mainboard/emulation/qemu-i440fx/fw_cfg.c b/src/mainboard/emulation/qemu-i440fx/fw_cfg.c index a83c581..3acb11e 100644 --- a/src/mainboard/emulation/qemu-i440fx/fw_cfg.c +++ b/src/mainboard/emulation/qemu-i440fx/fw_cfg.c @@ -495,7 +495,7 @@ return type1_serial_number ?: CONFIG_MAINBOARD_SERIAL_NUMBER; }
-void smbios_mainboard_set_uuid(u8 *uuid) +void smbios_system_set_uuid(u8 *uuid) { fw_cfg_smbios_init(); memcpy(uuid, type1_uuid, 16); diff --git a/src/mainboard/google/fizz/mainboard.c b/src/mainboard/google/fizz/mainboard.c index 5670936..54fd7df 100644 --- a/src/mainboard/google/fizz/mainboard.c +++ b/src/mainboard/google/fizz/mainboard.c @@ -177,7 +177,7 @@ return oem_id; }
-const char *smbios_mainboard_sku(void) +const char *smbios_system_sku(void) { static char sku_str[5]; /* sku{0..7} */
diff --git a/src/mainboard/google/hatch/mainboard.c b/src/mainboard/google/hatch/mainboard.c index a0fbb73..eb77a00 100644 --- a/src/mainboard/google/hatch/mainboard.c +++ b/src/mainboard/google/hatch/mainboard.c @@ -36,7 +36,7 @@ return sku_id; }
-const char *smbios_mainboard_sku(void) +const char *smbios_system_sku(void) { static char sku_str[7]; /* sku{0..255} */ uint32_t sku_id = get_board_sku(); diff --git a/src/mainboard/google/kahlee/mainboard.c b/src/mainboard/google/kahlee/mainboard.c index 32bf88e..1bf6c07 100644 --- a/src/mainboard/google/kahlee/mainboard.c +++ b/src/mainboard/google/kahlee/mainboard.c @@ -216,7 +216,7 @@ { }
-const char *smbios_mainboard_sku(void) +const char *smbios_system_sku(void) { static char sku_str[7]; /* sku{0..255} */
diff --git a/src/mainboard/google/octopus/mainboard.c b/src/mainboard/google/octopus/mainboard.c index 5b011c8..4316ffe 100644 --- a/src/mainboard/google/octopus/mainboard.c +++ b/src/mainboard/google/octopus/mainboard.c @@ -131,7 +131,7 @@ return sku_id; }
-const char *smbios_mainboard_sku(void) +const char *smbios_system_sku(void) { static char sku_str[7]; /* sku{0..255} */ uint32_t sku_id = get_board_sku(); diff --git a/src/mainboard/google/poppy/variants/nami/mainboard.c b/src/mainboard/google/poppy/variants/nami/mainboard.c index e279693..836c97e 100644 --- a/src/mainboard/google/poppy/variants/nami/mainboard.c +++ b/src/mainboard/google/poppy/variants/nami/mainboard.c @@ -104,7 +104,7 @@ return sku_id; }
-const char *smbios_mainboard_sku(void) +const char *smbios_system_sku(void) { static char sku_str[14]; /* sku{0..4294967295} */
diff --git a/src/mainboard/google/poppy/variants/nautilus/mainboard.c b/src/mainboard/google/poppy/variants/nautilus/mainboard.c index 08fb73f..6d9f2e9 100644 --- a/src/mainboard/google/poppy/variants/nautilus/mainboard.c +++ b/src/mainboard/google/poppy/variants/nautilus/mainboard.c @@ -28,7 +28,7 @@ #define B_PCH_OC_WDT_CTL_EN BIT14 #define B_PCH_OC_WDT_CTL_UNXP_RESET_STS BIT22
-const char *smbios_mainboard_sku(void) +const char *smbios_system_sku(void) { static char sku_str[5]; /* sku{0-1} */
diff --git a/src/mainboard/google/poppy/variants/rammus/mainboard.c b/src/mainboard/google/poppy/variants/rammus/mainboard.c index a3474d4..5c5b258 100644 --- a/src/mainboard/google/poppy/variants/rammus/mainboard.c +++ b/src/mainboard/google/poppy/variants/rammus/mainboard.c @@ -34,7 +34,7 @@ return sku_id; }
-const char *smbios_mainboard_sku(void) +const char *smbios_system_sku(void) { static char sku_str[14]; /* sku{0..4294967295} */
diff --git a/src/mainboard/google/reef/mainboard.c b/src/mainboard/google/reef/mainboard.c index 05af84a..20b6a26 100644 --- a/src/mainboard/google/reef/mainboard.c +++ b/src/mainboard/google/reef/mainboard.c @@ -88,7 +88,7 @@ { }
-const char *smbios_mainboard_sku(void) +const char *smbios_system_sku(void) { static char sku_str[7]; /* sku{0..255} */
diff --git a/src/mainboard/google/sarien/sku.c b/src/mainboard/google/sarien/sku.c index c064c02..708793d 100644 --- a/src/mainboard/google/sarien/sku.c +++ b/src/mainboard/google/sarien/sku.c @@ -22,7 +22,7 @@ return VARIANT_SKU_ID; }
-const char *smbios_mainboard_sku(void) +const char *smbios_system_sku(void) { return VARIANT_SKU_NAME; } diff --git a/src/mainboard/pcengines/apu1/mainboard.c b/src/mainboard/pcengines/apu1/mainboard.c index 10460bd..79a54b5 100644 --- a/src/mainboard/pcengines/apu1/mainboard.c +++ b/src/mainboard/pcengines/apu1/mainboard.c @@ -263,7 +263,7 @@ /* * We will stuff the memory size into the smbios sku location. */ -const char *smbios_mainboard_sku(void) +const char *smbios_system_sku(void) { static char sku[5]; if (sku[0] != 0) diff --git a/src/mainboard/pcengines/apu2/mainboard.c b/src/mainboard/pcengines/apu2/mainboard.c index 472b864..5a19d20 100644 --- a/src/mainboard/pcengines/apu2/mainboard.c +++ b/src/mainboard/pcengines/apu2/mainboard.c @@ -235,7 +235,7 @@ /* * We will stuff the memory size into the smbios sku location. */ -const char *smbios_mainboard_sku(void) +const char *smbios_system_sku(void) { static char sku[5]; if (sku[0] != 0) diff --git a/src/mainboard/scaleway/tagada/ramstage.c b/src/mainboard/scaleway/tagada/ramstage.c index 561c081..d592d99 100644 --- a/src/mainboard/scaleway/tagada/ramstage.c +++ b/src/mainboard/scaleway/tagada/ramstage.c @@ -41,8 +41,8 @@ return CONFIG_MAINBOARD_SERIAL_NUMBER; }
-/* Override smbios_mainboard_set_uuid */ -void smbios_mainboard_set_uuid(u8 *uuid) +/* Override smbios_system_set_uuid */ +void smbios_system_set_uuid(u8 *uuid) { const u8 *bmc_uuid = bmcinfo_uuid(); if (bmc_uuid)