libpayload: Minor board ID / RAM code cleanups
This patch mirrors recent cleanups in coreboot regarding the strapping
ID entries in the coreboot table.
Change-Id: Ia5c3728daf2cb317f8e2bc72c6f1714d6cb4d080
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/22742
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
diff --git a/payloads/libpayload/include/coreboot_tables.h b/payloads/libpayload/include/coreboot_tables.h
index 842f206..5bc56d0 100644
--- a/payloads/libpayload/include/coreboot_tables.h
+++ b/payloads/libpayload/include/coreboot_tables.h
@@ -225,14 +225,6 @@
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 @@
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 2e5a837..b46d4b1 100644
--- a/payloads/libpayload/include/sysinfo.h
+++ b/payloads/libpayload/include/sysinfo.h
@@ -108,8 +108,11 @@
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 10b801c..1efde9a 100644
--- a/payloads/libpayload/libc/coreboot.c
+++ b/payloads/libpayload/libc/coreboot.c
@@ -147,14 +147,14 @@
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 @@
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;