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