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