xref: /openbmc/u-boot/Kconfig (revision 3788b451)
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#
6mainmenu "U-Boot $UBOOTVERSION Configuration"
7
8config UBOOTVERSION
9	string
10	option env="UBOOTVERSION"
11
12# Allow defaults in arch-specific code to override any given here
13source "arch/Kconfig"
14
15menu "General setup"
16
17config 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
27config 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
47config 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
56config DISTRO_DEFAULTS
57	bool "Select defaults suitable for booting general purpose Linux distributions"
58	default y if ARCH_SUNXI || TEGRA
59	default y if ARCH_LS2080A
60	default y if ARCH_MESON
61	default y if ARCH_ROCKCHIP
62	default n
63	select CMD_BOOTZ if ARM && !ARM64
64	select CMD_BOOTI if ARM64
65	select CMD_DHCP
66	select CMD_PXE
67	select CMD_EXT2
68	select CMD_EXT4
69	select CMD_FAT
70	select CMD_FS_GENERIC
71	select CMD_MII
72	select CMD_PING
73	select HUSH_PARSER
74	help
75	  Select this to enable various options and commands which are suitable
76	  for building u-boot for booting general purpose Linux distributions.
77
78config SYS_MALLOC_F
79	bool "Enable malloc() pool before relocation"
80	default y if DM
81	help
82	  Before relocation, memory is very limited on many platforms. Still,
83	  we can provide a small malloc() pool if needed. Driver model in
84	  particular needs this to operate, so that it can allocate the
85	  initial serial device and any others that are needed.
86
87config SYS_MALLOC_F_LEN
88	hex "Size of malloc() pool before relocation"
89	depends on SYS_MALLOC_F
90	default 0x400
91	help
92	  Before relocation, memory is very limited on many platforms. Still,
93	  we can provide a small malloc() pool if needed. Driver model in
94	  particular needs this to operate, so that it can allocate the
95	  initial serial device and any others that are needed.
96
97menuconfig EXPERT
98	bool "Configure standard U-Boot features (expert users)"
99	default y
100	help
101	  This option allows certain base U-Boot options and settings
102	  to be disabled or tweaked. This is for specialized
103	  environments which can tolerate a "non-standard" U-Boot.
104	  Use this only if you really know what you are doing.
105
106if EXPERT
107	config SYS_MALLOC_CLEAR_ON_INIT
108	bool "Init with zeros the memory reserved for malloc (slow)"
109	default y
110	help
111	  This setting is enabled by default. The reserved malloc
112	  memory is initialized with zeros, so first malloc calls
113	  will return the pointer to the zeroed memory. But this
114	  slows the boot time.
115
116	  It is recommended to disable it, when CONFIG_SYS_MALLOC_LEN
117	  value, has more than few MiB, e.g. when uses bzip2 or bmp logo.
118	  Then the boot time can be significantly reduced.
119	  Warning:
120	  When disabling this, please check if malloc calls, maybe
121	  should be replaced by calloc - if one expects zeroed memory.
122
123config TOOLS_DEBUG
124	bool "Enable debug information for tools"
125	help
126	  Enable generation of debug information for tools such as mkimage.
127	  This can be used for debugging purposes. With debug information
128	  it is possible to set breakpoints on particular lines, single-step
129	  debug through the source code, etc.
130
131endif # EXPERT
132
133config PHYS_64BIT
134	bool "64bit physical address support"
135	help
136	  Say Y here to support 64bit physical memory address.
137	  This can be used not only for 64bit SoCs, but also for
138	  large physical address extention on 32bit SoCs.
139
140endmenu		# General setup
141
142menu "Boot images"
143
144config FIT
145	bool "Support Flattened Image Tree"
146	help
147	  This option allows you to boot the new uImage structure,
148	  Flattened Image Tree.  FIT is formally a FDT, which can include
149	  images of various types (kernel, FDT blob, ramdisk, etc.)
150	  in a single blob.  To boot this new uImage structure,
151	  pass the address of the blob to the "bootm" command.
152	  FIT is very flexible, supporting compression, multiple images,
153	  multiple configurations, verification through hashing and also
154	  verified boot (secure boot using RSA).
155
156if FIT
157
158config FIT_SIGNATURE
159	bool "Enable signature verification of FIT uImages"
160	depends on DM
161	select RSA
162	help
163	  This option enables signature verification of FIT uImages,
164	  using a hash signed and verified using RSA. If
165	  CONFIG_SHA_PROG_HW_ACCEL is defined, i.e support for progressive
166	  hashing is available using hardware, then the RSA library will use
167	  it. See doc/uImage.FIT/signature.txt for more details.
168
169	  WARNING: When relying on signed FIT images with a required signature
170	  check the legacy image format is disabled by default, so that
171	  unsigned images cannot be loaded. If a board needs the legacy image
172	  format support in this case, enable it using
173	  CONFIG_IMAGE_FORMAT_LEGACY.
174
175config FIT_VERBOSE
176	bool "Show verbose messages when FIT images fail"
177	help
178	  Generally a system will have valid FIT images so debug messages
179	  are a waste of code space. If you are debugging your images then
180	  you can enable this option to get more verbose information about
181	  failures.
182
183config FIT_BEST_MATCH
184	bool "Select the best match for the kernel device tree"
185	help
186	  When no configuration is explicitly selected, default to the
187	  one whose fdt's compatibility field best matches that of
188	  U-Boot itself. A match is considered "best" if it matches the
189	  most specific compatibility entry of U-Boot's fdt's root node.
190	  The order of entries in the configuration's fdt is ignored.
191
192config FIT_IMAGE_POST_PROCESS
193	bool "Enable post-processing of FIT artifacts after loading by U-Boot"
194	depends on TI_SECURE_DEVICE
195	help
196	  Allows doing any sort of manipulation to blobs after they got extracted
197	  from FIT images like stripping off headers or modifying the size of the
198	  blob, verification, authentication, decryption etc. in a platform or
199	  board specific way. In order to use this feature a platform or board-
200	  specific implementation of board_fit_image_post_process() must be
201	  provided. Also, anything done during this post-processing step would
202	  need to be comprehended in how the images were prepared before being
203	  injected into the FIT creation (i.e. the blobs would have been pre-
204	  processed before being added to the FIT image).
205
206config SPL_FIT
207	bool "Support Flattened Image Tree within SPL"
208	depends on SPL
209
210config SPL_FIT_SIGNATURE
211	bool "Enable signature verification of FIT firmware within SPL"
212	depends on SPL_FIT
213	depends on SPL_DM
214	select SPL_RSA
215
216config SPL_LOAD_FIT
217	bool "Enable SPL loading U-Boot as a FIT"
218	help
219	  Normally with the SPL framework a legacy image is generated as part
220	  of the build. This contains U-Boot along with information as to
221	  where it should be loaded. This option instead enables generation
222	  of a FIT (Flat Image Tree) which provides more flexibility. In
223	  particular it can handle selecting from multiple device tree
224	  and passing the correct one to U-Boot.
225
226config SPL_FIT_IMAGE_POST_PROCESS
227	bool "Enable post-processing of FIT artifacts after loading by the SPL"
228	depends on SPL_LOAD_FIT && TI_SECURE_DEVICE
229	help
230	  Allows doing any sort of manipulation to blobs after they got extracted
231	  from the U-Boot FIT image like stripping off headers or modifying the
232	  size of the blob, verification, authentication, decryption etc. in a
233	  platform or board specific way. In order to use this feature a platform
234	  or board-specific implementation of board_fit_image_post_process() must
235	  be provided. Also, anything done during this post-processing step would
236	  need to be comprehended in how the images were prepared before being
237	  injected into the FIT creation (i.e. the blobs would have been pre-
238	  processed before being added to the FIT image).
239
240endif # FIT
241
242config OF_BOARD_SETUP
243	bool "Set up board-specific details in device tree before boot"
244	depends on OF_LIBFDT
245	help
246	  This causes U-Boot to call ft_board_setup() before booting into
247	  the Operating System. This function can set up various
248	  board-specific information in the device tree for use by the OS.
249	  The device tree is then passed to the OS.
250
251config OF_SYSTEM_SETUP
252	bool "Set up system-specific details in device tree before boot"
253	depends on OF_LIBFDT
254	help
255	  This causes U-Boot to call ft_system_setup() before booting into
256	  the Operating System. This function can set up various
257	  system-specific information in the device tree for use by the OS.
258	  The device tree is then passed to the OS.
259
260config OF_STDOUT_VIA_ALIAS
261	bool "Update the device-tree stdout alias from U-Boot"
262	depends on OF_LIBFDT
263	help
264	  This uses U-Boot's serial alias from the aliases node to update
265	  the device tree passed to the OS. The "linux,stdout-path" property
266	  in the chosen node is set to point to the correct serial node.
267	  This option currently references CONFIG_CONS_INDEX, which is
268	  incorrect when used with device tree as this option does not
269	  exist / should not be used.
270
271config SYS_EXTRA_OPTIONS
272	string "Extra Options (DEPRECATED)"
273	help
274	  The old configuration infrastructure (= mkconfig + boards.cfg)
275	  provided the extra options field. If you have something like
276	  "HAS_BAR,BAZ=64", the optional options
277	    #define CONFIG_HAS
278	    #define CONFIG_BAZ	64
279	  will be defined in include/config.h.
280	  This option was prepared for the smooth migration from the old
281	  configuration to Kconfig. Since this option will be removed sometime,
282	  new boards should not use this option.
283
284config SYS_TEXT_BASE
285	depends on SPARC || ARC || X86 || ARCH_UNIPHIER || ARCH_ZYNQMP || \
286		(M68K && !TARGET_ASTRO_MCF5373L) || MICROBLAZE || MIPS || \
287		ARCH_ZYNQ
288	depends on !EFI_APP
289	hex "Text Base"
290	help
291	  TODO: Move CONFIG_SYS_TEXT_BASE for all the architecture
292
293
294config SYS_CLK_FREQ
295	depends on ARC || ARCH_SUNXI
296	int "CPU clock frequency"
297	help
298	  TODO: Move CONFIG_SYS_CLK_FREQ for all the architecture
299
300config ARCH_FIXUP_FDT_MEMORY
301	bool "Enable arch_fixup_memory_banks() call"
302	default y
303	help
304	  Enable FDT memory map syncup before OS boot. This feature can be
305	  used for booting OS with different memory setup where the part of
306	  the memory location should be used for different purpose.
307
308endmenu		# Boot images
309
310source "common/Kconfig"
311
312source "cmd/Kconfig"
313
314source "dts/Kconfig"
315
316source "net/Kconfig"
317
318source "drivers/Kconfig"
319
320source "fs/Kconfig"
321
322source "lib/Kconfig"
323
324source "test/Kconfig"
325