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