diff options
author | Mathew King <mathewk@chromium.org> | 2019-07-31 15:50:15 -0600 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2019-08-03 17:19:59 +0000 |
commit | a7d55cf910ee23d0bfa8627da76d9b1449c08773 (patch) | |
tree | e681294a703db4bc1625b1bebf5f6754a48e395f /src/arch | |
parent | 871d2c74a22a915f8ca31c38b5170029963f62ac (diff) |
smbios: Make SMBIOS type 3 enclosure type settable at runtime
smbios.h had already declared smbios_mainboard_enclosure_type so this
change defines it. It can be overridden in a mainboard so the enclosure
type can be set at runtime.
We have a mainboard that will be used in different enclosures and we are
planning on using a single BIOS image for all of the enclosures so it
will need to be set dynamically based on sku.
BUG=b:138745917
TEST=Built arcada firmware and verified via dmidecode that enclosure type
is correctly set to "Convertible", then temporarily added a
smbios_mainboard_enclosure_type to arcadas board file returning
0x20 and verified with dmidecode that the enclosure type is
"Detachable"
Change-Id: Iba6e582640989f5cb7e6613813e7b033760a977c
Signed-off-by: Mathew King <mathewk@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/34646
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin Roth <martinroth@google.com>
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/x86/smbios.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/arch/x86/smbios.c b/src/arch/x86/smbios.c index 2f5c3a643e..346e874217 100644 --- a/src/arch/x86/smbios.c +++ b/src/arch/x86/smbios.c @@ -500,6 +500,11 @@ smbios_board_type __weak smbios_mainboard_board_type(void) return SMBIOS_BOARD_TYPE_UNKNOWN; } +u8 __weak smbios_mainboard_enclosure_type(void) +{ + return CONFIG_SMBIOS_ENCLOSURE_TYPE; +} + const char *__weak smbios_system_serial_number(void) { return smbios_mainboard_serial_number(); @@ -620,7 +625,7 @@ static int smbios_write_type3(unsigned long *current, int handle) t->bootup_state = SMBIOS_STATE_SAFE; t->power_supply_state = SMBIOS_STATE_SAFE; t->thermal_state = SMBIOS_STATE_SAFE; - t->_type = CONFIG_SMBIOS_ENCLOSURE_TYPE; + t->_type = smbios_mainboard_enclosure_type(); t->security_status = SMBIOS_STATE_SAFE; len = t->length + smbios_string_table_len(t->eos); *current += len; |