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