bootm: fix passing argc to standalone apps
[platform/kernel/u-boot.git] / 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 LOCALVERSION
18         string "Local version - append to U-Boot release"
19         help
20           Append an extra string to the end of your U-Boot version.
21           This will show up in your boot log, for example.
22           The string you set here will be appended after the contents of
23           any files with a filename matching localversion* in your
24           object and source tree, in that order.  Your total string can
25           be a maximum of 64 characters.
26
27 config LOCALVERSION_AUTO
28         bool "Automatically append version information to the version string"
29         default y
30         help
31           This will try to automatically determine if the current tree is a
32           release tree by looking for Git tags that belong to the current
33           top of tree revision.
34
35           A string of the format -gxxxxxxxx will be added to the localversion
36           if a Git-based tree is found.  The string generated by this will be
37           appended after any matching localversion* files, and after the value
38           set in CONFIG_LOCALVERSION.
39
40           (The actual string used here is the first eight characters produced
41           by running the command:
42
43             $ git rev-parse --verify HEAD
44
45           which is done within the script "scripts/setlocalversion".)
46
47 config CC_OPTIMIZE_FOR_SIZE
48         bool "Optimize for size"
49         default y
50         help
51           Enabling this option will pass "-Os" instead of "-O2" to gcc
52           resulting in a smaller U-Boot image.
53
54           This option is enabled by default for U-Boot.
55
56 config DISTRO_DEFAULTS
57         bool "Select defaults suitable for booting general purpose Linux distributions"
58         default y if ARCH_SUNXI
59         default n
60         select CMD_BOOTZ if ARM && !ARM64
61         select CMD_BOOTI if ARM64
62         select CMD_DHCP
63         select CMD_EXT2
64         select CMD_EXT4
65         select CMD_FAT
66         select CMD_FS_GENERIC
67         select CMD_MII
68         select CMD_PING
69         select HUSH_PARSER
70         help
71           Select this to enable various options and commands which are suitable
72           for building u-boot for booting general purpose Linux distributions.
73
74 config SYS_MALLOC_F
75         bool "Enable malloc() pool before relocation"
76         default y if DM
77         help
78           Before relocation, memory is very limited on many platforms. Still,
79           we can provide a small malloc() pool if needed. Driver model in
80           particular needs this to operate, so that it can allocate the
81           initial serial device and any others that are needed.
82
83 config SYS_MALLOC_F_LEN
84         hex "Size of malloc() pool before relocation"
85         depends on SYS_MALLOC_F
86         default 0x400
87         help
88           Before relocation, memory is very limited on many platforms. Still,
89           we can provide a small malloc() pool if needed. Driver model in
90           particular needs this to operate, so that it can allocate the
91           initial serial device and any others that are needed.
92
93 menuconfig EXPERT
94         bool "Configure standard U-Boot features (expert users)"
95         default y
96         help
97           This option allows certain base U-Boot options and settings
98           to be disabled or tweaked. This is for specialized
99           environments which can tolerate a "non-standard" U-Boot.
100           Use this only if you really know what you are doing.
101
102 if EXPERT
103         config SYS_MALLOC_CLEAR_ON_INIT
104         bool "Init with zeros the memory reserved for malloc (slow)"
105         default y
106         help
107           This setting is enabled by default. The reserved malloc
108           memory is initialized with zeros, so first malloc calls
109           will return the pointer to the zeroed memory. But this
110           slows the boot time.
111
112           It is recommended to disable it, when CONFIG_SYS_MALLOC_LEN
113           value, has more than few MiB, e.g. when uses bzip2 or bmp logo.
114           Then the boot time can be significantly reduced.
115           Warning:
116           When disabling this, please check if malloc calls, maybe
117           should be replaced by calloc - if one expects zeroed memory.
118
119 config TOOLS_DEBUG
120         bool "Enable debug information for tools"
121         help
122           Enable generation of debug information for tools such as mkimage.
123           This can be used for debugging purposes. With debug information
124           it is possible to set breakpoints on particular lines, single-step
125           debug through the source code, etc.
126
127 endif
128
129 config PHYS_64BIT
130         bool "64bit physical address support"
131         help
132           Say Y here to support 64bit physical memory address.
133           This can be used not only for 64bit SoCs, but also for
134           large physical address extention on 32bit SoCs.
135
136 endmenu         # General setup
137
138 menu "Boot images"
139
140 config FIT
141         bool "Support Flattened Image Tree"
142         help
143           This option allows to boot the new uImage structrure,
144           Flattened Image Tree.  FIT is formally a FDT, which can include
145           images of various types (kernel, FDT blob, ramdisk, etc.)
146           in a single blob.  To boot this new uImage structure,
147           pass the address of the blob to the "bootm" command.
148           FIT is very flexible, supporting compression, multiple images,
149           multiple configurations, verification through hashing and also
150           verified boot (secure boot using RSA). This option enables that
151           feature.
152
153 config SPL_FIT
154         bool "Support Flattened Image Tree within SPL"
155         depends on FIT
156         depends on SPL
157
158 config FIT_VERBOSE
159         bool "Display verbose messages on FIT boot"
160         depends on FIT
161
162 config FIT_SIGNATURE
163         bool "Enable signature verification of FIT uImages"
164         depends on FIT
165         depends on DM
166         select RSA
167         help
168           This option enables signature verification of FIT uImages,
169           using a hash signed and verified using RSA. If
170           CONFIG_SHA_PROG_HW_ACCEL is defined, i.e support for progressive
171           hashing is available using hardware, then then RSA library will use
172           it. See doc/uImage.FIT/signature.txt for more details.
173
174           WARNING: When relying on signed FIT images with a required signature
175           check the legacy image format is disabled by default, so that
176           unsigned images cannot be loaded. If a board needs the legacy image
177           format support in this case, enable it using
178           CONFIG_IMAGE_FORMAT_LEGACY.
179
180 config SPL_FIT_SIGNATURE
181         bool "Enable signature verification of FIT firmware within SPL"
182         depends on SPL_FIT
183         depends on SPL_DM
184         select SPL_RSA
185
186 config FIT_BEST_MATCH
187         bool "Select the best match for the kernel device tree"
188         depends on FIT
189         help
190           When no configuration is explicitly selected, default to the
191           one whose fdt's compatibility field best matches that of
192           U-Boot itself. A match is considered "best" if it matches the
193           most specific compatibility entry of U-Boot's fdt's root node.
194           The order of entries in the configuration's fdt is ignored.
195
196 config FIT_VERBOSE
197         bool "Show verbose messages when FIT images fails"
198         depends on FIT
199         help
200           Generally a system will have valid FIT images so debug messages
201           are a waste of code space. If you are debugging your images then
202           you can enable this option to get more verbose information about
203           failures.
204
205 config OF_BOARD_SETUP
206         bool "Set up board-specific details in device tree before boot"
207         depends on OF_LIBFDT
208         help
209           This causes U-Boot to call ft_board_setup() before booting into
210           the Operating System. This function can set up various
211           board-specific information in the device tree for use by the OS.
212           The device tree is then passed to the OS.
213
214 config OF_SYSTEM_SETUP
215         bool "Set up system-specific details in device tree before boot"
216         depends on OF_LIBFDT
217         help
218           This causes U-Boot to call ft_system_setup() before booting into
219           the Operating System. This function can set up various
220           system-specific information in the device tree for use by the OS.
221           The device tree is then passed to the OS.
222
223 config OF_STDOUT_VIA_ALIAS
224         bool "Update the device-tree stdout alias from U-Boot"
225         depends on OF_LIBFDT
226         help
227           This uses U-Boot's serial alias from the aliases node to update
228           the device tree passed to the OS. The "linux,stdout-path" property
229           in the chosen node is set to point to the correct serial node.
230           This option currently references CONFIG_CONS_INDEX, which is
231           incorrect when used with device tree as this option does not
232           exist / should not be used.
233
234 config SYS_EXTRA_OPTIONS
235         string "Extra Options (DEPRECATED)"
236         help
237           The old configuration infrastructure (= mkconfig + boards.cfg)
238           provided the extra options field. If you have something like
239           "HAS_BAR,BAZ=64", the optional options
240             #define CONFIG_HAS
241             #define CONFIG_BAZ  64
242           will be defined in include/config.h.
243           This option was prepared for the smooth migration from the old
244           configuration to Kconfig. Since this option will be removed sometime,
245           new boards should not use this option.
246
247 config SYS_TEXT_BASE
248         depends on SPARC || ARC || X86 || ARCH_UNIPHIER || ARCH_ZYNQMP || \
249                 (M68K && !TARGET_ASTRO_MCF5373L) || MICROBLAZE || MIPS
250         depends on !EFI_APP
251         hex "Text Base"
252         help
253           TODO: Move CONFIG_SYS_TEXT_BASE for all the architecture
254
255 config SPL_LOAD_FIT
256         bool "Enable SPL loading U-Boot as a FIT"
257         depends on FIT
258         help
259           Normally with the SPL framework a legacy image is generated as part
260           of the build. This contains U-Boot along with information as to
261           where it should be loaded. This option instead enables generation
262           of a FIT (Flat Image Tree) which provides more flexibility. In
263           particular it can handle selecting from multiple device tree
264           and passing the correct one to U-Boot.
265
266 config SPL_FIT_IMAGE_POST_PROCESS
267         bool "Enable post-processing of FIT artifacts after loading by the SPL"
268         depends on SPL_LOAD_FIT && TI_SECURE_DEVICE
269         help
270           Allows doing any sort of manipulation to blobs after they got extracted
271           from the U-Boot FIT image like stripping off headers or modifying the
272           size of the blob, verification, authentication, decryption etc. in a
273           platform or board specific way. In order to use this feature a platform
274           or board-specific implementation of board_fit_image_post_process() must
275           be provided. Also, anything done during this post-processing step would
276           need to be comprehended in how the images were prepared before being
277           injected into the FIT creation (i.e. the blobs would have been pre-
278           processed before being added to the FIT image).
279
280 config FIT_IMAGE_POST_PROCESS
281         bool "Enable post-processing of FIT artifacts after loading by U-Boot"
282         depends on FIT && TI_SECURE_DEVICE
283         help
284           Allows doing any sort of manipulation to blobs after they got extracted
285           from FIT images like stripping off headers or modifying the size of the
286           blob, verification, authentication, decryption etc. in a platform or
287           board specific way. In order to use this feature a platform or board-
288           specific implementation of board_fit_image_post_process() must be
289           provided. Also, anything done during this post-processing step would
290           need to be comprehended in how the images were prepared before being
291           injected into the FIT creation (i.e. the blobs would have been pre-
292           processed before being added to the FIT image).
293
294 config SPL_DFU_SUPPORT
295         bool "Enable SPL with DFU to load binaries to memory device"
296         depends on USB
297         help
298           Currently the SPL does not have capability to load the
299           binaries or boot images to boot devices like ram,eMMC,SPI,etc.
300           This feature enables the DFU (Device Firmware Upgarde) in SPL with
301           RAM memory device support. The ROM code will load and execute
302           the SPL built with dfu. The user can load binaries (u-boot/kernel) to
303           selected device partition from host-pc using dfu-utils.
304                 This feature will be useful to flash the binaries to factory
305           or bare-metal boards using USB interface.
306
307 choice
308         bool "DFU device selection"
309         depends on SPL_DFU_SUPPORT
310
311 config SPL_DFU_RAM
312         bool "RAM device"
313         depends on SPL_DFU_SUPPORT
314         help
315          select RAM/DDR memory device for loading binary images
316          (u-boot/kernel) to the selected device partition using
317          DFU and execute the u-boot/kernel from RAM.
318
319 endchoice
320
321 config SYS_CLK_FREQ
322         depends on ARC || ARCH_SUNXI
323         int "CPU clock frequency"
324         help
325           TODO: Move CONFIG_SYS_CLK_FREQ for all the architecture
326
327 config ARCH_FIXUP_FDT
328         bool "Enable arch_fixup_fdt() call"
329         depends on ARM || MIPS
330         default y
331         help
332           Enable FDT memory map syncup before OS boot. This feature can be
333           used for booting OS with different memory setup where the part of
334           the memory location should be used for different purpose.
335
336 endmenu         # Boot images
337
338 source "common/Kconfig"
339
340 source "cmd/Kconfig"
341
342 source "dts/Kconfig"
343
344 source "net/Kconfig"
345
346 source "drivers/Kconfig"
347
348 source "fs/Kconfig"
349
350 source "lib/Kconfig"
351
352 source "test/Kconfig"