]> git.ipfire.org Git - people/ms/u-boot.git/blame - Kconfig
Merge git://git.denx.de/u-boot-x86
[people/ms/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
9f823615
HG
62config DISTRO_DEFAULTS
63 bool "Select defaults suitable for booting general purpose Linux distributions"
3337e3af 64 default y if ARCH_SUNXI || TEGRA
b99ebaf9 65 default y if ARCH_LS2080A
70b8bd7d 66 default y if ARCH_MESON
7bdedf11 67 default y if ARCH_ROCKCHIP
9f823615 68 default n
b6251db8 69 imply USE_BOOTCOMMAND
a391d500 70 select CMD_BOOTZ if ARM && !ARM64
26959271 71 select CMD_BOOTI if ARM64
9f823615 72 select CMD_DHCP
bfb380b3 73 select CMD_PXE
9f823615
HG
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
b331cd62 80 select CMD_PART
9f823615
HG
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
b724bd7d
SG
86config SYS_MALLOC_F
87 bool "Enable malloc() pool before relocation"
326a6823 88 default y if DM
b724bd7d 89 help
59d7c34b 90 Before relocation, memory is very limited on many platforms. Still,
b724bd7d
SG
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
59d7c34b 100 Before relocation, memory is very limited on many platforms. Still,
b724bd7d
SG
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
f1896c45 105config SPL_SYS_MALLOC_F_LEN
ae2cee2e
PT
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"
f1896c45
AY
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
1bf0979f 125menuconfig EXPERT
0aa8a4ad
PM
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.
59d7c34b 132 Use this only if you really know what you are doing.
0aa8a4ad
PM
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
59d7c34b 149 should be replaced by calloc - if one expects zeroed memory.
022885cb
SG
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
266aa86b 159endif # EXPERT
bb6b142f
MY
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
871aa41d
HS
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
40ad4c4b
MY
177endmenu # General setup
178
e91c3c33
MY
179menu "Boot images"
180
48f6232e
TR
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
b6cf4439
MY
188config FIT
189 bool "Support Flattened Image Tree"
aeb9c53c 190 select MD5
089df18b 191 select SHA1
b6cf4439 192 help
266aa86b 193 This option allows you to boot the new uImage structure,
b6cf4439
MY
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,
1f9ac4a4 197 pass the address of the blob to the "bootm" command.
73223f0e
SG
198 FIT is very flexible, supporting compression, multiple images,
199 multiple configurations, verification through hashing and also
266aa86b 200 verified boot (secure boot using RSA).
b6cf4439 201
266aa86b 202if FIT
b6cf4439 203
0db7f685
TR
204config FIT_ENABLE_SHA256_SUPPORT
205 bool "Support SHA256 checksum of FIT image contents"
089df18b 206 select SHA256
0db7f685
TR
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
b6cf4439 218config FIT_SIGNATURE
c4beb22f 219 bool "Enable signature verification of FIT uImages"
9009798d 220 depends on DM
c4beb22f 221 select RSA
b6cf4439
MY
222 help
223 This option enables signature verification of FIT uImages,
94e3c8c4 224 using a hash signed and verified using RSA. If
225 CONFIG_SHA_PROG_HW_ACCEL is defined, i.e support for progressive
266aa86b 226 hashing is available using hardware, then the RSA library will use
73223f0e
SG
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
266aa86b
RD
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.
51c14cd1 242
73223f0e
SG
243config FIT_BEST_MATCH
244 bool "Select the best match for the kernel device tree"
73223f0e
SG
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
266aa86b
RD
252config FIT_IMAGE_POST_PROCESS
253 bool "Enable post-processing of FIT artifacts after loading by U-Boot"
254 depends on TI_SECURE_DEVICE
73223f0e 255 help
266aa86b
RD
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
71139113
TR
266if SPL
267
266aa86b
RD
268config SPL_FIT
269 bool "Support Flattened Image Tree within SPL"
270 depends on SPL
85c07a5a 271 select SPL_OF_LIBFDT
266aa86b
RD
272
273config SPL_FIT_SIGNATURE
274 bool "Enable signature verification of FIT firmware within SPL"
266aa86b 275 depends on SPL_DM
85c07a5a 276 select SPL_FIT
266aa86b
RD
277 select SPL_RSA
278
279config SPL_LOAD_FIT
280 bool "Enable SPL loading U-Boot as a FIT"
85c07a5a 281 select SPL_FIT
266aa86b
RD
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"
c12d8b7d 292 depends on SPL_LOAD_FIT
266aa86b
RD
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
1a12fdc4
AP
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
d29adf8e 315 default "board/sunxi/mksunxi_fit_atf.sh" if SPL_LOAD_FIT && ARCH_SUNXI
1a12fdc4
AP
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
71139113
TR
322endif # SPL
323
266aa86b 324endif # FIT
73223f0e
SG
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.
b6cf4439 354
51631259
MY
355config SYS_EXTRA_OPTIONS
356 string "Extra Options (DEPRECATED)"
51631259
MY
357 help
358 The old configuration infrastructure (= mkconfig + boards.cfg)
ed36323f 359 provided the extra options field. If you have something like
51631259
MY
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
7f7563ce 368config SYS_TEXT_BASE
936478e7 369 depends on ARC || X86 || ARCH_UNIPHIER || ARCH_ZYNQMP || \
6ebf8a4a 370 (M68K && !TARGET_ASTRO_MCF5373L) || MICROBLAZE || MIPS || \
7e0ed13f 371 ARCH_ZYNQ || ARCH_KEYSTONE || ARCH_OMAP2PLUS
484cce0d 372 depends on !EFI_APP
7f7563ce
MY
373 hex "Text Base"
374 help
375 TODO: Move CONFIG_SYS_TEXT_BASE for all the architecture
376
7e0ed13f
AF
377 default 0x80800000 if ARCH_OMAP2PLUS
378
eba3fbd6 379
33d88183 380config SYS_CLK_FREQ
e71b422b 381 depends on ARC || ARCH_SUNXI
33d88183
AB
382 int "CPU clock frequency"
383 help
384 TODO: Move CONFIG_SYS_CLK_FREQ for all the architecture
385
63c09417
MY
386config ARCH_FIXUP_FDT_MEMORY
387 bool "Enable arch_fixup_memory_banks() call"
e2f88dfd
MS
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
e91c3c33 394endmenu # Boot images
51631259 395
4db98d3d
EV
396source "api/Kconfig"
397
ed36323f
MY
398source "common/Kconfig"
399
72a8cf8d
SG
400source "cmd/Kconfig"
401
e274ef6b
PD
402source "disk/Kconfig"
403
783e6a72
MY
404source "dts/Kconfig"
405
0649cd0d
SG
406source "env/Kconfig"
407
ed36323f
MY
408source "net/Kconfig"
409
410source "drivers/Kconfig"
411
412source "fs/Kconfig"
413
414source "lib/Kconfig"
1967982a
SG
415
416source "test/Kconfig"