vboot: Fix linking error with USE_OPTION_TABLE enabled

Fix a linking problem with VBOOT and USE_OPTION_TABLE enabled.
Make use of cbfs_locate_file_in_region() and always search the
cmos_layout.bin in the 'COREBOOT' region.

With this change applied there's no need to include the vboot_locator
in SMM any more, we can't break NVRAM with different CMOS layouts,
and we keep VBOOT and non VBOOT behaviour the same.

Only include cmos_layout.bin and cmos.default in RO region.

Add notes explaining the decisions.

Tested on Intel Sandybridge, builds and boots with vboot enabled.

Change-Id: I10ae94d7936581bbb5ea49384122062bd4934ea5
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/26863
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Patrick Rudolph
2018-06-05 15:12:56 +02:00
committed by Patrick Georgi
parent 7837c203d6
commit 9554b26f9f
3 changed files with 66 additions and 13 deletions

View File

@ -321,6 +321,11 @@ extern const struct cbfs_locator vboot_locator;
static const struct cbfs_locator *locators[] = {
#if IS_ENABLED(CONFIG_VBOOT)
/*
* NOTE: Does not link in SMM, as the vboot_locator isn't compiled.
* ATM there's no need for VBOOT functionality in SMM and it's not
* a problem.
*/
&vboot_locator,
#endif
&cbfs_master_header_locator,