aboutsummaryrefslogtreecommitdiff
path: root/src/lib/coreboot_table.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/coreboot_table.c')
-rw-r--r--src/lib/coreboot_table.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/lib/coreboot_table.c b/src/lib/coreboot_table.c
index abcb0eda11..2b484d4b64 100644
--- a/src/lib/coreboot_table.c
+++ b/src/lib/coreboot_table.c
@@ -26,6 +26,7 @@
#include <boot/coreboot_tables.h>
#include <string.h>
#include <version.h>
+#include <boardid.h>
#include <device/device.h>
#include <stdlib.h>
#include <cbfs.h>
@@ -212,6 +213,19 @@ static inline void lb_vboot_handoff(struct lb_header *header) {}
#endif /* CONFIG_VBOOT_VERIFY_FIRMWARE */
#endif /* CONFIG_CHROMEOS */
+static void lb_board_id(struct lb_header *header)
+{
+#if CONFIG_BOARD_ID_SUPPORT
+ struct lb_board_id *bid;
+
+ bid = (struct lb_board_id *)lb_new_record(header);
+
+ bid->tag = LB_TAG_BOARD_ID;
+ bid->size = sizeof(*bid);
+ bid->board_id = board_id();
+#endif
+}
+
static void add_cbmem_pointers(struct lb_header *header)
{
/*
@@ -432,6 +446,10 @@ unsigned long write_coreboot_table(
/* pass along the vboot_handoff address. */
lb_vboot_handoff(head);
#endif
+
+ /* Add board ID if available */
+ lb_board_id(head);
+
add_cbmem_pointers(head);
/* Add board-specific table entries, if any. */