xref: /rk3399_rockchip-uboot/Kconfig (revision a73588fe481ffe39e3021decdc73a5b358f0776c)
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
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
74config 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
83config SYS_MALLOC_F_LEN
84	hex "Size of malloc() pool before relocation"
85	depends on SYS_MALLOC_F
86	default 0x2000 if SPL_DM && SPL_OF_CONTROL
87	default 0x400
88	help
89	  Before relocation, memory is very limited on many platforms. Still,
90	  we can provide a small malloc() pool if needed. Driver model in
91	  particular needs this to operate, so that it can allocate the
92	  initial serial device and any others that are needed.
93
94menuconfig EXPERT
95	bool "Configure standard U-Boot features (expert users)"
96	default y
97	help
98	  This option allows certain base U-Boot options and settings
99	  to be disabled or tweaked. This is for specialized
100	  environments which can tolerate a "non-standard" U-Boot.
101	  Use this only if you really know what you are doing.
102
103if EXPERT
104	config SYS_MALLOC_CLEAR_ON_INIT
105	bool "Init with zeros the memory reserved for malloc (slow)"
106	default y
107	help
108	  This setting is enabled by default. The reserved malloc
109	  memory is initialized with zeros, so first malloc calls
110	  will return the pointer to the zeroed memory. But this
111	  slows the boot time.
112
113	  It is recommended to disable it, when CONFIG_SYS_MALLOC_LEN
114	  value, has more than few MiB, e.g. when uses bzip2 or bmp logo.
115	  Then the boot time can be significantly reduced.
116	  Warning:
117	  When disabling this, please check if malloc calls, maybe
118	  should be replaced by calloc - if one expects zeroed memory.
119
120config TOOLS_DEBUG
121	bool "Enable debug information for tools"
122	help
123	  Enable generation of debug information for tools such as mkimage.
124	  This can be used for debugging purposes. With debug information
125	  it is possible to set breakpoints on particular lines, single-step
126	  debug through the source code, etc.
127
128endif
129
130config PHYS_64BIT
131	bool "64bit physical address support"
132	help
133	  Say Y here to support 64bit physical memory address.
134	  This can be used not only for 64bit SoCs, but also for
135	  large physical address extention on 32bit SoCs.
136
137endmenu		# General setup
138
139menu "Boot images"
140
141config SUPPORT_SPL
142	bool
143
144config SUPPORT_TPL
145	bool
146
147config SPL
148	bool
149	depends on SUPPORT_SPL
150	prompt "Enable SPL"
151	help
152	  If you want to build SPL as well as the normal image, say Y.
153
154config SPL_SYS_MALLOC_SIMPLE
155	bool
156	depends on SPL
157	prompt "Only use malloc_simple functions in the SPL"
158	help
159	  Say Y here to only use the *_simple malloc functions from
160	  malloc_simple.c, rather then using the versions from dlmalloc.c;
161	  this will make the SPL binary smaller at the cost of more heap
162	  usage as the *_simple malloc functions do not re-use free-ed mem.
163
164config SPL_STACK_R
165	depends on SPL
166	bool "Enable SDRAM location for SPL stack"
167	help
168	  SPL starts off execution in SRAM and thus typically has only a small
169	  stack available. Since SPL sets up DRAM while in its board_init_f()
170	  function, it is possible for the stack to move there before
171	  board_init_r() is reached. This option enables a special SDRAM
172	  location for the SPL stack. U-Boot SPL switches to this after
173	  board_init_f() completes, and before board_init_r() starts.
174
175config SPL_STACK_R_ADDR
176	depends on SPL_STACK_R
177	hex "SDRAM location for SPL stack"
178	help
179	  Specify the address in SDRAM for the SPL stack. This will be set up
180	  before board_init_r() is called.
181
182config SPL_STACK_R_MALLOC_SIMPLE_LEN
183	depends on SPL_STACK_R && SPL_SYS_MALLOC_SIMPLE
184	hex "Size of malloc_simple heap after switching to DRAM SPL stack"
185	default 0x100000
186	help
187	  Specify the amount of the stack to use as memory pool for
188	  malloc_simple after switching the stack to DRAM. This may be set
189	  to give board_init_r() a larger heap then the initial heap in
190	  SRAM which is limited to SYS_MALLOC_F_LEN bytes.
191
192config SPL_SEPARATE_BSS
193	depends on SPL
194	bool "BSS section is in a different memory region from text"
195	help
196	  Some platforms need a large BSS region in SPL and can provide this
197	  because RAM is already set up. In this case BSS can be moved to RAM.
198	  This option should then be enabled so that the correct device tree
199	  location is used. Normally we put the device tree at the end of BSS
200	  but with this option enabled, it goes at _image_binary_end.
201
202config TPL
203	bool
204	depends on SPL && SUPPORT_TPL
205	prompt "Enable TPL"
206	help
207	  If you want to build TPL as well as the normal image and SPL, say Y.
208
209config FIT
210	bool "Support Flattened Image Tree"
211	help
212	  This option allows to boot the new uImage structrure,
213	  Flattened Image Tree.  FIT is formally a FDT, which can include
214	  images of various types (kernel, FDT blob, ramdisk, etc.)
215	  in a single blob.  To boot this new uImage structure,
216	  pass the address of the blob to the "bootm" command.
217	  FIT is very flexible, supporting compression, multiple images,
218	  multiple configurations, verification through hashing and also
219	  verified boot (secure boot using RSA). This option enables that
220	  feature.
221
222config SPL_FIT
223	bool "Support Flattened Image Tree within SPL"
224	depends on FIT
225	depends on SPL
226
227config FIT_VERBOSE
228	bool "Display verbose messages on FIT boot"
229	depends on FIT
230
231config FIT_SIGNATURE
232	bool "Enable signature verification of FIT uImages"
233	depends on FIT
234	depends on DM
235	select RSA
236	help
237	  This option enables signature verification of FIT uImages,
238	  using a hash signed and verified using RSA. If
239	  CONFIG_SHA_PROG_HW_ACCEL is defined, i.e support for progressive
240	  hashing is available using hardware, then then RSA library will use
241	  it. See doc/uImage.FIT/signature.txt for more details.
242
243	  WARNING: When relying on signed FIT images with a required signature
244	  check the legacy image format is disabled by default, so that
245	  unsigned images cannot be loaded. If a board needs the legacy image
246	  format support in this case, enable it using
247	  CONFIG_IMAGE_FORMAT_LEGACY.
248
249config SPL_FIT_SIGNATURE
250	bool "Enable signature verification of FIT firmware within SPL"
251	depends on SPL_FIT
252	depends on SPL_DM
253	select SPL_RSA
254
255config FIT_BEST_MATCH
256	bool "Select the best match for the kernel device tree"
257	depends on FIT
258	help
259	  When no configuration is explicitly selected, default to the
260	  one whose fdt's compatibility field best matches that of
261	  U-Boot itself. A match is considered "best" if it matches the
262	  most specific compatibility entry of U-Boot's fdt's root node.
263	  The order of entries in the configuration's fdt is ignored.
264
265config FIT_VERBOSE
266	bool "Show verbose messages when FIT images fails"
267	depends on FIT
268	help
269	  Generally a system will have valid FIT images so debug messages
270	  are a waste of code space. If you are debugging your images then
271	  you can enable this option to get more verbose information about
272	  failures.
273
274config OF_BOARD_SETUP
275	bool "Set up board-specific details in device tree before boot"
276	depends on OF_LIBFDT
277	help
278	  This causes U-Boot to call ft_board_setup() before booting into
279	  the Operating System. This function can set up various
280	  board-specific information in the device tree for use by the OS.
281	  The device tree is then passed to the OS.
282
283config OF_SYSTEM_SETUP
284	bool "Set up system-specific details in device tree before boot"
285	depends on OF_LIBFDT
286	help
287	  This causes U-Boot to call ft_system_setup() before booting into
288	  the Operating System. This function can set up various
289	  system-specific information in the device tree for use by the OS.
290	  The device tree is then passed to the OS.
291
292config OF_STDOUT_VIA_ALIAS
293	bool "Update the device-tree stdout alias from U-Boot"
294	depends on OF_LIBFDT
295	help
296	  This uses U-Boot's serial alias from the aliases node to update
297	  the device tree passed to the OS. The "linux,stdout-path" property
298	  in the chosen node is set to point to the correct serial node.
299	  This option currently references CONFIG_CONS_INDEX, which is
300	  incorrect when used with device tree as this option does not
301	  exist / should not be used.
302
303config SYS_EXTRA_OPTIONS
304	string "Extra Options (DEPRECATED)"
305	help
306	  The old configuration infrastructure (= mkconfig + boards.cfg)
307	  provided the extra options field. If you have something like
308	  "HAS_BAR,BAZ=64", the optional options
309	    #define CONFIG_HAS
310	    #define CONFIG_BAZ	64
311	  will be defined in include/config.h.
312	  This option was prepared for the smooth migration from the old
313	  configuration to Kconfig. Since this option will be removed sometime,
314	  new boards should not use this option.
315
316config SYS_TEXT_BASE
317	depends on SPARC || ARC || X86 || ARCH_UNIPHIER || ARCH_ZYNQMP || \
318		(M68K && !TARGET_ASTRO_MCF5373L) || MICROBLAZE || MIPS
319	depends on !EFI_APP
320	hex "Text Base"
321	help
322	  TODO: Move CONFIG_SYS_TEXT_BASE for all the architecture
323
324config SPL_LOAD_FIT
325	bool "Enable SPL loading U-Boot as a FIT"
326	depends on FIT
327	help
328	  Normally with the SPL framework a legacy image is generated as part
329	  of the build. This contains U-Boot along with information as to
330	  where it should be loaded. This option instead enables generation
331	  of a FIT (Flat Image Tree) which provides more flexibility. In
332	  particular it can handle selecting from multiple device tree
333	  and passing the correct one to U-Boot.
334
335config SPL_FIT_IMAGE_POST_PROCESS
336	bool "Enable post-processing of FIT artifacts after loading by the SPL"
337	depends on SPL_LOAD_FIT && TI_SECURE_DEVICE
338	help
339	  Allows doing any sort of manipulation to blobs after they got extracted
340	  from the U-Boot FIT image like stripping off headers or modifying the
341	  size of the blob, verification, authentication, decryption etc. in a
342	  platform or board specific way. In order to use this feature a platform
343	  or board-specific implementation of board_fit_image_post_process() must
344	  be provided. Also, anything done during this post-processing step would
345	  need to be comprehended in how the images were prepared before being
346	  injected into the FIT creation (i.e. the blobs would have been pre-
347	  processed before being added to the FIT image).
348
349config FIT_IMAGE_POST_PROCESS
350	bool "Enable post-processing of FIT artifacts after loading by U-Boot"
351	depends on FIT && TI_SECURE_DEVICE
352	help
353	  Allows doing any sort of manipulation to blobs after they got extracted
354	  from FIT images like stripping off headers or modifying the size of the
355	  blob, verification, authentication, decryption etc. in a platform or
356	  board specific way. In order to use this feature a platform or board-
357	  specific implementation of board_fit_image_post_process() must be
358	  provided. Also, anything done during this post-processing step would
359	  need to be comprehended in how the images were prepared before being
360	  injected into the FIT creation (i.e. the blobs would have been pre-
361	  processed before being added to the FIT image).
362
363config SYS_CLK_FREQ
364	depends on ARC || ARCH_SUNXI
365	int "CPU clock frequency"
366	help
367	  TODO: Move CONFIG_SYS_CLK_FREQ for all the architecture
368
369config ARCH_FIXUP_FDT
370	bool "Enable arch_fixup_fdt() call"
371	depends on ARM || MIPS
372	default y
373	help
374	  Enable FDT memory map syncup before OS boot. This feature can be
375	  used for booting OS with different memory setup where the part of
376	  the memory location should be used for different purpose.
377
378endmenu		# Boot images
379
380source "common/Kconfig"
381
382source "cmd/Kconfig"
383
384source "dts/Kconfig"
385
386source "net/Kconfig"
387
388source "drivers/Kconfig"
389
390source "fs/Kconfig"
391
392source "lib/Kconfig"
393
394source "test/Kconfig"
395