diff options
Diffstat (limited to 'payloads/libpayload')
-rw-r--r-- | payloads/libpayload/include/coreboot_tables.h | 14 | ||||
-rw-r--r-- | payloads/libpayload/include/sysinfo.h | 3 | ||||
-rw-r--r-- | payloads/libpayload/libc/coreboot.c | 18 |
3 files changed, 14 insertions, 21 deletions
diff --git a/payloads/libpayload/include/coreboot_tables.h b/payloads/libpayload/include/coreboot_tables.h index 842f206747..5bc56d0f6e 100644 --- a/payloads/libpayload/include/coreboot_tables.h +++ b/payloads/libpayload/include/coreboot_tables.h @@ -225,14 +225,6 @@ struct cb_cbmem_tab { uint64_t cbmem_tab; }; -#define CB_TAG_BOARD_ID 0x0025 -struct cb_board_id { - uint32_t tag; - uint32_t size; - /* Board ID as retrieved from the board revision GPIOs. */ - uint32_t board_id; -}; - #define CB_TAG_X86_ROM_MTRR 0x0021 struct cb_x86_rom_mtrr { uint32_t tag; @@ -244,11 +236,13 @@ struct cb_x86_rom_mtrr { uint32_t index; }; + +#define CB_TAG_BOARD_ID 0x0025 #define CB_TAG_RAM_CODE 0x0028 -struct cb_ram_code { +struct cb_strapping_id { uint32_t tag; uint32_t size; - uint32_t ram_code; + uint32_t id_code; }; #define CB_TAG_SPI_FLASH 0x0029 diff --git a/payloads/libpayload/include/sysinfo.h b/payloads/libpayload/include/sysinfo.h index 2e5a837b70..b46d4b1311 100644 --- a/payloads/libpayload/include/sysinfo.h +++ b/payloads/libpayload/include/sysinfo.h @@ -108,8 +108,11 @@ struct sysinfo_t { void *cbmem_cons; void *mrc_cache; void *acpi_gnvs; + +#define UNDEFINED_STRAPPING_ID (~0) u32 board_id; u32 ram_code; + void *wifi_calibration; uint64_t ramoops_buffer; uint32_t ramoops_buffer_size; diff --git a/payloads/libpayload/libc/coreboot.c b/payloads/libpayload/libc/coreboot.c index 10b801c5ed..1efde9a332 100644 --- a/payloads/libpayload/libc/coreboot.c +++ b/payloads/libpayload/libc/coreboot.c @@ -147,14 +147,14 @@ static void cb_parse_acpi_gnvs(unsigned char *ptr, struct sysinfo_t *info) static void cb_parse_board_id(unsigned char *ptr, struct sysinfo_t *info) { - struct cb_board_id *const cbbid = (struct cb_board_id *)ptr; - info->board_id = cbbid->board_id; + struct cb_strapping_id *const cbbid = (struct cb_strapping_id *)ptr; + info->board_id = cbbid->id_code; } static void cb_parse_ram_code(unsigned char *ptr, struct sysinfo_t *info) { - struct cb_ram_code *const ram_code = (struct cb_ram_code *)ptr; - info->ram_code = ram_code->ram_code; + struct cb_strapping_id *const ram_code = (struct cb_strapping_id *)ptr; + info->ram_code = ram_code->id_code; } #if IS_ENABLED(CONFIG_LP_NVRAM) @@ -277,13 +277,9 @@ int cb_parse_header(void *addr, int len, struct sysinfo_t *info) info->header = header; - /* - * Board straps represented by numerical values are small numbers. - * Preset them to an invalid value in case the firmware does not - * supply the info. - */ - info->board_id = ~0; - info->ram_code = ~0; + /* Initialize IDs as undefined in case they don't show up in table. */ + info->board_id = UNDEFINED_STRAPPING_ID; + info->ram_code = UNDEFINED_STRAPPING_ID; /* Now, walk the tables. */ ptr += header->header_bytes; |