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>
diff --git a/payloads/libpayload/include/sysinfo.h b/payloads/libpayload/include/sysinfo.h
index a3f61e7..dd739ab 100644
--- a/payloads/libpayload/include/sysinfo.h
+++ b/payloads/libpayload/include/sysinfo.h
@@ -107,11 +107,18 @@
 	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;