]> Git Repo - u-boot.git/blob - lib/Kconfig
Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh
[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 config TPM_PCR_ALLOCATE
518         bool "Re-configurate TPM algorithms in run-time (PCR allocate)"
519         depends on TPM_V2 && (MEASURED_BOOT || EFI_TCG2_PROTOCOL)
520         help
521           This enables a detection for the dismatches of algorithms among TPM
522           device, eventlog from previous boot stage and U-Boot support.
523           A PCR allocate command will be sent to reconfigurate the TPM device
524           in run-time to make sure algorithms in TPM device, eventlog and
525           U-Boot are aligned with each other.
526           A system reboot will be proceeded after then to activate the new
527           algorithms.
528
529 endmenu
530
531 menu "Android Verified Boot"
532
533 config LIBAVB
534         bool "Android Verified Boot 2.0 support"
535         depends on ANDROID_BOOT_IMAGE
536         help
537           This enables support of Android Verified Boot 2.0 which can be used
538           to assure the end user of the integrity of the software running on a
539           device. Introduces such features as boot chain of trust, rollback
540           protection etc.
541
542 endmenu
543
544 menu "Hashing Support"
545
546 config BLAKE2
547         bool "Enable BLAKE2 support"
548         help
549           This option enables support of hashing using BLAKE2B algorithm.
550           The hash is calculated in software.
551           The BLAKE2 algorithm produces a hash value (digest) between 1 and
552           64 bytes.
553
554 config SHA1
555         bool "Enable SHA1 support"
556         help
557           This option enables support of hashing using SHA1 algorithm.
558           The hash is calculated in software.
559           The SHA1 algorithm produces a 160-bit (20-byte) hash value
560           (digest).
561
562 config SHA256
563         bool "Enable SHA256 support"
564         help
565           This option enables support of hashing using SHA256 algorithm.
566           The hash is calculated in software.
567           The SHA256 algorithm produces a 256-bit (32-byte) hash value
568           (digest).
569
570 config SHA512
571         bool "Enable SHA512 support"
572         default y if TI_SECURE_DEVICE && FIT_SIGNATURE
573         help
574           This option enables support of hashing using SHA512 algorithm.
575           The hash is calculated in software.
576           The SHA512 algorithm produces a 512-bit (64-byte) hash value
577           (digest).
578
579 config SHA384
580         bool "Enable SHA384 support"
581         select SHA512
582         help
583           This option enables support of hashing using SHA384 algorithm.
584           The hash is calculated in software. This is also selects SHA512,
585           because these implementations share the bulk of the code..
586           The SHA384 algorithm produces a 384-bit (48-byte) hash value
587           (digest).
588
589 config SHA_HW_ACCEL
590         bool "Enable hardware acceleration for SHA hash functions"
591         help
592           This option enables hardware acceleration for the SHA1 and SHA256
593           hashing algorithms. This affects the 'hash' command and also the
594           hash_lookup_algo() function.
595
596 if SPL
597
598 config SPL_CRC32
599         bool "Enable CRC32 support in SPL"
600         default y if SPL_LEGACY_IMAGE_SUPPORT || SPL_EFI_PARTITION
601         default y if SPL_ENV_SUPPORT || TPL_BLOBLIST
602         help
603           This option enables support of hashing using CRC32 algorithm.
604           The CRC32 algorithm produces 32-bit checksum value. For FIT
605           images, this is the least secure type of checksum, suitable for
606           detected accidental image corruption. For secure applications you
607           should consider SHA256 or SHA384.
608
609 config SPL_SHA1
610         bool "Enable SHA1 support in SPL"
611         default y if SHA1
612         help
613           This option enables support of hashing using SHA1 algorithm.
614           The hash is calculated in software.
615           The SHA1 algorithm produces a 160-bit (20-byte) hash value
616           (digest).
617
618 config SPL_SHA256
619         bool "Enable SHA256 support in SPL"
620         default y if SHA256
621         help
622           This option enables support of hashing using SHA256 algorithm.
623           The hash is calculated in software.
624           The SHA256 algorithm produces a 256-bit (32-byte) hash value
625           (digest).
626
627 config SPL_SHA512
628         bool "Enable SHA512 support in SPL"
629         default y if SHA512
630         help
631           This option enables support of hashing using SHA512 algorithm.
632           The hash is calculated in software.
633           The SHA512 algorithm produces a 512-bit (64-byte) hash value
634           (digest).
635
636 config SPL_SHA384
637         bool "Enable SHA384 support in SPL"
638         default y if SHA384
639         select SPL_SHA512
640         help
641           This option enables support of hashing using SHA384 algorithm.
642           The hash is calculated in software. This is also selects SHA512,
643           because these implementations share the bulk of the code..
644           The SHA384 algorithm produces a 384-bit (48-byte) hash value
645           (digest).
646
647 config SPL_SHA_HW_ACCEL
648         bool "Enable hardware acceleration for SHA hash functions"
649         default y if SHA_HW_ACCEL
650         help
651           This option enables hardware acceleration for the SHA1 and SHA256
652           hashing algorithms. This affects the 'hash' command and also the
653           hash_lookup_algo() function.
654
655 config SPL_SHA_PROG_HW_ACCEL
656         bool "Enable Progressive hashing support using hardware in SPL"
657         depends on SHA_PROG_HW_ACCEL
658         default y
659         help
660           This option enables hardware-acceleration for SHA progressive
661           hashing.
662           Data can be streamed in a block at a time and the hashing is
663           performed in hardware.
664
665 endif
666
667 config VPL_SHA1
668         bool "Enable SHA1 support in VPL"
669         depends on VPL
670         default y if SHA1
671         help
672           This option enables support of hashing using SHA1 algorithm.
673           The hash is calculated in software.
674           The SHA1 algorithm produces a 160-bit (20-byte) hash value
675           (digest).
676
677 config VPL_SHA256
678         bool "Enable SHA256 support in VPL"
679         depends on VPL
680         default y if SHA256
681         help
682           This option enables support of hashing using SHA256 algorithm.
683           The hash is calculated in software.
684           The SHA256 algorithm produces a 256-bit (32-byte) hash value
685           (digest).
686
687 if SHA_HW_ACCEL
688
689 config SHA512_HW_ACCEL
690         bool "Enable hardware acceleration for SHA512"
691         depends on SHA512
692         help
693           This option enables hardware acceleration for the SHA384 and SHA512
694           hashing algorithms. This affects the 'hash' command and also the
695           hash_lookup_algo() function.
696
697 config SHA_PROG_HW_ACCEL
698         bool "Enable Progressive hashing support using hardware"
699         help
700           This option enables hardware-acceleration for SHA progressive
701           hashing.
702           Data can be streamed in a block at a time and the hashing is
703           performed in hardware.
704
705 endif
706
707 config MD5
708         bool "Support MD5 algorithm"
709         help
710           This option enables MD5 support. MD5 is an algorithm designed
711           in 1991 that produces a 16-byte digest (or checksum) from its input
712           data. It has a number of vulnerabilities which preclude its use in
713           security applications, but it can be useful for providing a quick
714           checksum of a block of data.
715
716 config SPL_MD5
717         bool "Support MD5 algorithm in SPL"
718         depends on SPL
719         help
720           This option enables MD5 support in SPL. MD5 is an algorithm designed
721           in 1991 that produces a 16-byte digest (or checksum) from its input
722           data. It has a number of vulnerabilities which preclude its use in
723           security applications, but it can be useful for providing a quick
724           checksum of a block of data.
725
726 config CRC8
727         def_bool y
728         help
729           Enables CRC8 support in U-Boot. This is normally required. CRC8 is
730           a simple and fast checksumming algorithm which does a bytewise
731           checksum with feedback to produce an 8-bit result. The code is small
732           and it does not require a lookup table (unlike CRC32).
733
734 config SPL_CRC8
735         bool "Support CRC8 in SPL"
736         depends on SPL
737         help
738           Enables CRC8 support in SPL. This is not normally required. CRC8 is
739           a simple and fast checksumming algorithm which does a bytewise
740           checksum with feedback to produce an 8-bit result. The code is small
741           and it does not require a lookup table (unlike CRC32).
742
743 config TPL_CRC8
744         bool "Support CRC8 in TPL"
745         depends on TPL
746         help
747           Enables CRC8 support in TPL. This is not normally required. CRC8 is
748           a simple and fast checksumming algorithm which does a bytewise
749           checksum with feedback to produce an 8-bit result. The code is small
750           and it does not require a lookup table (unlike CRC32).
751
752 config VPL_CRC8
753         bool "Support CRC8 in VPL"
754         depends on VPL
755         help
756           Enables CRC8 support in VPL. This is not normally required. CRC8 is
757           a simple and fast checksumming algorithm which does a bytewise
758           checksum with feedback to produce an 8-bit result. The code is small
759           and it does not require a lookup table (unlike CRC32).
760
761 config CRC16
762         bool "Support CRC16"
763         default y
764         help
765           Enables CRC16 support. This is normally required. Two algorithms are
766           provided:
767
768             - CCITT, with a polynomical x^16 + x^12 + x^5 + 1
769             - standard, with polynomial x^16 + x^15 + x^2 + 1 (0x8005)
770
771 config SPL_CRC16
772         bool "Support CRC16 in SPL"
773         depends on SPL
774         help
775           Enables CRC16 support in SPL. This is not normally required.
776
777 config CRC32
778         def_bool y
779         help
780           Enables CRC32 support in U-Boot. This is normally required.
781
782 config CRC32C
783         bool
784
785 config XXHASH
786         bool
787
788 endmenu
789
790 menu "Compression Support"
791
792 config LZ4
793         bool "Enable LZ4 decompression support"
794         help
795           If this option is set, support for LZ4 compressed images
796           is included. The LZ4 algorithm can run in-place as long as the
797           compressed image is loaded to the end of the output buffer, and
798           trades lower compression ratios for much faster decompression.
799
800           NOTE: This implements the release version of the LZ4 frame
801           format as generated by default by the 'lz4' command line tool.
802           This is not the same as the outdated, less efficient legacy
803           frame format currently (2015) implemented in the Linux kernel
804           (generated by 'lz4 -l'). The two formats are incompatible.
805
806 config LZMA
807         bool "Enable LZMA decompression support"
808         help
809           This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
810           a dictionary compression algorithm that provides a high compression
811           ratio and fairly fast decompression speed. See also
812           CONFIG_CMD_LZMADEC which provides a decode command.
813
814 config LZO
815         bool "Enable LZO decompression support"
816         help
817           This enables support for the LZO compression algorithm.
818
819 config GZIP
820         bool "Enable gzip decompression support"
821         select ZLIB
822         default y
823         help
824           This enables support for GZIP compression algorithm.
825
826 config ZLIB_UNCOMPRESS
827         bool "Enables zlib's uncompress() functionality"
828         help
829           This enables an extra zlib functionality: the uncompress() function,
830           which decompresses data from a buffer into another, knowing their
831           sizes. Unlike gunzip(), there is no header parsing.
832
833 config GZIP_COMPRESSED
834         bool
835         select ZLIB
836
837 config BZIP2
838         bool "Enable bzip2 decompression support"
839         help
840           This enables support for BZIP2 compression algorithm.
841
842 config ZLIB
843         bool
844         default y
845         help
846           This enables ZLIB compression lib.
847
848 config ZSTD
849         bool "Enable Zstandard decompression support"
850         select XXHASH
851         help
852           This enables Zstandard decompression library.
853
854 if ZSTD
855
856 config ZSTD_LIB_MINIFY
857         bool "Minify Zstandard code"
858         default y
859         help
860           This disables various optional components and changes the
861           compilation flags to prioritize space-saving.
862
863           For detailed info, see zstd's lib/README.md
864
865           https://github.com/facebook/zstd/blob/dev/lib/README.md
866
867 endif
868
869 config SPL_BZIP2
870         bool "Enable bzip2 decompression support for SPL build"
871         depends on SPL
872         help
873           This enables support for bzip2 compression algorithm for SPL boot.
874
875 config SPL_LZ4
876         bool "Enable LZ4 decompression support in SPL"
877         depends on SPL
878         help
879           This enables support for the LZ4 decompression algorithm in SPL. LZ4
880           is a lossless data compression algorithm that is focused on
881           fast compression and decompression speed. It belongs to the LZ77
882           family of byte-oriented compression schemes.
883
884 config TPL_LZ4
885         bool "Enable LZ4 decompression support in TPL"
886         depends on TPL
887         help
888           This enables support for the LZ4 decompression algorithm in TPL. LZ4
889           is a lossless data compression algorithm that is focused on
890           fast compression and decompression speed. It belongs to the LZ77
891           family of byte-oriented compression schemes.
892
893 config VPL_LZ4
894         bool "Enable LZ4 decompression support in VPL"
895         depends on VPL
896         help
897           This enables support for the LZ4 decompression algorithm in VPL. LZ4
898           is a lossless data compression algorithm that is focused on
899           fast compression and decompression speed. It belongs to the LZ77
900           family of byte-oriented compression schemes.
901
902 config SPL_LZMA
903         bool "Enable LZMA decompression support for SPL build"
904         depends on SPL
905         help
906           This enables support for LZMA compression algorithm for SPL boot.
907
908 config TPL_LZMA
909         bool "Enable LZMA decompression support for TPL build"
910         depends on TPL
911         help
912           This enables support for LZMA compression algorithm for TPL boot.
913
914 config VPL_LZMA
915         bool "Enable LZMA decompression support for VPL build"
916         default y if LZMA
917         help
918           This enables support for LZMA compression algorithm for VPL boot.
919
920 config SPL_LZO
921         bool "Enable LZO decompression support in SPL"
922         depends on SPL
923         help
924           This enables support for LZO compression algorithm in the SPL.
925
926 config SPL_GZIP
927         bool "Enable gzip decompression support for SPL build"
928         select SPL_ZLIB
929         help
930           This enables support for the GZIP compression algorithm for SPL boot.
931
932 config TPL_GZIP
933         bool "Enable gzip decompression support for SPL build"
934         select TPL_ZLIB
935         help
936           This enables support for the GZIP compression algorithm for TPL
937
938 config SPL_ZLIB
939         bool
940         help
941           This enables compression lib for SPL boot.
942
943 config TPL_ZLIB
944         bool
945         help
946           This enables compression lib for TPL
947
948 config SPL_ZSTD
949         bool "Enable Zstandard decompression support in SPL"
950         depends on SPL
951         select XXHASH
952         help
953           This enables Zstandard decompression library in the SPL.
954
955 endmenu
956
957 config ERRNO_STR
958         bool "Enable function for getting errno-related string message"
959         help
960           The function errno_str(int errno), returns a pointer to the errno
961           corresponding text message:
962           - if errno is null or positive number - a pointer to "Success" message
963           - if errno is negative - a pointer to errno related message
964
965 config HEXDUMP
966         bool "Enable hexdump"
967         help
968           This enables functions for printing dumps of binary data.
969
970 config SPL_HEXDUMP
971         bool "Enable hexdump in SPL"
972         depends on SPL && HEXDUMP
973         help
974           This enables functions for printing dumps of binary data in
975           SPL.
976
977 config GETOPT
978         bool "Enable getopt"
979         help
980           This enables functions for parsing command-line options.
981
982 config OF_LIBFDT
983         bool "Enable the FDT library"
984         default y if OF_CONTROL
985         help
986           This enables the FDT library (libfdt). It provides functions for
987           accessing binary device tree images in memory, such as adding and
988           removing nodes and properties, scanning through the tree and finding
989           particular compatible nodes. The library operates on a flattened
990           version of the device tree.
991
992 config OF_LIBFDT_ASSUME_MASK
993         hex "Mask of conditions to assume for libfdt"
994         depends on OF_LIBFDT || FIT
995         default 0x0
996         help
997           Use this to change the assumptions made by libfdt about the
998           device tree it is working with. A value of 0 means that no assumptions
999           are made, and libfdt is able to deal with malicious data. A value of
1000           0xff means all assumptions are made and any invalid data may cause
1001           unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
1002
1003 config OF_LIBFDT_OVERLAY
1004         bool "Enable the FDT library overlay support"
1005         depends on OF_LIBFDT
1006         default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
1007         help
1008           This enables the FDT library (libfdt) overlay support.
1009
1010 config SYS_FDT_PAD
1011         hex "Maximum size of the FDT memory area passeed to the OS"
1012         depends on OF_LIBFDT
1013         default 0x13000 if FMAN_ENET || QE || U_QE
1014         default 0x3000
1015         help
1016           During OS boot, we allocate a region of memory within the bootmap
1017           for the FDT. This is the size that we will expand the FDT that we
1018           are using will be extended to be, in bytes.
1019
1020 config SPL_OF_LIBFDT
1021         bool "Enable the FDT library for SPL"
1022         depends on SPL_LIBGENERIC_SUPPORT
1023         default y if SPL_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 SPL_OF_LIBFDT_ASSUME_MASK
1032         hex "Mask of conditions to assume for libfdt"
1033         depends on SPL_OF_LIBFDT || (FIT && SPL)
1034         default 0xff
1035         help
1036           Use this to change the assumptions made by libfdt in SPL 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 TPL_OF_LIBFDT
1043         bool "Enable the FDT library for TPL"
1044         depends on TPL_LIBGENERIC_SUPPORT
1045         default y if TPL_OF_CONTROL
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 TPL_OF_LIBFDT_ASSUME_MASK
1054         hex "Mask of conditions to assume for libfdt"
1055         depends on TPL_OF_LIBFDT || (FIT && TPL)
1056         default 0xff
1057         help
1058           Use this to change the assumptions made by libfdt in TPL 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 config VPL_OF_LIBFDT
1065         bool "Enable the FDT library for VPL"
1066         depends on VPL
1067         default y if VPL_OF_CONTROL && !VPL_OF_PLATDATA
1068         help
1069           This enables the FDT library (libfdt). It provides functions for
1070           accessing binary device tree images in memory, such as adding and
1071           removing nodes and properties, scanning through the tree and finding
1072           particular compatible nodes. The library operates on a flattened
1073           version of the device tree.
1074
1075 config VPL_OF_LIBFDT_ASSUME_MASK
1076         hex "Mask of conditions to assume for libfdt"
1077         depends on VPL_OF_LIBFDT || (FIT && VPL)
1078         default 0xff
1079         help
1080           Use this to change the assumptions made by libfdt in SPL about the
1081           device tree it is working with. A value of 0 means that no assumptions
1082           are made, and libfdt is able to deal with malicious data. A value of
1083           0xff means all assumptions are made and any invalid data may cause
1084           unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
1085
1086 menu "System tables"
1087         depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
1088
1089 config BLOBLIST_TABLES
1090         bool "Put tables in a bloblist"
1091         depends on BLOBLIST
1092         default y if X86
1093         default y if (ARM && EFI_LOADER && GENERATE_ACPI_TABLE)
1094         default n
1095         help
1096           On x86 normally tables are placed at address 0xf0000 and can be up
1097           to 64KB long. With this option, tables are instead placed in the
1098           bloblist with a pointer from 0xf0000. The size can then be larger
1099           and the tables can be placed high in memory.
1100           On other architectures the tables are always placed in high memory.
1101
1102 config GENERATE_SMBIOS_TABLE
1103         bool "Generate an SMBIOS (System Management BIOS) table"
1104         depends on SMBIOS
1105         default y
1106         help
1107           The System Management BIOS (SMBIOS) specification addresses how
1108           motherboard and system vendors present management information about
1109           their products in a standard format by extending the BIOS interface
1110           on Intel architecture systems.
1111
1112           Check http://www.dmtf.org/standards/smbios for details.
1113
1114           See also SYSINFO_SMBIOS which allows SMBIOS values to be provided in
1115           the devicetree.
1116
1117 config GENERATE_SMBIOS_TABLE_VERBOSE
1118         bool "Generate a verbose SMBIOS (System Management BIOS) table"
1119         depends on GENERATE_SMBIOS_TABLE
1120         help
1121           Provide verbose SMBIOS information.
1122
1123 endmenu
1124
1125 config LIB_RATIONAL
1126         bool "enable continued fraction calculation routines"
1127
1128 config SPL_LIB_RATIONAL
1129         bool "enable continued fraction calculation routines for SPL"
1130         depends on SPL
1131
1132 config ASN1_COMPILER
1133         bool
1134         help
1135           ASN.1 (Abstract Syntax Notation One) is a standard interface
1136           description language for defining data structures that can be
1137           serialized and deserialized in a cross-platform way. It is
1138           broadly used in telecommunications and computer networking,
1139           and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1140           This option enables the support of the asn1 compiler.
1141
1142 config ASN1_DECODER
1143         bool
1144         help
1145           ASN.1 (Abstract Syntax Notation One) is a standard interface
1146           description language for defining data structures that can be
1147           serialized and deserialized in a cross-platform way. It is
1148           broadly used in telecommunications and computer networking,
1149           and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1150           This option enables the support of the asn1 decoder.
1151
1152 config SPL_ASN1_DECODER
1153         bool
1154         help
1155           ASN.1 (Abstract Syntax Notation One) is a standard interface
1156           description language for defining data structures that can be
1157           serialized and deserialized in a cross-platform way. It is
1158           broadly used in telecommunications and computer networking,
1159           and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1160           This option enables the support of the asn1 decoder in the SPL.
1161
1162 config OID_REGISTRY
1163         bool
1164         help
1165           In computing, object identifiers or OIDs are an identifier mechanism
1166           standardized by the International Telecommunication Union (ITU) and
1167           ISO/IEC for naming any object, concept, or "thing" with a globally
1168           unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
1169           Enable fast lookup object identifier registry.
1170
1171 config SPL_OID_REGISTRY
1172         bool
1173         help
1174           In computing, object identifiers or OIDs are an identifier mechanism
1175           standardized by the International Telecommunication Union (ITU) and
1176           ISO/IEC for naming any object, concept, or "thing" with a globally
1177           unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
1178           Enable fast lookup object identifier registry in the SPL.
1179
1180 config SMBIOS
1181         bool "SMBIOS support"
1182         depends on X86 || EFI_LOADER
1183         default y
1184         select LAST_STAGE_INIT
1185         help
1186           Indicates that this platform can support System Management BIOS
1187           (SMBIOS) tables. These provide various pieces of information about
1188           the board, such as the manufacturer and the model name.
1189
1190           See GENERATE_SMBIOS_TABLE which controls whether U-Boot actually
1191           creates these tables, rather than them coming from a previous firmware
1192           stage.
1193
1194 config SMBIOS_PARSER
1195         bool "SMBIOS parser"
1196         help
1197           A simple parser for SMBIOS data.
1198
1199 source "lib/optee/Kconfig"
1200
1201 config TEST_FDTDEC
1202         bool "enable fdtdec test"
1203         depends on OF_LIBFDT
1204
1205 config LIB_DATE
1206         bool
1207
1208 config LIB_ELF
1209         bool
1210         help
1211           Support basic elf loading/validating functions.
1212           This supports for 32 bit and 64 bit versions.
1213
1214 config LMB
1215         bool "Enable the logical memory blocks library (lmb)"
1216         default y if ARC || ARM || M68K || MICROBLAZE || MIPS || \
1217                      NIOS2 || PPC || RISCV || SANDBOX || SH || X86 || XTENSA
1218         select ARCH_MISC_INIT if PPC
1219         help
1220           Support the library logical memory blocks. This will require
1221           a malloc() implementation for defining the data structures
1222           needed for maintaining the LMB memory map.
1223
1224 config SPL_LMB
1225         bool "Enable LMB module for SPL"
1226         depends on SPL && SPL_FRAMEWORK && SPL_SYS_MALLOC
1227         help
1228           Enable support for Logical Memory Block library routines in
1229           SPL. This will require a malloc() implementation for defining
1230           the data structures needed for maintaining the LMB memory map.
1231
1232 config LMB_ARCH_MEM_MAP
1233         bool "Add an architecture specific memory map"
1234         depends on LMB
1235         default y if FSL_LAYERSCAPE || X86
1236         help
1237           Some architectures have special or unique aspects which need
1238           consideration when adding memory ranges to the list of available
1239           memory map. Enable this config in such scenarios which allow
1240           architectures and boards to define their own memory map.
1241
1242 config SPL_LMB_ARCH_MEM_MAP
1243         bool "Add an architecture specific memory map"
1244         depends on SPL_LMB
1245         help
1246           Some architectures have special or unique scenarios which need
1247           consideration when adding memory ranges to the list of available
1248           memory map. Enable this config in such scenarios which allow
1249           architectures and boards to define their own memory map.
1250
1251 config PHANDLE_CHECK_SEQ
1252         bool "Enable phandle check while getting sequence number"
1253         help
1254           When there are multiple device tree nodes with same name,
1255           enable this config option to distinguish them using
1256           phandles in fdtdec_get_alias_seq() function.
1257
1258 endmenu
1259
1260 source "lib/fwu_updates/Kconfig"
This page took 0.09246 seconds and 4 git commands to generate.