]> Git Repo - J-u-boot.git/blob - lib/Kconfig
lib: Allow crc8 in TPL and VPL
[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 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 TPL_CRC8
732         bool "Support CRC8 in TPL"
733         depends on TPL
734         help
735           Enables CRC8 support in TPL. This is not normally required. CRC8 is
736           a simple and fast checksumming algorithm which does a bytewise
737           checksum with feedback to produce an 8-bit result. The code is small
738           and it does not require a lookup table (unlike CRC32).
739
740 config VPL_CRC8
741         bool "Support CRC8 in VPL"
742         depends on VPL
743         help
744           Enables CRC8 support in VPL. This is not normally required. CRC8 is
745           a simple and fast checksumming algorithm which does a bytewise
746           checksum with feedback to produce an 8-bit result. The code is small
747           and it does not require a lookup table (unlike CRC32).
748
749 config SPL_CRC16
750         bool "Support CRC16 in SPL"
751         depends on SPL
752         help
753           Enables CRC16 support in SPL. This is not normally required.
754
755 config CRC32
756         def_bool y
757         help
758           Enables CRC32 support in U-Boot. This is normally required.
759
760 config CRC32C
761         bool
762
763 config XXHASH
764         bool
765
766 endmenu
767
768 menu "Compression Support"
769
770 config LZ4
771         bool "Enable LZ4 decompression support"
772         help
773           If this option is set, support for LZ4 compressed images
774           is included. The LZ4 algorithm can run in-place as long as the
775           compressed image is loaded to the end of the output buffer, and
776           trades lower compression ratios for much faster decompression.
777
778           NOTE: This implements the release version of the LZ4 frame
779           format as generated by default by the 'lz4' command line tool.
780           This is not the same as the outdated, less efficient legacy
781           frame format currently (2015) implemented in the Linux kernel
782           (generated by 'lz4 -l'). The two formats are incompatible.
783
784 config LZMA
785         bool "Enable LZMA decompression support"
786         help
787           This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
788           a dictionary compression algorithm that provides a high compression
789           ratio and fairly fast decompression speed. See also
790           CONFIG_CMD_LZMADEC which provides a decode command.
791
792 config LZO
793         bool "Enable LZO decompression support"
794         help
795           This enables support for the LZO compression algorithm.
796
797 config GZIP
798         bool "Enable gzip decompression support"
799         select ZLIB
800         default y
801         help
802           This enables support for GZIP compression algorithm.
803
804 config ZLIB_UNCOMPRESS
805         bool "Enables zlib's uncompress() functionality"
806         help
807           This enables an extra zlib functionality: the uncompress() function,
808           which decompresses data from a buffer into another, knowing their
809           sizes. Unlike gunzip(), there is no header parsing.
810
811 config GZIP_COMPRESSED
812         bool
813         select ZLIB
814
815 config BZIP2
816         bool "Enable bzip2 decompression support"
817         help
818           This enables support for BZIP2 compression algorithm.
819
820 config ZLIB
821         bool
822         default y
823         help
824           This enables ZLIB compression lib.
825
826 config ZSTD
827         bool "Enable Zstandard decompression support"
828         select XXHASH
829         help
830           This enables Zstandard decompression library.
831
832 if ZSTD
833
834 config ZSTD_LIB_MINIFY
835         bool "Minify Zstandard code"
836         default y
837         help
838           This disables various optional components and changes the
839           compilation flags to prioritize space-saving.
840
841           For detailed info, see zstd's lib/README.md
842
843           https://github.com/facebook/zstd/blob/dev/lib/README.md
844
845 endif
846
847 config SPL_BZIP2
848         bool "Enable bzip2 decompression support for SPL build"
849         depends on SPL
850         help
851           This enables support for bzip2 compression algorithm for SPL boot.
852
853 config SPL_LZ4
854         bool "Enable LZ4 decompression support in SPL"
855         depends on SPL
856         help
857           This enables support for the LZ4 decompression algorithm in SPL. LZ4
858           is a lossless data compression algorithm that is focused on
859           fast compression and decompression speed. It belongs to the LZ77
860           family of byte-oriented compression schemes.
861
862 config TPL_LZ4
863         bool "Enable LZ4 decompression support in TPL"
864         depends on TPL
865         help
866           This enables support for the LZ4 decompression algorithm in TPL. LZ4
867           is a lossless data compression algorithm that is focused on
868           fast compression and decompression speed. It belongs to the LZ77
869           family of byte-oriented compression schemes.
870
871 config VPL_LZ4
872         bool "Enable LZ4 decompression support in VPL"
873         depends on VPL
874         help
875           This enables support for the LZ4 decompression algorithm in VPL. LZ4
876           is a lossless data compression algorithm that is focused on
877           fast compression and decompression speed. It belongs to the LZ77
878           family of byte-oriented compression schemes.
879
880 config SPL_LZMA
881         bool "Enable LZMA decompression support for SPL build"
882         depends on SPL
883         help
884           This enables support for LZMA compression algorithm for SPL boot.
885
886 config TPL_LZMA
887         bool "Enable LZMA decompression support for TPL build"
888         depends on TPL
889         help
890           This enables support for LZMA compression algorithm for TPL boot.
891
892 config VPL_LZMA
893         bool "Enable LZMA decompression support for VPL build"
894         default y if LZMA
895         help
896           This enables support for LZMA compression algorithm for VPL boot.
897
898 config SPL_LZO
899         bool "Enable LZO decompression support in SPL"
900         depends on SPL
901         help
902           This enables support for LZO compression algorithm in the SPL.
903
904 config SPL_GZIP
905         bool "Enable gzip decompression support for SPL build"
906         select SPL_ZLIB
907         help
908           This enables support for the GZIP compression algorithm for SPL boot.
909
910 config TPL_GZIP
911         bool "Enable gzip decompression support for SPL build"
912         select TPL_ZLIB
913         help
914           This enables support for the GZIP compression algorithm for TPL
915
916 config SPL_ZLIB
917         bool
918         help
919           This enables compression lib for SPL boot.
920
921 config TPL_ZLIB
922         bool
923         help
924           This enables compression lib for TPL
925
926 config SPL_ZSTD
927         bool "Enable Zstandard decompression support in SPL"
928         depends on SPL
929         select XXHASH
930         help
931           This enables Zstandard decompression library in the SPL.
932
933 endmenu
934
935 config ERRNO_STR
936         bool "Enable function for getting errno-related string message"
937         help
938           The function errno_str(int errno), returns a pointer to the errno
939           corresponding text message:
940           - if errno is null or positive number - a pointer to "Success" message
941           - if errno is negative - a pointer to errno related message
942
943 config HEXDUMP
944         bool "Enable hexdump"
945         help
946           This enables functions for printing dumps of binary data.
947
948 config SPL_HEXDUMP
949         bool "Enable hexdump in SPL"
950         depends on SPL && HEXDUMP
951         help
952           This enables functions for printing dumps of binary data in
953           SPL.
954
955 config GETOPT
956         bool "Enable getopt"
957         help
958           This enables functions for parsing command-line options.
959
960 config OF_LIBFDT
961         bool "Enable the FDT library"
962         default y if OF_CONTROL
963         help
964           This enables the FDT library (libfdt). It provides functions for
965           accessing binary device tree images in memory, such as adding and
966           removing nodes and properties, scanning through the tree and finding
967           particular compatible nodes. The library operates on a flattened
968           version of the device tree.
969
970 config OF_LIBFDT_ASSUME_MASK
971         hex "Mask of conditions to assume for libfdt"
972         depends on OF_LIBFDT || FIT
973         default 0x0
974         help
975           Use this to change the assumptions made by libfdt about the
976           device tree it is working with. A value of 0 means that no assumptions
977           are made, and libfdt is able to deal with malicious data. A value of
978           0xff means all assumptions are made and any invalid data may cause
979           unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
980
981 config OF_LIBFDT_OVERLAY
982         bool "Enable the FDT library overlay support"
983         depends on OF_LIBFDT
984         default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
985         help
986           This enables the FDT library (libfdt) overlay support.
987
988 config SYS_FDT_PAD
989         hex "Maximum size of the FDT memory area passeed to the OS"
990         depends on OF_LIBFDT
991         default 0x13000 if FMAN_ENET || QE || U_QE
992         default 0x3000
993         help
994           During OS boot, we allocate a region of memory within the bootmap
995           for the FDT. This is the size that we will expand the FDT that we
996           are using will be extended to be, in bytes.
997
998 config SPL_OF_LIBFDT
999         bool "Enable the FDT library for SPL"
1000         depends on SPL_LIBGENERIC_SUPPORT
1001         default y if SPL_OF_CONTROL
1002         help
1003           This enables the FDT library (libfdt). It provides functions for
1004           accessing binary device tree images in memory, such as adding and
1005           removing nodes and properties, scanning through the tree and finding
1006           particular compatible nodes. The library operates on a flattened
1007           version of the device tree.
1008
1009 config SPL_OF_LIBFDT_ASSUME_MASK
1010         hex "Mask of conditions to assume for libfdt"
1011         depends on SPL_OF_LIBFDT || (FIT && SPL)
1012         default 0xff
1013         help
1014           Use this to change the assumptions made by libfdt in SPL about the
1015           device tree it is working with. A value of 0 means that no assumptions
1016           are made, and libfdt is able to deal with malicious data. A value of
1017           0xff means all assumptions are made and any invalid data may cause
1018           unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
1019
1020 config TPL_OF_LIBFDT
1021         bool "Enable the FDT library for TPL"
1022         depends on TPL_LIBGENERIC_SUPPORT
1023         default y if TPL_OF_CONTROL
1024         help
1025           This enables the FDT library (libfdt). It provides functions for
1026           accessing binary device tree images in memory, such as adding and
1027           removing nodes and properties, scanning through the tree and finding
1028           particular compatible nodes. The library operates on a flattened
1029           version of the device tree.
1030
1031 config TPL_OF_LIBFDT_ASSUME_MASK
1032         hex "Mask of conditions to assume for libfdt"
1033         depends on TPL_OF_LIBFDT || (FIT && TPL)
1034         default 0xff
1035         help
1036           Use this to change the assumptions made by libfdt in TPL about the
1037           device tree it is working with. A value of 0 means that no assumptions
1038           are made, and libfdt is able to deal with malicious data. A value of
1039           0xff means all assumptions are made and any invalid data may cause
1040           unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
1041
1042 config VPL_OF_LIBFDT
1043         bool "Enable the FDT library for VPL"
1044         depends on VPL
1045         default y if VPL_OF_CONTROL && !VPL_OF_PLATDATA
1046         help
1047           This enables the FDT library (libfdt). It provides functions for
1048           accessing binary device tree images in memory, such as adding and
1049           removing nodes and properties, scanning through the tree and finding
1050           particular compatible nodes. The library operates on a flattened
1051           version of the device tree.
1052
1053 config VPL_OF_LIBFDT_ASSUME_MASK
1054         hex "Mask of conditions to assume for libfdt"
1055         depends on VPL_OF_LIBFDT || (FIT && VPL)
1056         default 0xff
1057         help
1058           Use this to change the assumptions made by libfdt in SPL about the
1059           device tree it is working with. A value of 0 means that no assumptions
1060           are made, and libfdt is able to deal with malicious data. A value of
1061           0xff means all assumptions are made and any invalid data may cause
1062           unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
1063
1064 menu "System tables"
1065         depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
1066
1067 config BLOBLIST_TABLES
1068         bool "Put tables in a bloblist"
1069         depends on BLOBLIST
1070         default y if (ARM && EFI_LOADER && GENERATE_ACPI_TABLE)
1071         default n
1072         help
1073           On x86 normally tables are placed at address 0xf0000 and can be up
1074           to 64KB long. With this option, tables are instead placed in the
1075           bloblist with a pointer from 0xf0000. The size can then be larger
1076           and the tables can be placed high in memory.
1077           On other architectures the tables are always placed in high memory.
1078
1079 config GENERATE_SMBIOS_TABLE
1080         bool "Generate an SMBIOS (System Management BIOS) table"
1081         depends on SMBIOS
1082         default y
1083         help
1084           The System Management BIOS (SMBIOS) specification addresses how
1085           motherboard and system vendors present management information about
1086           their products in a standard format by extending the BIOS interface
1087           on Intel architecture systems.
1088
1089           Check http://www.dmtf.org/standards/smbios for details.
1090
1091           See also SYSINFO_SMBIOS which allows SMBIOS values to be provided in
1092           the devicetree.
1093
1094 endmenu
1095
1096 config LIB_RATIONAL
1097         bool "enable continued fraction calculation routines"
1098
1099 config SPL_LIB_RATIONAL
1100         bool "enable continued fraction calculation routines for SPL"
1101         depends on SPL
1102
1103 config ASN1_COMPILER
1104         bool
1105         help
1106           ASN.1 (Abstract Syntax Notation One) is a standard interface
1107           description language for defining data structures that can be
1108           serialized and deserialized in a cross-platform way. It is
1109           broadly used in telecommunications and computer networking,
1110           and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1111           This option enables the support of the asn1 compiler.
1112
1113 config ASN1_DECODER
1114         bool
1115         help
1116           ASN.1 (Abstract Syntax Notation One) is a standard interface
1117           description language for defining data structures that can be
1118           serialized and deserialized in a cross-platform way. It is
1119           broadly used in telecommunications and computer networking,
1120           and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1121           This option enables the support of the asn1 decoder.
1122
1123 config SPL_ASN1_DECODER
1124         bool
1125         help
1126           ASN.1 (Abstract Syntax Notation One) is a standard interface
1127           description language for defining data structures that can be
1128           serialized and deserialized in a cross-platform way. It is
1129           broadly used in telecommunications and computer networking,
1130           and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1131           This option enables the support of the asn1 decoder in the SPL.
1132
1133 config OID_REGISTRY
1134         bool
1135         help
1136           In computing, object identifiers or OIDs are an identifier mechanism
1137           standardized by the International Telecommunication Union (ITU) and
1138           ISO/IEC for naming any object, concept, or "thing" with a globally
1139           unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
1140           Enable fast lookup object identifier registry.
1141
1142 config SPL_OID_REGISTRY
1143         bool
1144         help
1145           In computing, object identifiers or OIDs are an identifier mechanism
1146           standardized by the International Telecommunication Union (ITU) and
1147           ISO/IEC for naming any object, concept, or "thing" with a globally
1148           unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
1149           Enable fast lookup object identifier registry in the SPL.
1150
1151 config SMBIOS
1152         bool "SMBIOS support"
1153         depends on X86 || EFI_LOADER
1154         default y
1155         select LAST_STAGE_INIT
1156         help
1157           Indicates that this platform can support System Management BIOS
1158           (SMBIOS) tables. These provide various pieces of information about
1159           the board, such as the manufacturer and the model name.
1160
1161           See GENERATE_SMBIOS_TABLE which controls whether U-Boot actually
1162           creates these tables, rather than them coming from a previous firmware
1163           stage.
1164
1165 config SMBIOS_PARSER
1166         bool "SMBIOS parser"
1167         help
1168           A simple parser for SMBIOS data.
1169
1170 source "lib/optee/Kconfig"
1171
1172 config TEST_FDTDEC
1173         bool "enable fdtdec test"
1174         depends on OF_LIBFDT
1175
1176 config LIB_DATE
1177         bool
1178
1179 config LIB_ELF
1180         bool
1181         help
1182           Support basic elf loading/validating functions.
1183           This supports for 32 bit and 64 bit versions.
1184
1185 config LMB
1186         bool "Enable the logical memory blocks library (lmb)"
1187         default y if ARC || ARM || M68K || MICROBLAZE || MIPS || \
1188                      NIOS2 || PPC || RISCV || SANDBOX || SH || X86 || XTENSA
1189         select ARCH_MISC_INIT if PPC
1190         help
1191           Support the library logical memory blocks. This will require
1192           a malloc() implementation for defining the data structures
1193           needed for maintaining the LMB memory map.
1194
1195 config SPL_LMB
1196         bool "Enable LMB module for SPL"
1197         depends on SPL && SPL_FRAMEWORK && SPL_SYS_MALLOC
1198         help
1199           Enable support for Logical Memory Block library routines in
1200           SPL. This will require a malloc() implementation for defining
1201           the data structures needed for maintaining the LMB memory map.
1202
1203 config LMB_ARCH_MEM_MAP
1204         bool "Add an architecture specific memory map"
1205         depends on LMB
1206         default y if FSL_LAYERSCAPE || X86
1207         help
1208           Some architectures have special or unique aspects which need
1209           consideration when adding memory ranges to the list of available
1210           memory map. Enable this config in such scenarios which allow
1211           architectures and boards to define their own memory map.
1212
1213 config SPL_LMB_ARCH_MEM_MAP
1214         bool "Add an architecture specific memory map"
1215         depends on SPL_LMB
1216         help
1217           Some architectures have special or unique scenarios which need
1218           consideration when adding memory ranges to the list of available
1219           memory map. Enable this config in such scenarios which allow
1220           architectures and boards to define their own memory map.
1221
1222 config PHANDLE_CHECK_SEQ
1223         bool "Enable phandle check while getting sequence number"
1224         help
1225           When there are multiple device tree nodes with same name,
1226           enable this config option to distinguish them using
1227           phandles in fdtdec_get_alias_seq() function.
1228
1229 endmenu
1230
1231 source "lib/fwu_updates/Kconfig"
This page took 0.096524 seconds and 4 git commands to generate.