blob: 12047d566d59050ac533587131956503880e7aa3 [file] [log] [blame]
# SPDX-License-Identifier: GPL-2.0+
#
# Copyright 2018 Google LLC
#
config CHROMEOS_VBOOT
bool "Enable Chromium OS verified boot support"
imply BINMAN if !SYS_COREBOOT
imply BLOBLIST
imply CHROMEOS_SPI
imply CROS_EC
imply CROS_EC_LPC if X86
imply CROS_FLAG
imply CROS_FLAG_GPIO
imply CROS_FLAG_CONST
imply CROS_FLAG_KEY
imply FWSTORE_SPI_FLASH
imply LOG
imply LZ4
imply NVDATA_CMOS if X86
imply NVDATA_CROS_EC if SANDBOX
imply NVDATA_TPM
imply SOUND
imply SPL_LZ4
imply TPM
imply TPM_V2
if CHROMEOS_VBOOT
config VBOOT_DISABLE_DEV_ON_RECOVERY
bool "Disable developer mode when going into recovery"
depends on CHROMEOS
config VBOOT_DEBUG
bool "Enable debugging for vboot"
depends on CHROMEOS
default y
config SPL_CHROMEOS
bool "Enable Chromium OS verified boot support in SPL"
depends on CHROMEOS
select SUPPORT_SPL
imply SPL
imply SPL_BLOBLIST
imply SPL_BOARD_INIT
imply SPL_CROS_EC
imply SPL_ENV_SUPPORT
imply SPL_DM
imply SPL_DRIVERS_MISC
imply SPL_FWSTORE_SPI_FLASH
imply SPL_GPIO
imply SPL_LIBCOMMON_SUPPORT
imply SPL_LIBGENERIC_SUPPORT
imply SPL_LOG
imply SPL_OF_CONTROL
imply SPL_REGMAP
imply SPL_SEPARATE_BSS
imply SPL_SERIAL_SUPPORT
imply SPL_SPI_FLASH_SUPPORT
imply SPL_SPI_SUPPORT
imply SPL_SYSCON
imply SPL_TIMER
config TPL_CHROMEOS
bool "Enable Chromium OS verified boot support in TPL"
depends on CHROMEOS
select SUPPORT_TPL
imply TPL
imply TPL_BLOBLIST
imply TPL_BOARD_INIT
imply TPL_CROS_EC
imply TPL_DM
imply TPL_DM_KEYBOARD
imply TPL_DRIVERS_MISC
imply TPL_GPIO
imply TPL_HASH_SUPPORT
imply TPL_INPUT
imply TPL_LIBCOMMON_SUPPORT
imply TPL_LIBGENERIC_SUPPORT
imply TPL_LOG
imply TPL_NVDATA_TPM
imply TPL_OF_CONTROL
imply TPL_REGMAP
imply TPL_SERIAL_SUPPORT
imply TPL_SYSCON
imply TPL_SYS_MALLOC_SIMPLE
imply TPL_TIMER
imply TPL_TPM
config VPL_CHROMEOS
bool "Enable Chromium OS verified boot support in VPL"
depends on CHROMEOS
select SUPPORT_VPL
imply VPL
imply VPL_BLOBLIST
imply VPL_BOARD_INIT
imply VPL_CROS_EC
imply VPL_CROS_EC_LPC if X86
imply VPL_DM
imply VPL_DM_KEYBOARD
imply VPL_DRIVERS_MISC
imply VPL_ENV_SUPPORT
imply VPL_FWSTORE_SPI_FLASH
imply VPL_HASH_SUPPORT
imply VPL_GPIO
imply VPL_HANDOFF
imply VPL_I2C_SUPPORT
imply VPL_INPUT
imply VPL_LIBCOMMON_SUPPORT
imply VPL_LIBGENERIC_SUPPORT
imply VPL_LOG
imply VPL_NVDATA_CMOS if X86
imply VPL_NVDATA_TPM
imply VPL_OF_CONTROL
imply VPL_PINCTRL
imply VPL_REGMAP
imply VPL_SERIAL_SUPPORT
imply VPL_SPI_FLASH_SUPPORT
imply VPL_SPI_SUPPORT
imply VPL_SYS_MALLOC_SIMPLE
imply VPL_SYSCON
imply VPL_TIMER
imply VPL_TPM
config TPL_CHROMEOS_VBOOT_A
bool "Run vboot stage A (SPL selection) in TPL"
default y if TPL && !VPL
imply TPL_FWSTORE_SPI_FLASH
imply TPL_NVDATA_TPM
imply TPL_TPM
config VPL_CHROMEOS_VBOOT_A
bool "Run vboot stage A (SPL selection) in VPL"
default y if VPL
imply VPL_FWSTORE_SPI_FLASH
imply VPL_NVDATA_TPM
imply VPL_TPM
config SPL_CHROMEOS_VBOOT_B
bool "Run vboot stage B (U-Boot selection) in SPL"
default y
config CHROMEOS_VBOOT_C
bool "Run vboot stage C (kernel selection) in U-Boot proper"
default y
choice
prompt "Select TPM version to use for vboot library"
help
The vboot library must be built for either TPM1 or TPM2. U-Boot may
support both, but U-Boot's TPM library is not actually used with
vboot, since it has its own library.
This affects the messages sent by the vboot library.
config CHROMEOS_TPM2
bool "TPM2"
help
Select this to use a version 2 TPM. This should be used for hardware
devices after about 2015, when Chrome OS switched over to using the
Cr50.
config CHROMEOS_TPM1
bool "TPM1"
help
Select this to use a version 1 TPM. This should be used for sandbox
since it currently has a better emulator for version 1 than version 2.
The sandbox emulator is tpm_tis_sandbox.c and it handles enough
messages to get through vboot successfully.
endchoice # "TPM version"
config CHROMEOS_COREBOOT
bool "Allow booting from coreboot"
help
In some cases it is desirable to boot U-Boot from coreboot and have
the verified boot flow continue. Enable this to provide access to CBFS
files and the vboot context, as used by coreboot.
config CHROMEOS_TEST
bool "Enable Chromium OS tests"
help
There are currently no tests specifically for the Chromium OS boot
flow, other than the large functional test of running it in sandbox.
This option currently does nothing, but the intention is that it will
enable building unit tests for each piece of functionality.
source "cros/cmd/Kconfig"
source "cros/flag/Kconfig"
source "cros/fwstore/Kconfig"
source "cros/nvdata/Kconfig"
endif # CHROMEOS_VBOOT