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