]> Git Repo - J-u-boot.git/blame - lib/Kconfig
rockchip: rk3288-tinker: Migrate to OF_UPSTREAM
[J-u-boot.git] / lib / Kconfig
CommitLineData
ed36323f
MY
1menu "Library routines"
2
69be8fd1
MS
3config 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
e0103158
BM
9 This library only works in the post-relocation phase.
10
69be8fd1
MS
11config 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
3b8dfc42 18config SYS_TIMER_COUNTS_DOWN
c61df340 19 bool "System timer counts down rather than up"
3b8dfc42 20
6405ab7a
SG
21config 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
6ef2f901
AF
31config 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
3c10dc95
SG
38config BINMAN_FDT
39 bool "Allow access to binman information in the device tree"
56e7257c 40 depends on BINMAN && DM && OF_CONTROL
1621d3c4 41 default y if OF_SEPARATE || OF_EMBED
3c10dc95
SG
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
d92fdb60
MS
48config 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
b0928da6
MY
57config 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
1a46cb6c
SG
65config CHARSET
66 bool
1a46cb6c 67
36c1877c
FA
68config 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
2895c4b7
BM
74config 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
45ccec8f
MY
80config HAVE_PRIVATE_LIBGCC
81 bool
82
a451bc27
AF
83config LIB_UUID
84 bool
4c5e1ff3 85 select SHA1
a451bc27 86
a4dc3d56
AT
87config 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
3b510807
SG
94config SPL_LIB_UUID
95 depends on SPL
96 bool
97
1c03ab9f
KC
98config SEMIHOSTING
99 bool "Support semihosting"
ae3527f0 100 depends on ARM || RISCV
1c03ab9f
KC
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
111config SEMIHOSTING_FALLBACK
112 bool "Recover gracefully when semihosting fails"
47cfdb21 113 depends on SEMIHOSTING
1c03ab9f
KC
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
121config SPL_SEMIHOSTING
122 bool "Support semihosting in SPL"
ae3527f0 123 depends on SPL && (ARM || RISCV)
1c03ab9f
KC
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
134config SPL_SEMIHOSTING_FALLBACK
135 bool "Recover gracefully when semihosting fails in SPL"
47cfdb21 136 depends on SPL_SEMIHOSTING
ae3527f0 137 select ARMV8_SPL_EXCEPTION_VECTORS if ARM64
1c03ab9f
KC
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
14ad44ab
AK
145config PRINTF
146 bool
147 default y
148
149config SPL_PRINTF
150 bool
151 select SPL_SPRINTF
27084c03 152 select SPL_STRTO if !SPL_USE_TINY_PRINTF
14ad44ab
AK
153
154config TPL_PRINTF
155 bool
156 select TPL_SPRINTF
27084c03 157 select TPL_STRTO if !TPL_USE_TINY_PRINTF
14ad44ab 158
747093dd
SG
159config VPL_PRINTF
160 bool
161 select VPL_SPRINTF
162 select VPL_STRTO if !VPL_USE_TINY_PRINTF
163
14ad44ab
AK
164config SPRINTF
165 bool
166 default y
167
168config SPL_SPRINTF
169 bool
170
171config TPL_SPRINTF
172 bool
173
747093dd
SG
174config VPL_SPRINTF
175 bool
176
e87dfb05
AA
177config SSCANF
178 bool
e87dfb05 179
14ad44ab
AK
180config STRTO
181 bool
182 default y
183
184config SPL_STRTO
185 bool
186
187config TPL_STRTO
188 bool
189
747093dd
SG
190config VPL_STRTO
191 bool
192
c232d14d
AK
193config IMAGE_SPARSE
194 bool
195
196config 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
45ccec8f
MY
204config USE_PRIVATE_LIBGCC
205 bool "Use private libgcc"
206 depends on HAVE_PRIVATE_LIBGCC
91b86e21 207 default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
45ccec8f
MY
208 help
209 This option allows you to use the built-in libgcc implementation
67976306 210 of U-Boot instead of the one provided by the compiler.
45ccec8f
MY
211 If unsure, say N.
212
8c688bc4
MY
213config 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
27084c03 221config SPL_USE_TINY_PRINTF
37ef1774 222 bool "Enable tiny printf() version in SPL"
27084c03 223 depends on SPL
2a51e16b 224 default y
7d9cde10
SR
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
27084c03 233config TPL_USE_TINY_PRINTF
37ef1774 234 bool "Enable tiny printf() version in TPL"
27084c03
SG
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
747093dd
SG
245config 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
7e3caa81
MY
256config 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
1a60650c
JH
266config REGEX
267 bool "Enable regular expression support"
f7848d90 268 default y if NET
1a60650c
JH
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
a5a37567
AF
275choice
276 prompt "Pseudo-random library support type"
1611235b 277 depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID || \
28cef9ca 278 RNG_SANDBOX || UT_LIB && AES || FAT_WRITE
a5a37567 279 default LIB_RAND
3850dbe8 280 help
a5a37567
AF
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
285config LIB_RAND
286 bool "Pseudo-random library support"
287
288config LIB_HW_RAND
43e442a5 289 bool "HW Engine for random library support"
a5a37567
AF
290
291endchoice
9ba9e85f 292
e1722fcb
SG
293config 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
0992a90d
SG
301config 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
0c45c76c
SG
309config 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
e1722fcb
SG
317config GENERATE_ACPI_TABLE
318 bool "Generate an ACPI (Advanced Configuration and Power Interface) table"
0992a90d 319 depends on ACPI
e1722fcb
SG
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
34bfe8ef
PR
327config 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
ab4458bd
SG
343config SPL_TINY_MEMSET
344 bool "Use a very small memset() in SPL"
b340199f 345 depends on SPL
ab4458bd
SG
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
6e705114 350 size-constrained environments even this may be too big. Enable this
ab4458bd
SG
351 option to reduce code size slightly at the cost of some speed.
352
96b9082c
PT
353config TPL_TINY_MEMSET
354 bool "Use a very small memset() in TPL"
8bea4bf7 355 depends on TPL
96b9082c
PT
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
6e705114 360 size-constrained environments even this may be too big. Enable this
96b9082c
PT
361 option to reduce code size slightly at the cost of some speed.
362
aa049152
BB
363config RBTREE
364 bool
365
da5337a6
NH
366config BITREVERSE
367 bool "Bit reverse library from Linux"
368
a24a78d7
SG
369config TRACE
370 bool "Support for tracing of function calls and timing"
371 imply CMD_TRACE
12619d4e 372 imply TIMER_EARLY
a24a78d7
SG
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).
6d9a851e 377 See doc/develop/trace.rst for full details.
a24a78d7 378
1c6eb075
SG
379config 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
da0fb5fd
HS
397config 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
1c6eb075
SG
404config 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
413config 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
da0fb5fd
HS
421config TRACE_EARLY_CALL_DEPTH_LIMIT
422 int "Early trace call depth limit"
423 depends on TRACE_EARLY
c33425c6 424 default 15
da0fb5fd
HS
425 help
426 Sets the maximum call depth up to which function calls are recorded
427 during early tracing.
428
1c6eb075
SG
429config TRACE_EARLY_ADDR
430 hex "Address of early trace buffer in U-Boot"
431 depends on TRACE_EARLY
9b19e207 432 default 0x00200000
1c6eb075
SG
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
334a9b9d
LP
442config CIRCBUF
443 bool "Enable circular buffer support"
444
953d335d 445source "lib/dhry/Kconfig"
d1389403 446
13de8483
RM
447menu "Alternative crypto libraries"
448source lib/mbedtls/Kconfig
449endmenu
450
b1a873df
SG
451menu "Security support"
452
453config 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
953d335d
MS
462source "lib/ecdsa/Kconfig"
463source "lib/rsa/Kconfig"
464source "lib/crypto/Kconfig"
465source "lib/crypt/Kconfig"
c4beb22f 466
a7d660bc
SG
467config TPM
468 bool "Trusted Platform Module (TPM) Support"
2419cd16 469 depends on DM
e67ffb5a 470 imply DM_RNG
97707f12 471 select SHA1
a7d660bc
SG
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.
e7505b3b
IA
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.
a7d660bc 482
6307896c
SG
483config SPL_TPM
484 bool "Trusted Platform Module (TPM) Support in SPL"
485 depends on SPL_DM
0c16fca9 486 imply SPL_CRC8
6307896c
SG
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
495config 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
747093dd
SG
506config 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
b1a873df
SG
517endmenu
518
3330584d
IO
519menu "Android Verified Boot"
520
521config LIBAVB
522 bool "Android Verified Boot 2.0 support"
523 depends on ANDROID_BOOT_IMAGE
3330584d
IO
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
530endmenu
531
94e3c8c4 532menu "Hashing Support"
533
7c3fd5c2
QW
534config 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
94e3c8c4 542config 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
550config 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
d16b38f4
RD
558config SHA512
559 bool "Enable SHA512 support"
dfe00b34 560 default y if TI_SECURE_DEVICE && FIT_SIGNATURE
d16b38f4
RD
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
567config SHA384
568 bool "Enable SHA384 support"
e60e4499 569 select SHA512
d16b38f4
RD
570 help
571 This option enables support of hashing using SHA384 algorithm.
e60e4499
AG
572 The hash is calculated in software. This is also selects SHA512,
573 because these implementations share the bulk of the code..
d16b38f4
RD
574 The SHA384 algorithm produces a 384-bit (48-byte) hash value
575 (digest).
576
94e3c8c4 577config SHA_HW_ACCEL
e2ae483c 578 bool "Enable hardware acceleration for SHA hash functions"
94e3c8c4 579 help
e2ae483c
HS
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
603d15a5
SG
584if SPL
585
af62d83c
OS
586config 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
603d15a5
SG
597config 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
606config 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
615config 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
624config 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
2c21256b
SG
635config 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
643config 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
603d15a5
SG
653endif
654
5a6bc166
SG
655config 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
665config 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
e2ae483c
HS
675if SHA_HW_ACCEL
676
677config SHA512_HW_ACCEL
678 bool "Enable hardware acceleration for SHA512"
e60e4499 679 depends on SHA512
e2ae483c
HS
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.
94e3c8c4 684
685config SHA_PROG_HW_ACCEL
686 bool "Enable Progressive hashing support using hardware"
94e3c8c4 687 help
a479f103
JS
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.
bea79d7d 692
e2ae483c
HS
693endif
694
bea79d7d 695config MD5
8239be61
SG
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
704config SPL_MD5
705 bool "Support MD5 algorithm in SPL"
b340199f 706 depends on SPL
8239be61
SG
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.
bea79d7d 713
0c16fca9
SG
714config 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
722config 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
ded772fa
SG
731config 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
740config 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
44071cd5
SA
749config 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
e7d285b2
SG
755config CRC32
756 def_bool y
757 help
758 Enables CRC32 support in U-Boot. This is normally required.
759
85d8bf57
MB
760config CRC32C
761 bool
762
83a486b6
MB
763config XXHASH
764 bool
765
94e3c8c4 766endmenu
767
027b728d
JW
768menu "Compression Support"
769
770config 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.
4fa0150d 777
027b728d
JW
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
aed998aa
SG
784config 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
173aafbf 792config LZO
d56b4b19
TR
793 bool "Enable LZO decompression support"
794 help
5145bc73 795 This enables support for the LZO compression algorithm.
7264f292 796
95f4bbd5 797config GZIP
5132361a 798 bool "Enable gzip decompression support"
95f4bbd5
MV
799 select ZLIB
800 default y
801 help
802 This enables support for GZIP compression algorithm.
2a2119e1 803
81014f73
JMC
804config 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
eff5a547
MW
811config GZIP_COMPRESSED
812 bool
813 select ZLIB
814
2a2119e1
AP
815config BZIP2
816 bool "Enable bzip2 decompression support"
817 help
818 This enables support for BZIP2 compression algorithm.
95f4bbd5
MV
819
820config ZLIB
821 bool
822 default y
823 help
824 This enables ZLIB compression lib.
825
8509f22a
MB
826config ZSTD
827 bool "Enable Zstandard decompression support"
828 select XXHASH
829 help
830 This enables Zstandard decompression library.
831
4b9b25d9
BM
832if ZSTD
833
834config 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
845endif
846
ae625d92
SG
847config 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
048c6e89
SG
853config SPL_LZ4
854 bool "Enable LZ4 decompression support in SPL"
b340199f 855 depends on SPL
048c6e89 856 help
43e442a5 857 This enables support for the LZ4 decompression algorithm in SPL. LZ4
048c6e89
SG
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
0b0e0f27
SG
862config 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
871config 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
04cb3994
WG
880config SPL_LZMA
881 bool "Enable LZMA decompression support for SPL build"
b340199f 882 depends on SPL
04cb3994 883 help
43e442a5 884 This enables support for LZMA compression algorithm for SPL boot.
04cb3994 885
0b0e0f27
SG
886config 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
747093dd
SG
892config 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
f52bdf4b
JJH
898config SPL_LZO
899 bool "Enable LZO decompression support in SPL"
b340199f 900 depends on SPL
f52bdf4b
JJH
901 help
902 This enables support for LZO compression algorithm in the SPL.
903
7264f292
YS
904config SPL_GZIP
905 bool "Enable gzip decompression support for SPL build"
906 select SPL_ZLIB
907 help
5145bc73 908 This enables support for the GZIP compression algorithm for SPL boot.
7264f292 909
0b0e0f27
SG
910config 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
7264f292
YS
916config SPL_ZLIB
917 bool
918 help
919 This enables compression lib for SPL boot.
920
0b0e0f27
SG
921config TPL_ZLIB
922 bool
923 help
924 This enables compression lib for TPL
925
8509f22a
MB
926config SPL_ZSTD
927 bool "Enable Zstandard decompression support in SPL"
b340199f 928 depends on SPL
8509f22a
MB
929 select XXHASH
930 help
931 This enables Zstandard decompression library in the SPL.
932
027b728d
JW
933endmenu
934
6501ff62
PM
935config 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
f8c987f8
AB
943config HEXDUMP
944 bool "Enable hexdump"
945 help
946 This enables functions for printing dumps of binary data.
947
26637e2e
SG
948config SPL_HEXDUMP
949 bool "Enable hexdump in SPL"
fa3f1f1d 950 depends on SPL && HEXDUMP
26637e2e
SG
951 help
952 This enables functions for printing dumps of binary data in
953 SPL.
954
72eda507
SA
955config GETOPT
956 bool "Enable getopt"
957 help
958 This enables functions for parsing command-line options.
959
69e173eb
SG
960config 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
f1a7ba1d 966 removing nodes and properties, scanning through the tree and finding
69e173eb
SG
967 particular compatible nodes. The library operates on a flattened
968 version of the device tree.
969
0d76afc0
SG
970config OF_LIBFDT_ASSUME_MASK
971 hex "Mask of conditions to assume for libfdt"
972 depends on OF_LIBFDT || FIT
a077ac13 973 default 0x0
0d76afc0
SG
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
ddf67f71
MR
981config OF_LIBFDT_OVERLAY
982 bool "Enable the FDT library overlay support"
6417572e 983 depends on OF_LIBFDT
58a46f88 984 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
ddf67f71
MR
985 help
986 This enables the FDT library (libfdt) overlay support.
987
40ed7be4
TR
988config 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
aa34fbc0
SG
998config SPL_OF_LIBFDT
999 bool "Enable the FDT library for SPL"
747093dd 1000 depends on SPL_LIBGENERIC_SUPPORT
aa34fbc0
SG
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
f1a7ba1d 1005 removing nodes and properties, scanning through the tree and finding
aa34fbc0
SG
1006 particular compatible nodes. The library operates on a flattened
1007 version of the device tree.
1008
0d76afc0
SG
1009config SPL_OF_LIBFDT_ASSUME_MASK
1010 hex "Mask of conditions to assume for libfdt"
b340199f 1011 depends on SPL_OF_LIBFDT || (FIT && SPL)
0d76afc0
SG
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
5592a633
SG
1020config TPL_OF_LIBFDT
1021 bool "Enable the FDT library for TPL"
747093dd 1022 depends on TPL_LIBGENERIC_SUPPORT
5592a633
SG
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
0d76afc0
SG
1031config TPL_OF_LIBFDT_ASSUME_MASK
1032 hex "Mask of conditions to assume for libfdt"
8bea4bf7 1033 depends on TPL_OF_LIBFDT || (FIT && TPL)
0d76afc0
SG
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
747093dd
SG
1042config VPL_OF_LIBFDT
1043 bool "Enable the FDT library for VPL"
13ce351b 1044 depends on VPL
747093dd
SG
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
1053config VPL_OF_LIBFDT_ASSUME_MASK
1054 hex "Mask of conditions to assume for libfdt"
13ce351b 1055 depends on VPL_OF_LIBFDT || (FIT && VPL)
747093dd
SG
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
4b6dddc2 1064menu "System tables"
e663b350 1065 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
4b6dddc2 1066
d2cb7a22
SG
1067config BLOBLIST_TABLES
1068 bool "Put tables in a bloblist"
6f9b015c
PR
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.
d2cb7a22 1078
4b6dddc2
AG
1079config GENERATE_SMBIOS_TABLE
1080 bool "Generate an SMBIOS (System Management BIOS) table"
8c11d19e 1081 depends on SMBIOS
4b6dddc2 1082 default y
4b6dddc2
AG
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
253f939a 1091 See also SYSINFO_SMBIOS which allows SMBIOS values to be provided in
44c74bdd
SG
1092 the devicetree.
1093
a90b5946
SG
1094endmenu
1095
7d0f3fbb
TK
1096config LIB_RATIONAL
1097 bool "enable continued fraction calculation routines"
1098
1099config SPL_LIB_RATIONAL
1100 bool "enable continued fraction calculation routines for SPL"
1101 depends on SPL
1102
2b12196d
AT
1103config ASN1_COMPILER
1104 bool
a0e71d96
PR
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.
2b12196d 1112
ab8a0e06
AT
1113config ASN1_DECODER
1114 bool
1115 help
a0e71d96
PR
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.
ab8a0e06 1122
fd210fee
PR
1123config 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
a9b45e6e
AT
1133config OID_REGISTRY
1134 bool
1135 help
7d44a985
PR
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).
a9b45e6e
AT
1140 Enable fast lookup object identifier registry.
1141
fd210fee
PR
1142config 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
8c11d19e
SG
1151config SMBIOS
1152 bool "SMBIOS support"
1153 depends on X86 || EFI_LOADER
1154 default y
53fab13a 1155 select LAST_STAGE_INIT
8c11d19e
SG
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
415eab06
CG
1165config SMBIOS_PARSER
1166 bool "SMBIOS parser"
1167 help
1168 A simple parser for SMBIOS data.
1169
953d335d 1170source "lib/optee/Kconfig"
867a6ac8 1171
54969b40
TR
1172config TEST_FDTDEC
1173 bool "enable fdtdec test"
1174 depends on OF_LIBFDT
1175
05429b6c
AT
1176config LIB_DATE
1177 bool
1178
805b3cac
K
1179config LIB_ELF
1180 bool
1181 help
6205bbb1
PD
1182 Support basic elf loading/validating functions.
1183 This supports for 32 bit and 64 bit versions.
805b3cac 1184
77b8cfef
PD
1185config LMB
1186 bool "Enable the logical memory blocks library (lmb)"
11232139 1187 default y if ARC || ARM || M68K || MICROBLAZE || MIPS || \
77b8cfef 1188 NIOS2 || PPC || RISCV || SANDBOX || SH || X86 || XTENSA
17f695dd 1189 select ARCH_MISC_INIT if PPC
77b8cfef 1190 help
8281fdee
SG
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
1195config 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.
77b8cfef 1202
497da0c5
SG
1203config LMB_ARCH_MEM_MAP
1204 bool "Add an architecture specific memory map"
1205 depends on LMB
ad33ce2e 1206 default y if FSL_LAYERSCAPE || X86
497da0c5
SG
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
1213config 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
ebc1d50a
SG
1222config 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,
608a88c2 1226 enable this config option to distinguish them using
ebc1d50a
SG
1227 phandles in fdtdec_get_alias_seq() function.
1228
97f2a749 1229endmenu
86794052 1230
953d335d 1231source "lib/fwu_updates/Kconfig"
This page took 0.63024 seconds and 4 git commands to generate.