summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/include/boot/coreboot_tables.h3
-rw-r--r--src/lib/coreboot_table.c16
-rw-r--r--src/security/vboot/vbnv_cmos.c12
3 files changed, 17 insertions, 14 deletions
diff --git a/src/include/boot/coreboot_tables.h b/src/include/boot/coreboot_tables.h
index 7fd9ac169b..e77c60aad3 100644
--- a/src/include/boot/coreboot_tables.h
+++ b/src/include/boot/coreboot_tables.h
@@ -41,4 +41,7 @@ void lb_table_add_serialno_from_vpd(struct lb_header *header);
struct lb_record *lb_new_record(struct lb_header *header);
+/* Add VBOOT VBNV offsets. */
+void lb_table_add_vbnv_cmos(struct lb_header *header);
+
#endif /* COREBOOT_TABLES_H */
diff --git a/src/lib/coreboot_table.c b/src/lib/coreboot_table.c
index 00d73a009b..5f8c69bf2a 100644
--- a/src/lib/coreboot_table.c
+++ b/src/lib/coreboot_table.c
@@ -20,7 +20,6 @@
#include <bootmem.h>
#include <bootsplash.h>
#include <spi_flash.h>
-#include <security/vboot/vbnv_layout.h>
#include <smmstore.h>
#if CONFIG(USE_OPTION_TABLE)
@@ -189,17 +188,6 @@ static void lb_gpios(struct lb_header *header)
}
}
-static void lb_vbnv(struct lb_header *header)
-{
- struct lb_range *vbnv;
-
- vbnv = (struct lb_range *)lb_new_record(header);
- vbnv->tag = LB_TAG_VBNV;
- vbnv->size = sizeof(*vbnv);
- vbnv->range_start = CONFIG_VBOOT_VBNV_OFFSET + 14;
- vbnv->range_size = VBOOT_VBNV_BLOCK_SIZE;
-}
-
__weak uint32_t board_id(void) { return UNDEFINED_STRAPPING_ID; }
__weak uint32_t ram_code(void) { return UNDEFINED_STRAPPING_ID; }
__weak uint32_t sku_id(void) { return UNDEFINED_STRAPPING_ID; }
@@ -487,8 +475,8 @@ static uintptr_t write_coreboot_table(uintptr_t rom_table_end)
lb_gpios(head);
/* pass along VBNV offsets in CMOS */
- if (CONFIG(CHROMEOS) && CONFIG(PC80_SYSTEM))
- lb_vbnv(head);
+ if (CONFIG(VBOOT_VBNV_CMOS))
+ lb_table_add_vbnv_cmos(head);
/* Pass mmc early init status */
lb_mmc_info(head);
diff --git a/src/security/vboot/vbnv_cmos.c b/src/security/vboot/vbnv_cmos.c
index a719bb1774..35e4c410da 100644
--- a/src/security/vboot/vbnv_cmos.c
+++ b/src/security/vboot/vbnv_cmos.c
@@ -1,6 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <bootstate.h>
+#include <boot/coreboot_tables.h>
#include <console/console.h>
#include <types.h>
#include <pc80/mc146818rtc.h>
@@ -86,6 +87,17 @@ void vbnv_init_cmos(uint8_t *vbnv_copy)
}
}
+void lb_table_add_vbnv_cmos(struct lb_header *header)
+{
+ struct lb_range *vbnv;
+
+ vbnv = (struct lb_range *)lb_new_record(header);
+ vbnv->tag = LB_TAG_VBNV;
+ vbnv->size = sizeof(*vbnv);
+ vbnv->range_start = CONFIG_VBOOT_VBNV_OFFSET + 14;
+ vbnv->range_size = VBOOT_VBNV_BLOCK_SIZE;
+}
+
#if CONFIG(VBOOT_VBNV_CMOS_BACKUP_TO_FLASH)
static void back_up_vbnv_cmos(void *unused)
{