1menu "Library routines"
2
3config ADDR_MAP
4	bool "Enable support for non-identity virtual-physical mappings"
5	help
6	  Enables helper code for implementing non-identity virtual-physical
7	  memory mappings for 32bit CPUs.
8
9	  This library only works in the post-relocation phase.
10
11config SYS_NUM_ADDR_MAP
12	int "Size of the address-map table"
13	depends on ADDR_MAP
14	default 16
15	help
16	  Sets the number of entries in the virtual-physical mapping table.
17
18config BCH
19	bool "Enable Software based BCH ECC"
20	help
21	  Enables software based BCH ECC algorithm present in lib/bch.c
22	  This is used by SoC platforms which do not have built-in ELM
23	  hardware engine required for BCH ECC correction.
24
25config BINMAN_FDT
26	bool "Allow access to binman information in the device tree"
27	depends on BINMAN && DM && OF_CONTROL
28	default y if OF_SEPARATE || OF_EMBED
29	help
30	  This enables U-Boot to access information about binman entries,
31	  stored in the device tree in a binman node. Typical uses are to
32	  locate entries in the firmware image. See binman.h for the available
33	  functionality.
34
35config CC_OPTIMIZE_LIBS_FOR_SPEED
36	bool "Optimize libraries for speed"
37	help
38	  Enabling this option will pass "-O2" to gcc when compiling
39	  under "lib" directory.
40
41	  If unsure, say N.
42
43config CHARSET
44	bool
45	default y if UT_UNICODE || EFI_LOADER || UFS
46	help
47	  Enables support for various conversions between different
48	  character sets, such as between unicode representations and
49	  different 'code pages'.
50
51config DYNAMIC_CRC_TABLE
52	bool "Enable Dynamic tables for CRC"
53	help
54	  Enable this option to calculate entries for CRC tables at runtime.
55	  This can be helpful when reducing the size of the build image
56
57config HAVE_ARCH_IOMAP
58	bool
59	help
60	  Enable this option if architecture provides io{read,write}{8,16,32}
61	  I/O accessor functions.
62
63config HAVE_PRIVATE_LIBGCC
64	bool
65
66config LIB_UUID
67	bool
68
69config PRINTF
70	bool
71	default y
72
73config SPL_PRINTF
74	bool
75	select SPL_SPRINTF
76	select SPL_STRTO if !SPL_USE_TINY_PRINTF
77
78config TPL_PRINTF
79	bool
80	select TPL_SPRINTF
81	select TPL_STRTO if !TPL_USE_TINY_PRINTF
82
83config SPRINTF
84	bool
85	default y
86
87config SPL_SPRINTF
88	bool
89
90config TPL_SPRINTF
91	bool
92
93config SSCANF
94	bool
95
96config STRTO
97	bool
98	default y
99
100config SPL_STRTO
101	bool
102
103config TPL_STRTO
104	bool
105
106config IMAGE_SPARSE
107	bool
108
109config IMAGE_SPARSE_FILLBUF_SIZE
110	hex "Android sparse image CHUNK_TYPE_FILL buffer size"
111	default 0x80000
112	depends on IMAGE_SPARSE
113	help
114	  Set the size of the fill buffer used when processing CHUNK_TYPE_FILL
115	  chunks.
116
117config USE_PRIVATE_LIBGCC
118	bool "Use private libgcc"
119	depends on HAVE_PRIVATE_LIBGCC
120	default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
121	help
122	  This option allows you to use the built-in libgcc implementation
123	  of U-Boot instead of the one provided by the compiler.
124	  If unsure, say N.
125
126config SYS_HZ
127	int
128	default 1000
129	help
130	  The frequency of the timer returned by get_timer().
131	  get_timer() must operate in milliseconds and this option must be
132	  set to 1000.
133
134config SPL_USE_TINY_PRINTF
135	bool "Enable tiny printf() version in SPL"
136	depends on SPL
137	default y
138	help
139	  This option enables a tiny, stripped down printf version.
140	  This should only be used in space limited environments,
141	  like SPL versions with hard memory limits. This version
142	  reduces the code size by about 2.5KiB on armv7.
143
144	  The supported format specifiers are %c, %s, %u/%d and %x.
145
146config TPL_USE_TINY_PRINTF
147	bool "Enable tiny printf() version in TPL"
148	depends on TPL
149	default y if SPL_USE_TINY_PRINTF
150	help
151	  This option enables a tiny, stripped down printf version.
152	  This should only be used in space limited environments,
153	  like SPL versions with hard memory limits. This version
154	  reduces the code size by about 2.5KiB on armv7.
155
156	  The supported format specifiers are %c, %s, %u/%d and %x.
157
158config PANIC_HANG
159	bool "Do not reset the system on fatal error"
160	help
161	  Define this option to stop the system in case of a fatal error,
162	  so that you have to reset it manually. This is probably NOT a good
163	  idea for an embedded system where you want the system to reboot
164	  automatically as fast as possible, but it may be useful during
165	  development since you can try to debug the conditions that lead to
166	  the situation.
167
168config REGEX
169	bool "Enable regular expression support"
170	default y if NET
171	help
172	  If this variable is defined, U-Boot is linked against the
173	  SLRE (Super Light Regular Expression) library, which adds
174	  regex support to some commands, for example "env grep" and
175	  "setexpr".
176
177choice
178	prompt "Pseudo-random library support type"
179	depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID || \
180		   RNG_SANDBOX || UT_LIB && AES || FAT_WRITE
181	default LIB_RAND
182	help
183	  Select the library to provide pseudo-random number generator
184	  functions.  LIB_HW_RAND supports certain hardware engines that
185	  provide this functionality.  If in doubt, select LIB_RAND.
186
187config LIB_RAND
188	bool "Pseudo-random library support"
189
190config LIB_HW_RAND
191	bool "HW Engine for random library support"
192
193endchoice
194
195config SPL_TINY_MEMSET
196	bool "Use a very small memset() in SPL"
197	help
198	  The faster memset() is the arch-specific one (if available) enabled
199	  by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
200	  better performance by writing a word at a time. But in very
201	  size-constrained environments even this may be too big. Enable this
202	  option to reduce code size slightly at the cost of some speed.
203
204config TPL_TINY_MEMSET
205	bool "Use a very small memset() in TPL"
206	help
207	  The faster memset() is the arch-specific one (if available) enabled
208	  by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
209	  better performance by writing a word at a time. But in very
210	  size-constrained environments even this may be too big. Enable this
211	  option to reduce code size slightly at the cost of some speed.
212
213config RBTREE
214	bool
215
216config BITREVERSE
217	bool "Bit reverse library from Linux"
218
219config TRACE
220	bool "Support for tracing of function calls and timing"
221	imply CMD_TRACE
222	select TIMER_EARLY
223	help
224	  Enables function tracing within U-Boot. This allows recording of call
225	  traces including timing information. The command can write data to
226	  memory for exporting for analysis (e.g. using bootchart).
227	  See doc/README.trace for full details.
228
229config TRACE_BUFFER_SIZE
230	hex "Size of trace buffer in U-Boot"
231	depends on TRACE
232	default 0x01000000
233	help
234	  Sets the size of the trace buffer in U-Boot. This is allocated from
235	  memory during relocation. If this buffer is too small, the trace
236	  history will be truncated, with later records omitted.
237
238	  If early trace is enabled (i.e. before relocation), this buffer must
239	  be large enough to include all the data from the early trace buffer as
240	  well, since this is copied over to the main buffer during relocation.
241
242	  A trace record is emitted for each function call and each record is
243	  12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
244	  the size is too small then 'trace stats' will show a message saying
245	  how many records were dropped due to buffer overflow.
246
247config TRACE_CALL_DEPTH_LIMIT
248	int "Trace call depth limit"
249	depends on TRACE
250	default 15
251	help
252	  Sets the maximum call depth up to which function calls are recorded.
253
254config TRACE_EARLY
255	bool "Enable tracing before relocation"
256	depends on TRACE
257	help
258	  Sometimes it is helpful to trace execution of U-Boot before
259	  relocation. This is possible by using a arch-specific, fixed buffer
260	  position in memory. Enable this option to start tracing as early as
261	  possible after U-Boot starts.
262
263config TRACE_EARLY_SIZE
264	hex "Size of early trace buffer in U-Boot"
265	depends on TRACE_EARLY
266	default 0x00100000
267	help
268	  Sets the size of the early trace buffer in bytes. This is used to hold
269	  tracing information before relocation.
270
271config TRACE_EARLY_CALL_DEPTH_LIMIT
272	int "Early trace call depth limit"
273	depends on TRACE_EARLY
274	default 200
275	help
276	  Sets the maximum call depth up to which function calls are recorded
277	  during early tracing.
278
279config TRACE_EARLY_ADDR
280	hex "Address of early trace buffer in U-Boot"
281	depends on TRACE_EARLY
282	default 0x00100000
283	help
284	  Sets the address of the early trace buffer in U-Boot. This memory
285	  must be accessible before relocation.
286
287	  A trace record is emitted for each function call and each record is
288	  12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
289	  the size is too small then the message which says the amount of early
290	  data being coped will the the same as the
291
292source lib/dhry/Kconfig
293
294menu "Security support"
295
296config AES
297	bool "Support the AES algorithm"
298	help
299	  This provides a means to encrypt and decrypt data using the AES
300	  (Advanced Encryption Standard). This algorithm uses a symetric key
301	  and is widely used as a streaming cipher. Different key lengths are
302	  supported by the algorithm but only a 128-bit key is supported at
303	  present.
304
305source lib/ecdsa/Kconfig
306source lib/rsa/Kconfig
307source lib/crypto/Kconfig
308source lib/crypt/Kconfig
309
310config TPM
311	bool "Trusted Platform Module (TPM) Support"
312	depends on DM
313	help
314	  This enables support for TPMs which can be used to provide security
315	  features for your board. The TPM can be connected via LPC or I2C
316	  and a sandbox TPM is provided for testing purposes. Use the 'tpm'
317	  command to interactive the TPM. Driver model support is provided
318	  for the low-level TPM interface, but only one TPM is supported at
319	  a time by the TPM library.
320
321config SPL_TPM
322	bool "Trusted Platform Module (TPM) Support in SPL"
323	depends on SPL_DM
324	help
325	  This enables support for TPMs which can be used to provide security
326	  features for your board. The TPM can be connected via LPC or I2C
327	  and a sandbox TPM is provided for testing purposes. Use the 'tpm'
328	  command to interactive the TPM. Driver model support is provided
329	  for the low-level TPM interface, but only one TPM is supported at
330	  a time by the TPM library.
331
332config TPL_TPM
333	bool "Trusted Platform Module (TPM) Support in TPL"
334	depends on TPL_DM
335	help
336	  This enables support for TPMs which can be used to provide security
337	  features for your board. The TPM can be connected via LPC or I2C
338	  and a sandbox TPM is provided for testing purposes. Use the 'tpm'
339	  command to interactive the TPM. Driver model support is provided
340	  for the low-level TPM interface, but only one TPM is supported at
341	  a time by the TPM library.
342
343endmenu
344
345menu "Android Verified Boot"
346
347config LIBAVB
348	bool "Android Verified Boot 2.0 support"
349	depends on ANDROID_BOOT_IMAGE
350	help
351	  This enables support of Android Verified Boot 2.0 which can be used
352	  to assure the end user of the integrity of the software running on a
353	  device. Introduces such features as boot chain of trust, rollback
354	  protection etc.
355
356endmenu
357
358menu "Hashing Support"
359
360config SHA1
361	bool "Enable SHA1 support"
362	help
363	  This option enables support of hashing using SHA1 algorithm.
364	  The hash is calculated in software.
365	  The SHA1 algorithm produces a 160-bit (20-byte) hash value
366	  (digest).
367
368config SHA256
369	bool "Enable SHA256 support"
370	help
371	  This option enables support of hashing using SHA256 algorithm.
372	  The hash is calculated in software.
373	  The SHA256 algorithm produces a 256-bit (32-byte) hash value
374	  (digest).
375
376config SHA512
377	bool "Enable SHA512 support"
378	help
379	  This option enables support of hashing using SHA512 algorithm.
380	  The hash is calculated in software.
381	  The SHA512 algorithm produces a 512-bit (64-byte) hash value
382	  (digest).
383
384config SHA384
385	bool "Enable SHA384 support"
386	select SHA512
387	help
388	  This option enables support of hashing using SHA384 algorithm.
389	  The hash is calculated in software. This is also selects SHA512,
390	  because these implementations share the bulk of the code..
391	  The SHA384 algorithm produces a 384-bit (48-byte) hash value
392	  (digest).
393
394config SHA_HW_ACCEL
395	bool "Enable hardware acceleration for SHA hash functions"
396	help
397	  This option enables hardware acceleration for the SHA1 and SHA256
398	  hashing algorithms. This affects the 'hash' command and also the
399	  hash_lookup_algo() function.
400
401if SPL
402
403config SPL_SHA1
404	bool "Enable SHA1 support in SPL"
405	default y if SHA1
406	help
407	  This option enables support of hashing using SHA1 algorithm.
408	  The hash is calculated in software.
409	  The SHA1 algorithm produces a 160-bit (20-byte) hash value
410	  (digest).
411
412config SPL_SHA256
413	bool "Enable SHA256 support in SPL"
414	default y if SHA256
415	help
416	  This option enables support of hashing using SHA256 algorithm.
417	  The hash is calculated in software.
418	  The SHA256 algorithm produces a 256-bit (32-byte) hash value
419	  (digest).
420
421config SPL_SHA512
422	bool "Enable SHA512 support in SPL"
423	default y if SHA512
424	help
425	  This option enables support of hashing using SHA512 algorithm.
426	  The hash is calculated in software.
427	  The SHA512 algorithm produces a 512-bit (64-byte) hash value
428	  (digest).
429
430config SPL_SHA384
431	bool "Enable SHA384 support in SPL"
432	default y if SHA384
433	select SPL_SHA512
434	help
435	  This option enables support of hashing using SHA384 algorithm.
436	  The hash is calculated in software. This is also selects SHA512,
437	  because these implementations share the bulk of the code..
438	  The SHA384 algorithm produces a 384-bit (48-byte) hash value
439	  (digest).
440
441config SPL_SHA_HW_ACCEL
442	bool "Enable hardware acceleration for SHA hash functions"
443	default y if SHA_HW_ACCEL
444	help
445	  This option enables hardware acceleration for the SHA1 and SHA256
446	  hashing algorithms. This affects the 'hash' command and also the
447	  hash_lookup_algo() function.
448
449config SPL_SHA_PROG_HW_ACCEL
450	bool "Enable Progressive hashing support using hardware in SPL"
451	depends on SHA_PROG_HW_ACCEL
452	default y
453	help
454	  This option enables hardware-acceleration for SHA progressive
455	  hashing.
456	  Data can be streamed in a block at a time and the hashing is
457	  performed in hardware.
458
459endif
460
461if SHA_HW_ACCEL
462
463config SHA512_HW_ACCEL
464	bool "Enable hardware acceleration for SHA512"
465	depends on SHA512
466	help
467	  This option enables hardware acceleration for the SHA384 and SHA512
468	  hashing algorithms. This affects the 'hash' command and also the
469	  hash_lookup_algo() function.
470
471config SHA_PROG_HW_ACCEL
472	bool "Enable Progressive hashing support using hardware"
473	help
474	  This option enables hardware-acceleration for SHA progressive
475	  hashing.
476	  Data can be streamed in a block at a time and the hashing is
477	  performed in hardware.
478
479endif
480
481config MD5
482	bool "Support MD5 algorithm"
483	help
484	  This option enables MD5 support. MD5 is an algorithm designed
485	  in 1991 that produces a 16-byte digest (or checksum) from its input
486	  data. It has a number of vulnerabilities which preclude its use in
487	  security applications, but it can be useful for providing a quick
488	  checksum of a block of data.
489
490config SPL_MD5
491	bool "Support MD5 algorithm in SPL"
492	help
493	  This option enables MD5 support in SPL. MD5 is an algorithm designed
494	  in 1991 that produces a 16-byte digest (or checksum) from its input
495	  data. It has a number of vulnerabilities which preclude its use in
496	  security applications, but it can be useful for providing a quick
497	  checksum of a block of data.
498
499config CRC32
500	def_bool y
501	help
502	  Enables CRC32 support in U-Boot. This is normally required.
503
504config CRC32C
505	bool
506
507config XXHASH
508	bool
509
510endmenu
511
512menu "Compression Support"
513
514config LZ4
515	bool "Enable LZ4 decompression support"
516	help
517	  If this option is set, support for LZ4 compressed images
518	  is included. The LZ4 algorithm can run in-place as long as the
519	  compressed image is loaded to the end of the output buffer, and
520	  trades lower compression ratios for much faster decompression.
521
522	  NOTE: This implements the release version of the LZ4 frame
523	  format as generated by default by the 'lz4' command line tool.
524	  This is not the same as the outdated, less efficient legacy
525	  frame format currently (2015) implemented in the Linux kernel
526	  (generated by 'lz4 -l'). The two formats are incompatible.
527
528config LZMA
529	bool "Enable LZMA decompression support"
530	help
531	  This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
532	  a dictionary compression algorithm that provides a high compression
533	  ratio and fairly fast decompression speed. See also
534	  CONFIG_CMD_LZMADEC which provides a decode command.
535
536config LZO
537	bool "Enable LZO decompression support"
538	help
539	  This enables support for the LZO compression algorithm.
540
541config GZIP
542	bool "Enable gzip decompression support"
543	select ZLIB
544	default y
545	help
546	  This enables support for GZIP compression algorithm.
547
548config ZLIB_UNCOMPRESS
549	bool "Enables zlib's uncompress() functionality"
550	help
551	  This enables an extra zlib functionality: the uncompress() function,
552	  which decompresses data from a buffer into another, knowing their
553	  sizes. Unlike gunzip(), there is no header parsing.
554
555config GZIP_COMPRESSED
556	bool
557	select ZLIB
558
559config BZIP2
560	bool "Enable bzip2 decompression support"
561	help
562	  This enables support for BZIP2 compression algorithm.
563
564config ZLIB
565	bool
566	default y
567	help
568	  This enables ZLIB compression lib.
569
570config ZSTD
571	bool "Enable Zstandard decompression support"
572	select XXHASH
573	help
574	  This enables Zstandard decompression library.
575
576config SPL_LZ4
577	bool "Enable LZ4 decompression support in SPL"
578	help
579	  This enables support for the LZ4 decompression algorithm in SPL. LZ4
580	  is a lossless data compression algorithm that is focused on
581	  fast compression and decompression speed. It belongs to the LZ77
582	  family of byte-oriented compression schemes.
583
584config SPL_LZMA
585	bool "Enable LZMA decompression support for SPL build"
586	help
587	  This enables support for LZMA compression algorithm for SPL boot.
588
589config SPL_LZO
590	bool "Enable LZO decompression support in SPL"
591	help
592	  This enables support for LZO compression algorithm in the SPL.
593
594config SPL_GZIP
595	bool "Enable gzip decompression support for SPL build"
596	select SPL_ZLIB
597	help
598	  This enables support for the GZIP compression algorithm for SPL boot.
599
600config SPL_ZLIB
601	bool
602	help
603	  This enables compression lib for SPL boot.
604
605config SPL_ZSTD
606	bool "Enable Zstandard decompression support in SPL"
607	select XXHASH
608	help
609	  This enables Zstandard decompression library in the SPL.
610
611endmenu
612
613config ERRNO_STR
614	bool "Enable function for getting errno-related string message"
615	help
616	  The function errno_str(int errno), returns a pointer to the errno
617	  corresponding text message:
618	  - if errno is null or positive number - a pointer to "Success" message
619	  - if errno is negative - a pointer to errno related message
620
621config HEXDUMP
622	bool "Enable hexdump"
623	help
624	  This enables functions for printing dumps of binary data.
625
626config SPL_HEXDUMP
627	bool "Enable hexdump in SPL"
628	depends on SPL && HEXDUMP
629	help
630	  This enables functions for printing dumps of binary data in
631	  SPL.
632
633config GETOPT
634	bool "Enable getopt"
635	help
636	  This enables functions for parsing command-line options.
637
638config OF_LIBFDT
639	bool "Enable the FDT library"
640	default y if OF_CONTROL
641	help
642	  This enables the FDT library (libfdt). It provides functions for
643	  accessing binary device tree images in memory, such as adding and
644	  removing nodes and properties, scanning through the tree and finding
645	  particular compatible nodes. The library operates on a flattened
646	  version of the device tree.
647
648config OF_LIBFDT_ASSUME_MASK
649	hex "Mask of conditions to assume for libfdt"
650	depends on OF_LIBFDT || FIT
651	default 0
652	help
653	  Use this to change the assumptions made by libfdt about the
654	  device tree it is working with. A value of 0 means that no assumptions
655	  are made, and libfdt is able to deal with malicious data. A value of
656	  0xff means all assumptions are made and any invalid data may cause
657	  unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
658
659config OF_LIBFDT_OVERLAY
660	bool "Enable the FDT library overlay support"
661	depends on OF_LIBFDT
662	default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
663	help
664	  This enables the FDT library (libfdt) overlay support.
665
666config SPL_OF_LIBFDT
667	bool "Enable the FDT library for SPL"
668	default y if SPL_OF_CONTROL
669	help
670	  This enables the FDT library (libfdt). It provides functions for
671	  accessing binary device tree images in memory, such as adding and
672	  removing nodes and properties, scanning through the tree and finding
673	  particular compatible nodes. The library operates on a flattened
674	  version of the device tree.
675
676config SPL_OF_LIBFDT_ASSUME_MASK
677	hex "Mask of conditions to assume for libfdt"
678	depends on SPL_OF_LIBFDT || FIT
679	default 0xff
680	help
681	  Use this to change the assumptions made by libfdt in SPL about the
682	  device tree it is working with. A value of 0 means that no assumptions
683	  are made, and libfdt is able to deal with malicious data. A value of
684	  0xff means all assumptions are made and any invalid data may cause
685	  unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
686
687config TPL_OF_LIBFDT
688	bool "Enable the FDT library for TPL"
689	default y if TPL_OF_CONTROL
690	help
691	  This enables the FDT library (libfdt). It provides functions for
692	  accessing binary device tree images in memory, such as adding and
693	  removing nodes and properties, scanning through the tree and finding
694	  particular compatible nodes. The library operates on a flattened
695	  version of the device tree.
696
697config TPL_OF_LIBFDT_ASSUME_MASK
698	hex "Mask of conditions to assume for libfdt"
699	depends on TPL_OF_LIBFDT || FIT
700	default 0xff
701	help
702	  Use this to change the assumptions made by libfdt in TPL about the
703	  device tree it is working with. A value of 0 means that no assumptions
704	  are made, and libfdt is able to deal with malicious data. A value of
705	  0xff means all assumptions are made and any invalid data may cause
706	  unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
707
708config FDT_FIXUP_PARTITIONS
709	bool "overwrite MTD partitions in DTS through defined in 'mtdparts'"
710	depends on OF_LIBFDT
711	depends on CMD_MTDPARTS
712	help
713	  Allow overwriting defined partitions in the device tree blob
714	  using partition info defined in the 'mtdparts' environment
715	  variable.
716
717menu "System tables"
718	depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
719
720config BLOBLIST_TABLES
721	bool "Put tables in a bloblist"
722	depends on X86 && BLOBLIST
723	help
724	  Normally tables are placed at address 0xf0000 and can be up to 64KB
725	  long. With this option, tables are instead placed in the bloblist
726	  with a pointer from 0xf0000. The size can then be larger and the
727	  tables can be placed high in memory.
728
729config GENERATE_SMBIOS_TABLE
730	bool "Generate an SMBIOS (System Management BIOS) table"
731	default y
732	depends on X86 || EFI_LOADER
733	help
734	  The System Management BIOS (SMBIOS) specification addresses how
735	  motherboard and system vendors present management information about
736	  their products in a standard format by extending the BIOS interface
737	  on Intel architecture systems.
738
739	  Check http://www.dmtf.org/standards/smbios for details.
740
741	  See also SMBIOS_SYSINFO which allows SMBIOS values to be provided in
742	  the devicetree.
743
744config LIB_RATIONAL
745	bool "enable continued fraction calculation routines"
746
747config SPL_LIB_RATIONAL
748	bool "enable continued fraction calculation routines for SPL"
749	depends on SPL
750
751endmenu
752
753config ASN1_COMPILER
754	bool
755
756config ASN1_DECODER
757	bool
758	help
759	  Enable asn1 decoder library.
760
761config OID_REGISTRY
762	bool
763	help
764	  Enable fast lookup object identifier registry.
765
766config SMBIOS_PARSER
767	bool "SMBIOS parser"
768	help
769	  A simple parser for SMBIOS data.
770
771source lib/efi/Kconfig
772source lib/efi_loader/Kconfig
773source lib/optee/Kconfig
774
775config TEST_FDTDEC
776	bool "enable fdtdec test"
777	depends on OF_LIBFDT
778
779config LIB_DATE
780	bool
781
782config LIB_ELF
783	bool
784	help
785	  Support basic elf loading/validating functions.
786	  This supports for 32 bit and 64 bit versions.
787
788config LMB
789	bool "Enable the logical memory blocks library (lmb)"
790	default y if ARC || ARM || M68K || MICROBLAZE || MIPS || NDS32 || \
791		     NIOS2 || PPC || RISCV || SANDBOX || SH || X86 || XTENSA
792	help
793	  Support the library logical memory blocks.
794
795config LMB_USE_MAX_REGIONS
796	bool "Use a commun number of memory and reserved regions in lmb lib"
797	depends on LMB
798	default y
799	help
800	  Define the number of supported memory regions in the library logical
801	  memory blocks.
802	  This feature allow to reduce the lmb library size by using compiler
803	  optimization when LMB_MEMORY_REGIONS == LMB_RESERVED_REGIONS.
804
805config LMB_MAX_REGIONS
806	int "Number of memory and reserved regions in lmb lib"
807	depends on LMB && LMB_USE_MAX_REGIONS
808	default 8
809	help
810	  Define the number of supported regions, memory and reserved, in the
811	  library logical memory blocks.
812
813config LMB_MEMORY_REGIONS
814	int "Number of memory regions in lmb lib"
815	depends on LMB && !LMB_USE_MAX_REGIONS
816	default 8
817	help
818	  Define the number of supported memory regions in the library logical
819	  memory blocks.
820	  The minimal value is CONFIG_NR_DRAM_BANKS.
821
822config LMB_RESERVED_REGIONS
823	int "Number of reserved regions in lmb lib"
824	depends on LMB && !LMB_USE_MAX_REGIONS
825	default 8
826	help
827	  Define the number of supported reserved regions in the library logical
828	  memory blocks.
829
830endmenu
831
832config PHANDLE_CHECK_SEQ
833	bool "Enable phandle check while getting sequence number"
834	help
835	  When there are multiple device tree nodes with same name,
836          enable this config option to distinguish them using
837	  phandles in fdtdec_get_alias_seq() function.
838