blob: acc0ac081a4421a430b204c73c2260557a135c87 [file] [log] [blame]
Masahiro Yamadaf3e12b72014-09-16 16:32:58 +09001menu "Library routines"
2
Marek Szyprowski795dc7d2020-06-03 14:43:40 +02003config 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
Bin Meng0a5fee52021-02-25 17:22:36 +08009 This library only works in the post-relocation phase.
10
Marek Szyprowski795dc7d2020-06-03 14:43:40 +020011config 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
Simon Glassef9e7622021-11-24 09:26:42 -070018config PHYSMEM
19 bool "Access to physical memory region (> 4G)"
20 help
21 Some basic support is provided for operations on memory not
22 normally accessible to 32-bit U-Boot - e.g. some architectures
23 support access to more than 4G of memory on 32-bit
24 machines using physical address extension or similar.
25 Enable this to access this basic support, which only supports clearing
26 the memory.
27
Adam Ford02bf5362017-08-11 09:46:05 -050028config BCH
29 bool "Enable Software based BCH ECC"
30 help
31 Enables software based BCH ECC algorithm present in lib/bch.c
32 This is used by SoC platforms which do not have built-in ELM
33 hardware engine required for BCH ECC correction.
34
Simon Glassdd7fb9b2019-12-06 21:41:34 -070035config BINMAN_FDT
36 bool "Allow access to binman information in the device tree"
Bin Mengc5e8b312021-02-03 21:20:02 +080037 depends on BINMAN && DM && OF_CONTROL
Bin Mengc9155f12021-05-10 20:23:36 +080038 default y if OF_SEPARATE || OF_EMBED
Simon Glassdd7fb9b2019-12-06 21:41:34 -070039 help
40 This enables U-Boot to access information about binman entries,
41 stored in the device tree in a binman node. Typical uses are to
42 locate entries in the firmware image. See binman.h for the available
43 functionality.
44
Masahiro Yamada3f053fe2014-09-16 16:32:59 +090045config CC_OPTIMIZE_LIBS_FOR_SPEED
46 bool "Optimize libraries for speed"
47 help
48 Enabling this option will pass "-O2" to gcc when compiling
49 under "lib" directory.
50
51 If unsure, say N.
52
Simon Glassc17db992021-07-02 12:36:17 -060053config CHARSET
54 bool
Simon Glassc17db992021-07-02 12:36:17 -060055
Faiz Abbas6199fb12018-02-06 19:15:58 +053056config DYNAMIC_CRC_TABLE
57 bool "Enable Dynamic tables for CRC"
58 help
59 Enable this option to calculate entries for CRC tables at runtime.
60 This can be helpful when reducing the size of the build image
61
Bin Mengb95e9db2018-10-15 02:21:15 -070062config HAVE_ARCH_IOMAP
63 bool
64 help
65 Enable this option if architecture provides io{read,write}{8,16,32}
66 I/O accessor functions.
67
Masahiro Yamada9520b712014-10-24 01:30:43 +090068config HAVE_PRIVATE_LIBGCC
69 bool
70
Adam Ford70c8f052018-02-06 12:14:28 -060071config LIB_UUID
72 bool
73
Alex Kiernan5b404282018-04-19 04:32:54 +000074config PRINTF
75 bool
76 default y
77
78config SPL_PRINTF
79 bool
80 select SPL_SPRINTF
Simon Glass7611ac62019-09-25 08:56:27 -060081 select SPL_STRTO if !SPL_USE_TINY_PRINTF
Alex Kiernan5b404282018-04-19 04:32:54 +000082
83config TPL_PRINTF
84 bool
85 select TPL_SPRINTF
Simon Glass7611ac62019-09-25 08:56:27 -060086 select TPL_STRTO if !TPL_USE_TINY_PRINTF
Alex Kiernan5b404282018-04-19 04:32:54 +000087
Simon Glasse7ca7da2022-04-30 00:56:53 -060088config VPL_PRINTF
89 bool
90 select VPL_SPRINTF
91 select VPL_STRTO if !VPL_USE_TINY_PRINTF
92
Alex Kiernan5b404282018-04-19 04:32:54 +000093config SPRINTF
94 bool
95 default y
96
97config SPL_SPRINTF
98 bool
99
100config TPL_SPRINTF
101 bool
102
Simon Glasse7ca7da2022-04-30 00:56:53 -0600103config VPL_SPRINTF
104 bool
105
Andrii Anisov6e29ac42020-08-06 12:42:52 +0300106config SSCANF
107 bool
Andrii Anisov6e29ac42020-08-06 12:42:52 +0300108
Alex Kiernan5b404282018-04-19 04:32:54 +0000109config STRTO
110 bool
111 default y
112
113config SPL_STRTO
114 bool
115
116config TPL_STRTO
117 bool
118
Simon Glasse7ca7da2022-04-30 00:56:53 -0600119config VPL_STRTO
120 bool
121
Alex Kiernanc568bcb2018-05-29 15:30:52 +0000122config IMAGE_SPARSE
123 bool
124
125config IMAGE_SPARSE_FILLBUF_SIZE
126 hex "Android sparse image CHUNK_TYPE_FILL buffer size"
127 default 0x80000
128 depends on IMAGE_SPARSE
129 help
130 Set the size of the fill buffer used when processing CHUNK_TYPE_FILL
131 chunks.
132
Masahiro Yamada9520b712014-10-24 01:30:43 +0900133config USE_PRIVATE_LIBGCC
134 bool "Use private libgcc"
135 depends on HAVE_PRIVATE_LIBGCC
Marek Vasut4e0126e2016-05-26 18:01:47 +0200136 default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
Masahiro Yamada9520b712014-10-24 01:30:43 +0900137 help
138 This option allows you to use the built-in libgcc implementation
Masahiro Yamada1c6a5e42016-03-30 20:17:42 +0900139 of U-Boot instead of the one provided by the compiler.
Masahiro Yamada9520b712014-10-24 01:30:43 +0900140 If unsure, say N.
141
Masahiro Yamadae301fa02014-10-24 01:30:40 +0900142config SYS_HZ
143 int
144 default 1000
145 help
146 The frequency of the timer returned by get_timer().
147 get_timer() must operate in milliseconds and this option must be
148 set to 1000.
149
Simon Glass7611ac62019-09-25 08:56:27 -0600150config SPL_USE_TINY_PRINTF
Thomas Hebb0c12fb52019-11-10 08:23:53 -0800151 bool "Enable tiny printf() version in SPL"
Simon Glass7611ac62019-09-25 08:56:27 -0600152 depends on SPL
Tom Rinid0502b72019-06-08 12:46:18 -0400153 default y
Stefan Roese363ab7b2015-11-23 07:00:22 +0100154 help
155 This option enables a tiny, stripped down printf version.
156 This should only be used in space limited environments,
157 like SPL versions with hard memory limits. This version
158 reduces the code size by about 2.5KiB on armv7.
159
160 The supported format specifiers are %c, %s, %u/%d and %x.
161
Simon Glass7611ac62019-09-25 08:56:27 -0600162config TPL_USE_TINY_PRINTF
Thomas Hebb0c12fb52019-11-10 08:23:53 -0800163 bool "Enable tiny printf() version in TPL"
Simon Glass7611ac62019-09-25 08:56:27 -0600164 depends on TPL
165 default y if SPL_USE_TINY_PRINTF
166 help
167 This option enables a tiny, stripped down printf version.
168 This should only be used in space limited environments,
169 like SPL versions with hard memory limits. This version
170 reduces the code size by about 2.5KiB on armv7.
171
172 The supported format specifiers are %c, %s, %u/%d and %x.
173
Simon Glasse7ca7da2022-04-30 00:56:53 -0600174config VPL_USE_TINY_PRINTF
175 bool "Enable tiny printf() version for VPL"
176 depends on VPL
177 help
178 This option enables a tiny, stripped down printf version.
179 This should only be used in space limited environments,
180 like SPL versions with hard memory limits. This version
181 reduces the code size by about 2.5KiB on armv7.
182
183 The supported format specifiers are %c, %s, %u/%d and %x.
184
Masahiro Yamadaacede7a2017-12-04 12:37:00 +0900185config PANIC_HANG
186 bool "Do not reset the system on fatal error"
187 help
188 Define this option to stop the system in case of a fatal error,
189 so that you have to reset it manually. This is probably NOT a good
190 idea for an embedded system where you want the system to reboot
191 automatically as fast as possible, but it may be useful during
192 development since you can try to debug the conditions that lead to
193 the situation.
194
Joe Hershberger937d3e82015-04-21 17:02:42 -0500195config REGEX
196 bool "Enable regular expression support"
Joe Hershberger8ab8b722015-06-22 17:57:36 -0500197 default y if NET
Joe Hershberger937d3e82015-04-21 17:02:42 -0500198 help
199 If this variable is defined, U-Boot is linked against the
200 SLRE (Super Light Regular Expression) library, which adds
201 regex support to some commands, for example "env grep" and
202 "setexpr".
203
Adam Ford38003a62018-02-06 10:18:18 -0600204choice
205 prompt "Pseudo-random library support type"
Heinrich Schuchardtb2e67a22020-01-19 19:28:12 +0100206 depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID || \
Heinrich Schuchardtba9c44e2020-11-20 12:55:22 +0100207 RNG_SANDBOX || UT_LIB && AES || FAT_WRITE
Adam Ford38003a62018-02-06 10:18:18 -0600208 default LIB_RAND
Masahiro Yamada2743c072015-06-11 19:16:43 +0900209 help
Adam Ford38003a62018-02-06 10:18:18 -0600210 Select the library to provide pseudo-random number generator
211 functions. LIB_HW_RAND supports certain hardware engines that
212 provide this functionality. If in doubt, select LIB_RAND.
213
214config LIB_RAND
215 bool "Pseudo-random library support"
216
217config LIB_HW_RAND
Marcin Juszkiewicza360c2c2020-05-26 19:07:15 +0200218 bool "HW Engine for random library support"
Adam Ford38003a62018-02-06 10:18:18 -0600219
220endchoice
Michal Simek2c1b1db2015-05-25 11:37:22 +0200221
Simon Glassa6cee932021-12-01 09:02:36 -0700222config SUPPORT_ACPI
223 bool
224 help
225 Enable this if your arch or board can support generating ACPI
226 (Advanced Configuration and Power Interface) tables. In this case
227 U-Boot can generate these tables and pass them to the Operating
228 System.
229
230config GENERATE_ACPI_TABLE
231 bool "Generate an ACPI (Advanced Configuration and Power Interface) table"
232 depends on SUPPORT_ACPI
233 select QFW if QEMU
234 help
235 The Advanced Configuration and Power Interface (ACPI) specification
236 provides an open standard for device configuration and management
237 by the operating system. It defines platform-independent interfaces
238 for configuration and power management monitoring.
239
Simon Glasse2f94ae2017-04-02 09:50:28 -0600240config SPL_TINY_MEMSET
241 bool "Use a very small memset() in SPL"
242 help
243 The faster memset() is the arch-specific one (if available) enabled
244 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
245 better performance by writing a word at a time. But in very
Chris Packham1c3b7ba2019-01-13 22:13:28 +1300246 size-constrained environments even this may be too big. Enable this
Simon Glasse2f94ae2017-04-02 09:50:28 -0600247 option to reduce code size slightly at the cost of some speed.
248
Philipp Tomsichfefc4ec2017-08-03 22:52:04 +0200249config TPL_TINY_MEMSET
250 bool "Use a very small memset() in TPL"
251 help
252 The faster memset() is the arch-specific one (if available) enabled
253 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
254 better performance by writing a word at a time. But in very
Chris Packham1c3b7ba2019-01-13 22:13:28 +1300255 size-constrained environments even this may be too big. Enable this
Philipp Tomsichfefc4ec2017-08-03 22:52:04 +0200256 option to reduce code size slightly at the cost of some speed.
257
Boris Brezillon627dc182017-02-27 18:22:05 +0100258config RBTREE
259 bool
260
Nandor Hand5ea84a2017-11-08 15:35:14 +0000261config BITREVERSE
262 bool "Bit reverse library from Linux"
263
Simon Glassbfce7fc2019-04-08 13:20:51 -0600264config TRACE
265 bool "Support for tracing of function calls and timing"
266 imply CMD_TRACE
Pragnesh Patel0dd501a2021-01-17 18:11:24 +0530267 select TIMER_EARLY
Simon Glassbfce7fc2019-04-08 13:20:51 -0600268 help
269 Enables function tracing within U-Boot. This allows recording of call
270 traces including timing information. The command can write data to
271 memory for exporting for analysis (e.g. using bootchart).
272 See doc/README.trace for full details.
273
Simon Glass445078e2019-04-08 13:20:52 -0600274config TRACE_BUFFER_SIZE
275 hex "Size of trace buffer in U-Boot"
276 depends on TRACE
277 default 0x01000000
278 help
279 Sets the size of the trace buffer in U-Boot. This is allocated from
280 memory during relocation. If this buffer is too small, the trace
281 history will be truncated, with later records omitted.
282
283 If early trace is enabled (i.e. before relocation), this buffer must
284 be large enough to include all the data from the early trace buffer as
285 well, since this is copied over to the main buffer during relocation.
286
287 A trace record is emitted for each function call and each record is
288 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
289 the size is too small then 'trace stats' will show a message saying
290 how many records were dropped due to buffer overflow.
291
Heinrich Schuchardtc1a73792019-06-02 13:30:09 +0200292config TRACE_CALL_DEPTH_LIMIT
293 int "Trace call depth limit"
294 depends on TRACE
295 default 15
296 help
297 Sets the maximum call depth up to which function calls are recorded.
298
Simon Glass445078e2019-04-08 13:20:52 -0600299config TRACE_EARLY
300 bool "Enable tracing before relocation"
301 depends on TRACE
302 help
303 Sometimes it is helpful to trace execution of U-Boot before
304 relocation. This is possible by using a arch-specific, fixed buffer
305 position in memory. Enable this option to start tracing as early as
306 possible after U-Boot starts.
307
308config TRACE_EARLY_SIZE
309 hex "Size of early trace buffer in U-Boot"
310 depends on TRACE_EARLY
311 default 0x00100000
312 help
313 Sets the size of the early trace buffer in bytes. This is used to hold
314 tracing information before relocation.
315
Heinrich Schuchardtc1a73792019-06-02 13:30:09 +0200316config TRACE_EARLY_CALL_DEPTH_LIMIT
317 int "Early trace call depth limit"
318 depends on TRACE_EARLY
319 default 200
320 help
321 Sets the maximum call depth up to which function calls are recorded
322 during early tracing.
323
Simon Glass445078e2019-04-08 13:20:52 -0600324config TRACE_EARLY_ADDR
325 hex "Address of early trace buffer in U-Boot"
326 depends on TRACE_EARLY
327 default 0x00100000
328 help
329 Sets the address of the early trace buffer in U-Boot. This memory
330 must be accessible before relocation.
331
332 A trace record is emitted for each function call and each record is
333 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
334 the size is too small then the message which says the amount of early
335 data being coped will the the same as the
336
Loic Poulain12797e62021-11-25 18:16:14 +0100337config CIRCBUF
338 bool "Enable circular buffer support"
339
Simon Glass99dbe4b2015-06-23 15:38:23 -0600340source lib/dhry/Kconfig
341
Simon Glass528fdd12017-04-26 22:27:49 -0600342menu "Security support"
343
344config AES
345 bool "Support the AES algorithm"
346 help
347 This provides a means to encrypt and decrypt data using the AES
348 (Advanced Encryption Standard). This algorithm uses a symetric key
349 and is widely used as a streaming cipher. Different key lengths are
350 supported by the algorithm but only a 128-bit key is supported at
351 present.
352
Alexandru Gagniuc48cb9b82021-07-29 11:47:16 -0500353source lib/ecdsa/Kconfig
Ruchika Gupta4acd8c42015-01-23 16:01:56 +0530354source lib/rsa/Kconfig
AKASHI Takahiro591535c2019-11-13 09:45:00 +0900355source lib/crypto/Kconfig
Steffen Jaeckel229bd512021-07-08 15:57:33 +0200356source lib/crypt/Kconfig
Ruchika Gupta2c3822e2015-01-23 16:01:51 +0530357
Simon Glass350497c2015-08-22 18:31:19 -0600358config TPM
359 bool "Trusted Platform Module (TPM) Support"
Simon Glasscf294b02015-10-03 06:39:36 -0600360 depends on DM
Simon Glass350497c2015-08-22 18:31:19 -0600361 help
362 This enables support for TPMs which can be used to provide security
363 features for your board. The TPM can be connected via LPC or I2C
364 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
365 command to interactive the TPM. Driver model support is provided
366 for the low-level TPM interface, but only one TPM is supported at
367 a time by the TPM library.
368
Simon Glass93a45b12018-10-01 12:22:19 -0600369config SPL_TPM
370 bool "Trusted Platform Module (TPM) Support in SPL"
371 depends on SPL_DM
372 help
373 This enables support for TPMs which can be used to provide security
374 features for your board. The TPM can be connected via LPC or I2C
375 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
376 command to interactive the TPM. Driver model support is provided
377 for the low-level TPM interface, but only one TPM is supported at
378 a time by the TPM library.
379
380config TPL_TPM
381 bool "Trusted Platform Module (TPM) Support in TPL"
382 depends on TPL_DM
383 help
384 This enables support for TPMs which can be used to provide security
385 features for your board. The TPM can be connected via LPC or I2C
386 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
387 command to interactive the TPM. Driver model support is provided
388 for the low-level TPM interface, but only one TPM is supported at
389 a time by the TPM library.
390
Simon Glasse7ca7da2022-04-30 00:56:53 -0600391config VPL_TPM
392 bool "Trusted Platform Module (TPM) Support in VPL"
393 depends on VPL_DM
394 help
395 This enables support for TPMs which can be used to provide security
396 features for your board. The TPM can be connected via LPC or I2C
397 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
398 command to interactive the TPM. Driver model support is provided
399 for the low-level TPM interface, but only one TPM is supported at
400 a time by the TPM library.
401
Simon Glass528fdd12017-04-26 22:27:49 -0600402endmenu
403
Igor Opaniuk525d1d82018-06-03 21:56:37 +0300404menu "Android Verified Boot"
405
406config LIBAVB
407 bool "Android Verified Boot 2.0 support"
408 depends on ANDROID_BOOT_IMAGE
Igor Opaniuk525d1d82018-06-03 21:56:37 +0300409 help
410 This enables support of Android Verified Boot 2.0 which can be used
411 to assure the end user of the integrity of the software running on a
412 device. Introduces such features as boot chain of trust, rollback
413 protection etc.
414
415endmenu
416
gaurav ranaef201592015-02-20 12:51:46 +0530417menu "Hashing Support"
418
Qu Wenruob98e8a22021-12-27 14:12:07 +0800419config BLAKE2
420 bool "Enable BLAKE2 support"
421 help
422 This option enables support of hashing using BLAKE2B algorithm.
423 The hash is calculated in software.
424 The BLAKE2 algorithm produces a hash value (digest) between 1 and
425 64 bytes.
426
gaurav ranaef201592015-02-20 12:51:46 +0530427config SHA1
428 bool "Enable SHA1 support"
429 help
430 This option enables support of hashing using SHA1 algorithm.
431 The hash is calculated in software.
432 The SHA1 algorithm produces a 160-bit (20-byte) hash value
433 (digest).
434
435config SHA256
436 bool "Enable SHA256 support"
437 help
438 This option enables support of hashing using SHA256 algorithm.
439 The hash is calculated in software.
440 The SHA256 algorithm produces a 256-bit (32-byte) hash value
441 (digest).
442
Reuben Dowle1908fd92020-04-16 17:36:52 +1200443config SHA512
444 bool "Enable SHA512 support"
Reuben Dowle1908fd92020-04-16 17:36:52 +1200445 help
446 This option enables support of hashing using SHA512 algorithm.
447 The hash is calculated in software.
448 The SHA512 algorithm produces a 512-bit (64-byte) hash value
449 (digest).
450
451config SHA384
452 bool "Enable SHA384 support"
Alexandru Gagniuc5df5d692021-09-02 19:54:18 -0500453 select SHA512
Reuben Dowle1908fd92020-04-16 17:36:52 +1200454 help
455 This option enables support of hashing using SHA384 algorithm.
Alexandru Gagniuc5df5d692021-09-02 19:54:18 -0500456 The hash is calculated in software. This is also selects SHA512,
457 because these implementations share the bulk of the code..
Reuben Dowle1908fd92020-04-16 17:36:52 +1200458 The SHA384 algorithm produces a 384-bit (48-byte) hash value
459 (digest).
460
gaurav ranaef201592015-02-20 12:51:46 +0530461config SHA_HW_ACCEL
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200462 bool "Enable hardware acceleration for SHA hash functions"
gaurav ranaef201592015-02-20 12:51:46 +0530463 help
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200464 This option enables hardware acceleration for the SHA1 and SHA256
465 hashing algorithms. This affects the 'hash' command and also the
466 hash_lookup_algo() function.
467
Simon Glassf7b37c22021-09-25 19:43:17 -0600468if SPL
469
470config SPL_SHA1
471 bool "Enable SHA1 support in SPL"
472 default y if SHA1
473 help
474 This option enables support of hashing using SHA1 algorithm.
475 The hash is calculated in software.
476 The SHA1 algorithm produces a 160-bit (20-byte) hash value
477 (digest).
478
479config SPL_SHA256
480 bool "Enable SHA256 support in SPL"
481 default y if SHA256
482 help
483 This option enables support of hashing using SHA256 algorithm.
484 The hash is calculated in software.
485 The SHA256 algorithm produces a 256-bit (32-byte) hash value
486 (digest).
487
488config SPL_SHA512
489 bool "Enable SHA512 support in SPL"
490 default y if SHA512
491 help
492 This option enables support of hashing using SHA512 algorithm.
493 The hash is calculated in software.
494 The SHA512 algorithm produces a 512-bit (64-byte) hash value
495 (digest).
496
497config SPL_SHA384
498 bool "Enable SHA384 support in SPL"
499 default y if SHA384
500 select SPL_SHA512
501 help
502 This option enables support of hashing using SHA384 algorithm.
503 The hash is calculated in software. This is also selects SHA512,
504 because these implementations share the bulk of the code..
505 The SHA384 algorithm produces a 384-bit (48-byte) hash value
506 (digest).
507
Simon Glass383dd572021-09-25 19:43:18 -0600508config SPL_SHA_HW_ACCEL
509 bool "Enable hardware acceleration for SHA hash functions"
510 default y if SHA_HW_ACCEL
511 help
512 This option enables hardware acceleration for the SHA1 and SHA256
513 hashing algorithms. This affects the 'hash' command and also the
514 hash_lookup_algo() function.
515
516config SPL_SHA_PROG_HW_ACCEL
517 bool "Enable Progressive hashing support using hardware in SPL"
518 depends on SHA_PROG_HW_ACCEL
519 default y
520 help
521 This option enables hardware-acceleration for SHA progressive
522 hashing.
523 Data can be streamed in a block at a time and the hashing is
524 performed in hardware.
525
Simon Glassf7b37c22021-09-25 19:43:17 -0600526endif
527
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200528if SHA_HW_ACCEL
529
530config SHA512_HW_ACCEL
531 bool "Enable hardware acceleration for SHA512"
Alexandru Gagniuc5df5d692021-09-02 19:54:18 -0500532 depends on SHA512
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200533 help
534 This option enables hardware acceleration for the SHA384 and SHA512
535 hashing algorithms. This affects the 'hash' command and also the
536 hash_lookup_algo() function.
gaurav ranaef201592015-02-20 12:51:46 +0530537
538config SHA_PROG_HW_ACCEL
539 bool "Enable Progressive hashing support using hardware"
gaurav ranaef201592015-02-20 12:51:46 +0530540 help
Joel Stanley92efc1f2021-02-17 13:50:42 +1030541 This option enables hardware-acceleration for SHA progressive
542 hashing.
543 Data can be streamed in a block at a time and the hashing is
544 performed in hardware.
Andre Przywaraf0fa1132017-03-15 01:19:05 +0000545
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200546endif
547
Andre Przywaraf0fa1132017-03-15 01:19:05 +0000548config MD5
Simon Glassd33d0db2020-05-06 08:03:56 -0600549 bool "Support MD5 algorithm"
550 help
551 This option enables MD5 support. MD5 is an algorithm designed
552 in 1991 that produces a 16-byte digest (or checksum) from its input
553 data. It has a number of vulnerabilities which preclude its use in
554 security applications, but it can be useful for providing a quick
555 checksum of a block of data.
556
557config SPL_MD5
558 bool "Support MD5 algorithm in SPL"
559 help
560 This option enables MD5 support in SPL. MD5 is an algorithm designed
561 in 1991 that produces a 16-byte digest (or checksum) from its input
562 data. It has a number of vulnerabilities which preclude its use in
563 security applications, but it can be useful for providing a quick
564 checksum of a block of data.
Andre Przywaraf0fa1132017-03-15 01:19:05 +0000565
Simon Glass577226c2021-09-25 19:43:24 -0600566config CRC32
567 def_bool y
568 help
569 Enables CRC32 support in U-Boot. This is normally required.
570
Marek Behúncdccc032017-09-03 17:00:23 +0200571config CRC32C
572 bool
573
Marek Behúnb139a7f2019-04-29 22:40:43 +0200574config XXHASH
575 bool
576
gaurav ranaef201592015-02-20 12:51:46 +0530577endmenu
578
Julius Wernerf41a3ca2015-10-06 20:03:53 -0700579menu "Compression Support"
580
581config LZ4
582 bool "Enable LZ4 decompression support"
583 help
584 If this option is set, support for LZ4 compressed images
585 is included. The LZ4 algorithm can run in-place as long as the
586 compressed image is loaded to the end of the output buffer, and
587 trades lower compression ratios for much faster decompression.
Patrick Delaunaycd831af2021-03-10 10:16:28 +0100588
Julius Wernerf41a3ca2015-10-06 20:03:53 -0700589 NOTE: This implements the release version of the LZ4 frame
590 format as generated by default by the 'lz4' command line tool.
591 This is not the same as the outdated, less efficient legacy
592 frame format currently (2015) implemented in the Linux kernel
593 (generated by 'lz4 -l'). The two formats are incompatible.
594
Simon Glass264aa5f2017-05-17 03:25:42 -0600595config LZMA
596 bool "Enable LZMA decompression support"
597 help
598 This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
599 a dictionary compression algorithm that provides a high compression
600 ratio and fairly fast decompression speed. See also
601 CONFIG_CMD_LZMADEC which provides a decode command.
602
Boris Brezillonaa57d0f2017-02-27 18:22:06 +0100603config LZO
Tom Rinic20bb732017-07-22 18:36:16 -0400604 bool "Enable LZO decompression support"
605 help
Oleksandr Suvorov30a4c312021-09-01 16:05:08 +0300606 This enables support for the LZO compression algorithm.
York Suna6945fe2017-08-15 11:14:43 -0700607
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100608config GZIP
Heiko Schocherb93cc602019-04-29 08:59:38 +0200609 bool "Enable gzip decompression support"
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100610 select ZLIB
611 default y
612 help
613 This enables support for GZIP compression algorithm.
614
Joao Marcos Costaae8abb12020-07-30 15:33:49 +0200615config ZLIB_UNCOMPRESS
616 bool "Enables zlib's uncompress() functionality"
617 help
618 This enables an extra zlib functionality: the uncompress() function,
619 which decompresses data from a buffer into another, knowing their
620 sizes. Unlike gunzip(), there is no header parsing.
621
Michael Walle3a6e3512020-05-22 14:07:36 +0200622config GZIP_COMPRESSED
623 bool
624 select ZLIB
625
Atish Patra1fa79622020-03-05 16:24:21 -0800626config BZIP2
627 bool "Enable bzip2 decompression support"
628 help
629 This enables support for BZIP2 compression algorithm.
630
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100631config ZLIB
632 bool
633 default y
634 help
635 This enables ZLIB compression lib.
636
Marek Behúne87e2002019-04-29 22:40:44 +0200637config ZSTD
638 bool "Enable Zstandard decompression support"
639 select XXHASH
640 help
641 This enables Zstandard decompression library.
642
Simon Glasse107bcd2018-11-06 15:21:30 -0700643config SPL_LZ4
644 bool "Enable LZ4 decompression support in SPL"
645 help
Marcin Juszkiewicza360c2c2020-05-26 19:07:15 +0200646 This enables support for the LZ4 decompression algorithm in SPL. LZ4
Simon Glasse107bcd2018-11-06 15:21:30 -0700647 is a lossless data compression algorithm that is focused on
648 fast compression and decompression speed. It belongs to the LZ77
649 family of byte-oriented compression schemes.
650
developer6a4e1d32020-04-21 09:28:38 +0200651config SPL_LZMA
652 bool "Enable LZMA decompression support for SPL build"
653 help
Marcin Juszkiewicza360c2c2020-05-26 19:07:15 +0200654 This enables support for LZMA compression algorithm for SPL boot.
developer6a4e1d32020-04-21 09:28:38 +0200655
Simon Glasse7ca7da2022-04-30 00:56:53 -0600656config VPL_LZMA
657 bool "Enable LZMA decompression support for VPL build"
658 default y if LZMA
659 help
660 This enables support for LZMA compression algorithm for VPL boot.
661
Jean-Jacques Hiblotdbde2882017-09-15 12:57:30 +0200662config SPL_LZO
663 bool "Enable LZO decompression support in SPL"
664 help
665 This enables support for LZO compression algorithm in the SPL.
666
York Suna6945fe2017-08-15 11:14:43 -0700667config SPL_GZIP
668 bool "Enable gzip decompression support for SPL build"
669 select SPL_ZLIB
670 help
Oleksandr Suvorov30a4c312021-09-01 16:05:08 +0300671 This enables support for the GZIP compression algorithm for SPL boot.
York Suna6945fe2017-08-15 11:14:43 -0700672
673config SPL_ZLIB
674 bool
675 help
676 This enables compression lib for SPL boot.
677
Marek Behúne87e2002019-04-29 22:40:44 +0200678config SPL_ZSTD
679 bool "Enable Zstandard decompression support in SPL"
680 select XXHASH
681 help
682 This enables Zstandard decompression library in the SPL.
683
Julius Wernerf41a3ca2015-10-06 20:03:53 -0700684endmenu
685
Przemyslaw Marczak37550132015-04-20 20:07:40 +0200686config ERRNO_STR
687 bool "Enable function for getting errno-related string message"
688 help
689 The function errno_str(int errno), returns a pointer to the errno
690 corresponding text message:
691 - if errno is null or positive number - a pointer to "Success" message
692 - if errno is negative - a pointer to errno related message
693
Alexey Brodkin2d2fa492018-06-05 17:17:57 +0300694config HEXDUMP
695 bool "Enable hexdump"
696 help
697 This enables functions for printing dumps of binary data.
698
Simon Glassa37fd4d2020-09-12 11:13:35 -0600699config SPL_HEXDUMP
700 bool "Enable hexdump in SPL"
Heinrich Schuchardt11df0722021-07-24 17:35:46 +0200701 depends on SPL && HEXDUMP
Simon Glassa37fd4d2020-09-12 11:13:35 -0600702 help
703 This enables functions for printing dumps of binary data in
704 SPL.
705
Sean Anderson3b4a6f52020-10-27 19:55:36 -0400706config GETOPT
707 bool "Enable getopt"
708 help
709 This enables functions for parsing command-line options.
710
Simon Glassa66c5412016-02-22 22:55:42 -0700711config OF_LIBFDT
712 bool "Enable the FDT library"
713 default y if OF_CONTROL
714 help
715 This enables the FDT library (libfdt). It provides functions for
716 accessing binary device tree images in memory, such as adding and
Anatolij Gustschinda707d42017-08-18 17:58:51 +0200717 removing nodes and properties, scanning through the tree and finding
Simon Glassa66c5412016-02-22 22:55:42 -0700718 particular compatible nodes. The library operates on a flattened
719 version of the device tree.
720
Simon Glassc48044d2019-10-27 09:47:40 -0600721config OF_LIBFDT_ASSUME_MASK
722 hex "Mask of conditions to assume for libfdt"
723 depends on OF_LIBFDT || FIT
724 default 0
725 help
726 Use this to change the assumptions made by libfdt about the
727 device tree it is working with. A value of 0 means that no assumptions
728 are made, and libfdt is able to deal with malicious data. A value of
729 0xff means all assumptions are made and any invalid data may cause
730 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
731
Maxime Ripard9e901ce2016-07-05 10:26:44 +0200732config OF_LIBFDT_OVERLAY
733 bool "Enable the FDT library overlay support"
Tom Rinic1e49ba2018-05-08 08:52:17 -0400734 depends on OF_LIBFDT
Praneeth Bajjuri7b71a012018-04-25 16:03:23 -0500735 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
Maxime Ripard9e901ce2016-07-05 10:26:44 +0200736 help
737 This enables the FDT library (libfdt) overlay support.
738
Simon Glass8b426922016-02-22 22:55:45 -0700739config SPL_OF_LIBFDT
740 bool "Enable the FDT library for SPL"
Simon Glasse7ca7da2022-04-30 00:56:53 -0600741 depends on SPL_LIBGENERIC_SUPPORT
Simon Glass8b426922016-02-22 22:55:45 -0700742 default y if SPL_OF_CONTROL
743 help
744 This enables the FDT library (libfdt). It provides functions for
745 accessing binary device tree images in memory, such as adding and
Anatolij Gustschinda707d42017-08-18 17:58:51 +0200746 removing nodes and properties, scanning through the tree and finding
Simon Glass8b426922016-02-22 22:55:45 -0700747 particular compatible nodes. The library operates on a flattened
748 version of the device tree.
749
Simon Glassc48044d2019-10-27 09:47:40 -0600750config SPL_OF_LIBFDT_ASSUME_MASK
751 hex "Mask of conditions to assume for libfdt"
752 depends on SPL_OF_LIBFDT || FIT
753 default 0xff
754 help
755 Use this to change the assumptions made by libfdt in SPL about the
756 device tree it is working with. A value of 0 means that no assumptions
757 are made, and libfdt is able to deal with malicious data. A value of
758 0xff means all assumptions are made and any invalid data may cause
759 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
760
Simon Glassca8ec4b2018-10-01 12:22:21 -0600761config TPL_OF_LIBFDT
762 bool "Enable the FDT library for TPL"
Simon Glasse7ca7da2022-04-30 00:56:53 -0600763 depends on TPL_LIBGENERIC_SUPPORT
Simon Glassca8ec4b2018-10-01 12:22:21 -0600764 default y if TPL_OF_CONTROL
765 help
766 This enables the FDT library (libfdt). It provides functions for
767 accessing binary device tree images in memory, such as adding and
768 removing nodes and properties, scanning through the tree and finding
769 particular compatible nodes. The library operates on a flattened
770 version of the device tree.
771
Simon Glassc48044d2019-10-27 09:47:40 -0600772config TPL_OF_LIBFDT_ASSUME_MASK
773 hex "Mask of conditions to assume for libfdt"
774 depends on TPL_OF_LIBFDT || FIT
775 default 0xff
776 help
777 Use this to change the assumptions made by libfdt in TPL about the
778 device tree it is working with. A value of 0 means that no assumptions
779 are made, and libfdt is able to deal with malicious data. A value of
780 0xff means all assumptions are made and any invalid data may cause
781 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
782
Simon Glasse7ca7da2022-04-30 00:56:53 -0600783config VPL_OF_LIBFDT
784 bool "Enable the FDT library for VPL"
785 default y if VPL_OF_CONTROL && !VPL_OF_PLATDATA
786 help
787 This enables the FDT library (libfdt). It provides functions for
788 accessing binary device tree images in memory, such as adding and
789 removing nodes and properties, scanning through the tree and finding
790 particular compatible nodes. The library operates on a flattened
791 version of the device tree.
792
793config VPL_OF_LIBFDT_ASSUME_MASK
794 hex "Mask of conditions to assume for libfdt"
795 depends on VPL_OF_LIBFDT || FIT
796 default 0xff
797 help
798 Use this to change the assumptions made by libfdt in SPL about the
799 device tree it is working with. A value of 0 means that no assumptions
800 are made, and libfdt is able to deal with malicious data. A value of
801 0xff means all assumptions are made and any invalid data may cause
802 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
803
Heiko Schocherc9ab9102016-10-06 07:31:45 +0200804config FDT_FIXUP_PARTITIONS
805 bool "overwrite MTD partitions in DTS through defined in 'mtdparts'"
806 depends on OF_LIBFDT
Masahiro Yamada734b7552018-07-20 11:04:09 +0900807 depends on CMD_MTDPARTS
Heiko Schocherc9ab9102016-10-06 07:31:45 +0200808 help
809 Allow overwriting defined partitions in the device tree blob
810 using partition info defined in the 'mtdparts' environment
811 variable.
812
Alexander Graffb228082016-08-19 01:23:23 +0200813menu "System tables"
Alexander Graf66f96e12016-08-19 01:23:29 +0200814 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
Alexander Graffb228082016-08-19 01:23:23 +0200815
Simon Glass5d093f32020-11-04 09:57:25 -0700816config BLOBLIST_TABLES
817 bool "Put tables in a bloblist"
Simon Glass171c6462021-03-15 18:11:22 +1300818 depends on X86 && BLOBLIST
Simon Glass5d093f32020-11-04 09:57:25 -0700819 help
820 Normally tables are placed at address 0xf0000 and can be up to 64KB
821 long. With this option, tables are instead placed in the bloblist
822 with a pointer from 0xf0000. The size can then be larger and the
823 tables can be placed high in memory.
824
Alexander Graffb228082016-08-19 01:23:23 +0200825config GENERATE_SMBIOS_TABLE
826 bool "Generate an SMBIOS (System Management BIOS) table"
827 default y
Alexander Graf66f96e12016-08-19 01:23:29 +0200828 depends on X86 || EFI_LOADER
Alexander Graffb228082016-08-19 01:23:23 +0200829 help
830 The System Management BIOS (SMBIOS) specification addresses how
831 motherboard and system vendors present management information about
832 their products in a standard format by extending the BIOS interface
833 on Intel architecture systems.
834
835 Check http://www.dmtf.org/standards/smbios for details.
836
Simon Glass052a03e2020-11-05 06:32:11 -0700837 See also SMBIOS_SYSINFO which allows SMBIOS values to be provided in
838 the devicetree.
839
Tero Kristocfbe15c2021-06-11 11:45:02 +0300840config LIB_RATIONAL
841 bool "enable continued fraction calculation routines"
842
843config SPL_LIB_RATIONAL
844 bool "enable continued fraction calculation routines for SPL"
845 depends on SPL
846
Alexander Graffb228082016-08-19 01:23:23 +0200847endmenu
848
AKASHI Takahirof7025262019-11-13 09:44:53 +0900849config ASN1_COMPILER
850 bool
Philippe Reynes2aba9442022-03-28 22:56:54 +0200851 help
852 ASN.1 (Abstract Syntax Notation One) is a standard interface
853 description language for defining data structures that can be
854 serialized and deserialized in a cross-platform way. It is
855 broadly used in telecommunications and computer networking,
856 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
857 This option enables the support of the asn1 compiler.
AKASHI Takahirof7025262019-11-13 09:44:53 +0900858
AKASHI Takahiro3a888712019-11-13 09:44:55 +0900859config ASN1_DECODER
860 bool
861 help
Philippe Reynes2aba9442022-03-28 22:56:54 +0200862 ASN.1 (Abstract Syntax Notation One) is a standard interface
863 description language for defining data structures that can be
864 serialized and deserialized in a cross-platform way. It is
865 broadly used in telecommunications and computer networking,
866 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
867 This option enables the support of the asn1 decoder.
AKASHI Takahiro3a888712019-11-13 09:44:55 +0900868
Philippe Reynescf538b52022-03-28 22:56:56 +0200869config SPL_ASN1_DECODER
870 bool
871 help
872 ASN.1 (Abstract Syntax Notation One) is a standard interface
873 description language for defining data structures that can be
874 serialized and deserialized in a cross-platform way. It is
875 broadly used in telecommunications and computer networking,
876 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
877 This option enables the support of the asn1 decoder in the SPL.
878
AKASHI Takahiro54923642019-11-13 09:44:57 +0900879config OID_REGISTRY
880 bool
881 help
Philippe Reynese35c3a22022-03-28 22:56:55 +0200882 In computing, object identifiers or OIDs are an identifier mechanism
883 standardized by the International Telecommunication Union (ITU) and
884 ISO/IEC for naming any object, concept, or "thing" with a globally
885 unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
AKASHI Takahiro54923642019-11-13 09:44:57 +0900886 Enable fast lookup object identifier registry.
887
Philippe Reynescf538b52022-03-28 22:56:56 +0200888config SPL_OID_REGISTRY
889 bool
890 help
891 In computing, object identifiers or OIDs are an identifier mechanism
892 standardized by the International Telecommunication Union (ITU) and
893 ISO/IEC for naming any object, concept, or "thing" with a globally
894 unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
895 Enable fast lookup object identifier registry in the SPL.
896
Christian Gmeiner19859982020-11-03 15:34:51 +0100897config SMBIOS_PARSER
898 bool "SMBIOS parser"
899 help
900 A simple parser for SMBIOS data.
901
Simon Glass9539e692015-07-31 09:31:36 -0600902source lib/efi/Kconfig
Alexander Graf67ee7052016-03-04 01:10:07 +0100903source lib/efi_loader/Kconfig
Bryan O'Donoghue4b0de7c2018-03-13 16:50:27 +0000904source lib/optee/Kconfig
Simon Glass9539e692015-07-31 09:31:36 -0600905
Thierry Reding52c7f1f32019-03-21 19:10:04 +0100906config TEST_FDTDEC
907 bool "enable fdtdec test"
908 depends on OF_LIBFDT
909
AKASHI Takahiro51ba5222019-11-13 09:44:49 +0900910config LIB_DATE
911 bool
912
Keerthy76f361a2020-02-12 13:55:03 +0530913config LIB_ELF
914 bool
915 help
Patrick Delaunayfb67df82021-01-04 15:33:28 +0100916 Support basic elf loading/validating functions.
917 This supports for 32 bit and 64 bit versions.
Keerthy76f361a2020-02-12 13:55:03 +0530918
Patrick Delaunayd62063d2021-03-10 10:16:25 +0100919config LMB
920 bool "Enable the logical memory blocks library (lmb)"
Tom Rini53320122022-04-06 09:21:25 -0400921 default y if ARC || ARM || M68K || MICROBLAZE || MIPS || \
Patrick Delaunayd62063d2021-03-10 10:16:25 +0100922 NIOS2 || PPC || RISCV || SANDBOX || SH || X86 || XTENSA
923 help
924 Support the library logical memory blocks.
925
Patrick Delaunay71cc9c52021-03-10 10:16:31 +0100926config LMB_USE_MAX_REGIONS
Heinrich Schuchardtc4bc9182021-11-14 09:38:53 +0100927 bool "Use a common number of memory and reserved regions in lmb lib"
Patrick Delaunay71cc9c52021-03-10 10:16:31 +0100928 depends on LMB
929 default y
930 help
931 Define the number of supported memory regions in the library logical
932 memory blocks.
933 This feature allow to reduce the lmb library size by using compiler
934 optimization when LMB_MEMORY_REGIONS == LMB_RESERVED_REGIONS.
Patrick Delaunaycd831af2021-03-10 10:16:28 +0100935
936config LMB_MAX_REGIONS
937 int "Number of memory and reserved regions in lmb lib"
Patrick Delaunay71cc9c52021-03-10 10:16:31 +0100938 depends on LMB && LMB_USE_MAX_REGIONS
Patrick Delaunaycd831af2021-03-10 10:16:28 +0100939 default 8
940 help
941 Define the number of supported regions, memory and reserved, in the
942 library logical memory blocks.
Patrick Delaunay71cc9c52021-03-10 10:16:31 +0100943
944config LMB_MEMORY_REGIONS
945 int "Number of memory regions in lmb lib"
946 depends on LMB && !LMB_USE_MAX_REGIONS
947 default 8
948 help
949 Define the number of supported memory regions in the library logical
950 memory blocks.
951 The minimal value is CONFIG_NR_DRAM_BANKS.
952
953config LMB_RESERVED_REGIONS
954 int "Number of reserved regions in lmb lib"
955 depends on LMB && !LMB_USE_MAX_REGIONS
956 default 8
957 help
958 Define the number of supported reserved regions in the library logical
959 memory blocks.
960
Aswath Govindraju3dd81252020-12-03 10:55:45 +0530961config PHANDLE_CHECK_SEQ
962 bool "Enable phandle check while getting sequence number"
Aswath Govindraju3dd81252020-12-03 10:55:45 +0530963 help
964 When there are multiple device tree nodes with same name,
965 enable this config option to distinguish them using
966 phandles in fdtdec_get_alias_seq() function.
Eugen Hristevdb6bbcb2022-01-04 18:20:19 +0200967
968endmenu