vboot: Introduce kconfig variable for VBNV backing storage

This introduces a new kconfig variable to select the VBNV backing
store explicitly instead of inferring it from CPU/SoC architecture.

x86 platforms have historically relied only on CMOS to store VBNV
variables, while ARM-based platforms have traditionally relied on
the EC. Neither of those solutions are going to scale well into
the future if/when CMOS disappears and we make ARM-based systems
without an EC.

BUG=chrome-os-partner:29546
BRANCH=none
TEST=compiled for nyan_blaze and samus

Signed-off-by: David Hendricks <dhendrix@chromium.org>
Change-Id: I4a8dadfb6bb666baf1ed4bec98b29c145dc4a1e7
Reviewed-on: https://chromium-review.googlesource.com/213877
Reviewed-by: Stefan Reinauer <reinauer@google.com>
Commit-Queue: Vadim Bendebury <vbendeb@chromium.org>
Tested-by: Vadim Bendebury <vbendeb@chromium.org>
This commit is contained in:
David Hendricks 2014-08-22 15:40:15 -07:00 committed by chrome-internal-fetch
commit d088fc71b2
30 changed files with 42 additions and 6 deletions

View file

@ -38,6 +38,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select DDR3_SOLDERED_DOWN
select EARLY_CBMEM_INIT
select CHROMEOS
select CHROMEOS_VBNV_CMOS
config GFXUMA
bool

View file

@ -15,6 +15,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select MMCONF_SUPPORT
select HAVE_SMI_HANDLER
select CHROMEOS
select CHROMEOS_VBNV_CMOS
select EXTERNAL_MRC_BLOB
select CACHE_ROM
select MARK_GRAPHICS_MEM_WRCOMB

View file

@ -16,6 +16,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select MMCONF_SUPPORT
select HAVE_SMI_HANDLER
select CHROMEOS
select CHROMEOS_VBNV_CMOS
select EXTERNAL_MRC_BLOB
select CACHE_ROM
select MARK_GRAPHICS_MEM_WRCOMB

View file

@ -15,6 +15,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select HAVE_SMI_HANDLER
select GFXUMA
select CHROMEOS
select CHROMEOS_VBNV_CMOS
select EXTERNAL_MRC_BLOB
select EARLY_CBMEM_INIT

View file

@ -28,6 +28,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select BOARD_ROMSIZE_KB_4096
select DRIVER_MAXIM_MAX77686
select CHROMEOS
select CHROMEOS_VBNV_EC
select DRIVER_TI_TPS65090
select MAINBOARD_HAS_NATIVE_VGA_INIT
select MAINBOARD_DO_NATIVE_VGA_INIT

View file

@ -16,6 +16,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select MMCONF_SUPPORT
select HAVE_SMI_HANDLER
select CHROMEOS
select CHROMEOS_VBNV_CMOS
select EXTERNAL_MRC_BLOB
select CACHE_ROM
select MARK_GRAPHICS_MEM_WRCOMB

View file

@ -15,6 +15,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select HAVE_SMI_HANDLER
select GFXUMA
select CHROMEOS
select CHROMEOS_VBNV_CMOS
select EXTERNAL_MRC_BLOB
select SERIRQ_CONTINUOUS_MODE
select MAINBOARD_HAS_NATIVE_VGA_INIT

View file

@ -22,6 +22,7 @@ if BOARD_GOOGLE_NYAN
config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y
select CHROMEOS
select CHROMEOS_VBNV_EC
select EC_GOOGLE_CHROMEEC
select EC_GOOGLE_CHROMEEC_SPI
select EC_SOFTWARE_SYNC

View file

@ -23,6 +23,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y
select BOARD_ID_SUPPORT
select CHROMEOS
select CHROMEOS_VBNV_EC
select EC_GOOGLE_CHROMEEC
select EC_GOOGLE_CHROMEEC_SPI
select EC_SOFTWARE_SYNC

View file

@ -23,6 +23,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y
select BOARD_ID_SUPPORT
select CHROMEOS
select CHROMEOS_VBNV_EC
select EC_GOOGLE_CHROMEEC
select EC_GOOGLE_CHROMEEC_SPI
select EC_SOFTWARE_SYNC

View file

@ -15,6 +15,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select MMCONF_SUPPORT
select HAVE_SMI_HANDLER
select CHROMEOS
select CHROMEOS_VBNV_CMOS
select EXTERNAL_MRC_BLOB
select CACHE_ROM
select MARK_GRAPHICS_MEM_WRCOMB

View file

@ -15,6 +15,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select HAVE_SMI_HANDLER
select GFXUMA
select CHROMEOS
select CHROMEOS_VBNV_CMOS
select EXTERNAL_MRC_BLOB
select EARLY_CBMEM_INIT

View file

@ -27,6 +27,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select EC_GOOGLE_CHROMEEC_SPI
select BOARD_ROMSIZE_KB_4096
select CHROMEOS
select CHROMEOS_VBNV_EC
select MAINBOARD_HAS_NATIVE_VGA_INIT
select MAINBOARD_DO_NATIVE_VGA_INIT
select DRIVER_PARADE_PS8625

View file

@ -16,6 +16,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select MMCONF_SUPPORT
select HAVE_SMI_HANDLER
select CHROMEOS
select CHROMEOS_VBNV_CMOS
select EXTERNAL_MRC_BLOB
select CACHE_ROM
select MARK_GRAPHICS_MEM_WRCOMB

View file

@ -12,6 +12,7 @@ config BOARD_SPECIFIC_OPTIONS
select HAVE_OPTION_TABLE
select HAVE_ACPI_RESUME
select CHROMEOS
select CHROMEOS_VBNV_CMOS
select ALWAYS_LOAD_OPROM
config VBOOT_RAMSTAGE_INDEX

View file

@ -23,6 +23,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y
select BOARD_ID_SUPPORT
select CHROMEOS
select CHROMEOS_VBNV_EC
select EC_GOOGLE_CHROMEEC
select EC_GOOGLE_CHROMEEC_SPI
select EC_SOFTWARE_SYNC

View file

@ -23,6 +23,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y
select BOARD_ID_SUPPORT
select CHROMEOS
select CHROMEOS_VBNV_EC
select EC_GOOGLE_CHROMEEC
select EC_GOOGLE_CHROMEEC_I2C
select EC_GOOGLE_CHROMEEC_I2C_PROTO3

View file

@ -13,6 +13,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select MMCONF_SUPPORT
select HAVE_SMI_HANDLER
select CHROMEOS
select CHROMEOS_VBNV_CMOS
select EXTERNAL_MRC_BLOB
select CACHE_ROM
select MARK_GRAPHICS_MEM_WRCOMB

View file

@ -16,6 +16,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select MMCONF_SUPPORT
select HAVE_SMI_HANDLER
select CHROMEOS
select CHROMEOS_VBNV_CMOS
select EXTERNAL_MRC_BLOB
select CACHE_ROM
select MARK_GRAPHICS_MEM_WRCOMB

View file

@ -14,6 +14,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select HAVE_SMI_HANDLER
select GFXUMA
select CHROMEOS
select CHROMEOS_VBNV_CMOS
select EXTERNAL_MRC_BLOB
config MAINBOARD_DIR

View file

@ -22,6 +22,7 @@ if BOARD_GOOGLE_VEYRON
config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y
select CHROMEOS
select CHROMEOS_VBNV_EC
select EC_GOOGLE_CHROMEEC
select EC_GOOGLE_CHROMEEC_SPI
select SOC_ROCKCHIP_RK3288

View file

@ -13,6 +13,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select MMCONF_SUPPORT
select HAVE_SMI_HANDLER
select CHROMEOS
select CHROMEOS_VBNV_CMOS
select EXTERNAL_MRC_BLOB
select LAPIC_MONOTONIC_TIMER

View file

@ -9,6 +9,7 @@ config BOARD_SPECIFIC_OPTIONS
select HAVE_OPTION_TABLE
select HAVE_ACPI_RESUME
select CHROMEOS
select CHROMEOS_VBNV_CMOS
select MARK_GRAPHICS_MEM_WRCOMB
config MAINBOARD_DIR

View file

@ -13,6 +13,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select MMCONF_SUPPORT
select GFXUMA
#select CHROMEOS
#select CHROMEOS_VBNV_CMOS
select EXTERNAL_MRC_BLOB
select EARLY_CBMEM_INIT

View file

@ -10,6 +10,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select MMCONF_SUPPORT
select HAVE_SMI_HANDLER
select CHROMEOS
select CHROMEOS_VBNV_CMOS
select EXTERNAL_MRC_BLOB
select CACHE_ROM
select MARK_GRAPHICS_MEM_WRCOMB

View file

@ -10,6 +10,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select MMCONF_SUPPORT
select HAVE_SMI_HANDLER
select CHROMEOS
select CHROMEOS_VBNV_CMOS
select EXTERNAL_MRC_BLOB
select CACHE_ROM
select MARK_GRAPHICS_MEM_WRCOMB

View file

@ -4,6 +4,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y
select BOARD_ROMSIZE_KB_8192
select CHROMEOS
select CHROMEOS_VBNV_CMOS
select CPU_INTEL_SOCKET_RPGA989
select EC_SMSC_MEC1308
select EXTERNAL_MRC_BLOB

View file

@ -4,6 +4,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y
select BOARD_ROMSIZE_KB_8192
select CHROMEOS
select CHROMEOS_VBNV_CMOS
select CPU_INTEL_SOCKET_RPGA989
select EXTERNAL_MRC_BLOB
select GFXUMA

View file

@ -44,6 +44,16 @@ config VBNV_SIZE
CMOS storage size for VbNv data. This value must match cmos.layout
in the mainboard directory.
config CHROMEOS_VBNV_CMOS
def_bool n
help
VBNV is stored in CMOS
config CHROMEOS_VBNV_EC
def_bool n
help
VBNV is stored in EC
config CHROMEOS_RAMOOPS
bool "Reserve space for Chrome OS ramoops"
default y

View file

@ -19,12 +19,10 @@
romstage-y += chromeos.c
ramstage-y += chromeos.c
romstage-$(CONFIG_ARCH_ROMSTAGE_X86_32) += vbnv_cmos.c
ramstage-$(CONFIG_ARCH_RAMSTAGE_X86_32) += vbnv_cmos.c
romstage-$(CONFIG_ARCH_ROMSTAGE_ARM) += vbnv_ec.c
ramstage-$(CONFIG_ARCH_RAMSTAGE_ARM) += vbnv_ec.c
romstage-$(CONFIG_ARCH_ROMSTAGE_ARM64) += vbnv_ec.c
ramstage-$(CONFIG_ARCH_RAMSTAGE_ARM64) += vbnv_ec.c
romstage-$(CONFIG_CHROMEOS_VBNV_CMOS) += vbnv_cmos.c
ramstage-$(CONFIG_CHROMEOS_VBNV_CMOS) += vbnv_cmos.c
romstage-$(CONFIG_CHROMEOS_VBNV_EC) += vbnv_ec.c
ramstage-$(CONFIG_CHROMEOS_VBNV_EC) += vbnv_ec.c
romstage-$(CONFIG_ARCH_ROMSTAGE_X86_32) += vboot.c
ramstage-$(CONFIG_ELOG) += elog.c
ramstage-y += gnvs.c