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