1menu "TPL configuration options" 2 depends on TPL 3 4config TPL_SIZE_LIMIT 5 hex "Maximum size of TPL image" 6 default 0x0 7 help 8 Specifies the maximum length of the U-Boot TPL image. 9 If this value is zero, it is ignored. 10 11config TPL_BINMAN_SYMBOLS 12 bool "Support binman symbols in TPL" 13 depends on TPL_FRAMEWORK && BINMAN 14 default y 15 help 16 This enables use of symbols in TPL which refer to other entries in 17 the same binman image as the TPL. These can be declared with the 18 binman_sym_declare(type, entry, prop) macro and accessed by the 19 binman_sym(type, entry, prop) macro defined in binman_sym.h. 20 21 See tools/binman/binman.rst for a detailed explanation. 22 23config TPL_BINMAN_UBOOT_SYMBOLS 24 bool "Declare binman symbols for U-Boot phases in TPL" 25 depends on TPL_BINMAN_SYMBOLS 26 default n if ARCH_IMX8M 27 default y 28 help 29 This enables use of symbols in TPL which refer to U-Boot phases, 30 enabling TPL to obtain the location and size of its next phase simply 31 by calling spl_get_image_pos() and spl_get_image_size(). 32 33 For this to work, you must have all U-Boot phases in the same binman 34 image, so binman can update TPL with the locations of everything. 35 36config TPL_FRAMEWORK 37 bool "Support TPL based upon the common SPL framework" 38 default y if SPL_FRAMEWORK 39 help 40 Enable the SPL framework under common/spl/ for TPL builds. 41 This framework supports MMC, NAND and YMODEM and other methods 42 loading of U-Boot's SPL stage. If unsure, say Y. 43 44config TPL_BANNER_PRINT 45 bool "Enable output of the TPL banner 'U-Boot TPL ...'" 46 default y 47 help 48 If this option is enabled, TPL will print the banner with version 49 info. Disabling this option could be useful to reduce TPL boot time 50 (e.g. approx. 6 ms faster, when output on i.MX6 with 115200 baud). 51 52config TPL_HANDOFF 53 bool "Pass hand-off information from TPL to SPL and U-Boot proper" 54 depends on HANDOFF && TPL_BLOBLIST 55 default y 56 help 57 This option enables TPL to write handoff information. This can be 58 used to pass information like the size of SDRAM from TPL to U-Boot 59 proper. The information is also available to SPL if it is useful 60 there. 61 62config TPL_BOARD_INIT 63 bool "Call board-specific initialization in TPL" 64 help 65 If this option is enabled, U-Boot will call the function 66 spl_board_init() from board_init_r(). This function should be 67 provided by the board. 68 69config TPL_BOOTCOUNT_LIMIT 70 bool "Support bootcount in TPL" 71 depends on TPL_ENV_SUPPORT 72 help 73 If this option is enabled, the TPL will support bootcount. 74 For example, it may be useful to choose the device to boot. 75 76config TPL_SYS_MALLOC_SIMPLE 77 bool 78 prompt "Only use malloc_simple functions in the TPL" 79 help 80 Say Y here to only use the *_simple malloc functions from 81 malloc_simple.c, rather then using the versions from dlmalloc.c; 82 this will make the TPL binary smaller at the cost of more heap 83 usage as the *_simple malloc functions do not re-use free-ed mem. 84 85config TPL_SEPARATE_BSS 86 bool "BSS section is in a different memory region from text" 87 default y if SPL_SEPARATE_BSS 88 help 89 Some platforms need a large BSS region in TPL and can provide this 90 because RAM is already set up. In this case BSS can be moved to RAM. 91 This option should then be enabled so that the correct device tree 92 location is used. Normally we put the device tree at the end of BSS 93 but with this option enabled, it goes at _image_binary_end. 94 95config TPL_LDSCRIPT 96 string "Linker script for the TPL stage" 97 default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64 98 default "arch/\$(ARCH)/cpu/u-boot-spl.lds" 99 help 100 The TPL stage will usually require a different linker-script 101 (as it runs from a different memory region) than the regular 102 U-Boot stage. Set this to the path of the linker-script to 103 be used for TPL. 104 105 May be left empty to trigger the Makefile infrastructure to 106 fall back to the linker-script used for the SPL stage. 107 108config TPL_NEEDS_SEPARATE_STACK 109 bool "TPL needs a separate initial stack-pointer" 110 help 111 Enable, if the TPL stage should not inherit its initial 112 stack-pointer from the settings for the SPL stage. 113 114config TPL_POWER 115 bool "Support power drivers" 116 help 117 Enable support for power control in TPL. This includes support 118 for PMICs (Power-management Integrated Circuits) and some of the 119 features provided by PMICs. In particular, voltage regulators can 120 be used to enable/disable power and vary its voltage. That can be 121 useful in TPL to turn on boot peripherals and adjust CPU voltage 122 so that the clock speed can be increased. This enables the drivers 123 in drivers/power, drivers/power/pmic and drivers/power/regulator 124 as part of an TPL build. 125 126config TPL_TEXT_BASE 127 hex "Base address for the .text section of the TPL stage" 128 default 0 129 help 130 The base address for the .text section of the TPL stage. 131 132config TPL_MAX_SIZE 133 hex "Maximum size (in bytes) for the TPL stage" 134 default 0x2e000 if ROCKCHIP_RK3399 135 default 0x8000 if ROCKCHIP_RK3288 || ROCKCHIP_RV1126 136 default 0x7000 if ROCKCHIP_RK322X || ROCKCHIP_RK3328 || ROCKCHIP_RK3368 137 default 0x2800 if ROCKCHIP_PX30 138 default 0x0 139 help 140 The maximum size (in bytes) of the TPL stage. 141 142config TPL_STACK 143 hex "Address of the initial stack-pointer for the TPL stage" 144 depends on TPL_NEEDS_SEPARATE_STACK 145 help 146 The address of the initial stack-pointer for the TPL stage. 147 Usually this will be the (aligned) top-of-stack. 148 149config TPL_READ_ONLY 150 bool 151 depends on TPL_OF_PLATDATA 152 select TPL_OF_PLATDATA_NO_BIND 153 select TPL_OF_PLATDATA_RT 154 help 155 Some platforms (e.g. x86 Apollo Lake) load SPL into a read-only 156 section of memory. This means that of-platdata must make a copy (in 157 writeable memory) of anything it wants to modify, such as 158 device-private data. 159 160config TPL_BOOTROM_SUPPORT 161 bool "Support returning to the BOOTROM (from TPL)" 162 help 163 Some platforms (e.g. the Rockchip RK3368) provide support in their 164 ROM for loading the next boot-stage after performing basic setup 165 from the TPL stage. 166 167 Enable this option, to return to the BOOTROM through the 168 BOOT_DEVICE_BOOTROM (or fall-through to the next boot device in the 169 boot device list, if not implemented for a given board) 170 171config TPL_CRC32 172 bool "Support CRC32 in TPL" 173 default y if TPL_ENV_SUPPORT || TPL_BLOBLIST 174 help 175 Enable this to support CRC32 in uImages or FIT images within SPL. 176 This is a 32-bit checksum value that can be used to verify images. 177 For FIT images, this is the least secure type of checksum, suitable 178 for detected accidental image corruption. For secure applications you 179 should consider SHA1 or SHA256. 180 181config TPL_DRIVERS_MISC 182 bool "Support misc drivers in TPL" 183 help 184 Enable miscellaneous drivers in TPL. These drivers perform various 185 tasks that don't fall nicely into other categories, Enable this 186 option to build the drivers in drivers/misc as part of an TPL 187 build, for those that support building in TPL (not all drivers do). 188 189config TPL_ENV_SUPPORT 190 bool "Support an environment" 191 help 192 Enable environment support in TPL. See SPL_ENV_SUPPORT for details. 193 194config TPL_GPIO 195 bool "Support GPIO in TPL" 196 help 197 Enable support for GPIOs (General-purpose Input/Output) in TPL. 198 GPIOs allow U-Boot to read the state of an input line (high or 199 low) and set the state of an output line. This can be used to 200 drive LEDs, control power to various system parts and read user 201 input. GPIOs can be useful in TPL to enable a 'sign-of-life' LED, 202 for example. Enable this option to build the drivers in 203 drivers/gpio as part of an TPL build. 204 205config TPL_I2C 206 bool "Support I2C" 207 help 208 Enable support for the I2C bus in TPL. See SPL_I2C for 209 details. 210 211config TPL_LIBCOMMON_SUPPORT 212 bool "Support common libraries" 213 help 214 Enable support for common U-Boot libraries within TPL. See 215 SPL_LIBCOMMON_SUPPORT for details. 216 217config TPL_LIBGENERIC_SUPPORT 218 bool "Support generic libraries" 219 help 220 Enable support for generic U-Boot libraries within TPL. See 221 SPL_LIBGENERIC_SUPPORT for details. 222 223config TPL_MPC8XXX_INIT_DDR 224 bool "Support MPC8XXX DDR init" 225 help 226 Enable support for DDR-SDRAM on the MPC8XXX family within TPL. See 227 SPL_MPC8XXX_INIT_DDR for details. 228 229config TPL_MMC 230 bool "Support MMC" 231 depends on MMC 232 help 233 Enable support for MMC within TPL. See SPL_MMC for details. 234 235config TPL_NAND_SUPPORT 236 bool "Support NAND flash" 237 help 238 Enable support for NAND in TPL. See SPL_NAND_SUPPORT for details. 239 240config TPL_PCI 241 bool "Support PCI drivers" 242 help 243 Enable support for PCI in TPL. For platforms that need PCI to boot, 244 or must perform some init using PCI in SPL, this provides the 245 necessary driver support. This enables the drivers in drivers/pci 246 as part of a TPL build. 247 248config TPL_PCH 249 bool "Support PCH drivers" 250 help 251 Enable support for PCH (Platform Controller Hub) devices in TPL. 252 These are used to set up GPIOs and the SPI peripheral early in 253 boot. This enables the drivers in drivers/pch as part of a TPL 254 build. 255 256config TPL_RAM_SUPPORT 257 bool "Support booting from RAM" 258 help 259 Enable booting of an image in RAM. The image can be preloaded or 260 it can be loaded by TPL directly into RAM (e.g. using USB). 261 262config TPL_RAM_DEVICE 263 bool "Support booting from preloaded image in RAM" 264 depends on TPL_RAM_SUPPORT 265 help 266 Enable booting of an image already loaded in RAM. The image has to 267 be already in memory when TPL takes over, e.g. loaded by the boot 268 ROM. 269 270config TPL_RTC 271 bool "Support RTC drivers" 272 help 273 Enable RTC (Real-time Clock) support in TPL. This includes support 274 for reading and setting the time. Some RTC devices also have some 275 non-volatile (battery-backed) memory which is accessible if 276 needed. This enables the drivers in drivers/rtc as part of an TPL 277 build. 278 279config TPL_SERIAL 280 bool "Support serial" 281 select TPL_PRINTF 282 select TPL_STRTO 283 help 284 Enable support for serial in TPL. See SPL_SERIAL for 285 details. 286 287config TPL_SPI_FLASH_SUPPORT 288 bool "Support SPI flash drivers" 289 help 290 Enable support for using SPI flash in TPL. See SPL_SPI_FLASH_SUPPORT 291 for details. 292 293config TPL_SPI_FLASH_TINY 294 bool "Enable low footprint TPL SPI Flash support" 295 depends on TPL_SPI_FLASH_SUPPORT && !SPI_FLASH_BAR 296 default y if SPI_FLASH 297 help 298 Enable lightweight TPL SPI Flash support that supports just reading 299 data/images from flash. No support to write/erase flash. Enable 300 this if you have TPL size limitations and don't need full-fledged 301 SPI flash support. 302 303config TPL_SPI_LOAD 304 bool "Support loading from SPI flash" 305 depends on TPL_SPI_FLASH_SUPPORT 306 help 307 Enable support for loading next stage, U-Boot or otherwise, from 308 SPI NOR in U-Boot TPL. 309 310config TPL_SPI 311 bool "Support SPI drivers" 312 help 313 Enable support for using SPI in TPL. See SPL_SPI for 314 details. 315 316config TPL_DM_SPI 317 bool "Support SPI DM drivers in TPL" 318 help 319 Enable support for SPI DM drivers in TPL. 320 321config TPL_DM_SPI_FLASH 322 bool "Support SPI DM FLASH drivers in TPL" 323 help 324 Enable support for SPI DM flash drivers in TPL. 325 326config TPL_YMODEM_SUPPORT 327 bool "Support loading using Ymodem" 328 depends on TPL_SERIAL 329 help 330 While loading from serial is slow it can be a useful backup when 331 there is no other option. The Ymodem protocol provides a reliable 332 means of transmitting U-Boot over a serial line for using in TPL, 333 with a checksum to ensure correctness. 334 335endmenu 336