| # 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 |