]> Git Repo - u-boot.git/blob - lib/Kconfig
Merge branch '2023-10-17-spl-test-some-load-methods'
[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 SYS_TIMER_COUNTS_DOWN
19         bool "System timer counts down rather than up"
20
21 config PHYSMEM
22         bool "Access to physical memory region (> 4G)"
23         help
24           Some basic support is provided for operations on memory not
25           normally accessible to 32-bit U-Boot - e.g. some architectures
26           support access to more than 4G of memory on 32-bit
27           machines using physical address extension or similar.
28           Enable this to access this basic support, which only supports clearing
29           the memory.
30
31 config BCH
32         bool "Enable Software based BCH ECC"
33         help
34           Enables software based BCH ECC algorithm present in lib/bch.c
35           This is used by SoC platforms which do not have built-in ELM
36           hardware engine required for BCH ECC correction.
37
38 config BINMAN_FDT
39         bool "Allow access to binman information in the device tree"
40         depends on BINMAN && DM && OF_CONTROL
41         default y if OF_SEPARATE || OF_EMBED
42         help
43           This enables U-Boot to access information about binman entries,
44           stored in the device tree in a binman node. Typical uses are to
45           locate entries in the firmware image. See binman.h for the available
46           functionality.
47
48 config CC_OPTIMIZE_LIBS_FOR_SPEED
49         bool "Optimize libraries for speed"
50         help
51           Enabling this option will pass "-O2" to gcc when compiling
52           under "lib" directory.
53
54           If unsure, say N.
55
56 config CHARSET
57         bool
58
59 config DYNAMIC_CRC_TABLE
60         bool "Enable Dynamic tables for CRC"
61         help
62           Enable this option to calculate entries for CRC tables at runtime.
63           This can be helpful when reducing the size of the build image
64
65 config HAVE_ARCH_IOMAP
66         bool
67         help
68           Enable this option if architecture provides io{read,write}{8,16,32}
69           I/O accessor functions.
70
71 config HAVE_PRIVATE_LIBGCC
72         bool
73
74 config LIB_UUID
75         bool
76
77 config SPL_LIB_UUID
78         depends on SPL
79         bool
80
81 config SEMIHOSTING
82         bool "Support semihosting"
83         depends on ARM || RISCV
84         help
85           Semihosting is a method for a target to communicate with a host
86           debugger. It uses special instructions which the debugger will trap
87           on and interpret. This allows U-Boot to read/write files, print to
88           the console, and execute arbitrary commands on the host system.
89
90           Enabling this option will add support for reading and writing files
91           on the host system. If you don't have a debugger attached then trying
92           to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
93
94 config SEMIHOSTING_FALLBACK
95         bool "Recover gracefully when semihosting fails"
96         depends on SEMIHOSTING && (ARM64 || RISCV)
97         default y
98         help
99           Normally, if U-Boot makes a semihosting call and no debugger is
100           attached, then it will panic due to a synchronous abort
101           exception. This config adds an exception handler which will allow
102           U-Boot to recover. Say 'y' if unsure.
103
104 config SPL_SEMIHOSTING
105         bool "Support semihosting in SPL"
106         depends on SPL && (ARM || RISCV)
107         help
108           Semihosting is a method for a target to communicate with a host
109           debugger. It uses special instructions which the debugger will trap
110           on and interpret. This allows U-Boot to read/write files, print to
111           the console, and execute arbitrary commands on the host system.
112
113           Enabling this option will add support for reading and writing files
114           on the host system. If you don't have a debugger attached then trying
115           to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
116
117 config SPL_SEMIHOSTING_FALLBACK
118         bool "Recover gracefully when semihosting fails in SPL"
119         depends on SPL_SEMIHOSTING && (ARM64 || RISCV)
120         select ARMV8_SPL_EXCEPTION_VECTORS if ARM64
121         default y
122         help
123           Normally, if U-Boot makes a semihosting call and no debugger is
124           attached, then it will panic due to a synchronous abort
125           exception. This config adds an exception handler which will allow
126           U-Boot to recover. Say 'y' if unsure.
127
128 config PRINTF
129         bool
130         default y
131
132 config SPL_PRINTF
133         bool
134         select SPL_SPRINTF
135         select SPL_STRTO if !SPL_USE_TINY_PRINTF
136
137 config TPL_PRINTF
138         bool
139         select TPL_SPRINTF
140         select TPL_STRTO if !TPL_USE_TINY_PRINTF
141
142 config VPL_PRINTF
143         bool
144         select VPL_SPRINTF
145         select VPL_STRTO if !VPL_USE_TINY_PRINTF
146
147 config SPRINTF
148         bool
149         default y
150
151 config SPL_SPRINTF
152         bool
153
154 config TPL_SPRINTF
155         bool
156
157 config VPL_SPRINTF
158         bool
159
160 config SSCANF
161         bool
162
163 config STRTO
164         bool
165         default y
166
167 config SPL_STRTO
168         bool
169
170 config TPL_STRTO
171         bool
172
173 config VPL_STRTO
174         bool
175
176 config IMAGE_SPARSE
177         bool
178
179 config IMAGE_SPARSE_FILLBUF_SIZE
180         hex "Android sparse image CHUNK_TYPE_FILL buffer size"
181         default 0x80000
182         depends on IMAGE_SPARSE
183         help
184           Set the size of the fill buffer used when processing CHUNK_TYPE_FILL
185           chunks.
186
187 config USE_PRIVATE_LIBGCC
188         bool "Use private libgcc"
189         depends on HAVE_PRIVATE_LIBGCC
190         default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
191         help
192           This option allows you to use the built-in libgcc implementation
193           of U-Boot instead of the one provided by the compiler.
194           If unsure, say N.
195
196 config SYS_HZ
197         int
198         default 1000
199         help
200           The frequency of the timer returned by get_timer().
201           get_timer() must operate in milliseconds and this option must be
202           set to 1000.
203
204 config SPL_USE_TINY_PRINTF
205         bool "Enable tiny printf() version in SPL"
206         depends on SPL
207         default y
208         help
209           This option enables a tiny, stripped down printf version.
210           This should only be used in space limited environments,
211           like SPL versions with hard memory limits. This version
212           reduces the code size by about 2.5KiB on armv7.
213
214           The supported format specifiers are %c, %s, %u/%d and %x.
215
216 config TPL_USE_TINY_PRINTF
217         bool "Enable tiny printf() version in TPL"
218         depends on TPL
219         default y if SPL_USE_TINY_PRINTF
220         help
221           This option enables a tiny, stripped down printf version.
222           This should only be used in space limited environments,
223           like SPL versions with hard memory limits. This version
224           reduces the code size by about 2.5KiB on armv7.
225
226           The supported format specifiers are %c, %s, %u/%d and %x.
227
228 config VPL_USE_TINY_PRINTF
229         bool "Enable tiny printf() version for VPL"
230         depends on VPL
231         help
232           This option enables a tiny, stripped down printf version.
233           This should only be used in space limited environments,
234           like SPL versions with hard memory limits. This version
235           reduces the code size by about 2.5KiB on armv7.
236
237           The supported format specifiers are %c, %s, %u/%d and %x.
238
239 config PANIC_HANG
240         bool "Do not reset the system on fatal error"
241         help
242           Define this option to stop the system in case of a fatal error,
243           so that you have to reset it manually. This is probably NOT a good
244           idea for an embedded system where you want the system to reboot
245           automatically as fast as possible, but it may be useful during
246           development since you can try to debug the conditions that lead to
247           the situation.
248
249 config REGEX
250         bool "Enable regular expression support"
251         default y if NET
252         help
253           If this variable is defined, U-Boot is linked against the
254           SLRE (Super Light Regular Expression) library, which adds
255           regex support to some commands, for example "env grep" and
256           "setexpr".
257
258 choice
259         prompt "Pseudo-random library support type"
260         depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID || \
261                    RNG_SANDBOX || UT_LIB && AES || FAT_WRITE
262         default LIB_RAND
263         help
264           Select the library to provide pseudo-random number generator
265           functions.  LIB_HW_RAND supports certain hardware engines that
266           provide this functionality.  If in doubt, select LIB_RAND.
267
268 config LIB_RAND
269         bool "Pseudo-random library support"
270
271 config LIB_HW_RAND
272         bool "HW Engine for random library support"
273
274 endchoice
275
276 config SUPPORT_ACPI
277         bool
278         help
279           Enable this if your arch or board can support generating ACPI
280           (Advanced Configuration and Power Interface) tables. In this case
281           U-Boot can generate these tables and pass them to the Operating
282           System.
283
284 config ACPI
285         bool "Enable support for ACPI libraries"
286         depends on SUPPORT_ACPI
287         help
288           Provides library functions for dealing with ACPI tables. This does
289           not necessarily include generation of tables
290           (see GENERATE_ACPI_TABLE), but allows for tables to be located.
291
292 config SPL_ACPI
293         bool "Enable support for ACPI libraries in SPL"
294         depends on SPL && SUPPORT_ACPI
295         help
296           Provides library functions for dealing with ACPI tables in SPL. This
297           does not necessarily include generation of tables
298           (see GENERATE_ACPI_TABLE), but allows for tables to be located.
299
300 config GENERATE_ACPI_TABLE
301         bool "Generate an ACPI (Advanced Configuration and Power Interface) table"
302         depends on ACPI
303         select QFW if QEMU
304         help
305           The Advanced Configuration and Power Interface (ACPI) specification
306           provides an open standard for device configuration and management
307           by the operating system. It defines platform-independent interfaces
308           for configuration and power management monitoring.
309
310 config SPL_TINY_MEMSET
311         bool "Use a very small memset() in SPL"
312         depends on SPL
313         help
314           The faster memset() is the arch-specific one (if available) enabled
315           by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
316           better performance by writing a word at a time. But in very
317           size-constrained environments even this may be too big. Enable this
318           option to reduce code size slightly at the cost of some speed.
319
320 config TPL_TINY_MEMSET
321         bool "Use a very small memset() in TPL"
322         depends on TPL
323         help
324           The faster memset() is the arch-specific one (if available) enabled
325           by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
326           better performance by writing a word at a time. But in very
327           size-constrained environments even this may be too big. Enable this
328           option to reduce code size slightly at the cost of some speed.
329
330 config RBTREE
331         bool
332
333 config BITREVERSE
334         bool "Bit reverse library from Linux"
335
336 config TRACE
337         bool "Support for tracing of function calls and timing"
338         imply CMD_TRACE
339         imply TIMER_EARLY
340         help
341           Enables function tracing within U-Boot. This allows recording of call
342           traces including timing information. The command can write data to
343           memory for exporting for analysis (e.g. using bootchart).
344           See doc/README.trace for full details.
345
346 config TRACE_BUFFER_SIZE
347         hex "Size of trace buffer in U-Boot"
348         depends on TRACE
349         default 0x01000000
350         help
351           Sets the size of the trace buffer in U-Boot. This is allocated from
352           memory during relocation. If this buffer is too small, the trace
353           history will be truncated, with later records omitted.
354
355           If early trace is enabled (i.e. before relocation), this buffer must
356           be large enough to include all the data from the early trace buffer as
357           well, since this is copied over to the main buffer during relocation.
358
359           A trace record is emitted for each function call and each record is
360           12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
361           the size is too small then 'trace stats' will show a message saying
362           how many records were dropped due to buffer overflow.
363
364 config TRACE_CALL_DEPTH_LIMIT
365         int "Trace call depth limit"
366         depends on TRACE
367         default 15
368         help
369           Sets the maximum call depth up to which function calls are recorded.
370
371 config TRACE_EARLY
372         bool "Enable tracing before relocation"
373         depends on TRACE
374         help
375           Sometimes it is helpful to trace execution of U-Boot before
376           relocation. This is possible by using a arch-specific, fixed buffer
377           position in memory. Enable this option to start tracing as early as
378           possible after U-Boot starts.
379
380 config TRACE_EARLY_SIZE
381         hex "Size of early trace buffer in U-Boot"
382         depends on TRACE_EARLY
383         default 0x00100000
384         help
385           Sets the size of the early trace buffer in bytes. This is used to hold
386           tracing information before relocation.
387
388 config TRACE_EARLY_CALL_DEPTH_LIMIT
389         int "Early trace call depth limit"
390         depends on TRACE_EARLY
391         default 15
392         help
393           Sets the maximum call depth up to which function calls are recorded
394           during early tracing.
395
396 config TRACE_EARLY_ADDR
397         hex "Address of early trace buffer in U-Boot"
398         depends on TRACE_EARLY
399         default 0x00100000
400         help
401           Sets the address of the early trace buffer in U-Boot. This memory
402           must be accessible before relocation.
403
404           A trace record is emitted for each function call and each record is
405           12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
406           the size is too small then the message which says the amount of early
407           data being coped will the the same as the
408
409 config CIRCBUF
410         bool "Enable circular buffer support"
411
412 source lib/dhry/Kconfig
413
414 menu "Security support"
415
416 config AES
417         bool "Support the AES algorithm"
418         help
419           This provides a means to encrypt and decrypt data using the AES
420           (Advanced Encryption Standard). This algorithm uses a symetric key
421           and is widely used as a streaming cipher. Different key lengths are
422           supported by the algorithm but only a 128-bit key is supported at
423           present.
424
425 source lib/ecdsa/Kconfig
426 source lib/rsa/Kconfig
427 source lib/crypto/Kconfig
428 source lib/crypt/Kconfig
429
430 config TPM
431         bool "Trusted Platform Module (TPM) Support"
432         depends on DM
433         imply DM_RNG
434         help
435           This enables support for TPMs which can be used to provide security
436           features for your board. The TPM can be connected via LPC or I2C
437           and a sandbox TPM is provided for testing purposes. Use the 'tpm'
438           command to interactive the TPM. Driver model support is provided
439           for the low-level TPM interface, but only one TPM is supported at
440           a time by the TPM library.
441
442 config SPL_TPM
443         bool "Trusted Platform Module (TPM) Support in SPL"
444         depends on SPL_DM
445         imply SPL_CRC8
446         help
447           This enables support for TPMs which can be used to provide security
448           features for your board. The TPM can be connected via LPC or I2C
449           and a sandbox TPM is provided for testing purposes. Use the 'tpm'
450           command to interactive the TPM. Driver model support is provided
451           for the low-level TPM interface, but only one TPM is supported at
452           a time by the TPM library.
453
454 config TPL_TPM
455         bool "Trusted Platform Module (TPM) Support in TPL"
456         depends on TPL_DM
457         help
458           This enables support for TPMs which can be used to provide security
459           features for your board. The TPM can be connected via LPC or I2C
460           and a sandbox TPM is provided for testing purposes. Use the 'tpm'
461           command to interactive the TPM. Driver model support is provided
462           for the low-level TPM interface, but only one TPM is supported at
463           a time by the TPM library.
464
465 config VPL_TPM
466         bool "Trusted Platform Module (TPM) Support in VPL"
467         depends on VPL_DM
468         help
469           This enables support for TPMs which can be used to provide security
470           features for your board. The TPM can be connected via LPC or I2C
471           and a sandbox TPM is provided for testing purposes. Use the 'tpm'
472           command to interactive the TPM. Driver model support is provided
473           for the low-level TPM interface, but only one TPM is supported at
474           a time by the TPM library.
475
476 endmenu
477
478 menu "Android Verified Boot"
479
480 config LIBAVB
481         bool "Android Verified Boot 2.0 support"
482         depends on ANDROID_BOOT_IMAGE
483         help
484           This enables support of Android Verified Boot 2.0 which can be used
485           to assure the end user of the integrity of the software running on a
486           device. Introduces such features as boot chain of trust, rollback
487           protection etc.
488
489 endmenu
490
491 menu "Hashing Support"
492
493 config BLAKE2
494         bool "Enable BLAKE2 support"
495         help
496           This option enables support of hashing using BLAKE2B algorithm.
497           The hash is calculated in software.
498           The BLAKE2 algorithm produces a hash value (digest) between 1 and
499           64 bytes.
500
501 config SHA1
502         bool "Enable SHA1 support"
503         help
504           This option enables support of hashing using SHA1 algorithm.
505           The hash is calculated in software.
506           The SHA1 algorithm produces a 160-bit (20-byte) hash value
507           (digest).
508
509 config SHA256
510         bool "Enable SHA256 support"
511         help
512           This option enables support of hashing using SHA256 algorithm.
513           The hash is calculated in software.
514           The SHA256 algorithm produces a 256-bit (32-byte) hash value
515           (digest).
516
517 config SHA512
518         bool "Enable SHA512 support"
519         default y if TI_SECURE_DEVICE && FIT_SIGNATURE
520         help
521           This option enables support of hashing using SHA512 algorithm.
522           The hash is calculated in software.
523           The SHA512 algorithm produces a 512-bit (64-byte) hash value
524           (digest).
525
526 config SHA384
527         bool "Enable SHA384 support"
528         select SHA512
529         help
530           This option enables support of hashing using SHA384 algorithm.
531           The hash is calculated in software. This is also selects SHA512,
532           because these implementations share the bulk of the code..
533           The SHA384 algorithm produces a 384-bit (48-byte) hash value
534           (digest).
535
536 config SHA_HW_ACCEL
537         bool "Enable hardware acceleration for SHA hash functions"
538         help
539           This option enables hardware acceleration for the SHA1 and SHA256
540           hashing algorithms. This affects the 'hash' command and also the
541           hash_lookup_algo() function.
542
543 if SPL
544
545 config SPL_CRC32
546         bool "Enable CRC32 support in SPL"
547         default y if SPL_LEGACY_IMAGE_SUPPORT || SPL_EFI_PARTITION
548         default y if SPL_ENV_SUPPORT || TPL_BLOBLIST
549         help
550           This option enables support of hashing using CRC32 algorithm.
551           The CRC32 algorithm produces 32-bit checksum value. For FIT
552           images, this is the least secure type of checksum, suitable for
553           detected accidental image corruption. For secure applications you
554           should consider SHA256 or SHA384.
555
556 config SPL_SHA1
557         bool "Enable SHA1 support in SPL"
558         default y if SHA1
559         help
560           This option enables support of hashing using SHA1 algorithm.
561           The hash is calculated in software.
562           The SHA1 algorithm produces a 160-bit (20-byte) hash value
563           (digest).
564
565 config SPL_SHA256
566         bool "Enable SHA256 support in SPL"
567         default y if SHA256
568         help
569           This option enables support of hashing using SHA256 algorithm.
570           The hash is calculated in software.
571           The SHA256 algorithm produces a 256-bit (32-byte) hash value
572           (digest).
573
574 config SPL_SHA512
575         bool "Enable SHA512 support in SPL"
576         default y if SHA512
577         help
578           This option enables support of hashing using SHA512 algorithm.
579           The hash is calculated in software.
580           The SHA512 algorithm produces a 512-bit (64-byte) hash value
581           (digest).
582
583 config SPL_SHA384
584         bool "Enable SHA384 support in SPL"
585         default y if SHA384
586         select SPL_SHA512
587         help
588           This option enables support of hashing using SHA384 algorithm.
589           The hash is calculated in software. This is also selects SHA512,
590           because these implementations share the bulk of the code..
591           The SHA384 algorithm produces a 384-bit (48-byte) hash value
592           (digest).
593
594 config SPL_SHA_HW_ACCEL
595         bool "Enable hardware acceleration for SHA hash functions"
596         default y if SHA_HW_ACCEL
597         help
598           This option enables hardware acceleration for the SHA1 and SHA256
599           hashing algorithms. This affects the 'hash' command and also the
600           hash_lookup_algo() function.
601
602 config SPL_SHA_PROG_HW_ACCEL
603         bool "Enable Progressive hashing support using hardware in SPL"
604         depends on SHA_PROG_HW_ACCEL
605         default y
606         help
607           This option enables hardware-acceleration for SHA progressive
608           hashing.
609           Data can be streamed in a block at a time and the hashing is
610           performed in hardware.
611
612 endif
613
614 config VPL_SHA1
615         bool "Enable SHA1 support in VPL"
616         depends on VPL
617         default y if SHA1
618         help
619           This option enables support of hashing using SHA1 algorithm.
620           The hash is calculated in software.
621           The SHA1 algorithm produces a 160-bit (20-byte) hash value
622           (digest).
623
624 config VPL_SHA256
625         bool "Enable SHA256 support in VPL"
626         depends on VPL
627         default y if SHA256
628         help
629           This option enables support of hashing using SHA256 algorithm.
630           The hash is calculated in software.
631           The SHA256 algorithm produces a 256-bit (32-byte) hash value
632           (digest).
633
634 if SHA_HW_ACCEL
635
636 config SHA512_HW_ACCEL
637         bool "Enable hardware acceleration for SHA512"
638         depends on SHA512
639         help
640           This option enables hardware acceleration for the SHA384 and SHA512
641           hashing algorithms. This affects the 'hash' command and also the
642           hash_lookup_algo() function.
643
644 config SHA_PROG_HW_ACCEL
645         bool "Enable Progressive hashing support using hardware"
646         help
647           This option enables hardware-acceleration for SHA progressive
648           hashing.
649           Data can be streamed in a block at a time and the hashing is
650           performed in hardware.
651
652 endif
653
654 config MD5
655         bool "Support MD5 algorithm"
656         help
657           This option enables MD5 support. MD5 is an algorithm designed
658           in 1991 that produces a 16-byte digest (or checksum) from its input
659           data. It has a number of vulnerabilities which preclude its use in
660           security applications, but it can be useful for providing a quick
661           checksum of a block of data.
662
663 config SPL_MD5
664         bool "Support MD5 algorithm in SPL"
665         depends on SPL
666         help
667           This option enables MD5 support in SPL. MD5 is an algorithm designed
668           in 1991 that produces a 16-byte digest (or checksum) from its input
669           data. It has a number of vulnerabilities which preclude its use in
670           security applications, but it can be useful for providing a quick
671           checksum of a block of data.
672
673 config CRC8
674         def_bool y
675         help
676           Enables CRC8 support in U-Boot. This is normally required. CRC8 is
677           a simple and fast checksumming algorithm which does a bytewise
678           checksum with feedback to produce an 8-bit result. The code is small
679           and it does not require a lookup table (unlike CRC32).
680
681 config SPL_CRC8
682         bool "Support CRC8 in SPL"
683         depends on SPL
684         help
685           Enables CRC8 support in SPL. This is not normally required. CRC8 is
686           a simple and fast checksumming algorithm which does a bytewise
687           checksum with feedback to produce an 8-bit result. The code is small
688           and it does not require a lookup table (unlike CRC32).
689
690 config SPL_CRC16
691         bool "Support CRC16 in SPL"
692         depends on SPL
693         help
694           Enables CRC16 support in SPL. This is not normally required.
695
696 config CRC32
697         def_bool y
698         help
699           Enables CRC32 support in U-Boot. This is normally required.
700
701 config CRC32C
702         bool
703
704 config XXHASH
705         bool
706
707 endmenu
708
709 menu "Compression Support"
710
711 config LZ4
712         bool "Enable LZ4 decompression support"
713         help
714           If this option is set, support for LZ4 compressed images
715           is included. The LZ4 algorithm can run in-place as long as the
716           compressed image is loaded to the end of the output buffer, and
717           trades lower compression ratios for much faster decompression.
718
719           NOTE: This implements the release version of the LZ4 frame
720           format as generated by default by the 'lz4' command line tool.
721           This is not the same as the outdated, less efficient legacy
722           frame format currently (2015) implemented in the Linux kernel
723           (generated by 'lz4 -l'). The two formats are incompatible.
724
725 config LZMA
726         bool "Enable LZMA decompression support"
727         help
728           This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
729           a dictionary compression algorithm that provides a high compression
730           ratio and fairly fast decompression speed. See also
731           CONFIG_CMD_LZMADEC which provides a decode command.
732
733 config LZO
734         bool "Enable LZO decompression support"
735         help
736           This enables support for the LZO compression algorithm.
737
738 config GZIP
739         bool "Enable gzip decompression support"
740         select ZLIB
741         default y
742         help
743           This enables support for GZIP compression algorithm.
744
745 config ZLIB_UNCOMPRESS
746         bool "Enables zlib's uncompress() functionality"
747         help
748           This enables an extra zlib functionality: the uncompress() function,
749           which decompresses data from a buffer into another, knowing their
750           sizes. Unlike gunzip(), there is no header parsing.
751
752 config GZIP_COMPRESSED
753         bool
754         select ZLIB
755
756 config BZIP2
757         bool "Enable bzip2 decompression support"
758         help
759           This enables support for BZIP2 compression algorithm.
760
761 config ZLIB
762         bool
763         default y
764         help
765           This enables ZLIB compression lib.
766
767 config ZSTD
768         bool "Enable Zstandard decompression support"
769         select XXHASH
770         help
771           This enables Zstandard decompression library.
772
773 if ZSTD
774
775 config ZSTD_LIB_MINIFY
776         bool "Minify Zstandard code"
777         default y
778         help
779           This disables various optional components and changes the
780           compilation flags to prioritize space-saving.
781
782           For detailed info, see zstd's lib/README.md
783
784           https://github.com/facebook/zstd/blob/dev/lib/README.md
785
786 endif
787
788 config SPL_BZIP2
789         bool "Enable bzip2 decompression support for SPL build"
790         depends on SPL
791         help
792           This enables support for bzip2 compression algorithm for SPL boot.
793
794 config SPL_LZ4
795         bool "Enable LZ4 decompression support in SPL"
796         depends on SPL
797         help
798           This enables support for the LZ4 decompression algorithm in SPL. LZ4
799           is a lossless data compression algorithm that is focused on
800           fast compression and decompression speed. It belongs to the LZ77
801           family of byte-oriented compression schemes.
802
803 config SPL_LZMA
804         bool "Enable LZMA decompression support for SPL build"
805         depends on SPL
806         help
807           This enables support for LZMA compression algorithm for SPL boot.
808
809 config VPL_LZMA
810         bool "Enable LZMA decompression support for VPL build"
811         default y if LZMA
812         help
813           This enables support for LZMA compression algorithm for VPL boot.
814
815 config SPL_LZO
816         bool "Enable LZO decompression support in SPL"
817         depends on SPL
818         help
819           This enables support for LZO compression algorithm in the SPL.
820
821 config SPL_GZIP
822         bool "Enable gzip decompression support for SPL build"
823         select SPL_ZLIB
824         help
825           This enables support for the GZIP compression algorithm for SPL boot.
826
827 config SPL_ZLIB
828         bool
829         help
830           This enables compression lib for SPL boot.
831
832 config SPL_ZSTD
833         bool "Enable Zstandard decompression support in SPL"
834         depends on SPL
835         select XXHASH
836         help
837           This enables Zstandard decompression library in the SPL.
838
839 endmenu
840
841 config ERRNO_STR
842         bool "Enable function for getting errno-related string message"
843         help
844           The function errno_str(int errno), returns a pointer to the errno
845           corresponding text message:
846           - if errno is null or positive number - a pointer to "Success" message
847           - if errno is negative - a pointer to errno related message
848
849 config HEXDUMP
850         bool "Enable hexdump"
851         help
852           This enables functions for printing dumps of binary data.
853
854 config SPL_HEXDUMP
855         bool "Enable hexdump in SPL"
856         depends on SPL && HEXDUMP
857         help
858           This enables functions for printing dumps of binary data in
859           SPL.
860
861 config GETOPT
862         bool "Enable getopt"
863         help
864           This enables functions for parsing command-line options.
865
866 config OF_LIBFDT
867         bool "Enable the FDT library"
868         default y if OF_CONTROL
869         help
870           This enables the FDT library (libfdt). It provides functions for
871           accessing binary device tree images in memory, such as adding and
872           removing nodes and properties, scanning through the tree and finding
873           particular compatible nodes. The library operates on a flattened
874           version of the device tree.
875
876 config OF_LIBFDT_ASSUME_MASK
877         hex "Mask of conditions to assume for libfdt"
878         depends on OF_LIBFDT || FIT
879         default 0x0
880         help
881           Use this to change the assumptions made by libfdt about the
882           device tree it is working with. A value of 0 means that no assumptions
883           are made, and libfdt is able to deal with malicious data. A value of
884           0xff means all assumptions are made and any invalid data may cause
885           unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
886
887 config OF_LIBFDT_OVERLAY
888         bool "Enable the FDT library overlay support"
889         depends on OF_LIBFDT
890         default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
891         help
892           This enables the FDT library (libfdt) overlay support.
893
894 config SYS_FDT_PAD
895         hex "Maximum size of the FDT memory area passeed to the OS"
896         depends on OF_LIBFDT
897         default 0x13000 if FMAN_ENET || QE || U_QE
898         default 0x3000
899         help
900           During OS boot, we allocate a region of memory within the bootmap
901           for the FDT. This is the size that we will expand the FDT that we
902           are using will be extended to be, in bytes.
903
904 config SPL_OF_LIBFDT
905         bool "Enable the FDT library for SPL"
906         depends on SPL_LIBGENERIC_SUPPORT
907         default y if SPL_OF_CONTROL
908         help
909           This enables the FDT library (libfdt). It provides functions for
910           accessing binary device tree images in memory, such as adding and
911           removing nodes and properties, scanning through the tree and finding
912           particular compatible nodes. The library operates on a flattened
913           version of the device tree.
914
915 config SPL_OF_LIBFDT_ASSUME_MASK
916         hex "Mask of conditions to assume for libfdt"
917         depends on SPL_OF_LIBFDT || (FIT && SPL)
918         default 0xff
919         help
920           Use this to change the assumptions made by libfdt in SPL about the
921           device tree it is working with. A value of 0 means that no assumptions
922           are made, and libfdt is able to deal with malicious data. A value of
923           0xff means all assumptions are made and any invalid data may cause
924           unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
925
926 config TPL_OF_LIBFDT
927         bool "Enable the FDT library for TPL"
928         depends on TPL_LIBGENERIC_SUPPORT
929         default y if TPL_OF_CONTROL
930         help
931           This enables the FDT library (libfdt). It provides functions for
932           accessing binary device tree images in memory, such as adding and
933           removing nodes and properties, scanning through the tree and finding
934           particular compatible nodes. The library operates on a flattened
935           version of the device tree.
936
937 config TPL_OF_LIBFDT_ASSUME_MASK
938         hex "Mask of conditions to assume for libfdt"
939         depends on TPL_OF_LIBFDT || (FIT && TPL)
940         default 0xff
941         help
942           Use this to change the assumptions made by libfdt in TPL about the
943           device tree it is working with. A value of 0 means that no assumptions
944           are made, and libfdt is able to deal with malicious data. A value of
945           0xff means all assumptions are made and any invalid data may cause
946           unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
947
948 config VPL_OF_LIBFDT
949         bool "Enable the FDT library for VPL"
950         depends on VPL
951         default y if VPL_OF_CONTROL && !VPL_OF_PLATDATA
952         help
953           This enables the FDT library (libfdt). It provides functions for
954           accessing binary device tree images in memory, such as adding and
955           removing nodes and properties, scanning through the tree and finding
956           particular compatible nodes. The library operates on a flattened
957           version of the device tree.
958
959 config VPL_OF_LIBFDT_ASSUME_MASK
960         hex "Mask of conditions to assume for libfdt"
961         depends on VPL_OF_LIBFDT || (FIT && VPL)
962         default 0xff
963         help
964           Use this to change the assumptions made by libfdt in SPL about the
965           device tree it is working with. A value of 0 means that no assumptions
966           are made, and libfdt is able to deal with malicious data. A value of
967           0xff means all assumptions are made and any invalid data may cause
968           unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
969
970 menu "System tables"
971         depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
972
973 config BLOBLIST_TABLES
974         bool "Put tables in a bloblist"
975         depends on X86 && BLOBLIST
976         help
977           Normally tables are placed at address 0xf0000 and can be up to 64KB
978           long. With this option, tables are instead placed in the bloblist
979           with a pointer from 0xf0000. The size can then be larger and the
980           tables can be placed high in memory.
981
982 config GENERATE_SMBIOS_TABLE
983         bool "Generate an SMBIOS (System Management BIOS) table"
984         depends on SMBIOS
985         default y
986         help
987           The System Management BIOS (SMBIOS) specification addresses how
988           motherboard and system vendors present management information about
989           their products in a standard format by extending the BIOS interface
990           on Intel architecture systems.
991
992           Check http://www.dmtf.org/standards/smbios for details.
993
994           See also SMBIOS_SYSINFO which allows SMBIOS values to be provided in
995           the devicetree.
996
997 endmenu
998
999 config LIB_RATIONAL
1000         bool "enable continued fraction calculation routines"
1001
1002 config SPL_LIB_RATIONAL
1003         bool "enable continued fraction calculation routines for SPL"
1004         depends on SPL
1005
1006 config ASN1_COMPILER
1007         bool
1008         help
1009           ASN.1 (Abstract Syntax Notation One) is a standard interface
1010           description language for defining data structures that can be
1011           serialized and deserialized in a cross-platform way. It is
1012           broadly used in telecommunications and computer networking,
1013           and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1014           This option enables the support of the asn1 compiler.
1015
1016 config ASN1_DECODER
1017         bool
1018         help
1019           ASN.1 (Abstract Syntax Notation One) is a standard interface
1020           description language for defining data structures that can be
1021           serialized and deserialized in a cross-platform way. It is
1022           broadly used in telecommunications and computer networking,
1023           and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1024           This option enables the support of the asn1 decoder.
1025
1026 config SPL_ASN1_DECODER
1027         bool
1028         help
1029           ASN.1 (Abstract Syntax Notation One) is a standard interface
1030           description language for defining data structures that can be
1031           serialized and deserialized in a cross-platform way. It is
1032           broadly used in telecommunications and computer networking,
1033           and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1034           This option enables the support of the asn1 decoder in the SPL.
1035
1036 config OID_REGISTRY
1037         bool
1038         help
1039           In computing, object identifiers or OIDs are an identifier mechanism
1040           standardized by the International Telecommunication Union (ITU) and
1041           ISO/IEC for naming any object, concept, or "thing" with a globally
1042           unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
1043           Enable fast lookup object identifier registry.
1044
1045 config SPL_OID_REGISTRY
1046         bool
1047         help
1048           In computing, object identifiers or OIDs are an identifier mechanism
1049           standardized by the International Telecommunication Union (ITU) and
1050           ISO/IEC for naming any object, concept, or "thing" with a globally
1051           unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
1052           Enable fast lookup object identifier registry in the SPL.
1053
1054 config SMBIOS
1055         bool "SMBIOS support"
1056         depends on X86 || EFI_LOADER
1057         default y
1058         select LAST_STAGE_INIT
1059         help
1060           Indicates that this platform can support System Management BIOS
1061           (SMBIOS) tables. These provide various pieces of information about
1062           the board, such as the manufacturer and the model name.
1063
1064           See GENERATE_SMBIOS_TABLE which controls whether U-Boot actually
1065           creates these tables, rather than them coming from a previous firmware
1066           stage.
1067
1068 config SMBIOS_PARSER
1069         bool "SMBIOS parser"
1070         help
1071           A simple parser for SMBIOS data.
1072
1073 source lib/efi/Kconfig
1074 source lib/efi_loader/Kconfig
1075 source lib/optee/Kconfig
1076
1077 config TEST_FDTDEC
1078         bool "enable fdtdec test"
1079         depends on OF_LIBFDT
1080
1081 config LIB_DATE
1082         bool
1083
1084 config LIB_ELF
1085         bool
1086         help
1087           Support basic elf loading/validating functions.
1088           This supports for 32 bit and 64 bit versions.
1089
1090 config LMB
1091         bool "Enable the logical memory blocks library (lmb)"
1092         default y if ARC || ARM || M68K || MICROBLAZE || MIPS || \
1093                      NIOS2 || PPC || RISCV || SANDBOX || SH || X86 || XTENSA
1094         help
1095           Support the library logical memory blocks.
1096
1097 config LMB_USE_MAX_REGIONS
1098         bool "Use a common number of memory and reserved regions in lmb lib"
1099         default y
1100         help
1101           Define the number of supported memory regions in the library logical
1102           memory blocks.
1103           This feature allow to reduce the lmb library size by using compiler
1104           optimization when LMB_MEMORY_REGIONS == LMB_RESERVED_REGIONS.
1105
1106 config LMB_MAX_REGIONS
1107         int "Number of memory and reserved regions in lmb lib"
1108         depends on LMB_USE_MAX_REGIONS
1109         default 16
1110         help
1111           Define the number of supported regions, memory and reserved, in the
1112           library logical memory blocks.
1113
1114 config LMB_MEMORY_REGIONS
1115         int "Number of memory regions in lmb lib"
1116         depends on !LMB_USE_MAX_REGIONS
1117         default 8
1118         help
1119           Define the number of supported memory regions in the library logical
1120           memory blocks.
1121           The minimal value is CONFIG_NR_DRAM_BANKS.
1122
1123 config LMB_RESERVED_REGIONS
1124         int "Number of reserved regions in lmb lib"
1125         depends on !LMB_USE_MAX_REGIONS
1126         default 8
1127         help
1128           Define the number of supported reserved regions in the library logical
1129           memory blocks.
1130
1131 config PHANDLE_CHECK_SEQ
1132         bool "Enable phandle check while getting sequence number"
1133         help
1134           When there are multiple device tree nodes with same name,
1135           enable this config option to distinguish them using
1136           phandles in fdtdec_get_alias_seq() function.
1137
1138 endmenu
1139
1140 source lib/fwu_updates/Kconfig
This page took 0.089948 seconds and 4 git commands to generate.