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