vpl: Add Kconfig options for VPL

Add VPL versions of commonly used Kconfig options.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2022-04-30 00:56:53 -06:00 committed by Tom Rini
parent f86ca5ad8f
commit 747093dd40
18 changed files with 612 additions and 4 deletions

10
Kconfig
View file

@ -319,6 +319,16 @@ config VALGRIND
it can be handled accurately by Valgrind. If you aren't planning on
using valgrind to debug U-Boot, say 'n'.
config VPL_SYS_MALLOC_F_LEN
hex "Size of malloc() pool in VPL before relocation"
depends on SYS_MALLOC_F && VPL
default SYS_MALLOC_F_LEN
help
Before relocation, memory is very limited on many platforms. Still,
we can provide a small malloc() pool if needed. Driver model in
particular needs this to operate, so that it can allocate the
initial serial device and any others that are needed.
menuconfig EXPERT
bool "Configure standard U-Boot features (expert users)"
default y

View file

@ -89,6 +89,15 @@ config TPL_LOGLEVEL
int
default LOGLEVEL
config VPL_LOGLEVEL
int "loglevel for VPL"
default LOGLEVEL
help
All Messages with a loglevel smaller than the console loglevel will
be compiled in to VPL. See LOGLEVEL for a list of available log
levels. Setting this to a value above 4 may increase the code size
significantly.
config SILENT_CONSOLE
bool "Support a silent console"
help
@ -262,6 +271,15 @@ config LOG
if LOG
config VPL_LOG
bool "Enable logging support in VPL"
depends on LOG
help
This enables support for logging of status and debug messages. These
can be displayed on the console, recorded in a memory buffer, or
discarded if not needed. Logging supports various categories and
levels of severity.
config LOG_MAX_LEVEL
int "Maximum log level to record"
default 6
@ -431,6 +449,47 @@ config TPL_LOG_CONSOLE
endif
config VPL_LOG
bool "Enable logging support in VPL"
depends on LOG
help
This enables support for logging of status and debug messages. These
can be displayed on the console, recorded in a memory buffer, or
discarded if not needed. Logging supports various categories and
levels of severity.
if VPL_LOG
config VPL_LOG_MAX_LEVEL
int "Maximum log level to record in VPL"
default 3
help
This selects the maximum log level that will be recorded. Any value
higher than this will be ignored. If possible log statements below
this level will be discarded at build time. Levels:
0 - emergency
1 - alert
2 - critical
3 - error
4 - warning
5 - note
6 - info
7 - debug
8 - debug content
9 - debug hardware I/O
config VPL_LOG_CONSOLE
bool "Allow log output to the console in VPL"
default y
help
Enables a log driver which writes log records to the console.
Generally the console is the serial port or LCD display. Only the
log message is shown - other details like level, category, file and
line number are omitted.
endif
config LOG_ERROR_RETURN
bool "Log all functions which return an error"
help
@ -777,6 +836,14 @@ config TPL_BLOBLIST
This enables a bloblist in TPL. The bloblist is set up in TPL and
passed to SPL and U-Boot proper.
config VPL_BLOBLIST
bool "Support for a bloblist in VPL"
depends on BLOBLIST && VPL_LIBGENERIC_SUPPORT && VPL_LIBCOMMON_SUPPORT
default y if VPL
help
This enables a bloblist in VPL. The bloblist is set up in VPL and
passed to SPL and U-Boot proper.
if BLOBLIST
choice

View file

@ -189,6 +189,13 @@ config SPL_BOARD_INIT
spl_board_init() from board_init_r(). This function should be
provided by the board.
config VPL_BOARD_INIT
bool "Call board-specific initialization in VPL"
help
If this option is enabled, U-Boot will call the function
spl_board_init() from board_init_r(). This function should be
provided by the board.
config SPL_BOOTROM_SUPPORT
bool "Support returning to the BOOTROM"
help
@ -1632,6 +1639,218 @@ config TPL_YMODEM_SUPPORT
endif # TPL
config VPL
bool
depends on SUPPORT_SPL
prompt "Enable VPL"
help
If you want to build VPL as well as the normal image, TPL and SPL,
say Y.
if VPL
config VPL_BANNER_PRINT
bool "Enable output of the VPL banner 'U-Boot VPL ...'"
depends on VPL
default y
help
If this option is enabled, VPL will print the banner with version
info. Disabling this option could be useful to reduce VPL boot time
(e.g. approx. 6 ms faster, when output on i.MX6 with 115200 baud).
config VPL_BOARD_INIT
bool "Call board-specific initialization in VPL"
help
If this option is enabled, U-Boot will call the function
spl_board_init() from board_init_r(). This function should be
provided by the board.
config VPL_CACHE
depends on CACHE
bool "Support cache drivers in VPL"
help
Enable support for cache drivers in VPL.
config VPL_CRC32
bool "Support CRC32 in VPL"
default y if VPL_ENV_SUPPORT || VPL_BLOBLIST
help
Enable this to support CRC32 in uImages or FIT images within VPL.
This is a 32-bit checksum value that can be used to verify images.
For FIT images, this is the least secure type of checksum, suitable
for detected accidental image corruption. For secure applications you
should consider SHA1 or SHA256.
config VPL_DM_SPI
bool "Support SPI DM drivers in VPL"
help
Enable support for SPI DM drivers in VPL.
config VPL_DM_SPI_FLASH
bool "Support SPI DM FLASH drivers in VPL"
help
Enable support for SPI DM flash drivers in VPL.
config VPL_FRAMEWORK
bool "Support VPL based upon the common SPL framework"
default y
help
Enable the SPL framework under common/spl/ for VPL builds.
This framework supports MMC, NAND and YMODEM and other methods
loading of U-Boot's next stage. If unsure, say Y.
config VPL_HANDOFF
bool "Pass hand-off information from VPL to SPL"
depends on HANDOFF && VPL_BLOBLIST
default y
help
This option enables VPL to write handoff information. This can be
used to pass information like the size of SDRAM from VPL to SPL. Also
VPL can receive information from TPL in the same place if that is
enabled.
config VPL_LIBCOMMON_SUPPORT
bool "Support common libraries"
default y if SPL_LIBCOMMON_SUPPORT
help
Enable support for common U-Boot libraries within VPL. See
SPL_LIBCOMMON_SUPPORT for details.
config VPL_LIBGENERIC_SUPPORT
bool "Support generic libraries"
default y if SPL_LIBGENERIC_SUPPORT
help
Enable support for generic U-Boot libraries within VPL. These
libraries include generic code to deal with device tree, hashing,
printf(), compression and the like. This option is enabled on many
boards. Enable this option to build the code in lib/ as part of a
VPL build.
config VPL_DRIVERS_MISC
bool "Support misc drivers"
default y if TPL_DRIVERS_MISC
help
Enable miscellaneous drivers in VPL. These drivers perform various
tasks that don't fall nicely into other categories, Enable this
option to build the drivers in drivers/misc as part of a VPL
build, for those that support building in VPL (not all drivers do).
config VPL_ENV_SUPPORT
bool "Support an environment"
help
Enable environment support in VPL. The U-Boot environment provides
a number of settings (essentially name/value pairs) which can
control many aspects of U-Boot's operation. Enabling this option will
make env_get() and env_set() available in VSPL.
config VPL_GPIO
bool "Support GPIO in VPL"
default y if SPL_GPIO
help
Enable support for GPIOs (General-purpose Input/Output) in VPL.
GPIOs allow U-Boot to read the state of an input line (high or
low) and set the state of an output line. This can be used to
drive LEDs, control power to various system parts and read user
input. GPIOs can be useful in VPL to enable a 'sign-of-life' LED,
for example. Enable this option to build the drivers in
drivers/gpio as part of a VPL build.
config VPL_HANDOFF
bool "Pass hand-off information from VPL to SPL and U-Boot proper"
depends on HANDOFF && VPL_BLOBLIST
default y
help
This option enables VPL to write handoff information. This can be
used to pass information like the size of SDRAM from VPL to U-Boot
proper. The information is also available to VPL if it is useful
there.
config VPL_HASH
bool "Support hashing drivers in VPL"
depends on VPL
select SHA1
select SHA256
help
Enable hashing drivers in VPL. These drivers can be used to
accelerate secure boot processing in secure applications. Enable
this option to build system-specific drivers for hash acceleration
as part of a VPL build.
config VPL_I2C_SUPPORT
bool "Support I2C in VPL"
default y if SPL_I2C_SUPPORT
help
Enable support for the I2C bus in VPL. Vee SPL_I2C_SUPPORT for
details.
config VPL_PCH_SUPPORT
bool "Support PCH drivers"
default y if TPL_PCH_SUPPORT
help
Enable support for PCH (Platform Controller Hub) devices in VPL.
These are used to set up GPIOs and the SPI peripheral early in
boot. This enables the drivers in drivers/pch as part of a VPL
build.
config VPL_PCI
bool "Support PCI drivers"
default y if SPL_PCI
help
Enable support for PCI in VPL. For platforms that need PCI to boot,
or must perform some init using PCI in VPL, this provides the
necessary driver support. This enables the drivers in drivers/pci
as part of a VPL build.
config VPL_RTC
bool "Support RTC drivers"
help
Enable RTC (Real-time Clock) support in VPL. This includes support
for reading and setting the time. Some RTC devices also have some
non-volatile (battery-backed) memory which is accessible if
needed. This enables the drivers in drivers/rtc as part of a VPL
build.
config VPL_SERIAL
bool "Support serial"
default y if TPL_SERIAL
select VPL_PRINTF
select VPL_STRTO
help
Enable support for serial in VPL. See SPL_SERIAL_SUPPORT for
details.
config VPL_SIZE_LIMIT
hex "Maximum size of VPL image"
depends on VPL
default 0x0
help
Specifies the maximum length of the U-Boot VPL image.
If this value is zero, it is ignored.
config VPL_SPI
bool "Support SPI drivers"
help
Enable support for using SPI in VPL. See SPL_SPI_SUPPORT for
details.
config VPL_SPI_FLASH_SUPPORT
bool "Support SPI flash drivers"
help
Enable support for using SPI flash in VPL, and loading U-Boot from
SPI flash. SPI flash (Serial Peripheral Bus flash) is named after
the SPI bus that is used to connect it to a system. It is a simple
but fast bidirectional 4-wire bus (clock, chip select and two data
lines). This enables the drivers in drivers/mtd/spi as part of a
VPL build. This normally requires VPL_SPI_SUPPORT.
config VPL_TEXT_BASE
hex "VPL Text Base"
default 0x0
help
The address in memory that VPL will be running from.
endif # VPL
config SPL_AT91_MCK_BYPASS
bool "Use external clock signal as a source of main clock for AT91 platforms"
depends on ARCH_AT91

View file

@ -39,6 +39,18 @@ config TPL_BLK
be partitioned into several areas, called 'partitions' in U-Boot.
A filesystem can be placed in each partition.
config VPL_BLK
bool "Support block devices in VPL"
depends on VPL_DM && BLK
default y
help
Enable support for block devices, such as SCSI, MMC and USB
flash sticks. These provide a block-level interface which permits
reading, writing and (in some cases) erasing blocks. Block
devices often have a partition table which allows the device to
be partitioned into several areas, called 'partitions' in U-Boot.
A filesystem can be placed in each partition.
config BLOCK_CACHE
bool "Use block device cache"
depends on BLK

View file

@ -30,6 +30,32 @@ config TPL_CLK
setting up clocks within TPL, and allows the same drivers to be
used as U-Boot proper.
config VPL_CLK
bool "Enable clock support in VPL"
depends on CLK && VPL_DM
help
The clock subsystem adds a small amount of overhead to the image.
If this is acceptable and you have a need to use clock drivers in
SPL, enable this option. It might provide a cleaner interface to
setting up clocks within TPL, and allows the same drivers to be
used as U-Boot proper.
config CLK_BCM6345
bool "Clock controller driver for BCM6345"
depends on CLK && ARCH_BMIPS
default y
help
This clock driver adds support for enabling and disabling peripheral
clocks on BCM6345 SoCs. HW has no rate changing capabilities.
config CLK_BOSTON
def_bool y if TARGET_BOSTON
depends on CLK
select REGMAP
select SYSCON
help
Enable this to support the clocks
config SPL_CLK_CCF
bool "SPL Common Clock Framework [CCF] support "
depends on SPL

View file

@ -35,6 +35,16 @@ config TPL_DM
CONFIG_SPL_SYS_MALLOC_F_LEN for more details on how to enable it.
Disable this for very small implementations.
config VPL_DM
bool "Enable Driver Model for VPL"
depends on DM && VPL
default y if SPL_DM
help
Enable driver model in VPL. You will need to provide a
suitable malloc() implementation. If you are not using the
full malloc() enabled by CONFIG_SYS_SPL_MALLOC_START,
consider using CONFIG_SYS_MALLOC_SIMPLE.
config DM_WARN
bool "Enable warnings in driver model"
depends on DM
@ -121,6 +131,15 @@ config SPL_DM_SEQ_ALIAS
numbered devices (e.g. serial0 = &serial0). This feature can be
disabled if it is not required, to save code space in SPL.
config VPL_DM_SEQ_ALIAS
bool "Support numbered aliases in device tree in VPL"
depends on VPL_DM
default y
help
Most boards will have a '/aliases' node containing the path to
numbered devices (e.g. serial0 = &serial0). This feature can be
disabled if it is not required, to save code space in VPL.
config SPL_DM_INLINE_OFNODE
bool "Inline some ofnode functions which are seldom used in SPL"
depends on SPL_DM
@ -176,6 +195,16 @@ config TPL_REGMAP
support any bus type (I2C, SPI) but so far this only supports
direct memory access.
config VPL_REGMAP
bool "Support register maps in VPL"
depends on VPL_DM
help
Hardware peripherals tend to have one or more sets of registers
which can be accessed to control the hardware. A register map
models this with a simple read/write interface. It can in principle
support any bus type (I2C, SPI) but so far this only supports
direct memory access.
config SYSCON
bool "Support system controllers"
depends on REGMAP
@ -196,7 +225,16 @@ config SPL_SYSCON
config TPL_SYSCON
bool "Support system controllers in TPL"
depends on TPL_REGMAP
depends on SPL_REGMAP
help
Many SoCs have a number of system controllers which are dealt with
as a group by a single driver. Some common functionality is provided
by this uclass, including accessing registers via regmap and
assigning a unique number to each.
config VPL_SYSCON
bool "Support system controllers in VPL"
depends on VPL_REGMAP
help
Many SoCs have a number of system controllers which are dealt with
as a group by a single driver. Some common functionality is provided
@ -292,6 +330,20 @@ config SPL_OF_TRANSLATE
used for the address translation. This function is faster and
smaller in size than fdt_translate_address().
config VPL_OF_TRANSLATE
bool "Translate addresses using fdt_translate_address in SPL"
depends on SPL_DM && VPL_OF_CONTROL
help
If this option is enabled, the reg property will be translated
using the fdt_translate_address() function. This is necessary
on some platforms (e.g. MVEBU) using complex "ranges"
properties in many nodes. As this translation is not handled
correctly in the default simple_bus_translate() function.
If this option is not enabled, simple_bus_translate() will be
used for the address translation. This function is faster and
smaller in size than fdt_translate_address().
config TRANSLATION_OFFSET
bool "Platforms specific translation offset"
depends on DM && OF_CONTROL

View file

@ -5,7 +5,7 @@
obj-y += device.o fdtaddr.o lists.o root.o uclass.o util.o tag.o
obj-$(CONFIG_$(SPL_TPL_)ACPIGEN) += acpi.o
obj-$(CONFIG_$(SPL_TPL_)DEVRES) += devres.o
obj-$(CONFIG_$(SPL_)DM_DEVICE_REMOVE) += device-remove.o
obj-$(CONFIG_$(SPL_TPL_)DM_DEVICE_REMOVE) += device-remove.o
obj-$(CONFIG_$(SPL_)SIMPLE_BUS) += simple-bus.o
obj-$(CONFIG_SIMPLE_PM_BUS) += simple-pm-bus.o
obj-$(CONFIG_DM) += dump.o

View file

@ -48,6 +48,17 @@ config TPL_DM_GPIO
particular GPIOs that they provide. The uclass interface
is defined in include/asm-generic/gpio.h.
config VPL_DM_GPIO
bool "Enable Driver Model for GPIO drivers in VPL"
depends on DM_GPIO && VPL_DM && VPL_GPIO
default y
help
Enable driver model for GPIO access in VPL. The standard GPIO
interface (gpio_get_value(), etc.) is then implemented by
the GPIO uclass. Drivers provide methods to query the
particular GPIOs that they provide. The uclass interface
is defined in include/asm-generic/gpio.h.
config GPIO_HOG
bool "Enable GPIO hog support"
depends on DM_GPIO

View file

@ -47,6 +47,17 @@ config SPL_DM_I2C
device (bus child) info is kept as parent platdata. The interface
is defined in include/i2c.h.
config VPL_DM_I2C
bool "Enable Driver Model for I2C drivers in VPL"
depends on VPL_DM && DM_I2C
default y
help
Enable driver model for I2C. The I2C uclass interface: probe, read,
write and speed, is implemented with the bus drivers operations,
which provide methods for bus setting and data transfer. Each chip
device (bus child) info is kept as parent platdata. The interface
is defined in include/i2c.h.
config SYS_I2C_LEGACY
bool "Enable legacy I2C subsystem and drivers"
depends on !DM_I2C

View file

@ -131,6 +131,16 @@ config TPL_CROS_EC
control access to the battery and main PMIC depending on the
device. You can use the 'crosec' command to access it.
config VPL_CROS_EC
bool "Enable Chrome OS EC in VPL"
depends on VPL
help
Enable access to the Chrome OS EC in VPL. This is a separate
microcontroller typically available on a SPI bus on Chromebooks. It
provides access to the keyboard, some internal storage and may
control access to the battery and main PMIC depending on the
device. You can use the 'crosec' command to access it.
config CROS_EC_I2C
bool "Enable Chrome OS EC I2C driver"
depends on CROS_EC
@ -167,6 +177,15 @@ config TPL_CROS_EC_LPC
through a legacy port interface, so on x86 machines the main
function of the EC is power and thermal management.
config VPL_CROS_EC_LPC
bool "Enable Chrome OS EC LPC driver in VPL"
depends on CROS_EC
help
Enable I2C access to the Chrome OS EC. This is used on x86
Chromebooks such as link and falco. The keyboard is provided
through a legacy port interface, so on x86 machines the main
function of the EC is power and thermal management.
config CROS_EC_SANDBOX
bool "Enable Chrome OS EC sandbox driver"
depends on CROS_EC && SANDBOX
@ -194,6 +213,15 @@ config TPL_CROS_EC_SANDBOX
EC flash read/write/erase support and a few other things. It is
enough to perform a Chrome OS verified boot on sandbox.
config VPL_CROS_EC_SANDBOX
bool "Enable Chrome OS EC sandbox driver in VPL"
depends on VPL_CROS_EC && SANDBOX
help
Enable a sandbox emulation of the Chrome OS EC in VPL. This supports
keyboard (use the -l flag to enable the LCD), verified boot context,
EC flash read/write/erase support and a few other things. It is
enough to perform a Chrome OS verified boot on sandbox.
config CROS_EC_SPI
bool "Enable Chrome OS EC SPI driver"
depends on CROS_EC

View file

@ -89,20 +89,34 @@ config TPL_PINCTRL
This option is an TPL variant of the PINCTRL option.
See the help of PINCTRL for details.
config VPL_PINCTRL
bool "Support pin controllers in VPL"
depends on VPL && VPL_DM
help
This option is an VPL variant of the PINCTRL option.
See the help of PINCTRL for details.
config SPL_PINCTRL_FULL
bool "Support full pin controllers in SPL"
depends on SPL_PINCTRL && SPL_OF_CONTROL
default n if TARGET_STM32F746_DISCO
default y
help
This option is an SPL-variant of the PINCTRL_FULL option.
This option is an SPL variant of the PINCTRL_FULL option.
See the help of PINCTRL_FULL for details.
config TPL_PINCTRL_FULL
bool "Support full pin controllers in TPL"
depends on TPL_PINCTRL && TPL_OF_CONTROL
help
This option is an TPL-variant of the PINCTRL_FULL option.
This option is a TPL variant of the PINCTRL_FULL option.
See the help of PINCTRL_FULL for details.
config VPL_PINCTRL_FULL
bool "Support full pin controllers in VPL"
depends on VPL_PINCTRL && VPL_OF_CONTROL
help
This option is a VPL variant of the PINCTRL_FULL option.
See the help of PINCTRL_FULL for details.
config SPL_PINCTRL_GENERIC

View file

@ -32,6 +32,15 @@ config TPL_DM_RTC
drivers to perform the actual functions. See rtc.h for a
description of the API.
config VPL_DM_RTC
bool "Enable Driver Model for RTC drivers in VPL"
depends on VPL_DM
help
Enable drver model for real-time-clock drivers. The RTC uclass
then provides the rtc_get()/rtc_set() interface, delegating to
drivers to perform the actual functions. See rtc.h for a
description of the API.
config RTC_ENABLE_32KHZ_OUTPUT
bool "Enable RTC 32Khz output"
help

View file

@ -74,6 +74,16 @@ config TPL_SERIAL_PRESENT
This option enables the full UART in TPL, so if is it disabled,
the full UART driver will be omitted, thus saving space.
config VPL_SERIAL_PRESENT
bool "Provide a serial driver in VPL"
depends on DM_SERIAL && VPL
default y
help
In very space-constrained devices even the full UART driver is too
large. In this case the debug UART can still be used in some cases.
This option enables the full UART in TPL, so if is it disabled,
the full UART driver will be omitted, thus saving space.
# Logic to allow us to use the imply keyword to set what the default port
# should be. The default is otherwise 1.
config CONS_INDEX_0
@ -195,6 +205,16 @@ config TPL_DM_SERIAL
implements serial_putc() etc. The uclass interface is
defined in include/serial.h.
config VPL_DM_SERIAL
bool "Enable Driver Model for serial drivers in VPL"
depends on DM_SERIAL
default y if VPL && DM_SERIAL
help
Enable driver model for serial in VPL. This replaces
drivers/serial/serial.c with the serial uclass, which
implements serial_putc() etc. The uclass interface is
defined in include/serial.h.
config DEBUG_UART
bool "Enable an early debug UART for debugging"
help

View file

@ -31,6 +31,16 @@ config TPL_SYSRESET
to effect a reset. The uclass will try all available drivers when
reset_walk() is called.
config VPL_SYSRESET
bool "Enable support for system reset drivers in VPL mode"
depends on SYSRESET && VPL_DM
default y if TPL_SYSRESET
help
Enable system reset drivers which can be used to reset the CPU or
board. Each driver can provide a reset method which will be called
to effect a reset. The uclass will try all available drivers when
reset_walk() is called.
if SYSRESET
config SYSRESET_CMD_RESET

View file

@ -27,6 +27,16 @@ config TPL_TIMER
function. This enables the drivers in drivers/timer as part of an
TPL build.
config VPL_TIMER
bool "Enable driver model for timer drivers in VPL"
depends on TIMER && VPL
default y if TPL_TIMER
help
Enable support for timer drivers in VPL. These can be used to get
a timer value when in VPL, or perhaps for implementing a delay
function. This enables the drivers in drivers/timer as part of an
TPL build.
config TIMER_EARLY
bool "Allow timer to be used early in U-Boot"
depends on TIMER

View file

@ -137,6 +137,36 @@ config TPM2_CR50_I2C
trust for a device, It operates like a TPM and can be used with
verified boot. Cr50 is used on recent Chromebooks (since 2017).
config SPL_TPM2_CR50_I2C
bool "Enable support for Google cr50 TPM"
depends on DM_I2C && SPL_TPM
help
Cr50 is an implementation of a TPM on Google's H1 security chip.
This uses the same open-source firmware as the Chromium OS EC.
While Cr50 has other features, its primary role is as the root of
trust for a device, It operates like a TPM and can be used with
verified boot. Cr50 is used on recent Chromebooks (since 2017).
config TPL_TPM2_CR50_I2C
bool "Enable support for Google cr50 TPM"
depends on DM_I2C && TPL_TPM
help
Cr50 is an implementation of a TPM on Google's H1 security chip.
This uses the same open-source firmware as the Chromium OS EC.
While Cr50 has other features, its primary role is as the root of
trust for a device, It operates like a TPM and can be used with
verified boot. Cr50 is used on recent Chromebooks (since 2017).
config VPL_TPM2_CR50_I2C
bool "Enable support for Google cr50 TPM"
depends on DM_I2C && VPL_TPM
help
Cr50 is an implementation of a TPM on Google's H1 security chip.
This uses the same open-source firmware as the Chromium OS EC.
While Cr50 has other features, its primary role is as the root of
trust for a device, It operates like a TPM and can be used with
verified boot. Cr50 is used on recent Chromebooks (since 2017).
config TPM2_TIS_SANDBOX
bool "Enable sandbox TPMv2.x driver"
depends on TPM_V2 && SANDBOX

View file

@ -65,6 +65,15 @@ config TPL_OF_CONTROL
which is not enough to support device tree. Enable this option to
allow such boards to be supported by U-Boot TPL.
config VPL_OF_CONTROL
bool "Enable run-time configuration via Device Tree in VPL"
depends on VPL && OF_CONTROL
default y if SPL_OF_CONTROL
help
Some boards use device tree in U-Boot but only have 4KB of SRAM
which is not enough to support device tree. Enable this option to
allow such boards to be supported by U-Boot VPL.
config OF_LIVE
bool "Enable use of a live tree"
depends on DM && OF_CONTROL
@ -523,4 +532,12 @@ config TPL_OF_PLATDATA_DRIVER_RT
endif
config VPL_OF_REAL
def_bool y
help
Indicates that a real devicetree is available which can be accessed
at runtime. This means that dev_read_...() functions can be used to
read data from the devicetree for each device. This is true if
TPL_OF_CONTROL is enabled and not TPL_OF_PLATDATA
endmenu

View file

@ -90,6 +90,11 @@ config TPL_PRINTF
select TPL_SPRINTF
select TPL_STRTO if !TPL_USE_TINY_PRINTF
config VPL_PRINTF
bool
select VPL_SPRINTF
select VPL_STRTO if !VPL_USE_TINY_PRINTF
config SPRINTF
bool
default y
@ -100,6 +105,9 @@ config SPL_SPRINTF
config TPL_SPRINTF
bool
config VPL_SPRINTF
bool
config SSCANF
bool
@ -113,6 +121,9 @@ config SPL_STRTO
config TPL_STRTO
bool
config VPL_STRTO
bool
config IMAGE_SPARSE
bool
@ -165,6 +176,17 @@ config TPL_USE_TINY_PRINTF
The supported format specifiers are %c, %s, %u/%d and %x.
config VPL_USE_TINY_PRINTF
bool "Enable tiny printf() version for VPL"
depends on VPL
help
This option enables a tiny, stripped down printf version.
This should only be used in space limited environments,
like SPL versions with hard memory limits. This version
reduces the code size by about 2.5KiB on armv7.
The supported format specifiers are %c, %s, %u/%d and %x.
config PANIC_HANG
bool "Do not reset the system on fatal error"
help
@ -371,6 +393,17 @@ config TPL_TPM
for the low-level TPM interface, but only one TPM is supported at
a time by the TPM library.
config VPL_TPM
bool "Trusted Platform Module (TPM) Support in VPL"
depends on VPL_DM
help
This enables support for TPMs which can be used to provide security
features for your board. The TPM can be connected via LPC or I2C
and a sandbox TPM is provided for testing purposes. Use the 'tpm'
command to interactive the TPM. Driver model support is provided
for the low-level TPM interface, but only one TPM is supported at
a time by the TPM library.
endmenu
menu "Android Verified Boot"
@ -625,6 +658,12 @@ config SPL_LZMA
help
This enables support for LZMA compression algorithm for SPL boot.
config VPL_LZMA
bool "Enable LZMA decompression support for VPL build"
default y if LZMA
help
This enables support for LZMA compression algorithm for VPL boot.
config SPL_LZO
bool "Enable LZO decompression support in SPL"
help
@ -704,6 +743,7 @@ config OF_LIBFDT_OVERLAY
config SPL_OF_LIBFDT
bool "Enable the FDT library for SPL"
depends on SPL_LIBGENERIC_SUPPORT
default y if SPL_OF_CONTROL
help
This enables the FDT library (libfdt). It provides functions for
@ -725,6 +765,7 @@ config SPL_OF_LIBFDT_ASSUME_MASK
config TPL_OF_LIBFDT
bool "Enable the FDT library for TPL"
depends on TPL_LIBGENERIC_SUPPORT
default y if TPL_OF_CONTROL
help
This enables the FDT library (libfdt). It provides functions for
@ -744,6 +785,27 @@ config TPL_OF_LIBFDT_ASSUME_MASK
0xff means all assumptions are made and any invalid data may cause
unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
config VPL_OF_LIBFDT
bool "Enable the FDT library for VPL"
default y if VPL_OF_CONTROL && !VPL_OF_PLATDATA
help
This enables the FDT library (libfdt). It provides functions for
accessing binary device tree images in memory, such as adding and
removing nodes and properties, scanning through the tree and finding
particular compatible nodes. The library operates on a flattened
version of the device tree.
config VPL_OF_LIBFDT_ASSUME_MASK
hex "Mask of conditions to assume for libfdt"
depends on VPL_OF_LIBFDT || FIT
default 0xff
help
Use this to change the assumptions made by libfdt in SPL about the
device tree it is working with. A value of 0 means that no assumptions
are made, and libfdt is able to deal with malicious data. A value of
0xff means all assumptions are made and any invalid data may cause
unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
config FDT_FIXUP_PARTITIONS
bool "overwrite MTD partitions in DTS through defined in 'mtdparts'"
depends on OF_LIBFDT