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