diff options
author | Tim Wawrzynczak <twawrzynczak@chromium.org> | 2020-10-09 17:07:45 -0600 |
---|---|---|
committer | Tim Wawrzynczak <twawrzynczak@chromium.org> | 2020-10-30 15:25:28 +0000 |
commit | e1a7a26f5e8bcc95d94ae9aec8df5b5226a77f56 (patch) | |
tree | a7b07715b84e2f9936b4b34c1a26776320a42ef8 /payloads/libpayload/include | |
parent | c70505acee27c7efad4eaa6d18542f794ff98298 (diff) |
lib/libpayload: Replace strapping_ids with new board configuration entry
There are currently 3 different strapping ID entries in the coreboot
table, which adds overhead. The new fw_config field is also desired in
the coreboot table, which is another kind of strapping id. Therefore,
this patch deprecates the 3 current strapping ID entries (board ID, RAM
code, and SKU ID), and adds a new entry ("board_config") which provides
board ID, RAM code, SKU ID, as well as FW_CONFIG together.
Signed-off-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Change-Id: I1ecec847ee77b72233587c1ad7f124e2027470bf
Reviewed-on: https://review.coreboot.org/c/coreboot/+/46605
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Diffstat (limited to 'payloads/libpayload/include')
-rw-r--r-- | payloads/libpayload/include/coreboot_tables.h | 17 | ||||
-rw-r--r-- | payloads/libpayload/include/sysinfo.h | 9 |
2 files changed, 19 insertions, 7 deletions
diff --git a/payloads/libpayload/include/coreboot_tables.h b/payloads/libpayload/include/coreboot_tables.h index bfdd21e692..64db83bbd4 100644 --- a/payloads/libpayload/include/coreboot_tables.h +++ b/payloads/libpayload/include/coreboot_tables.h @@ -80,6 +80,7 @@ enum { CB_TAG_TCPA_LOG = 0x0036, CB_TAG_FMAP = 0x0037, CB_TAG_SMMSTOREV2 = 0x0039, + CB_TAG_BOARD_CONFIG = 0x0040, CB_TAG_CMOS_OPTION_TABLE = 0x00c8, CB_TAG_OPTION = 0x00c9, CB_TAG_OPTION_ENUM = 0x00ca, @@ -260,12 +261,6 @@ struct cb_x86_rom_mtrr { uint32_t index; }; -struct cb_strapping_id { - uint32_t tag; - uint32_t size; - uint32_t id_code; -}; - struct cb_spi_flash { uint32_t tag; uint32_t size; @@ -317,6 +312,16 @@ struct cb_mmc_info { int32_t early_cmd1_status; }; +struct cb_board_config { + uint32_t tag; + uint32_t size; + + struct cbuint64 fw_config; + uint32_t board_id; + uint32_t ram_code; + uint32_t sku_id; +}; + #define CB_MAX_SERIALNO_LENGTH 32 struct cb_cmos_option_table { diff --git a/payloads/libpayload/include/sysinfo.h b/payloads/libpayload/include/sysinfo.h index a3f61e7ffa..dd739abab4 100644 --- a/payloads/libpayload/include/sysinfo.h +++ b/payloads/libpayload/include/sysinfo.h @@ -107,11 +107,18 @@ struct sysinfo_t { uintptr_t mrc_cache; uintptr_t acpi_gnvs; -#define UNDEFINED_STRAPPING_ID (~0) +#define UNDEFINED_STRAPPING_ID (~0) +#define UNDEFINED_FW_CONFIG ~((uint64_t)0) u32 board_id; u32 ram_code; u32 sku_id; + /* + * A payload using this field is responsible for ensuring it checks its + * value against UNDEFINED_FW_CONFIG before using it. + */ + u64 fw_config; + uintptr_t wifi_calibration; uint64_t ramoops_buffer; uint32_t ramoops_buffer_size; |