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.
6 mainmenu "U-Boot $UBOOTVERSION Configuration"
10 option env="UBOOTVERSION"
12 # Allow defaults in arch-specific code to override any given here
20 This option cannot be enabled. It is used as dependency
21 for broken and incomplete features.
24 string "Local version - append to U-Boot release"
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.
33 config LOCALVERSION_AUTO
34 bool "Automatically append version information to the version string"
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
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.
46 (The actual string used here is the first eight characters produced
47 by running the command:
49 $ git rev-parse --verify HEAD
51 which is done within the script "scripts/setlocalversion".)
53 config CC_OPTIMIZE_FOR_SIZE
54 bool "Optimize for size"
57 Enabling this option will pass "-Os" instead of "-O2" to gcc
58 resulting in a smaller U-Boot image.
60 This option is enabled by default for U-Boot.
63 bool "Enable code coverage analysis"
66 Enabling this option will pass "--coverage" to gcc to compile
67 and link code instrumented for coverage analysis.
69 config DISTRO_DEFAULTS
70 bool "Select defaults suitable for booting general purpose Linux distributions"
72 select CMDLINE_EDITING
73 select CMD_BOOTI if ARM64
74 select CMD_BOOTZ if ARM && !ARM64
75 select CMD_DHCP if CMD_NET
81 select CMD_PART if PARTITIONS
82 select CMD_PING if CMD_NET
84 select ENV_VARS_UBOOT_CONFIG
86 select SUPPORT_RAW_INITRD
92 Select this to enable various options and commands which are suitable
93 for building u-boot for booting general purpose Linux distributions.
95 config ENV_VARS_UBOOT_CONFIG
96 bool "Add arch, board, vendor and soc variables to default environment"
98 Define this in order to add variables describing the
99 U-Boot build configuration to the default environment.
100 These will be named arch, cpu, board, vendor, and soc.
101 Enabling this option will cause the following to be defined:
109 int "Number of DRAM banks"
112 This defines the number of DRAM banks.
114 config SYS_BOOT_GET_CMDLINE
115 bool "Enable kernel command line setup"
117 Enables allocating and saving kernel cmdline in space between
118 "bootm_low" and "bootm_low" + BOOTMAPSZ.
120 config SYS_BOOT_GET_KBD
121 bool "Enable kernel board information setup"
123 Enables allocating and saving a kernel copy of the bd_info in
124 space between "bootm_low" and "bootm_low" + BOOTMAPSZ.
127 bool "Enable malloc() pool before relocation"
131 Before relocation, memory is very limited on many platforms. Still,
132 we can provide a small malloc() pool if needed. Driver model in
133 particular needs this to operate, so that it can allocate the
134 initial serial device and any others that are needed.
136 config SYS_MALLOC_F_LEN
137 hex "Size of malloc() pool before relocation"
138 depends on SYS_MALLOC_F
139 default 0x1000 if AM33XX
140 default 0x2800 if SANDBOX
143 Before relocation, memory is very limited on many platforms. Still,
144 we can provide a small malloc() pool if needed. Driver model in
145 particular needs this to operate, so that it can allocate the
146 initial serial device and any others that are needed.
148 config SYS_MALLOC_LEN
149 hex "Define memory for Dynamic allocation"
150 depends on ARCH_ZYNQ || ARCH_VERSAL
152 This defines memory to be allocated for Dynamic allocation
153 TODO: Use for other architectures
155 config SPL_SYS_MALLOC_F_LEN
156 hex "Size of malloc() pool in SPL before relocation"
157 depends on SYS_MALLOC_F
158 default SYS_MALLOC_F_LEN
160 Before relocation, memory is very limited on many platforms. Still,
161 we can provide a small malloc() pool if needed. Driver model in
162 particular needs this to operate, so that it can allocate the
163 initial serial device and any others that are needed.
165 config TPL_SYS_MALLOC_F_LEN
166 hex "Size of malloc() pool in TPL before relocation"
167 depends on SYS_MALLOC_F
168 default SYS_MALLOC_F_LEN
170 Before relocation, memory is very limited on many platforms. Still,
171 we can provide a small malloc() pool if needed. Driver model in
172 particular needs this to operate, so that it can allocate the
173 initial serial device and any others that are needed.
176 bool "Configure standard U-Boot features (expert users)"
179 This option allows certain base U-Boot options and settings
180 to be disabled or tweaked. This is for specialized
181 environments which can tolerate a "non-standard" U-Boot.
182 Use this only if you really know what you are doing.
185 config SYS_MALLOC_CLEAR_ON_INIT
186 bool "Init with zeros the memory reserved for malloc (slow)"
189 This setting is enabled by default. The reserved malloc
190 memory is initialized with zeros, so first malloc calls
191 will return the pointer to the zeroed memory. But this
194 It is recommended to disable it, when CONFIG_SYS_MALLOC_LEN
195 value, has more than few MiB, e.g. when uses bzip2 or bmp logo.
196 Then the boot time can be significantly reduced.
198 When disabling this, please check if malloc calls, maybe
199 should be replaced by calloc - if one expects zeroed memory.
202 bool "Enable debug information for tools"
204 Enable generation of debug information for tools such as mkimage.
205 This can be used for debugging purposes. With debug information
206 it is possible to set breakpoints on particular lines, single-step
207 debug through the source code, etc.
212 bool "64bit physical address support"
214 Say Y here to support 64bit physical memory address.
215 This can be used not only for 64bit SoCs, but also for
216 large physical address extension on 32bit SoCs.
219 bool "Build U-Boot as BIOS replacement"
222 This option allows to build a ROM version of U-Boot.
223 The build process generally requires several binary blobs
224 which are not shipped in the U-Boot source tree.
225 Please, see doc/README.x86 for details.
228 string "Build target special images"
229 default "u-boot-with-spl.sfp" if ARCH_SOCFPGA
230 default "u-boot-spl.kwb" if ARCH_MVEBU && SPL_BUILD
231 default "u-boot-elf.srec" if RCAR_GEN3
232 default "u-boot.itb" if SPL_LOAD_FIT && ARCH_SUNXI
234 Some SoCs need special image types (e.g. U-Boot binary
235 with a special header) as build targets. By defining
236 CONFIG_BUILD_TARGET in the SoC / board header, this
237 special image will be automatically built upon calling
240 endmenu # General setup
244 config ANDROID_BOOT_IMAGE
245 bool "Enable support for Android Boot Images"
246 default y if FASTBOOT
248 This enables support for booting images which use the Android
252 bool "Support Flattened Image Tree"
256 This option allows you to boot the new uImage structure,
257 Flattened Image Tree. FIT is formally a FDT, which can include
258 images of various types (kernel, FDT blob, ramdisk, etc.)
259 in a single blob. To boot this new uImage structure,
260 pass the address of the blob to the "bootm" command.
261 FIT is very flexible, supporting compression, multiple images,
262 multiple configurations, verification through hashing and also
263 verified boot (secure boot using RSA).
267 config FIT_EXTERNAL_OFFSET
271 This specifies a data offset in fit image.
272 The offset is from data payload offset to the beginning of
273 fit image header. When specifies a offset, specific data
274 could be put in the hole between data payload and fit image
275 header, such as CSF data on i.MX platform.
277 config FIT_ENABLE_SHA256_SUPPORT
278 bool "Support SHA256 checksum of FIT image contents"
282 Enable this to support SHA256 checksum of FIT image contents. A
283 SHA256 checksum is a 256-bit (32-byte) hash value used to check that
284 the image contents have not been corrupted. SHA256 is recommended
285 for use in secure applications since (as at 2016) there is no known
286 feasible attack that could produce a 'collision' with differing
287 input data. Use this for the highest security. Note that only the
288 SHA256 variant is supported: SHA512 and others are not currently
292 bool "Enable signature verification of FIT uImages"
297 This option enables signature verification of FIT uImages,
298 using a hash signed and verified using RSA. If
299 CONFIG_SHA_PROG_HW_ACCEL is defined, i.e support for progressive
300 hashing is available using hardware, then the RSA library will use
301 it. See doc/uImage.FIT/signature.txt for more details.
303 WARNING: When relying on signed FIT images with a required signature
304 check the legacy image format is disabled by default, so that
305 unsigned images cannot be loaded. If a board needs the legacy image
306 format support in this case, enable it using
307 CONFIG_IMAGE_FORMAT_LEGACY.
309 config FIT_SIGNATURE_MAX_SIZE
310 hex "Max size of signed FIT structures"
311 depends on FIT_SIGNATURE
314 This option sets a max size in bytes for verified FIT uImages.
315 A sane value of 256MB protects corrupted DTB structures from overlapping
316 device memory. Assure this size does not extend past expected storage
319 config FIT_ENABLE_RSASSA_PSS_SUPPORT
320 bool "Support rsassa-pss signature scheme of FIT image contents"
321 depends on FIT_SIGNATURE
324 Enable this to support the pss padding algorithm as described
325 in the rfc8017 (https://tools.ietf.org/html/rfc8017).
328 bool "Show verbose messages when FIT images fail"
330 Generally a system will have valid FIT images so debug messages
331 are a waste of code space. If you are debugging your images then
332 you can enable this option to get more verbose information about
335 config FIT_BEST_MATCH
336 bool "Select the best match for the kernel device tree"
338 When no configuration is explicitly selected, default to the
339 one whose fdt's compatibility field best matches that of
340 U-Boot itself. A match is considered "best" if it matches the
341 most specific compatibility entry of U-Boot's fdt's root node.
342 The order of entries in the configuration's fdt is ignored.
344 config FIT_IMAGE_POST_PROCESS
345 bool "Enable post-processing of FIT artifacts after loading by U-Boot"
346 depends on TI_SECURE_DEVICE
348 Allows doing any sort of manipulation to blobs after they got extracted
349 from FIT images like stripping off headers or modifying the size of the
350 blob, verification, authentication, decryption etc. in a platform or
351 board specific way. In order to use this feature a platform or board-
352 specific implementation of board_fit_image_post_process() must be
353 provided. Also, anything done during this post-processing step would
354 need to be comprehended in how the images were prepared before being
355 injected into the FIT creation (i.e. the blobs would have been pre-
356 processed before being added to the FIT image).
361 bool "Support Flattened Image Tree within SPL"
366 bool "Support FIT printing within SPL"
369 Support printing the content of the fitImage in a verbose manner in SPL.
371 config SPL_FIT_SIGNATURE
372 bool "Enable signature verification of FIT firmware within SPL"
378 bool "Enable SPL loading U-Boot as a FIT"
381 Normally with the SPL framework a legacy image is generated as part
382 of the build. This contains U-Boot along with information as to
383 where it should be loaded. This option instead enables generation
384 of a FIT (Flat Image Tree) which provides more flexibility. In
385 particular it can handle selecting from multiple device tree
386 and passing the correct one to U-Boot.
388 config SPL_LOAD_FIT_FULL
389 bool "Enable SPL loading U-Boot as a FIT"
392 Normally with the SPL framework a legacy image is generated as part
393 of the build. This contains U-Boot along with information as to
394 where it should be loaded. This option instead enables generation
395 of a FIT (Flat Image Tree) which provides more flexibility. In
396 particular it can handle selecting from multiple device tree
397 and passing the correct one to U-Boot.
399 config SPL_FIT_IMAGE_POST_PROCESS
400 bool "Enable post-processing of FIT artifacts after loading by the SPL"
401 depends on SPL_LOAD_FIT
403 Allows doing any sort of manipulation to blobs after they got extracted
404 from the U-Boot FIT image like stripping off headers or modifying the
405 size of the blob, verification, authentication, decryption etc. in a
406 platform or board specific way. In order to use this feature a platform
407 or board-specific implementation of board_fit_image_post_process() must
408 be provided. Also, anything done during this post-processing step would
409 need to be comprehended in how the images were prepared before being
410 injected into the FIT creation (i.e. the blobs would have been pre-
411 processed before being added to the FIT image).
413 config SPL_FIT_SOURCE
414 string ".its source file for U-Boot FIT image"
417 Specifies a (platform specific) FIT source file to generate the
418 U-Boot FIT image. This could specify further image to load and/or
421 config SPL_FIT_GENERATOR
422 string ".its file generator script for U-Boot FIT image"
424 default "board/sunxi/mksunxi_fit_atf.sh" if SPL_LOAD_FIT && ARCH_SUNXI
426 Specifies a (platform specific) script file to generate the FIT
427 source file used to build the U-Boot FIT image file. This gets
428 passed a list of supported device tree file stub names to
429 include in the generated image.
435 config IMAGE_FORMAT_LEGACY
436 bool "Enable support for the legacy image format"
437 default y if !FIT_SIGNATURE
439 This option enables the legacy image format. It is enabled by
440 default for backward compatibility, unless FIT_SIGNATURE is
441 set where it is disabled so that unsigned images cannot be
442 loaded. If a board needs the legacy image format support in this
443 case, enable it here.
445 config OF_BOARD_SETUP
446 bool "Set up board-specific details in device tree before boot"
449 This causes U-Boot to call ft_board_setup() before booting into
450 the Operating System. This function can set up various
451 board-specific information in the device tree for use by the OS.
452 The device tree is then passed to the OS.
454 config OF_SYSTEM_SETUP
455 bool "Set up system-specific details in device tree before boot"
458 This causes U-Boot to call ft_system_setup() before booting into
459 the Operating System. This function can set up various
460 system-specific information in the device tree for use by the OS.
461 The device tree is then passed to the OS.
463 config OF_STDOUT_VIA_ALIAS
464 bool "Update the device-tree stdout alias from U-Boot"
467 This uses U-Boot's serial alias from the aliases node to update
468 the device tree passed to the OS. The "linux,stdout-path" property
469 in the chosen node is set to point to the correct serial node.
470 This option currently references CONFIG_CONS_INDEX, which is
471 incorrect when used with device tree as this option does not
472 exist / should not be used.
474 config SYS_EXTRA_OPTIONS
475 string "Extra Options (DEPRECATED)"
477 The old configuration infrastructure (= mkconfig + boards.cfg)
478 provided the extra options field. If you have something like
479 "HAS_BAR,BAZ=64", the optional options
481 #define CONFIG_BAZ 64
482 will be defined in include/config.h.
483 This option was prepared for the smooth migration from the old
484 configuration to Kconfig. Since this option will be removed sometime,
485 new boards should not use this option.
488 depends on !NIOS2 && !XTENSA
490 default 0x80800000 if ARCH_OMAP2PLUS || ARCH_K3
491 default 0x4a000000 if ARCH_SUNXI && !MACH_SUN9I && !MACH_SUN8I_V3S
492 default 0x2a000000 if ARCH_SUNXI && MACH_SUN9I
493 default 0x42e00000 if ARCH_SUNXI && MACH_SUN8I_V3S
496 The address in memory that U-Boot will be running from, initially.
501 depends on ARC || ARCH_SUNXI
502 int "CPU clock frequency"
504 TODO: Move CONFIG_SYS_CLK_FREQ for all the architecture
506 config ARCH_FIXUP_FDT_MEMORY
507 bool "Enable arch_fixup_memory_banks() call"
510 Enable FDT memory map syncup before OS boot. This feature can be
511 used for booting OS with different memory setup where the part of
512 the memory location should be used for different purpose.
514 endmenu # Boot images
518 source "common/Kconfig"
522 source "disk/Kconfig"
530 source "drivers/Kconfig"
536 source "test/Kconfig"