• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1menu "Library routines"
2
3config BCH
4	bool "Enable Software based BCH ECC"
5	help
6	  Enables software based BCH ECC algorithm present in lib/bch.c
7	  This is used by SoC platforms which do not have built-in ELM
8	  hardware engine required for BCH ECC correction.
9
10config CC_OPTIMIZE_LIBS_FOR_SPEED
11	bool "Optimize libraries for speed"
12	help
13	  Enabling this option will pass "-O2" to gcc when compiling
14	  under "lib" directory.
15
16	  If unsure, say N.
17
18config DYNAMIC_CRC_TABLE
19	bool "Enable Dynamic tables for CRC"
20	help
21	  Enable this option to calculate entries for CRC tables at runtime.
22	  This can be helpful when reducing the size of the build image
23
24config HAVE_ARCH_IOMAP
25	bool
26	help
27	  Enable this option if architecture provides io{read,write}{8,16,32}
28	  I/O accessor functions.
29
30config HAVE_PRIVATE_LIBGCC
31	bool
32
33config LIB_UUID
34	bool
35
36config PRINTF
37	bool
38	default y
39
40config SPL_PRINTF
41	bool
42	select SPL_SPRINTF
43	select SPL_STRTO if !SPL_USE_TINY_PRINTF
44
45config TPL_PRINTF
46	bool
47	select TPL_SPRINTF
48	select TPL_STRTO if !TPL_USE_TINY_PRINTF
49
50config SPRINTF
51	bool
52	default y
53
54config SPL_SPRINTF
55	bool
56
57config TPL_SPRINTF
58	bool
59
60config STRTO
61	bool
62	default y
63
64config SPL_STRTO
65	bool
66
67config TPL_STRTO
68	bool
69
70config IMAGE_SPARSE
71	bool
72
73config IMAGE_SPARSE_FILLBUF_SIZE
74	hex "Android sparse image CHUNK_TYPE_FILL buffer size"
75	default 0x80000
76	depends on IMAGE_SPARSE
77	help
78	  Set the size of the fill buffer used when processing CHUNK_TYPE_FILL
79	  chunks.
80
81config USE_PRIVATE_LIBGCC
82	bool "Use private libgcc"
83	depends on HAVE_PRIVATE_LIBGCC
84	default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
85	help
86	  This option allows you to use the built-in libgcc implementation
87	  of U-Boot instead of the one provided by the compiler.
88	  If unsure, say N.
89
90config SYS_HZ
91	int
92	default 1000
93	help
94	  The frequency of the timer returned by get_timer().
95	  get_timer() must operate in milliseconds and this option must be
96	  set to 1000.
97
98config SPL_USE_TINY_PRINTF
99	bool "Enable tiny printf() version in SPL"
100	depends on SPL
101	default y
102	help
103	  This option enables a tiny, stripped down printf version.
104	  This should only be used in space limited environments,
105	  like SPL versions with hard memory limits. This version
106	  reduces the code size by about 2.5KiB on armv7.
107
108	  The supported format specifiers are %c, %s, %u/%d and %x.
109
110config TPL_USE_TINY_PRINTF
111	bool "Enable tiny printf() version in TPL"
112	depends on TPL
113	default y if SPL_USE_TINY_PRINTF
114	help
115	  This option enables a tiny, stripped down printf version.
116	  This should only be used in space limited environments,
117	  like SPL versions with hard memory limits. This version
118	  reduces the code size by about 2.5KiB on armv7.
119
120	  The supported format specifiers are %c, %s, %u/%d and %x.
121
122config PANIC_HANG
123	bool "Do not reset the system on fatal error"
124	help
125	  Define this option to stop the system in case of a fatal error,
126	  so that you have to reset it manually. This is probably NOT a good
127	  idea for an embedded system where you want the system to reboot
128	  automatically as fast as possible, but it may be useful during
129	  development since you can try to debug the conditions that lead to
130	  the situation.
131
132config REGEX
133	bool "Enable regular expression support"
134	default y if NET
135	help
136	  If this variable is defined, U-Boot is linked against the
137	  SLRE (Super Light Regular Expression) library, which adds
138	  regex support to some commands, for example "env grep" and
139	  "setexpr".
140
141choice
142	prompt "Pseudo-random library support type"
143	depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID
144	default LIB_RAND
145	help
146	  Select the library to provide pseudo-random number generator
147	  functions.  LIB_HW_RAND supports certain hardware engines that
148	  provide this functionality.  If in doubt, select LIB_RAND.
149
150config LIB_RAND
151	bool "Pseudo-random library support"
152
153config LIB_HW_RAND
154	bool "HW Engine for random libray support"
155
156endchoice
157
158config SPL_TINY_MEMSET
159	bool "Use a very small memset() in SPL"
160	help
161	  The faster memset() is the arch-specific one (if available) enabled
162	  by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
163	  better performance by writing a word at a time. But in very
164	  size-constrained environments even this may be too big. Enable this
165	  option to reduce code size slightly at the cost of some speed.
166
167config TPL_TINY_MEMSET
168	bool "Use a very small memset() in TPL"
169	help
170	  The faster memset() is the arch-specific one (if available) enabled
171	  by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
172	  better performance by writing a word at a time. But in very
173	  size-constrained environments even this may be too big. Enable this
174	  option to reduce code size slightly at the cost of some speed.
175
176config RBTREE
177	bool
178
179config BITREVERSE
180	bool "Bit reverse library from Linux"
181
182config TRACE
183	bool "Support for tracing of function calls and timing"
184	imply CMD_TRACE
185	help
186	  Enables function tracing within U-Boot. This allows recording of call
187	  traces including timing information. The command can write data to
188	  memory for exporting for analysis (e.g. using bootchart).
189	  See doc/README.trace for full details.
190
191config TRACE_BUFFER_SIZE
192	hex "Size of trace buffer in U-Boot"
193	depends on TRACE
194	default 0x01000000
195	help
196	  Sets the size of the trace buffer in U-Boot. This is allocated from
197	  memory during relocation. If this buffer is too small, the trace
198	  history will be truncated, with later records omitted.
199
200	  If early trace is enabled (i.e. before relocation), this buffer must
201	  be large enough to include all the data from the early trace buffer as
202	  well, since this is copied over to the main buffer during relocation.
203
204	  A trace record is emitted for each function call and each record is
205	  12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
206	  the size is too small then 'trace stats' will show a message saying
207	  how many records were dropped due to buffer overflow.
208
209config TRACE_CALL_DEPTH_LIMIT
210	int "Trace call depth limit"
211	depends on TRACE
212	default 15
213	help
214	  Sets the maximum call depth up to which function calls are recorded.
215
216config TRACE_EARLY
217	bool "Enable tracing before relocation"
218	depends on TRACE
219	help
220	  Sometimes it is helpful to trace execution of U-Boot before
221	  relocation. This is possible by using a arch-specific, fixed buffer
222	  position in memory. Enable this option to start tracing as early as
223	  possible after U-Boot starts.
224
225config TRACE_EARLY_SIZE
226	hex "Size of early trace buffer in U-Boot"
227	depends on TRACE_EARLY
228	default 0x00100000
229	help
230	  Sets the size of the early trace buffer in bytes. This is used to hold
231	  tracing information before relocation.
232
233config TRACE_EARLY_CALL_DEPTH_LIMIT
234	int "Early trace call depth limit"
235	depends on TRACE_EARLY
236	default 200
237	help
238	  Sets the maximum call depth up to which function calls are recorded
239	  during early tracing.
240
241config TRACE_EARLY_ADDR
242	hex "Address of early trace buffer in U-Boot"
243	depends on TRACE_EARLY
244	default 0x00100000
245	help
246	  Sets the address of the early trace buffer in U-Boot. This memory
247	  must be accessible before relocation.
248
249	  A trace record is emitted for each function call and each record is
250	  12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
251	  the size is too small then the message which says the amount of early
252	  data being coped will the the same as the
253
254source lib/dhry/Kconfig
255
256menu "Security support"
257
258config AES
259	bool "Support the AES algorithm"
260	help
261	  This provides a means to encrypt and decrypt data using the AES
262	  (Advanced Encryption Standard). This algorithm uses a symetric key
263	  and is widely used as a streaming cipher. Different key lengths are
264	  supported by the algorithm but only a 128-bit key is supported at
265	  present.
266
267source lib/rsa/Kconfig
268source lib/crypto/Kconfig
269
270config TPM
271	bool "Trusted Platform Module (TPM) Support"
272	depends on DM
273	help
274	  This enables support for TPMs which can be used to provide security
275	  features for your board. The TPM can be connected via LPC or I2C
276	  and a sandbox TPM is provided for testing purposes. Use the 'tpm'
277	  command to interactive the TPM. Driver model support is provided
278	  for the low-level TPM interface, but only one TPM is supported at
279	  a time by the TPM library.
280
281config SPL_TPM
282	bool "Trusted Platform Module (TPM) Support in SPL"
283	depends on SPL_DM
284	help
285	  This enables support for TPMs which can be used to provide security
286	  features for your board. The TPM can be connected via LPC or I2C
287	  and a sandbox TPM is provided for testing purposes. Use the 'tpm'
288	  command to interactive the TPM. Driver model support is provided
289	  for the low-level TPM interface, but only one TPM is supported at
290	  a time by the TPM library.
291
292config TPL_TPM
293	bool "Trusted Platform Module (TPM) Support in TPL"
294	depends on TPL_DM
295	help
296	  This enables support for TPMs which can be used to provide security
297	  features for your board. The TPM can be connected via LPC or I2C
298	  and a sandbox TPM is provided for testing purposes. Use the 'tpm'
299	  command to interactive the TPM. Driver model support is provided
300	  for the low-level TPM interface, but only one TPM is supported at
301	  a time by the TPM library.
302
303endmenu
304
305menu "Android Verified Boot"
306
307config LIBAVB
308	bool "Android Verified Boot 2.0 support"
309	depends on ANDROID_BOOT_IMAGE
310	default n
311	help
312	  This enables support of Android Verified Boot 2.0 which can be used
313	  to assure the end user of the integrity of the software running on a
314	  device. Introduces such features as boot chain of trust, rollback
315	  protection etc.
316
317endmenu
318
319menu "Hashing Support"
320
321config SHA1
322	bool "Enable SHA1 support"
323	help
324	  This option enables support of hashing using SHA1 algorithm.
325	  The hash is calculated in software.
326	  The SHA1 algorithm produces a 160-bit (20-byte) hash value
327	  (digest).
328
329config SHA256
330	bool "Enable SHA256 support"
331	help
332	  This option enables support of hashing using SHA256 algorithm.
333	  The hash is calculated in software.
334	  The SHA256 algorithm produces a 256-bit (32-byte) hash value
335	  (digest).
336
337config SHA_HW_ACCEL
338	bool "Enable hashing using hardware"
339	help
340	  This option enables hardware acceleration
341	  for SHA1/SHA256 hashing.
342	  This affects the 'hash' command and also the
343	  hash_lookup_algo() function.
344
345config SHA_PROG_HW_ACCEL
346	bool "Enable Progressive hashing support using hardware"
347	depends on SHA_HW_ACCEL
348	help
349	  This option enables hardware-acceleration for
350	  SHA1/SHA256 progressive hashing.
351	  Data can be streamed in a block at a time and the hashing
352	  is performed in hardware.
353
354config MD5
355	bool
356
357config CRC32C
358	bool
359
360config XXHASH
361	bool
362
363endmenu
364
365menu "Compression Support"
366
367config LZ4
368	bool "Enable LZ4 decompression support"
369	help
370	  If this option is set, support for LZ4 compressed images
371	  is included. The LZ4 algorithm can run in-place as long as the
372	  compressed image is loaded to the end of the output buffer, and
373	  trades lower compression ratios for much faster decompression.
374
375	  NOTE: This implements the release version of the LZ4 frame
376	  format as generated by default by the 'lz4' command line tool.
377	  This is not the same as the outdated, less efficient legacy
378	  frame format currently (2015) implemented in the Linux kernel
379	  (generated by 'lz4 -l'). The two formats are incompatible.
380
381config LZMA
382	bool "Enable LZMA decompression support"
383	help
384	  This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
385	  a dictionary compression algorithm that provides a high compression
386	  ratio and fairly fast decompression speed. See also
387	  CONFIG_CMD_LZMADEC which provides a decode command.
388
389config LZO
390	bool "Enable LZO decompression support"
391	help
392	  This enables support for LZO compression algorithm.r
393
394config GZIP
395	bool "Enable gzip decompression support"
396	select ZLIB
397	default y
398	help
399	  This enables support for GZIP compression algorithm.
400
401config ZLIB
402	bool
403	default y
404	help
405	  This enables ZLIB compression lib.
406
407config ZSTD
408	bool "Enable Zstandard decompression support"
409	select XXHASH
410	help
411	  This enables Zstandard decompression library.
412
413config SPL_LZ4
414	bool "Enable LZ4 decompression support in SPL"
415	help
416	  This enables support for tge LZ4 decompression algorithm in SPL. LZ4
417	  is a lossless data compression algorithm that is focused on
418	  fast compression and decompression speed. It belongs to the LZ77
419	  family of byte-oriented compression schemes.
420
421config SPL_LZO
422	bool "Enable LZO decompression support in SPL"
423	help
424	  This enables support for LZO compression algorithm in the SPL.
425
426config SPL_GZIP
427	bool "Enable gzip decompression support for SPL build"
428	select SPL_ZLIB
429	help
430	  This enables support for GZIP compression altorithm for SPL boot.
431
432config SPL_ZLIB
433	bool
434	help
435	  This enables compression lib for SPL boot.
436
437config SPL_ZSTD
438	bool "Enable Zstandard decompression support in SPL"
439	select XXHASH
440	help
441	  This enables Zstandard decompression library in the SPL.
442
443endmenu
444
445config ERRNO_STR
446	bool "Enable function for getting errno-related string message"
447	help
448	  The function errno_str(int errno), returns a pointer to the errno
449	  corresponding text message:
450	  - if errno is null or positive number - a pointer to "Success" message
451	  - if errno is negative - a pointer to errno related message
452
453config HEXDUMP
454	bool "Enable hexdump"
455	help
456	  This enables functions for printing dumps of binary data.
457
458config OF_LIBFDT
459	bool "Enable the FDT library"
460	default y if OF_CONTROL
461	help
462	  This enables the FDT library (libfdt). It provides functions for
463	  accessing binary device tree images in memory, such as adding and
464	  removing nodes and properties, scanning through the tree and finding
465	  particular compatible nodes. The library operates on a flattened
466	  version of the device tree.
467
468config OF_LIBFDT_ASSUME_MASK
469	hex "Mask of conditions to assume for libfdt"
470	depends on OF_LIBFDT || FIT
471	default 0
472	help
473	  Use this to change the assumptions made by libfdt about the
474	  device tree it is working with. A value of 0 means that no assumptions
475	  are made, and libfdt is able to deal with malicious data. A value of
476	  0xff means all assumptions are made and any invalid data may cause
477	  unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
478
479config OF_LIBFDT_OVERLAY
480	bool "Enable the FDT library overlay support"
481	depends on OF_LIBFDT
482	default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
483	help
484	  This enables the FDT library (libfdt) overlay support.
485
486config SPL_OF_LIBFDT
487	bool "Enable the FDT library for SPL"
488	default y if SPL_OF_CONTROL
489	help
490	  This enables the FDT library (libfdt). It provides functions for
491	  accessing binary device tree images in memory, such as adding and
492	  removing nodes and properties, scanning through the tree and finding
493	  particular compatible nodes. The library operates on a flattened
494	  version of the device tree.
495
496config SPL_OF_LIBFDT_ASSUME_MASK
497	hex "Mask of conditions to assume for libfdt"
498	depends on SPL_OF_LIBFDT || FIT
499	default 0xff
500	help
501	  Use this to change the assumptions made by libfdt in SPL about the
502	  device tree it is working with. A value of 0 means that no assumptions
503	  are made, and libfdt is able to deal with malicious data. A value of
504	  0xff means all assumptions are made and any invalid data may cause
505	  unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
506
507config TPL_OF_LIBFDT
508	bool "Enable the FDT library for TPL"
509	default y if TPL_OF_CONTROL
510	help
511	  This enables the FDT library (libfdt). It provides functions for
512	  accessing binary device tree images in memory, such as adding and
513	  removing nodes and properties, scanning through the tree and finding
514	  particular compatible nodes. The library operates on a flattened
515	  version of the device tree.
516
517config TPL_OF_LIBFDT_ASSUME_MASK
518	hex "Mask of conditions to assume for libfdt"
519	depends on TPL_OF_LIBFDT || FIT
520	default 0xff
521	help
522	  Use this to change the assumptions made by libfdt in TPL about the
523	  device tree it is working with. A value of 0 means that no assumptions
524	  are made, and libfdt is able to deal with malicious data. A value of
525	  0xff means all assumptions are made and any invalid data may cause
526	  unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
527
528config FDT_FIXUP_PARTITIONS
529	bool "overwrite MTD partitions in DTS through defined in 'mtdparts'"
530	depends on OF_LIBFDT
531	depends on CMD_MTDPARTS
532	help
533	  Allow overwriting defined partitions in the device tree blob
534	  using partition info defined in the 'mtdparts' environment
535	  variable.
536
537menu "System tables"
538	depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
539
540config GENERATE_SMBIOS_TABLE
541	bool "Generate an SMBIOS (System Management BIOS) table"
542	default y
543	depends on X86 || EFI_LOADER
544	help
545	  The System Management BIOS (SMBIOS) specification addresses how
546	  motherboard and system vendors present management information about
547	  their products in a standard format by extending the BIOS interface
548	  on Intel architecture systems.
549
550	  Check http://www.dmtf.org/standards/smbios for details.
551
552config SMBIOS_MANUFACTURER
553	string "SMBIOS Manufacturer"
554	depends on GENERATE_SMBIOS_TABLE
555	default SYS_VENDOR
556	help
557	  The board manufacturer to store in SMBIOS structures.
558	  Change this to override the default one (CONFIG_SYS_VENDOR).
559
560config SMBIOS_PRODUCT_NAME
561	string "SMBIOS Product Name"
562	depends on GENERATE_SMBIOS_TABLE
563	default SYS_BOARD
564	help
565	  The product name to store in SMBIOS structures.
566	  Change this to override the default one (CONFIG_SYS_BOARD).
567
568endmenu
569
570config ASN1_COMPILER
571	bool
572
573config ASN1_DECODER
574	bool
575	help
576	  Enable asn1 decoder library.
577
578config OID_REGISTRY
579	bool
580	help
581	  Enable fast lookup object identifier registry.
582
583source lib/efi/Kconfig
584source lib/efi_loader/Kconfig
585source lib/optee/Kconfig
586
587config TEST_FDTDEC
588	bool "enable fdtdec test"
589	depends on OF_LIBFDT
590
591config LIB_DATE
592	bool
593
594endmenu
595