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:
		
							parent
							
								
									f86ca5ad8f
								
							
						
					
					
						commit
						747093dd40
					
				
							
								
								
									
										10
									
								
								Kconfig
								
								
								
								
							
							
						
						
									
										10
									
								
								Kconfig
								
								
								
								
							|  | @ -319,6 +319,16 @@ config VALGRIND | ||||||
| 	  it can be handled accurately by Valgrind. If you aren't planning on | 	  it can be handled accurately by Valgrind. If you aren't planning on | ||||||
| 	  using valgrind to debug U-Boot, say 'n'. | 	  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 | menuconfig EXPERT | ||||||
| 	bool "Configure standard U-Boot features (expert users)" | 	bool "Configure standard U-Boot features (expert users)" | ||||||
| 	default y | 	default y | ||||||
|  |  | ||||||
|  | @ -89,6 +89,15 @@ config TPL_LOGLEVEL | ||||||
| 	int | 	int | ||||||
| 	default LOGLEVEL | 	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 | config SILENT_CONSOLE | ||||||
| 	bool "Support a silent console" | 	bool "Support a silent console" | ||||||
| 	help | 	help | ||||||
|  | @ -262,6 +271,15 @@ config LOG | ||||||
| 
 | 
 | ||||||
| if 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 | config LOG_MAX_LEVEL | ||||||
| 	int "Maximum log level to record" | 	int "Maximum log level to record" | ||||||
| 	default 6 | 	default 6 | ||||||
|  | @ -431,6 +449,47 @@ config TPL_LOG_CONSOLE | ||||||
| 
 | 
 | ||||||
| endif | 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 | config LOG_ERROR_RETURN | ||||||
| 	bool "Log all functions which return an error" | 	bool "Log all functions which return an error" | ||||||
| 	help | 	help | ||||||
|  | @ -777,6 +836,14 @@ config TPL_BLOBLIST | ||||||
| 	  This enables a bloblist in TPL. The bloblist is set up in TPL and | 	  This enables a bloblist in TPL. The bloblist is set up in TPL and | ||||||
| 	  passed to SPL and U-Boot proper. | 	  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 | if BLOBLIST | ||||||
| 
 | 
 | ||||||
| choice | choice | ||||||
|  |  | ||||||
|  | @ -189,6 +189,13 @@ config SPL_BOARD_INIT | ||||||
| 	  spl_board_init() from board_init_r(). This function should be | 	  spl_board_init() from board_init_r(). This function should be | ||||||
| 	  provided by the board. | 	  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 | config SPL_BOOTROM_SUPPORT | ||||||
| 	bool "Support returning to the BOOTROM" | 	bool "Support returning to the BOOTROM" | ||||||
| 	help | 	help | ||||||
|  | @ -1632,6 +1639,218 @@ config TPL_YMODEM_SUPPORT | ||||||
| 
 | 
 | ||||||
| endif # TPL | 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 | config SPL_AT91_MCK_BYPASS | ||||||
| 	bool "Use external clock signal as a source of main clock for AT91 platforms" | 	bool "Use external clock signal as a source of main clock for AT91 platforms" | ||||||
| 	depends on ARCH_AT91 | 	depends on ARCH_AT91 | ||||||
|  |  | ||||||
|  | @ -39,6 +39,18 @@ config TPL_BLK | ||||||
| 	  be partitioned into several areas, called 'partitions' in U-Boot. | 	  be partitioned into several areas, called 'partitions' in U-Boot. | ||||||
| 	  A filesystem can be placed in each partition. | 	  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 | config BLOCK_CACHE | ||||||
| 	bool "Use block device cache" | 	bool "Use block device cache" | ||||||
| 	depends on BLK | 	depends on BLK | ||||||
|  |  | ||||||
|  | @ -30,6 +30,32 @@ config TPL_CLK | ||||||
| 	  setting up clocks within TPL, and allows the same drivers to be | 	  setting up clocks within TPL, and allows the same drivers to be | ||||||
| 	  used as U-Boot proper. | 	  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 | config SPL_CLK_CCF | ||||||
| 	bool "SPL Common Clock Framework [CCF] support " | 	bool "SPL Common Clock Framework [CCF] support " | ||||||
| 	depends on SPL | 	depends on SPL | ||||||
|  |  | ||||||
|  | @ -35,6 +35,16 @@ config TPL_DM | ||||||
| 	  CONFIG_SPL_SYS_MALLOC_F_LEN for more details on how to enable it. | 	  CONFIG_SPL_SYS_MALLOC_F_LEN for more details on how to enable it. | ||||||
| 	  Disable this for very small implementations. | 	  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 | config DM_WARN | ||||||
| 	bool "Enable warnings in driver model" | 	bool "Enable warnings in driver model" | ||||||
| 	depends on DM | 	depends on DM | ||||||
|  | @ -121,6 +131,15 @@ config SPL_DM_SEQ_ALIAS | ||||||
| 	  numbered devices (e.g. serial0 = &serial0). This feature can be | 	  numbered devices (e.g. serial0 = &serial0). This feature can be | ||||||
| 	  disabled if it is not required, to save code space in SPL. | 	  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 | config SPL_DM_INLINE_OFNODE | ||||||
| 	bool "Inline some ofnode functions which are seldom used in SPL" | 	bool "Inline some ofnode functions which are seldom used in SPL" | ||||||
| 	depends on SPL_DM | 	depends on SPL_DM | ||||||
|  | @ -176,6 +195,16 @@ config TPL_REGMAP | ||||||
| 	  support any bus type (I2C, SPI) but so far this only supports | 	  support any bus type (I2C, SPI) but so far this only supports | ||||||
| 	  direct memory access. | 	  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 | config SYSCON | ||||||
| 	bool "Support system controllers" | 	bool "Support system controllers" | ||||||
| 	depends on REGMAP | 	depends on REGMAP | ||||||
|  | @ -196,7 +225,16 @@ config SPL_SYSCON | ||||||
| 
 | 
 | ||||||
| config TPL_SYSCON | config TPL_SYSCON | ||||||
| 	bool "Support system controllers in TPL" | 	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 | 	help | ||||||
| 	  Many SoCs have a number of system controllers which are dealt with | 	  Many SoCs have a number of system controllers which are dealt with | ||||||
| 	  as a group by a single driver. Some common functionality is provided | 	  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 | 	  used for the address translation. This function is faster and | ||||||
| 	  smaller in size than fdt_translate_address(). | 	  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 | config TRANSLATION_OFFSET | ||||||
| 	bool "Platforms specific translation offset" | 	bool "Platforms specific translation offset" | ||||||
| 	depends on DM && OF_CONTROL | 	depends on DM && OF_CONTROL | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ | ||||||
| obj-y	+= device.o fdtaddr.o lists.o root.o uclass.o util.o tag.o | 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_)ACPIGEN) += acpi.o | ||||||
| obj-$(CONFIG_$(SPL_TPL_)DEVRES) += devres.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_$(SPL_)SIMPLE_BUS)	+= simple-bus.o | ||||||
| obj-$(CONFIG_SIMPLE_PM_BUS)	+= simple-pm-bus.o | obj-$(CONFIG_SIMPLE_PM_BUS)	+= simple-pm-bus.o | ||||||
| obj-$(CONFIG_DM)	+= dump.o | obj-$(CONFIG_DM)	+= dump.o | ||||||
|  |  | ||||||
|  | @ -48,6 +48,17 @@ config TPL_DM_GPIO | ||||||
| 	  particular GPIOs that they provide. The uclass interface | 	  particular GPIOs that they provide. The uclass interface | ||||||
| 	  is defined in include/asm-generic/gpio.h. | 	  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 | config GPIO_HOG | ||||||
| 	bool "Enable GPIO hog support" | 	bool "Enable GPIO hog support" | ||||||
| 	depends on DM_GPIO | 	depends on DM_GPIO | ||||||
|  |  | ||||||
|  | @ -47,6 +47,17 @@ config SPL_DM_I2C | ||||||
| 	  device (bus child) info is kept as parent platdata. The interface | 	  device (bus child) info is kept as parent platdata. The interface | ||||||
| 	  is defined in include/i2c.h. | 	  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 | config SYS_I2C_LEGACY | ||||||
| 	bool "Enable legacy I2C subsystem and drivers" | 	bool "Enable legacy I2C subsystem and drivers" | ||||||
| 	depends on !DM_I2C | 	depends on !DM_I2C | ||||||
|  |  | ||||||
|  | @ -131,6 +131,16 @@ config TPL_CROS_EC | ||||||
| 	  control access to the battery and main PMIC depending on the | 	  control access to the battery and main PMIC depending on the | ||||||
| 	  device. You can use the 'crosec' command to access it. | 	  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 | config CROS_EC_I2C | ||||||
| 	bool "Enable Chrome OS EC I2C driver" | 	bool "Enable Chrome OS EC I2C driver" | ||||||
| 	depends on CROS_EC | 	depends on CROS_EC | ||||||
|  | @ -167,6 +177,15 @@ config TPL_CROS_EC_LPC | ||||||
| 	  through a legacy port interface, so on x86 machines the main | 	  through a legacy port interface, so on x86 machines the main | ||||||
| 	  function of the EC is power and thermal management. | 	  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 | config CROS_EC_SANDBOX | ||||||
| 	bool "Enable Chrome OS EC sandbox driver" | 	bool "Enable Chrome OS EC sandbox driver" | ||||||
| 	depends on CROS_EC && SANDBOX | 	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 | 	  EC flash read/write/erase support and a few other things. It is | ||||||
| 	  enough to perform a Chrome OS verified boot on sandbox. | 	  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 | config CROS_EC_SPI | ||||||
| 	bool "Enable Chrome OS EC SPI driver" | 	bool "Enable Chrome OS EC SPI driver" | ||||||
| 	depends on CROS_EC | 	depends on CROS_EC | ||||||
|  |  | ||||||
|  | @ -89,20 +89,34 @@ config TPL_PINCTRL | ||||||
| 	  This option is an TPL variant of the PINCTRL option. | 	  This option is an TPL variant of the PINCTRL option. | ||||||
| 	  See the help of PINCTRL for details. | 	  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 | config SPL_PINCTRL_FULL | ||||||
| 	bool "Support full pin controllers in SPL" | 	bool "Support full pin controllers in SPL" | ||||||
| 	depends on SPL_PINCTRL && SPL_OF_CONTROL | 	depends on SPL_PINCTRL && SPL_OF_CONTROL | ||||||
| 	default n if TARGET_STM32F746_DISCO | 	default n if TARGET_STM32F746_DISCO | ||||||
| 	default y | 	default y | ||||||
| 	help | 	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. | 	  See the help of PINCTRL_FULL for details. | ||||||
| 
 | 
 | ||||||
| config TPL_PINCTRL_FULL | config TPL_PINCTRL_FULL | ||||||
| 	bool "Support full pin controllers in TPL" | 	bool "Support full pin controllers in TPL" | ||||||
| 	depends on TPL_PINCTRL && TPL_OF_CONTROL | 	depends on TPL_PINCTRL && TPL_OF_CONTROL | ||||||
| 	help | 	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. | 	  See the help of PINCTRL_FULL for details. | ||||||
| 
 | 
 | ||||||
| config SPL_PINCTRL_GENERIC | config SPL_PINCTRL_GENERIC | ||||||
|  |  | ||||||
|  | @ -32,6 +32,15 @@ config TPL_DM_RTC | ||||||
| 	  drivers to perform the actual functions. See rtc.h for a | 	  drivers to perform the actual functions. See rtc.h for a | ||||||
| 	  description of the API. | 	  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 | config RTC_ENABLE_32KHZ_OUTPUT | ||||||
| 	bool "Enable RTC 32Khz output" | 	bool "Enable RTC 32Khz output" | ||||||
| 	help | 	help | ||||||
|  |  | ||||||
|  | @ -74,6 +74,16 @@ config TPL_SERIAL_PRESENT | ||||||
| 	  This option enables the full UART in TPL, so if is it disabled, | 	  This option enables the full UART in TPL, so if is it disabled, | ||||||
| 	  the full UART driver will be omitted, thus saving space. | 	  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 | # Logic to allow us to use the imply keyword to set what the default port | ||||||
| # should be.  The default is otherwise 1. | # should be.  The default is otherwise 1. | ||||||
| config CONS_INDEX_0 | config CONS_INDEX_0 | ||||||
|  | @ -195,6 +205,16 @@ config TPL_DM_SERIAL | ||||||
| 	  implements serial_putc() etc. The uclass interface is | 	  implements serial_putc() etc. The uclass interface is | ||||||
| 	  defined in include/serial.h. | 	  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 | config DEBUG_UART | ||||||
| 	bool "Enable an early debug UART for debugging" | 	bool "Enable an early debug UART for debugging" | ||||||
| 	help | 	help | ||||||
|  |  | ||||||
|  | @ -31,6 +31,16 @@ config TPL_SYSRESET | ||||||
| 	  to effect a reset. The uclass will try all available drivers when | 	  to effect a reset. The uclass will try all available drivers when | ||||||
| 	  reset_walk() is called. | 	  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 | if SYSRESET | ||||||
| 
 | 
 | ||||||
| config SYSRESET_CMD_RESET | config SYSRESET_CMD_RESET | ||||||
|  |  | ||||||
|  | @ -27,6 +27,16 @@ config TPL_TIMER | ||||||
| 	  function. This enables the drivers in drivers/timer as part of an | 	  function. This enables the drivers in drivers/timer as part of an | ||||||
| 	  TPL build. | 	  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 | config TIMER_EARLY | ||||||
| 	bool "Allow timer to be used early in U-Boot" | 	bool "Allow timer to be used early in U-Boot" | ||||||
| 	depends on TIMER | 	depends on TIMER | ||||||
|  |  | ||||||
|  | @ -137,6 +137,36 @@ config TPM2_CR50_I2C | ||||||
| 	  trust for a device, It operates like a TPM and can be used with | 	  trust for a device, It operates like a TPM and can be used with | ||||||
| 	  verified boot. Cr50 is used on recent Chromebooks (since 2017). | 	  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 | config TPM2_TIS_SANDBOX | ||||||
| 	bool "Enable sandbox TPMv2.x driver" | 	bool "Enable sandbox TPMv2.x driver" | ||||||
| 	depends on TPM_V2 && SANDBOX | 	depends on TPM_V2 && SANDBOX | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								dts/Kconfig
								
								
								
								
							
							
						
						
									
										17
									
								
								dts/Kconfig
								
								
								
								
							|  | @ -65,6 +65,15 @@ config TPL_OF_CONTROL | ||||||
| 	  which is not enough to support device tree. Enable this option to | 	  which is not enough to support device tree. Enable this option to | ||||||
| 	  allow such boards to be supported by U-Boot TPL. | 	  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 | config OF_LIVE | ||||||
| 	bool "Enable use of a live tree" | 	bool "Enable use of a live tree" | ||||||
| 	depends on DM && OF_CONTROL | 	depends on DM && OF_CONTROL | ||||||
|  | @ -523,4 +532,12 @@ config TPL_OF_PLATDATA_DRIVER_RT | ||||||
| 
 | 
 | ||||||
| endif | 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 | endmenu | ||||||
|  |  | ||||||
							
								
								
									
										62
									
								
								lib/Kconfig
								
								
								
								
							
							
						
						
									
										62
									
								
								lib/Kconfig
								
								
								
								
							|  | @ -90,6 +90,11 @@ config TPL_PRINTF | ||||||
| 	select TPL_SPRINTF | 	select TPL_SPRINTF | ||||||
| 	select TPL_STRTO if !TPL_USE_TINY_PRINTF | 	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 | config SPRINTF | ||||||
| 	bool | 	bool | ||||||
| 	default y | 	default y | ||||||
|  | @ -100,6 +105,9 @@ config SPL_SPRINTF | ||||||
| config TPL_SPRINTF | config TPL_SPRINTF | ||||||
| 	bool | 	bool | ||||||
| 
 | 
 | ||||||
|  | config VPL_SPRINTF | ||||||
|  | 	bool | ||||||
|  | 
 | ||||||
| config SSCANF | config SSCANF | ||||||
| 	bool | 	bool | ||||||
| 
 | 
 | ||||||
|  | @ -113,6 +121,9 @@ config SPL_STRTO | ||||||
| config TPL_STRTO | config TPL_STRTO | ||||||
| 	bool | 	bool | ||||||
| 
 | 
 | ||||||
|  | config VPL_STRTO | ||||||
|  | 	bool | ||||||
|  | 
 | ||||||
| config IMAGE_SPARSE | config IMAGE_SPARSE | ||||||
| 	bool | 	bool | ||||||
| 
 | 
 | ||||||
|  | @ -165,6 +176,17 @@ config TPL_USE_TINY_PRINTF | ||||||
| 
 | 
 | ||||||
| 	  The supported format specifiers are %c, %s, %u/%d and %x. | 	  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 | config PANIC_HANG | ||||||
| 	bool "Do not reset the system on fatal error" | 	bool "Do not reset the system on fatal error" | ||||||
| 	help | 	help | ||||||
|  | @ -371,6 +393,17 @@ config TPL_TPM | ||||||
| 	  for the low-level TPM interface, but only one TPM is supported at | 	  for the low-level TPM interface, but only one TPM is supported at | ||||||
| 	  a time by the TPM library. | 	  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 | endmenu | ||||||
| 
 | 
 | ||||||
| menu "Android Verified Boot" | menu "Android Verified Boot" | ||||||
|  | @ -625,6 +658,12 @@ config SPL_LZMA | ||||||
| 	help | 	help | ||||||
| 	  This enables support for LZMA compression algorithm for SPL boot. | 	  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 | config SPL_LZO | ||||||
| 	bool "Enable LZO decompression support in SPL" | 	bool "Enable LZO decompression support in SPL" | ||||||
| 	help | 	help | ||||||
|  | @ -704,6 +743,7 @@ config OF_LIBFDT_OVERLAY | ||||||
| 
 | 
 | ||||||
| config SPL_OF_LIBFDT | config SPL_OF_LIBFDT | ||||||
| 	bool "Enable the FDT library for SPL" | 	bool "Enable the FDT library for SPL" | ||||||
|  | 	depends on SPL_LIBGENERIC_SUPPORT | ||||||
| 	default y if SPL_OF_CONTROL | 	default y if SPL_OF_CONTROL | ||||||
| 	help | 	help | ||||||
| 	  This enables the FDT library (libfdt). It provides functions for | 	  This enables the FDT library (libfdt). It provides functions for | ||||||
|  | @ -725,6 +765,7 @@ config SPL_OF_LIBFDT_ASSUME_MASK | ||||||
| 
 | 
 | ||||||
| config TPL_OF_LIBFDT | config TPL_OF_LIBFDT | ||||||
| 	bool "Enable the FDT library for TPL" | 	bool "Enable the FDT library for TPL" | ||||||
|  | 	depends on TPL_LIBGENERIC_SUPPORT | ||||||
| 	default y if TPL_OF_CONTROL | 	default y if TPL_OF_CONTROL | ||||||
| 	help | 	help | ||||||
| 	  This enables the FDT library (libfdt). It provides functions for | 	  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 | 	  0xff means all assumptions are made and any invalid data may cause | ||||||
| 	  unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h | 	  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 | config FDT_FIXUP_PARTITIONS | ||||||
| 	bool "overwrite MTD partitions in DTS through defined in 'mtdparts'" | 	bool "overwrite MTD partitions in DTS through defined in 'mtdparts'" | ||||||
| 	depends on OF_LIBFDT | 	depends on OF_LIBFDT | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue