1# 2# For a description of the syntax of this configuration file, 3# see the file Documentation/kbuild/kconfig-language.txt in the 4# Linux kernel source tree. 5# 6mainmenu "U-Boot $UBOOTVERSION Configuration" 7 8config UBOOTVERSION 9 string 10 option env="UBOOTVERSION" 11 12# Allow defaults in arch-specific code to override any given here 13source "arch/Kconfig" 14 15menu "General setup" 16 17config BROKEN 18 bool 19 help 20 This option cannot be enabled. It is used as dependency 21 for broken and incomplete features. 22 23config LOCALVERSION 24 string "Local version - append to U-Boot release" 25 help 26 Append an extra string to the end of your U-Boot version. 27 This will show up in your boot log, for example. 28 The string you set here will be appended after the contents of 29 any files with a filename matching localversion* in your 30 object and source tree, in that order. Your total string can 31 be a maximum of 64 characters. 32 33config LOCALVERSION_AUTO 34 bool "Automatically append version information to the version string" 35 default y 36 help 37 This will try to automatically determine if the current tree is a 38 release tree by looking for Git tags that belong to the current 39 top of tree revision. 40 41 A string of the format -gxxxxxxxx will be added to the localversion 42 if a Git-based tree is found. The string generated by this will be 43 appended after any matching localversion* files, and after the value 44 set in CONFIG_LOCALVERSION. 45 46 (The actual string used here is the first eight characters produced 47 by running the command: 48 49 $ git rev-parse --verify HEAD 50 51 which is done within the script "scripts/setlocalversion".) 52 53config CC_OPTIMIZE_FOR_SIZE 54 bool "Optimize for size" 55 default y 56 help 57 Enabling this option will pass "-Os" instead of "-O2" to gcc 58 resulting in a smaller U-Boot image. 59 60 This option is enabled by default for U-Boot. 61 62config DISTRO_DEFAULTS 63 bool "Select defaults suitable for booting general purpose Linux distributions" 64 default y if ARCH_SUNXI || TEGRA 65 default y if ARCH_LS2080A 66 default y if ARCH_MESON 67 default y if ARCH_ROCKCHIP 68 default n 69 imply USE_BOOTCOMMAND 70 select CMD_BOOTZ if ARM && !ARM64 71 select CMD_BOOTI if ARM64 72 select CMD_DHCP 73 select CMD_PXE 74 select CMD_EXT2 75 select CMD_EXT4 76 select CMD_FAT 77 select CMD_FS_GENERIC 78 select CMD_MII 79 select CMD_PING 80 select CMD_PART 81 select HUSH_PARSER 82 help 83 Select this to enable various options and commands which are suitable 84 for building u-boot for booting general purpose Linux distributions. 85 86config SYS_BOOT_GET_CMDLINE 87 bool "Enable kernel command line setup" 88 help 89 Enables allocating and saving kernel cmdline in space between 90 "bootm_low" and "bootm_low" + BOOTMAPSZ. 91 92config SYS_BOOT_GET_KBD 93 bool "Enable kernel board information setup" 94 help 95 Enables allocating and saving a kernel copy of the bd_info in 96 space between "bootm_low" and "bootm_low" + BOOTMAPSZ. 97 98config SYS_MALLOC_F 99 bool "Enable malloc() pool before relocation" 100 default y if DM 101 help 102 Before relocation, memory is very limited on many platforms. Still, 103 we can provide a small malloc() pool if needed. Driver model in 104 particular needs this to operate, so that it can allocate the 105 initial serial device and any others that are needed. 106 107config SYS_MALLOC_F_LEN 108 hex "Size of malloc() pool before relocation" 109 depends on SYS_MALLOC_F 110 default 0x400 111 help 112 Before relocation, memory is very limited on many platforms. Still, 113 we can provide a small malloc() pool if needed. Driver model in 114 particular needs this to operate, so that it can allocate the 115 initial serial device and any others that are needed. 116 117config SPL_SYS_MALLOC_F_LEN 118 hex "Size of malloc() pool in SPL before relocation" 119 depends on SYS_MALLOC_F 120 default SYS_MALLOC_F_LEN 121 help 122 Before relocation, memory is very limited on many platforms. Still, 123 we can provide a small malloc() pool if needed. Driver model in 124 particular needs this to operate, so that it can allocate the 125 initial serial device and any others that are needed. 126 127config TPL_SYS_MALLOC_F_LEN 128 hex "Size of malloc() pool in TPL before relocation" 129 depends on SYS_MALLOC_F 130 default SYS_MALLOC_F_LEN 131 help 132 Before relocation, memory is very limited on many platforms. Still, 133 we can provide a small malloc() pool if needed. Driver model in 134 particular needs this to operate, so that it can allocate the 135 initial serial device and any others that are needed. 136 137menuconfig EXPERT 138 bool "Configure standard U-Boot features (expert users)" 139 default y 140 help 141 This option allows certain base U-Boot options and settings 142 to be disabled or tweaked. This is for specialized 143 environments which can tolerate a "non-standard" U-Boot. 144 Use this only if you really know what you are doing. 145 146if EXPERT 147 config SYS_MALLOC_CLEAR_ON_INIT 148 bool "Init with zeros the memory reserved for malloc (slow)" 149 default y 150 help 151 This setting is enabled by default. The reserved malloc 152 memory is initialized with zeros, so first malloc calls 153 will return the pointer to the zeroed memory. But this 154 slows the boot time. 155 156 It is recommended to disable it, when CONFIG_SYS_MALLOC_LEN 157 value, has more than few MiB, e.g. when uses bzip2 or bmp logo. 158 Then the boot time can be significantly reduced. 159 Warning: 160 When disabling this, please check if malloc calls, maybe 161 should be replaced by calloc - if one expects zeroed memory. 162 163config TOOLS_DEBUG 164 bool "Enable debug information for tools" 165 help 166 Enable generation of debug information for tools such as mkimage. 167 This can be used for debugging purposes. With debug information 168 it is possible to set breakpoints on particular lines, single-step 169 debug through the source code, etc. 170 171endif # EXPERT 172 173config PHYS_64BIT 174 bool "64bit physical address support" 175 help 176 Say Y here to support 64bit physical memory address. 177 This can be used not only for 64bit SoCs, but also for 178 large physical address extention on 32bit SoCs. 179 180config BUILD_ROM 181 bool "Build U-Boot as BIOS replacement" 182 depends on X86 183 help 184 This option allows to build a ROM version of U-Boot. 185 The build process generally requires several binary blobs 186 which are not shipped in the U-Boot source tree. 187 Please, see doc/README.x86 for details. 188 189endmenu # General setup 190 191menu "Boot images" 192 193config ANDROID_BOOT_IMAGE 194 bool "Enable support for Android Boot Images" 195 default y if FASTBOOT 196 help 197 This enables support for booting images which use the Android 198 image format header. 199 200config FIT 201 bool "Support Flattened Image Tree" 202 select MD5 203 select SHA1 204 help 205 This option allows you to boot the new uImage structure, 206 Flattened Image Tree. FIT is formally a FDT, which can include 207 images of various types (kernel, FDT blob, ramdisk, etc.) 208 in a single blob. To boot this new uImage structure, 209 pass the address of the blob to the "bootm" command. 210 FIT is very flexible, supporting compression, multiple images, 211 multiple configurations, verification through hashing and also 212 verified boot (secure boot using RSA). 213 214if FIT 215 216config FIT_ENABLE_SHA256_SUPPORT 217 bool "Support SHA256 checksum of FIT image contents" 218 select SHA256 219 default y 220 help 221 Enable this to support SHA256 checksum of FIT image contents. A 222 SHA256 checksum is a 256-bit (32-byte) hash value used to check that 223 the image contents have not been corrupted. SHA256 is recommended 224 for use in secure applications since (as at 2016) there is no known 225 feasible attack that could produce a 'collision' with differing 226 input data. Use this for the highest security. Note that only the 227 SHA256 variant is supported: SHA512 and others are not currently 228 supported in U-Boot. 229 230config FIT_SIGNATURE 231 bool "Enable signature verification of FIT uImages" 232 depends on DM 233 select RSA 234 help 235 This option enables signature verification of FIT uImages, 236 using a hash signed and verified using RSA. If 237 CONFIG_SHA_PROG_HW_ACCEL is defined, i.e support for progressive 238 hashing is available using hardware, then the RSA library will use 239 it. See doc/uImage.FIT/signature.txt for more details. 240 241 WARNING: When relying on signed FIT images with a required signature 242 check the legacy image format is disabled by default, so that 243 unsigned images cannot be loaded. If a board needs the legacy image 244 format support in this case, enable it using 245 CONFIG_IMAGE_FORMAT_LEGACY. 246 247config FIT_VERBOSE 248 bool "Show verbose messages when FIT images fail" 249 help 250 Generally a system will have valid FIT images so debug messages 251 are a waste of code space. If you are debugging your images then 252 you can enable this option to get more verbose information about 253 failures. 254 255config FIT_BEST_MATCH 256 bool "Select the best match for the kernel device tree" 257 help 258 When no configuration is explicitly selected, default to the 259 one whose fdt's compatibility field best matches that of 260 U-Boot itself. A match is considered "best" if it matches the 261 most specific compatibility entry of U-Boot's fdt's root node. 262 The order of entries in the configuration's fdt is ignored. 263 264config FIT_IMAGE_POST_PROCESS 265 bool "Enable post-processing of FIT artifacts after loading by U-Boot" 266 depends on TI_SECURE_DEVICE 267 help 268 Allows doing any sort of manipulation to blobs after they got extracted 269 from FIT images like stripping off headers or modifying the size of the 270 blob, verification, authentication, decryption etc. in a platform or 271 board specific way. In order to use this feature a platform or board- 272 specific implementation of board_fit_image_post_process() must be 273 provided. Also, anything done during this post-processing step would 274 need to be comprehended in how the images were prepared before being 275 injected into the FIT creation (i.e. the blobs would have been pre- 276 processed before being added to the FIT image). 277 278if SPL 279 280config SPL_FIT 281 bool "Support Flattened Image Tree within SPL" 282 depends on SPL 283 select SPL_OF_LIBFDT 284 285config SPL_FIT_SIGNATURE 286 bool "Enable signature verification of FIT firmware within SPL" 287 depends on SPL_DM 288 select SPL_FIT 289 select SPL_RSA 290 291config SPL_LOAD_FIT 292 bool "Enable SPL loading U-Boot as a FIT" 293 select SPL_FIT 294 help 295 Normally with the SPL framework a legacy image is generated as part 296 of the build. This contains U-Boot along with information as to 297 where it should be loaded. This option instead enables generation 298 of a FIT (Flat Image Tree) which provides more flexibility. In 299 particular it can handle selecting from multiple device tree 300 and passing the correct one to U-Boot. 301 302config SPL_FIT_IMAGE_POST_PROCESS 303 bool "Enable post-processing of FIT artifacts after loading by the SPL" 304 depends on SPL_LOAD_FIT 305 help 306 Allows doing any sort of manipulation to blobs after they got extracted 307 from the U-Boot FIT image like stripping off headers or modifying the 308 size of the blob, verification, authentication, decryption etc. in a 309 platform or board specific way. In order to use this feature a platform 310 or board-specific implementation of board_fit_image_post_process() must 311 be provided. Also, anything done during this post-processing step would 312 need to be comprehended in how the images were prepared before being 313 injected into the FIT creation (i.e. the blobs would have been pre- 314 processed before being added to the FIT image). 315 316config SPL_FIT_SOURCE 317 string ".its source file for U-Boot FIT image" 318 depends on SPL_FIT 319 help 320 Specifies a (platform specific) FIT source file to generate the 321 U-Boot FIT image. This could specify further image to load and/or 322 execute. 323 324config SPL_FIT_GENERATOR 325 string ".its file generator script for U-Boot FIT image" 326 depends on SPL_FIT 327 default "board/sunxi/mksunxi_fit_atf.sh" if SPL_LOAD_FIT && ARCH_SUNXI 328 help 329 Specifies a (platform specific) script file to generate the FIT 330 source file used to build the U-Boot FIT image file. This gets 331 passed a list of supported device tree file stub names to 332 include in the generated image. 333 334endif # SPL 335 336endif # FIT 337 338config OF_BOARD_SETUP 339 bool "Set up board-specific details in device tree before boot" 340 depends on OF_LIBFDT 341 help 342 This causes U-Boot to call ft_board_setup() before booting into 343 the Operating System. This function can set up various 344 board-specific information in the device tree for use by the OS. 345 The device tree is then passed to the OS. 346 347config OF_SYSTEM_SETUP 348 bool "Set up system-specific details in device tree before boot" 349 depends on OF_LIBFDT 350 help 351 This causes U-Boot to call ft_system_setup() before booting into 352 the Operating System. This function can set up various 353 system-specific information in the device tree for use by the OS. 354 The device tree is then passed to the OS. 355 356config OF_STDOUT_VIA_ALIAS 357 bool "Update the device-tree stdout alias from U-Boot" 358 depends on OF_LIBFDT 359 help 360 This uses U-Boot's serial alias from the aliases node to update 361 the device tree passed to the OS. The "linux,stdout-path" property 362 in the chosen node is set to point to the correct serial node. 363 This option currently references CONFIG_CONS_INDEX, which is 364 incorrect when used with device tree as this option does not 365 exist / should not be used. 366 367config SYS_EXTRA_OPTIONS 368 string "Extra Options (DEPRECATED)" 369 help 370 The old configuration infrastructure (= mkconfig + boards.cfg) 371 provided the extra options field. If you have something like 372 "HAS_BAR,BAZ=64", the optional options 373 #define CONFIG_HAS 374 #define CONFIG_BAZ 64 375 will be defined in include/config.h. 376 This option was prepared for the smooth migration from the old 377 configuration to Kconfig. Since this option will be removed sometime, 378 new boards should not use this option. 379 380config SYS_TEXT_BASE 381 depends on ARC || X86 || ARCH_UNIPHIER || ARCH_ZYNQMP || \ 382 (M68K && !TARGET_ASTRO_MCF5373L) || MICROBLAZE || MIPS || \ 383 ARCH_ZYNQ || ARCH_KEYSTONE || ARCH_OMAP2PLUS 384 depends on !EFI_APP 385 hex "Text Base" 386 help 387 TODO: Move CONFIG_SYS_TEXT_BASE for all the architecture 388 389 default 0x80800000 if ARCH_OMAP2PLUS 390 391 392config SYS_CLK_FREQ 393 depends on ARC || ARCH_SUNXI 394 int "CPU clock frequency" 395 help 396 TODO: Move CONFIG_SYS_CLK_FREQ for all the architecture 397 398config ARCH_FIXUP_FDT_MEMORY 399 bool "Enable arch_fixup_memory_banks() call" 400 default y 401 help 402 Enable FDT memory map syncup before OS boot. This feature can be 403 used for booting OS with different memory setup where the part of 404 the memory location should be used for different purpose. 405 406endmenu # Boot images 407 408source "api/Kconfig" 409 410source "common/Kconfig" 411 412source "cmd/Kconfig" 413 414source "disk/Kconfig" 415 416source "dts/Kconfig" 417 418source "env/Kconfig" 419 420source "net/Kconfig" 421 422source "drivers/Kconfig" 423 424source "fs/Kconfig" 425 426source "lib/Kconfig" 427 428source "test/Kconfig" 429