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>
This commit is contained in:
parent
4663f45caa
commit
ebd8a4f90c
16
src/Kconfig
16
src/Kconfig
|
@ -631,33 +631,33 @@ config SMBIOS_PROVIDED_BY_MOBO
|
||||||
default n
|
default n
|
||||||
|
|
||||||
config MAINBOARD_SERIAL_NUMBER
|
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 GENERATE_SMBIOS_TABLES
|
||||||
depends on !SMBIOS_PROVIDED_BY_MOBO
|
|
||||||
default "123456789"
|
default "123456789"
|
||||||
help
|
help
|
||||||
The Serial Number to store in SMBIOS structures.
|
The Serial Number to store in SMBIOS structures.
|
||||||
|
|
||||||
config MAINBOARD_VERSION
|
config MAINBOARD_VERSION
|
||||||
string "SMBIOS Version Number"
|
prompt "SMBIOS Version Number" if !SMBIOS_PROVIDED_BY_MOBO
|
||||||
|
string
|
||||||
depends on GENERATE_SMBIOS_TABLES
|
depends on GENERATE_SMBIOS_TABLES
|
||||||
depends on !SMBIOS_PROVIDED_BY_MOBO
|
|
||||||
default "1.0"
|
default "1.0"
|
||||||
help
|
help
|
||||||
The Version Number to store in SMBIOS structures.
|
The Version Number to store in SMBIOS structures.
|
||||||
|
|
||||||
config MAINBOARD_SMBIOS_MANUFACTURER
|
config MAINBOARD_SMBIOS_MANUFACTURER
|
||||||
string "SMBIOS Manufacturer"
|
prompt "SMBIOS Manufacturer" if !SMBIOS_PROVIDED_BY_MOBO
|
||||||
|
string
|
||||||
depends on GENERATE_SMBIOS_TABLES
|
depends on GENERATE_SMBIOS_TABLES
|
||||||
depends on !SMBIOS_PROVIDED_BY_MOBO
|
|
||||||
default MAINBOARD_VENDOR
|
default MAINBOARD_VENDOR
|
||||||
help
|
help
|
||||||
Override the default Manufacturer stored in SMBIOS structures.
|
Override the default Manufacturer stored in SMBIOS structures.
|
||||||
|
|
||||||
config MAINBOARD_SMBIOS_PRODUCT_NAME
|
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 GENERATE_SMBIOS_TABLES
|
||||||
depends on !SMBIOS_PROVIDED_BY_MOBO
|
|
||||||
default MAINBOARD_PART_NUMBER
|
default MAINBOARD_PART_NUMBER
|
||||||
help
|
help
|
||||||
Override the default Product name stored in SMBIOS structures.
|
Override the default Product name stored in SMBIOS structures.
|
||||||
|
|
|
@ -402,8 +402,6 @@ static int smbios_write_type0(unsigned long *current, int handle)
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !CONFIG(SMBIOS_PROVIDED_BY_MOBO)
|
|
||||||
|
|
||||||
const char *__weak smbios_mainboard_serial_number(void)
|
const char *__weak smbios_mainboard_serial_number(void)
|
||||||
{
|
{
|
||||||
return CONFIG_MAINBOARD_SERIAL_NUMBER;
|
return CONFIG_MAINBOARD_SERIAL_NUMBER;
|
||||||
|
@ -424,12 +422,6 @@ const char *__weak smbios_mainboard_product_name(void)
|
||||||
return CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME;
|
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)
|
const char *__weak smbios_mainboard_asset_tag(void)
|
||||||
{
|
{
|
||||||
return "";
|
return "";
|
||||||
|
@ -450,18 +442,36 @@ smbios_board_type __weak smbios_mainboard_board_type(void)
|
||||||
return SMBIOS_BOARD_TYPE_UNKNOWN;
|
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 "";
|
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)
|
static int smbios_write_type1(unsigned long *current, int handle)
|
||||||
{
|
{
|
||||||
struct smbios_type1 *t = (struct smbios_type1 *)*current;
|
struct smbios_type1 *t = (struct smbios_type1 *)*current;
|
||||||
|
@ -472,17 +482,17 @@ static int smbios_write_type1(unsigned long *current, int handle)
|
||||||
t->handle = handle;
|
t->handle = handle;
|
||||||
t->length = len - 2;
|
t->length = len - 2;
|
||||||
t->manufacturer = smbios_add_string(t->eos,
|
t->manufacturer = smbios_add_string(t->eos,
|
||||||
smbios_mainboard_manufacturer());
|
smbios_system_manufacturer());
|
||||||
t->product_name = smbios_add_string(t->eos,
|
t->product_name = smbios_add_string(t->eos,
|
||||||
smbios_mainboard_product_name());
|
smbios_system_product_name());
|
||||||
t->serial_number = smbios_add_string(t->eos,
|
t->serial_number = smbios_add_string(t->eos,
|
||||||
smbios_mainboard_serial_number());
|
smbios_system_serial_number());
|
||||||
t->sku = smbios_add_string(t->eos, smbios_mainboard_sku());
|
t->sku = smbios_add_string(t->eos, smbios_system_sku());
|
||||||
t->version = smbios_add_string(t->eos, smbios_mainboard_version());
|
t->version = smbios_add_string(t->eos, smbios_system_version());
|
||||||
#ifdef CONFIG_MAINBOARD_FAMILY
|
#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
|
#endif
|
||||||
smbios_mainboard_set_uuid(t->uuid);
|
smbios_system_set_uuid(t->uuid);
|
||||||
len = t->length + smbios_string_table_len(t->eos);
|
len = t->length + smbios_string_table_len(t->eos);
|
||||||
*current += len;
|
*current += len;
|
||||||
return len;
|
return len;
|
||||||
|
@ -526,7 +536,7 @@ static int smbios_write_type3(unsigned long *current, int handle)
|
||||||
t->handle = handle;
|
t->handle = handle;
|
||||||
t->length = len - 2;
|
t->length = len - 2;
|
||||||
t->manufacturer = smbios_add_string(t->eos,
|
t->manufacturer = smbios_add_string(t->eos,
|
||||||
smbios_mainboard_manufacturer());
|
smbios_system_manufacturer());
|
||||||
t->bootup_state = SMBIOS_STATE_SAFE;
|
t->bootup_state = SMBIOS_STATE_SAFE;
|
||||||
t->power_supply_state = SMBIOS_STATE_SAFE;
|
t->power_supply_state = SMBIOS_STATE_SAFE;
|
||||||
t->thermal_state = SMBIOS_STATE_SAFE;
|
t->thermal_state = SMBIOS_STATE_SAFE;
|
||||||
|
|
|
@ -115,7 +115,7 @@ const char *smbios_mainboard_product_name(void)
|
||||||
return lenovo_mainboard_partnumber();
|
return lenovo_mainboard_partnumber();
|
||||||
}
|
}
|
||||||
|
|
||||||
void smbios_mainboard_set_uuid(u8 *uuid)
|
void smbios_system_set_uuid(u8 *uuid)
|
||||||
{
|
{
|
||||||
static char result[16];
|
static char result[16];
|
||||||
unsigned i;
|
unsigned i;
|
||||||
|
|
|
@ -35,22 +35,23 @@ int smbios_write_type41(unsigned long *current, int *handle,
|
||||||
const char *name, u8 instance, u16 segment,
|
const char *name, u8 instance, u16 segment,
|
||||||
u8 bus, u8 device, u8 function);
|
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_manufacturer(void);
|
||||||
const char *smbios_mainboard_product_name(void);
|
const char *smbios_mainboard_product_name(void);
|
||||||
|
|
||||||
const char *smbios_mainboard_serial_number(void);
|
const char *smbios_mainboard_serial_number(void);
|
||||||
const char *smbios_mainboard_version(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_bios_version(void);
|
||||||
const char *smbios_mainboard_asset_tag(void);
|
const char *smbios_mainboard_asset_tag(void);
|
||||||
u8 smbios_mainboard_feature_flags(void);
|
u8 smbios_mainboard_feature_flags(void);
|
||||||
const char *smbios_mainboard_location_in_chassis(void);
|
const char *smbios_mainboard_location_in_chassis(void);
|
||||||
|
|
||||||
const char *smbios_mainboard_sku(void);
|
|
||||||
u8 smbios_mainboard_enclosure_type(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_PCI_SUPPORTED (1 << 7)
|
||||||
#define BIOS_CHARACTERISTICS_PC_CARD (1 << 8)
|
#define BIOS_CHARACTERISTICS_PC_CARD (1 << 8)
|
||||||
|
|
|
@ -495,7 +495,7 @@ const char *smbios_mainboard_serial_number(void)
|
||||||
return type1_serial_number ?: CONFIG_MAINBOARD_SERIAL_NUMBER;
|
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();
|
fw_cfg_smbios_init();
|
||||||
memcpy(uuid, type1_uuid, 16);
|
memcpy(uuid, type1_uuid, 16);
|
||||||
|
|
|
@ -177,7 +177,7 @@ static uint8_t board_oem_id(void)
|
||||||
return oem_id;
|
return oem_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *smbios_mainboard_sku(void)
|
const char *smbios_system_sku(void)
|
||||||
{
|
{
|
||||||
static char sku_str[5]; /* sku{0..7} */
|
static char sku_str[5]; /* sku{0..7} */
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ static uint32_t get_board_sku(void)
|
||||||
return sku_id;
|
return sku_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *smbios_mainboard_sku(void)
|
const char *smbios_system_sku(void)
|
||||||
{
|
{
|
||||||
static char sku_str[7]; /* sku{0..255} */
|
static char sku_str[7]; /* sku{0..255} */
|
||||||
uint32_t sku_id = get_board_sku();
|
uint32_t sku_id = get_board_sku();
|
||||||
|
|
|
@ -216,7 +216,7 @@ void __weak variant_mainboard_suspend_resume(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *smbios_mainboard_sku(void)
|
const char *smbios_system_sku(void)
|
||||||
{
|
{
|
||||||
static char sku_str[7]; /* sku{0..255} */
|
static char sku_str[7]; /* sku{0..255} */
|
||||||
|
|
||||||
|
|
|
@ -131,7 +131,7 @@ static uint32_t get_board_sku(void)
|
||||||
return sku_id;
|
return sku_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *smbios_mainboard_sku(void)
|
const char *smbios_system_sku(void)
|
||||||
{
|
{
|
||||||
static char sku_str[7]; /* sku{0..255} */
|
static char sku_str[7]; /* sku{0..255} */
|
||||||
uint32_t sku_id = get_board_sku();
|
uint32_t sku_id = get_board_sku();
|
||||||
|
|
|
@ -104,7 +104,7 @@ uint32_t variant_board_sku(void)
|
||||||
return sku_id;
|
return sku_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *smbios_mainboard_sku(void)
|
const char *smbios_system_sku(void)
|
||||||
{
|
{
|
||||||
static char sku_str[14]; /* sku{0..4294967295} */
|
static char sku_str[14]; /* sku{0..4294967295} */
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
#define B_PCH_OC_WDT_CTL_EN BIT14
|
#define B_PCH_OC_WDT_CTL_EN BIT14
|
||||||
#define B_PCH_OC_WDT_CTL_UNXP_RESET_STS BIT22
|
#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} */
|
static char sku_str[5]; /* sku{0-1} */
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ uint32_t variant_board_sku(void)
|
||||||
return sku_id;
|
return sku_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *smbios_mainboard_sku(void)
|
const char *smbios_system_sku(void)
|
||||||
{
|
{
|
||||||
static char sku_str[14]; /* sku{0..4294967295} */
|
static char sku_str[14]; /* sku{0..4294967295} */
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@ void __weak variant_board_ec_set_skuid(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *smbios_mainboard_sku(void)
|
const char *smbios_system_sku(void)
|
||||||
{
|
{
|
||||||
static char sku_str[7]; /* sku{0..255} */
|
static char sku_str[7]; /* sku{0..255} */
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ uint32_t sku_id(void)
|
||||||
return VARIANT_SKU_ID;
|
return VARIANT_SKU_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *smbios_mainboard_sku(void)
|
const char *smbios_system_sku(void)
|
||||||
{
|
{
|
||||||
return VARIANT_SKU_NAME;
|
return VARIANT_SKU_NAME;
|
||||||
}
|
}
|
||||||
|
|
|
@ -263,7 +263,7 @@ static void usb_oc_setup(void)
|
||||||
/*
|
/*
|
||||||
* We will stuff the memory size into the smbios sku location.
|
* 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];
|
static char sku[5];
|
||||||
if (sku[0] != 0)
|
if (sku[0] != 0)
|
||||||
|
|
|
@ -235,7 +235,7 @@ const char *smbios_mainboard_serial_number(void)
|
||||||
/*
|
/*
|
||||||
* We will stuff the memory size into the smbios sku location.
|
* 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];
|
static char sku[5];
|
||||||
if (sku[0] != 0)
|
if (sku[0] != 0)
|
||||||
|
|
|
@ -41,8 +41,8 @@ const char *smbios_mainboard_serial_number(void)
|
||||||
return CONFIG_MAINBOARD_SERIAL_NUMBER;
|
return CONFIG_MAINBOARD_SERIAL_NUMBER;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Override smbios_mainboard_set_uuid */
|
/* Override smbios_system_set_uuid */
|
||||||
void smbios_mainboard_set_uuid(u8 *uuid)
|
void smbios_system_set_uuid(u8 *uuid)
|
||||||
{
|
{
|
||||||
const u8 *bmc_uuid = bmcinfo_uuid();
|
const u8 *bmc_uuid = bmcinfo_uuid();
|
||||||
if (bmc_uuid)
|
if (bmc_uuid)
|
||||||
|
|
Loading…
Reference in New Issue