blob: a83f32d82a5e668b061de8c872291afb809674d5 [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
Tom Rini1f173632022-11-16 13:10:38 -050018config SYS_TIMER_COUNTS_DOWN
19 bool "System timer counts down rathe than up"
20
Simon Glassef9e7622021-11-24 09:26:42 -070021config 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
Adam Ford02bf5362017-08-11 09:46:05 -050031config 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
Simon Glassdd7fb9b2019-12-06 21:41:34 -070038config BINMAN_FDT
39 bool "Allow access to binman information in the device tree"
Bin Mengc5e8b312021-02-03 21:20:02 +080040 depends on BINMAN && DM && OF_CONTROL
Bin Mengc9155f12021-05-10 20:23:36 +080041 default y if OF_SEPARATE || OF_EMBED
Simon Glassdd7fb9b2019-12-06 21:41:34 -070042 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
Masahiro Yamada3f053fe2014-09-16 16:32:59 +090048config CC_OPTIMIZE_LIBS_FOR_SPEED
49 bool "Optimize libraries for speed"
50 help
51 Enabling this option will pass "-O2" to gcc when compiling
52 under "lib" directory.
53
54 If unsure, say N.
55
Simon Glassc17db992021-07-02 12:36:17 -060056config CHARSET
57 bool
Simon Glassc17db992021-07-02 12:36:17 -060058
Faiz Abbas6199fb12018-02-06 19:15:58 +053059config DYNAMIC_CRC_TABLE
60 bool "Enable Dynamic tables for CRC"
61 help
62 Enable this option to calculate entries for CRC tables at runtime.
63 This can be helpful when reducing the size of the build image
64
Bin Mengb95e9db2018-10-15 02:21:15 -070065config HAVE_ARCH_IOMAP
66 bool
67 help
68 Enable this option if architecture provides io{read,write}{8,16,32}
69 I/O accessor functions.
70
Masahiro Yamada9520b712014-10-24 01:30:43 +090071config HAVE_PRIVATE_LIBGCC
72 bool
73
Adam Ford70c8f052018-02-06 12:14:28 -060074config LIB_UUID
75 bool
76
Kautuk Consula51bb742022-12-07 17:12:34 +053077config SEMIHOSTING
78 bool "Support semihosting"
Kautuk Consulc86cb4a2022-12-07 17:12:35 +053079 depends on ARM || RISCV
Kautuk Consula51bb742022-12-07 17:12:34 +053080 help
81 Semihosting is a method for a target to communicate with a host
82 debugger. It uses special instructions which the debugger will trap
83 on and interpret. This allows U-Boot to read/write files, print to
84 the console, and execute arbitrary commands on the host system.
85
86 Enabling this option will add support for reading and writing files
87 on the host system. If you don't have a debugger attached then trying
88 to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
89
90config SEMIHOSTING_FALLBACK
91 bool "Recover gracefully when semihosting fails"
Kautuk Consulc86cb4a2022-12-07 17:12:35 +053092 depends on SEMIHOSTING && (ARM64 || RISCV)
Kautuk Consula51bb742022-12-07 17:12:34 +053093 default y
94 help
95 Normally, if U-Boot makes a semihosting call and no debugger is
96 attached, then it will panic due to a synchronous abort
97 exception. This config adds an exception handler which will allow
98 U-Boot to recover. Say 'y' if unsure.
99
100config SPL_SEMIHOSTING
101 bool "Support semihosting in SPL"
Kautuk Consulc86cb4a2022-12-07 17:12:35 +0530102 depends on SPL && (ARM || RISCV)
Kautuk Consula51bb742022-12-07 17:12:34 +0530103 help
104 Semihosting is a method for a target to communicate with a host
105 debugger. It uses special instructions which the debugger will trap
106 on and interpret. This allows U-Boot to read/write files, print to
107 the console, and execute arbitrary commands on the host system.
108
109 Enabling this option will add support for reading and writing files
110 on the host system. If you don't have a debugger attached then trying
111 to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
112
113config SPL_SEMIHOSTING_FALLBACK
114 bool "Recover gracefully when semihosting fails in SPL"
Kautuk Consulc86cb4a2022-12-07 17:12:35 +0530115 depends on SPL_SEMIHOSTING && (ARM64 || RISCV)
116 select ARMV8_SPL_EXCEPTION_VECTORS if ARM64
Kautuk Consula51bb742022-12-07 17:12:34 +0530117 default y
118 help
119 Normally, if U-Boot makes a semihosting call and no debugger is
120 attached, then it will panic due to a synchronous abort
121 exception. This config adds an exception handler which will allow
122 U-Boot to recover. Say 'y' if unsure.
123
Alex Kiernan5b404282018-04-19 04:32:54 +0000124config PRINTF
125 bool
126 default y
127
128config SPL_PRINTF
129 bool
130 select SPL_SPRINTF
Simon Glass7611ac62019-09-25 08:56:27 -0600131 select SPL_STRTO if !SPL_USE_TINY_PRINTF
Alex Kiernan5b404282018-04-19 04:32:54 +0000132
133config TPL_PRINTF
134 bool
135 select TPL_SPRINTF
Simon Glass7611ac62019-09-25 08:56:27 -0600136 select TPL_STRTO if !TPL_USE_TINY_PRINTF
Alex Kiernan5b404282018-04-19 04:32:54 +0000137
Simon Glasse7ca7da2022-04-30 00:56:53 -0600138config VPL_PRINTF
139 bool
140 select VPL_SPRINTF
141 select VPL_STRTO if !VPL_USE_TINY_PRINTF
142
Alex Kiernan5b404282018-04-19 04:32:54 +0000143config SPRINTF
144 bool
145 default y
146
147config SPL_SPRINTF
148 bool
149
150config TPL_SPRINTF
151 bool
152
Simon Glasse7ca7da2022-04-30 00:56:53 -0600153config VPL_SPRINTF
154 bool
155
Andrii Anisov6e29ac42020-08-06 12:42:52 +0300156config SSCANF
157 bool
Andrii Anisov6e29ac42020-08-06 12:42:52 +0300158
Alex Kiernan5b404282018-04-19 04:32:54 +0000159config STRTO
160 bool
161 default y
162
163config SPL_STRTO
164 bool
165
166config TPL_STRTO
167 bool
168
Simon Glasse7ca7da2022-04-30 00:56:53 -0600169config VPL_STRTO
170 bool
171
Alex Kiernanc568bcb2018-05-29 15:30:52 +0000172config IMAGE_SPARSE
173 bool
174
175config IMAGE_SPARSE_FILLBUF_SIZE
176 hex "Android sparse image CHUNK_TYPE_FILL buffer size"
177 default 0x80000
178 depends on IMAGE_SPARSE
179 help
180 Set the size of the fill buffer used when processing CHUNK_TYPE_FILL
181 chunks.
182
Masahiro Yamada9520b712014-10-24 01:30:43 +0900183config USE_PRIVATE_LIBGCC
184 bool "Use private libgcc"
185 depends on HAVE_PRIVATE_LIBGCC
Marek Vasut4e0126e2016-05-26 18:01:47 +0200186 default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
Masahiro Yamada9520b712014-10-24 01:30:43 +0900187 help
188 This option allows you to use the built-in libgcc implementation
Masahiro Yamada1c6a5e42016-03-30 20:17:42 +0900189 of U-Boot instead of the one provided by the compiler.
Masahiro Yamada9520b712014-10-24 01:30:43 +0900190 If unsure, say N.
191
Masahiro Yamadae301fa02014-10-24 01:30:40 +0900192config SYS_HZ
193 int
194 default 1000
195 help
196 The frequency of the timer returned by get_timer().
197 get_timer() must operate in milliseconds and this option must be
198 set to 1000.
199
Simon Glass7611ac62019-09-25 08:56:27 -0600200config SPL_USE_TINY_PRINTF
Thomas Hebb0c12fb52019-11-10 08:23:53 -0800201 bool "Enable tiny printf() version in SPL"
Simon Glass7611ac62019-09-25 08:56:27 -0600202 depends on SPL
Tom Rinid0502b72019-06-08 12:46:18 -0400203 default y
Stefan Roese363ab7b2015-11-23 07:00:22 +0100204 help
205 This option enables a tiny, stripped down printf version.
206 This should only be used in space limited environments,
207 like SPL versions with hard memory limits. This version
208 reduces the code size by about 2.5KiB on armv7.
209
210 The supported format specifiers are %c, %s, %u/%d and %x.
211
Simon Glass7611ac62019-09-25 08:56:27 -0600212config TPL_USE_TINY_PRINTF
Thomas Hebb0c12fb52019-11-10 08:23:53 -0800213 bool "Enable tiny printf() version in TPL"
Simon Glass7611ac62019-09-25 08:56:27 -0600214 depends on TPL
215 default y if SPL_USE_TINY_PRINTF
216 help
217 This option enables a tiny, stripped down printf version.
218 This should only be used in space limited environments,
219 like SPL versions with hard memory limits. This version
220 reduces the code size by about 2.5KiB on armv7.
221
222 The supported format specifiers are %c, %s, %u/%d and %x.
223
Simon Glasse7ca7da2022-04-30 00:56:53 -0600224config VPL_USE_TINY_PRINTF
225 bool "Enable tiny printf() version for VPL"
226 depends on VPL
227 help
228 This option enables a tiny, stripped down printf version.
229 This should only be used in space limited environments,
230 like SPL versions with hard memory limits. This version
231 reduces the code size by about 2.5KiB on armv7.
232
233 The supported format specifiers are %c, %s, %u/%d and %x.
234
Masahiro Yamadaacede7a2017-12-04 12:37:00 +0900235config PANIC_HANG
236 bool "Do not reset the system on fatal error"
237 help
238 Define this option to stop the system in case of a fatal error,
239 so that you have to reset it manually. This is probably NOT a good
240 idea for an embedded system where you want the system to reboot
241 automatically as fast as possible, but it may be useful during
242 development since you can try to debug the conditions that lead to
243 the situation.
244
Joe Hershberger937d3e82015-04-21 17:02:42 -0500245config REGEX
246 bool "Enable regular expression support"
Joe Hershberger8ab8b722015-06-22 17:57:36 -0500247 default y if NET
Joe Hershberger937d3e82015-04-21 17:02:42 -0500248 help
249 If this variable is defined, U-Boot is linked against the
250 SLRE (Super Light Regular Expression) library, which adds
251 regex support to some commands, for example "env grep" and
252 "setexpr".
253
Adam Ford38003a62018-02-06 10:18:18 -0600254choice
255 prompt "Pseudo-random library support type"
Heinrich Schuchardtb2e67a22020-01-19 19:28:12 +0100256 depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID || \
Heinrich Schuchardtba9c44e2020-11-20 12:55:22 +0100257 RNG_SANDBOX || UT_LIB && AES || FAT_WRITE
Adam Ford38003a62018-02-06 10:18:18 -0600258 default LIB_RAND
Masahiro Yamada2743c072015-06-11 19:16:43 +0900259 help
Adam Ford38003a62018-02-06 10:18:18 -0600260 Select the library to provide pseudo-random number generator
261 functions. LIB_HW_RAND supports certain hardware engines that
262 provide this functionality. If in doubt, select LIB_RAND.
263
264config LIB_RAND
265 bool "Pseudo-random library support"
266
267config LIB_HW_RAND
Marcin Juszkiewicza360c2c2020-05-26 19:07:15 +0200268 bool "HW Engine for random library support"
Adam Ford38003a62018-02-06 10:18:18 -0600269
270endchoice
Michal Simek2c1b1db2015-05-25 11:37:22 +0200271
Simon Glassa6cee932021-12-01 09:02:36 -0700272config SUPPORT_ACPI
273 bool
274 help
275 Enable this if your arch or board can support generating ACPI
276 (Advanced Configuration and Power Interface) tables. In this case
277 U-Boot can generate these tables and pass them to the Operating
278 System.
279
280config GENERATE_ACPI_TABLE
281 bool "Generate an ACPI (Advanced Configuration and Power Interface) table"
282 depends on SUPPORT_ACPI
283 select QFW if QEMU
284 help
285 The Advanced Configuration and Power Interface (ACPI) specification
286 provides an open standard for device configuration and management
287 by the operating system. It defines platform-independent interfaces
288 for configuration and power management monitoring.
289
Simon Glasse2f94ae2017-04-02 09:50:28 -0600290config SPL_TINY_MEMSET
291 bool "Use a very small memset() in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400292 depends on SPL
Simon Glasse2f94ae2017-04-02 09:50:28 -0600293 help
294 The faster memset() is the arch-specific one (if available) enabled
295 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
296 better performance by writing a word at a time. But in very
Chris Packham1c3b7ba2019-01-13 22:13:28 +1300297 size-constrained environments even this may be too big. Enable this
Simon Glasse2f94ae2017-04-02 09:50:28 -0600298 option to reduce code size slightly at the cost of some speed.
299
Philipp Tomsichfefc4ec2017-08-03 22:52:04 +0200300config TPL_TINY_MEMSET
301 bool "Use a very small memset() in TPL"
Tom Rini36a4ca02022-06-08 08:24:39 -0400302 depends on TPL
Philipp Tomsichfefc4ec2017-08-03 22:52:04 +0200303 help
304 The faster memset() is the arch-specific one (if available) enabled
305 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
306 better performance by writing a word at a time. But in very
Chris Packham1c3b7ba2019-01-13 22:13:28 +1300307 size-constrained environments even this may be too big. Enable this
Philipp Tomsichfefc4ec2017-08-03 22:52:04 +0200308 option to reduce code size slightly at the cost of some speed.
309
Boris Brezillon627dc182017-02-27 18:22:05 +0100310config RBTREE
311 bool
312
Nandor Hand5ea84a2017-11-08 15:35:14 +0000313config BITREVERSE
314 bool "Bit reverse library from Linux"
315
Simon Glassbfce7fc2019-04-08 13:20:51 -0600316config TRACE
317 bool "Support for tracing of function calls and timing"
318 imply CMD_TRACE
Simon Glass6b5424a2022-12-21 16:08:26 -0700319 imply TIMER_EARLY
Simon Glassbfce7fc2019-04-08 13:20:51 -0600320 help
321 Enables function tracing within U-Boot. This allows recording of call
322 traces including timing information. The command can write data to
323 memory for exporting for analysis (e.g. using bootchart).
324 See doc/README.trace for full details.
325
Simon Glass445078e2019-04-08 13:20:52 -0600326config TRACE_BUFFER_SIZE
327 hex "Size of trace buffer in U-Boot"
328 depends on TRACE
329 default 0x01000000
330 help
331 Sets the size of the trace buffer in U-Boot. This is allocated from
332 memory during relocation. If this buffer is too small, the trace
333 history will be truncated, with later records omitted.
334
335 If early trace is enabled (i.e. before relocation), this buffer must
336 be large enough to include all the data from the early trace buffer as
337 well, since this is copied over to the main buffer during relocation.
338
339 A trace record is emitted for each function call and each record is
340 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
341 the size is too small then 'trace stats' will show a message saying
342 how many records were dropped due to buffer overflow.
343
Heinrich Schuchardtc1a73792019-06-02 13:30:09 +0200344config TRACE_CALL_DEPTH_LIMIT
345 int "Trace call depth limit"
346 depends on TRACE
347 default 15
348 help
349 Sets the maximum call depth up to which function calls are recorded.
350
Simon Glass445078e2019-04-08 13:20:52 -0600351config TRACE_EARLY
352 bool "Enable tracing before relocation"
353 depends on TRACE
354 help
355 Sometimes it is helpful to trace execution of U-Boot before
356 relocation. This is possible by using a arch-specific, fixed buffer
357 position in memory. Enable this option to start tracing as early as
358 possible after U-Boot starts.
359
360config TRACE_EARLY_SIZE
361 hex "Size of early trace buffer in U-Boot"
362 depends on TRACE_EARLY
363 default 0x00100000
364 help
365 Sets the size of the early trace buffer in bytes. This is used to hold
366 tracing information before relocation.
367
Heinrich Schuchardtc1a73792019-06-02 13:30:09 +0200368config TRACE_EARLY_CALL_DEPTH_LIMIT
369 int "Early trace call depth limit"
370 depends on TRACE_EARLY
371 default 200
372 help
373 Sets the maximum call depth up to which function calls are recorded
374 during early tracing.
375
Simon Glass445078e2019-04-08 13:20:52 -0600376config TRACE_EARLY_ADDR
377 hex "Address of early trace buffer in U-Boot"
378 depends on TRACE_EARLY
379 default 0x00100000
380 help
381 Sets the address of the early trace buffer in U-Boot. This memory
382 must be accessible before relocation.
383
384 A trace record is emitted for each function call and each record is
385 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
386 the size is too small then the message which says the amount of early
387 data being coped will the the same as the
388
Loic Poulain12797e62021-11-25 18:16:14 +0100389config CIRCBUF
390 bool "Enable circular buffer support"
391
Simon Glass99dbe4b2015-06-23 15:38:23 -0600392source lib/dhry/Kconfig
393
Simon Glass528fdd12017-04-26 22:27:49 -0600394menu "Security support"
395
396config AES
397 bool "Support the AES algorithm"
398 help
399 This provides a means to encrypt and decrypt data using the AES
400 (Advanced Encryption Standard). This algorithm uses a symetric key
401 and is widely used as a streaming cipher. Different key lengths are
402 supported by the algorithm but only a 128-bit key is supported at
403 present.
404
Alexandru Gagniuc48cb9b82021-07-29 11:47:16 -0500405source lib/ecdsa/Kconfig
Ruchika Gupta4acd8c42015-01-23 16:01:56 +0530406source lib/rsa/Kconfig
AKASHI Takahiro591535c2019-11-13 09:45:00 +0900407source lib/crypto/Kconfig
Steffen Jaeckel229bd512021-07-08 15:57:33 +0200408source lib/crypt/Kconfig
Ruchika Gupta2c3822e2015-01-23 16:01:51 +0530409
Simon Glass350497c2015-08-22 18:31:19 -0600410config TPM
411 bool "Trusted Platform Module (TPM) Support"
Simon Glasscf294b02015-10-03 06:39:36 -0600412 depends on DM
Sughosh Ganu9737fab2022-07-22 21:32:04 +0530413 imply DM_RNG
Simon Glass350497c2015-08-22 18:31:19 -0600414 help
415 This enables support for TPMs which can be used to provide security
416 features for your board. The TPM can be connected via LPC or I2C
417 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
418 command to interactive the TPM. Driver model support is provided
419 for the low-level TPM interface, but only one TPM is supported at
420 a time by the TPM library.
421
Simon Glass93a45b12018-10-01 12:22:19 -0600422config SPL_TPM
423 bool "Trusted Platform Module (TPM) Support in SPL"
424 depends on SPL_DM
Simon Glass2b95b492023-01-07 14:57:20 -0700425 imply SPL_CRC8
Simon Glass93a45b12018-10-01 12:22:19 -0600426 help
427 This enables support for TPMs which can be used to provide security
428 features for your board. The TPM can be connected via LPC or I2C
429 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
430 command to interactive the TPM. Driver model support is provided
431 for the low-level TPM interface, but only one TPM is supported at
432 a time by the TPM library.
433
434config TPL_TPM
435 bool "Trusted Platform Module (TPM) Support in TPL"
436 depends on TPL_DM
437 help
438 This enables support for TPMs which can be used to provide security
439 features for your board. The TPM can be connected via LPC or I2C
440 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
441 command to interactive the TPM. Driver model support is provided
442 for the low-level TPM interface, but only one TPM is supported at
443 a time by the TPM library.
444
Simon Glasse7ca7da2022-04-30 00:56:53 -0600445config VPL_TPM
446 bool "Trusted Platform Module (TPM) Support in VPL"
447 depends on VPL_DM
448 help
449 This enables support for TPMs which can be used to provide security
450 features for your board. The TPM can be connected via LPC or I2C
451 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
452 command to interactive the TPM. Driver model support is provided
453 for the low-level TPM interface, but only one TPM is supported at
454 a time by the TPM library.
455
Simon Glass528fdd12017-04-26 22:27:49 -0600456endmenu
457
Igor Opaniuk525d1d82018-06-03 21:56:37 +0300458menu "Android Verified Boot"
459
460config LIBAVB
461 bool "Android Verified Boot 2.0 support"
462 depends on ANDROID_BOOT_IMAGE
Igor Opaniuk525d1d82018-06-03 21:56:37 +0300463 help
464 This enables support of Android Verified Boot 2.0 which can be used
465 to assure the end user of the integrity of the software running on a
466 device. Introduces such features as boot chain of trust, rollback
467 protection etc.
468
469endmenu
470
gaurav ranaef201592015-02-20 12:51:46 +0530471menu "Hashing Support"
472
Qu Wenruob98e8a22021-12-27 14:12:07 +0800473config BLAKE2
474 bool "Enable BLAKE2 support"
475 help
476 This option enables support of hashing using BLAKE2B algorithm.
477 The hash is calculated in software.
478 The BLAKE2 algorithm produces a hash value (digest) between 1 and
479 64 bytes.
480
gaurav ranaef201592015-02-20 12:51:46 +0530481config SHA1
482 bool "Enable SHA1 support"
483 help
484 This option enables support of hashing using SHA1 algorithm.
485 The hash is calculated in software.
486 The SHA1 algorithm produces a 160-bit (20-byte) hash value
487 (digest).
488
489config SHA256
490 bool "Enable SHA256 support"
491 help
492 This option enables support of hashing using SHA256 algorithm.
493 The hash is calculated in software.
494 The SHA256 algorithm produces a 256-bit (32-byte) hash value
495 (digest).
496
Reuben Dowle1908fd92020-04-16 17:36:52 +1200497config SHA512
498 bool "Enable SHA512 support"
Reuben Dowle1908fd92020-04-16 17:36:52 +1200499 help
500 This option enables support of hashing using SHA512 algorithm.
501 The hash is calculated in software.
502 The SHA512 algorithm produces a 512-bit (64-byte) hash value
503 (digest).
504
505config SHA384
506 bool "Enable SHA384 support"
Alexandru Gagniuc5df5d692021-09-02 19:54:18 -0500507 select SHA512
Reuben Dowle1908fd92020-04-16 17:36:52 +1200508 help
509 This option enables support of hashing using SHA384 algorithm.
Alexandru Gagniuc5df5d692021-09-02 19:54:18 -0500510 The hash is calculated in software. This is also selects SHA512,
511 because these implementations share the bulk of the code..
Reuben Dowle1908fd92020-04-16 17:36:52 +1200512 The SHA384 algorithm produces a 384-bit (48-byte) hash value
513 (digest).
514
gaurav ranaef201592015-02-20 12:51:46 +0530515config SHA_HW_ACCEL
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200516 bool "Enable hardware acceleration for SHA hash functions"
gaurav ranaef201592015-02-20 12:51:46 +0530517 help
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200518 This option enables hardware acceleration for the SHA1 and SHA256
519 hashing algorithms. This affects the 'hash' command and also the
520 hash_lookup_algo() function.
521
Simon Glassf7b37c22021-09-25 19:43:17 -0600522if SPL
523
524config SPL_SHA1
525 bool "Enable SHA1 support in SPL"
526 default y if SHA1
527 help
528 This option enables support of hashing using SHA1 algorithm.
529 The hash is calculated in software.
530 The SHA1 algorithm produces a 160-bit (20-byte) hash value
531 (digest).
532
533config SPL_SHA256
534 bool "Enable SHA256 support in SPL"
535 default y if SHA256
536 help
537 This option enables support of hashing using SHA256 algorithm.
538 The hash is calculated in software.
539 The SHA256 algorithm produces a 256-bit (32-byte) hash value
540 (digest).
541
542config SPL_SHA512
543 bool "Enable SHA512 support in SPL"
544 default y if SHA512
545 help
546 This option enables support of hashing using SHA512 algorithm.
547 The hash is calculated in software.
548 The SHA512 algorithm produces a 512-bit (64-byte) hash value
549 (digest).
550
551config SPL_SHA384
552 bool "Enable SHA384 support in SPL"
553 default y if SHA384
554 select SPL_SHA512
555 help
556 This option enables support of hashing using SHA384 algorithm.
557 The hash is calculated in software. This is also selects SHA512,
558 because these implementations share the bulk of the code..
559 The SHA384 algorithm produces a 384-bit (48-byte) hash value
560 (digest).
561
Simon Glass383dd572021-09-25 19:43:18 -0600562config SPL_SHA_HW_ACCEL
563 bool "Enable hardware acceleration for SHA hash functions"
564 default y if SHA_HW_ACCEL
565 help
566 This option enables hardware acceleration for the SHA1 and SHA256
567 hashing algorithms. This affects the 'hash' command and also the
568 hash_lookup_algo() function.
569
570config SPL_SHA_PROG_HW_ACCEL
571 bool "Enable Progressive hashing support using hardware in SPL"
572 depends on SHA_PROG_HW_ACCEL
573 default y
574 help
575 This option enables hardware-acceleration for SHA progressive
576 hashing.
577 Data can be streamed in a block at a time and the hashing is
578 performed in hardware.
579
Simon Glassf7b37c22021-09-25 19:43:17 -0600580endif
581
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200582if SHA_HW_ACCEL
583
584config SHA512_HW_ACCEL
585 bool "Enable hardware acceleration for SHA512"
Alexandru Gagniuc5df5d692021-09-02 19:54:18 -0500586 depends on SHA512
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200587 help
588 This option enables hardware acceleration for the SHA384 and SHA512
589 hashing algorithms. This affects the 'hash' command and also the
590 hash_lookup_algo() function.
gaurav ranaef201592015-02-20 12:51:46 +0530591
592config SHA_PROG_HW_ACCEL
593 bool "Enable Progressive hashing support using hardware"
gaurav ranaef201592015-02-20 12:51:46 +0530594 help
Joel Stanley92efc1f2021-02-17 13:50:42 +1030595 This option enables hardware-acceleration for SHA progressive
596 hashing.
597 Data can be streamed in a block at a time and the hashing is
598 performed in hardware.
Andre Przywaraf0fa1132017-03-15 01:19:05 +0000599
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200600endif
601
Andre Przywaraf0fa1132017-03-15 01:19:05 +0000602config MD5
Simon Glassd33d0db2020-05-06 08:03:56 -0600603 bool "Support MD5 algorithm"
604 help
605 This option enables MD5 support. MD5 is an algorithm designed
606 in 1991 that produces a 16-byte digest (or checksum) from its input
607 data. It has a number of vulnerabilities which preclude its use in
608 security applications, but it can be useful for providing a quick
609 checksum of a block of data.
610
611config SPL_MD5
612 bool "Support MD5 algorithm in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400613 depends on SPL
Simon Glassd33d0db2020-05-06 08:03:56 -0600614 help
615 This option enables MD5 support in SPL. MD5 is an algorithm designed
616 in 1991 that produces a 16-byte digest (or checksum) from its input
617 data. It has a number of vulnerabilities which preclude its use in
618 security applications, but it can be useful for providing a quick
619 checksum of a block of data.
Andre Przywaraf0fa1132017-03-15 01:19:05 +0000620
Simon Glass2b95b492023-01-07 14:57:20 -0700621config CRC8
622 def_bool y
623 help
624 Enables CRC8 support in U-Boot. This is normally required. CRC8 is
625 a simple and fast checksumming algorithm which does a bytewise
626 checksum with feedback to produce an 8-bit result. The code is small
627 and it does not require a lookup table (unlike CRC32).
628
629config SPL_CRC8
630 bool "Support CRC8 in SPL"
631 depends on SPL
632 help
633 Enables CRC8 support in SPL. This is not normally required. CRC8 is
634 a simple and fast checksumming algorithm which does a bytewise
635 checksum with feedback to produce an 8-bit result. The code is small
636 and it does not require a lookup table (unlike CRC32).
637
Simon Glass577226c2021-09-25 19:43:24 -0600638config CRC32
639 def_bool y
640 help
641 Enables CRC32 support in U-Boot. This is normally required.
642
Marek Behúncdccc032017-09-03 17:00:23 +0200643config CRC32C
644 bool
645
Marek Behúnb139a7f2019-04-29 22:40:43 +0200646config XXHASH
647 bool
648
gaurav ranaef201592015-02-20 12:51:46 +0530649endmenu
650
Julius Wernerf41a3ca2015-10-06 20:03:53 -0700651menu "Compression Support"
652
653config LZ4
654 bool "Enable LZ4 decompression support"
655 help
656 If this option is set, support for LZ4 compressed images
657 is included. The LZ4 algorithm can run in-place as long as the
658 compressed image is loaded to the end of the output buffer, and
659 trades lower compression ratios for much faster decompression.
Patrick Delaunaycd831af2021-03-10 10:16:28 +0100660
Julius Wernerf41a3ca2015-10-06 20:03:53 -0700661 NOTE: This implements the release version of the LZ4 frame
662 format as generated by default by the 'lz4' command line tool.
663 This is not the same as the outdated, less efficient legacy
664 frame format currently (2015) implemented in the Linux kernel
665 (generated by 'lz4 -l'). The two formats are incompatible.
666
Simon Glass264aa5f2017-05-17 03:25:42 -0600667config LZMA
668 bool "Enable LZMA decompression support"
669 help
670 This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
671 a dictionary compression algorithm that provides a high compression
672 ratio and fairly fast decompression speed. See also
673 CONFIG_CMD_LZMADEC which provides a decode command.
674
Boris Brezillonaa57d0f2017-02-27 18:22:06 +0100675config LZO
Tom Rinic20bb732017-07-22 18:36:16 -0400676 bool "Enable LZO decompression support"
677 help
Oleksandr Suvorov30a4c312021-09-01 16:05:08 +0300678 This enables support for the LZO compression algorithm.
York Suna6945fe2017-08-15 11:14:43 -0700679
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100680config GZIP
Heiko Schocherb93cc602019-04-29 08:59:38 +0200681 bool "Enable gzip decompression support"
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100682 select ZLIB
683 default y
684 help
685 This enables support for GZIP compression algorithm.
686
Joao Marcos Costaae8abb12020-07-30 15:33:49 +0200687config ZLIB_UNCOMPRESS
688 bool "Enables zlib's uncompress() functionality"
689 help
690 This enables an extra zlib functionality: the uncompress() function,
691 which decompresses data from a buffer into another, knowing their
692 sizes. Unlike gunzip(), there is no header parsing.
693
Michael Walle3a6e3512020-05-22 14:07:36 +0200694config GZIP_COMPRESSED
695 bool
696 select ZLIB
697
Atish Patra1fa79622020-03-05 16:24:21 -0800698config BZIP2
699 bool "Enable bzip2 decompression support"
700 help
701 This enables support for BZIP2 compression algorithm.
702
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100703config ZLIB
704 bool
705 default y
706 help
707 This enables ZLIB compression lib.
708
Marek Behúne87e2002019-04-29 22:40:44 +0200709config ZSTD
710 bool "Enable Zstandard decompression support"
711 select XXHASH
712 help
713 This enables Zstandard decompression library.
714
Simon Glasse107bcd2018-11-06 15:21:30 -0700715config SPL_LZ4
716 bool "Enable LZ4 decompression support in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400717 depends on SPL
Simon Glasse107bcd2018-11-06 15:21:30 -0700718 help
Marcin Juszkiewicza360c2c2020-05-26 19:07:15 +0200719 This enables support for the LZ4 decompression algorithm in SPL. LZ4
Simon Glasse107bcd2018-11-06 15:21:30 -0700720 is a lossless data compression algorithm that is focused on
721 fast compression and decompression speed. It belongs to the LZ77
722 family of byte-oriented compression schemes.
723
developer6a4e1d32020-04-21 09:28:38 +0200724config SPL_LZMA
725 bool "Enable LZMA decompression support for SPL build"
Tom Rini0a83cc22022-06-10 23:03:09 -0400726 depends on SPL
developer6a4e1d32020-04-21 09:28:38 +0200727 help
Marcin Juszkiewicza360c2c2020-05-26 19:07:15 +0200728 This enables support for LZMA compression algorithm for SPL boot.
developer6a4e1d32020-04-21 09:28:38 +0200729
Simon Glasse7ca7da2022-04-30 00:56:53 -0600730config VPL_LZMA
731 bool "Enable LZMA decompression support for VPL build"
732 default y if LZMA
733 help
734 This enables support for LZMA compression algorithm for VPL boot.
735
Jean-Jacques Hiblotdbde2882017-09-15 12:57:30 +0200736config SPL_LZO
737 bool "Enable LZO decompression support in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400738 depends on SPL
Jean-Jacques Hiblotdbde2882017-09-15 12:57:30 +0200739 help
740 This enables support for LZO compression algorithm in the SPL.
741
York Suna6945fe2017-08-15 11:14:43 -0700742config SPL_GZIP
743 bool "Enable gzip decompression support for SPL build"
744 select SPL_ZLIB
745 help
Oleksandr Suvorov30a4c312021-09-01 16:05:08 +0300746 This enables support for the GZIP compression algorithm for SPL boot.
York Suna6945fe2017-08-15 11:14:43 -0700747
748config SPL_ZLIB
749 bool
750 help
751 This enables compression lib for SPL boot.
752
Marek Behúne87e2002019-04-29 22:40:44 +0200753config SPL_ZSTD
754 bool "Enable Zstandard decompression support in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400755 depends on SPL
Marek Behúne87e2002019-04-29 22:40:44 +0200756 select XXHASH
757 help
758 This enables Zstandard decompression library in the SPL.
759
Julius Wernerf41a3ca2015-10-06 20:03:53 -0700760endmenu
761
Przemyslaw Marczak37550132015-04-20 20:07:40 +0200762config ERRNO_STR
763 bool "Enable function for getting errno-related string message"
764 help
765 The function errno_str(int errno), returns a pointer to the errno
766 corresponding text message:
767 - if errno is null or positive number - a pointer to "Success" message
768 - if errno is negative - a pointer to errno related message
769
Alexey Brodkin2d2fa492018-06-05 17:17:57 +0300770config HEXDUMP
771 bool "Enable hexdump"
772 help
773 This enables functions for printing dumps of binary data.
774
Simon Glassa37fd4d2020-09-12 11:13:35 -0600775config SPL_HEXDUMP
776 bool "Enable hexdump in SPL"
Heinrich Schuchardt11df0722021-07-24 17:35:46 +0200777 depends on SPL && HEXDUMP
Simon Glassa37fd4d2020-09-12 11:13:35 -0600778 help
779 This enables functions for printing dumps of binary data in
780 SPL.
781
Sean Anderson3b4a6f52020-10-27 19:55:36 -0400782config GETOPT
783 bool "Enable getopt"
784 help
785 This enables functions for parsing command-line options.
786
Simon Glassa66c5412016-02-22 22:55:42 -0700787config OF_LIBFDT
788 bool "Enable the FDT library"
789 default y if OF_CONTROL
790 help
791 This enables the FDT library (libfdt). It provides functions for
792 accessing binary device tree images in memory, such as adding and
Anatolij Gustschinda707d42017-08-18 17:58:51 +0200793 removing nodes and properties, scanning through the tree and finding
Simon Glassa66c5412016-02-22 22:55:42 -0700794 particular compatible nodes. The library operates on a flattened
795 version of the device tree.
796
Simon Glassc48044d2019-10-27 09:47:40 -0600797config OF_LIBFDT_ASSUME_MASK
798 hex "Mask of conditions to assume for libfdt"
799 depends on OF_LIBFDT || FIT
800 default 0
801 help
802 Use this to change the assumptions made by libfdt about the
803 device tree it is working with. A value of 0 means that no assumptions
804 are made, and libfdt is able to deal with malicious data. A value of
805 0xff means all assumptions are made and any invalid data may cause
806 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
807
Maxime Ripard9e901ce2016-07-05 10:26:44 +0200808config OF_LIBFDT_OVERLAY
809 bool "Enable the FDT library overlay support"
Tom Rinic1e49ba2018-05-08 08:52:17 -0400810 depends on OF_LIBFDT
Praneeth Bajjuri7b71a012018-04-25 16:03:23 -0500811 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
Maxime Ripard9e901ce2016-07-05 10:26:44 +0200812 help
813 This enables the FDT library (libfdt) overlay support.
814
Tom Rinid2cd4312022-08-02 07:33:27 -0400815config SYS_FDT_PAD
816 hex "Maximum size of the FDT memory area passeed to the OS"
817 depends on OF_LIBFDT
818 default 0x13000 if FMAN_ENET || QE || U_QE
819 default 0x3000
820 help
821 During OS boot, we allocate a region of memory within the bootmap
822 for the FDT. This is the size that we will expand the FDT that we
823 are using will be extended to be, in bytes.
824
Simon Glass8b426922016-02-22 22:55:45 -0700825config SPL_OF_LIBFDT
826 bool "Enable the FDT library for SPL"
Simon Glasse7ca7da2022-04-30 00:56:53 -0600827 depends on SPL_LIBGENERIC_SUPPORT
Simon Glass8b426922016-02-22 22:55:45 -0700828 default y if SPL_OF_CONTROL
829 help
830 This enables the FDT library (libfdt). It provides functions for
831 accessing binary device tree images in memory, such as adding and
Anatolij Gustschinda707d42017-08-18 17:58:51 +0200832 removing nodes and properties, scanning through the tree and finding
Simon Glass8b426922016-02-22 22:55:45 -0700833 particular compatible nodes. The library operates on a flattened
834 version of the device tree.
835
Simon Glassc48044d2019-10-27 09:47:40 -0600836config SPL_OF_LIBFDT_ASSUME_MASK
837 hex "Mask of conditions to assume for libfdt"
Tom Rini0a83cc22022-06-10 23:03:09 -0400838 depends on SPL_OF_LIBFDT || (FIT && SPL)
Simon Glassc48044d2019-10-27 09:47:40 -0600839 default 0xff
840 help
841 Use this to change the assumptions made by libfdt in SPL about the
842 device tree it is working with. A value of 0 means that no assumptions
843 are made, and libfdt is able to deal with malicious data. A value of
844 0xff means all assumptions are made and any invalid data may cause
845 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
846
Simon Glassca8ec4b2018-10-01 12:22:21 -0600847config TPL_OF_LIBFDT
848 bool "Enable the FDT library for TPL"
Simon Glasse7ca7da2022-04-30 00:56:53 -0600849 depends on TPL_LIBGENERIC_SUPPORT
Simon Glassca8ec4b2018-10-01 12:22:21 -0600850 default y if TPL_OF_CONTROL
851 help
852 This enables the FDT library (libfdt). It provides functions for
853 accessing binary device tree images in memory, such as adding and
854 removing nodes and properties, scanning through the tree and finding
855 particular compatible nodes. The library operates on a flattened
856 version of the device tree.
857
Simon Glassc48044d2019-10-27 09:47:40 -0600858config TPL_OF_LIBFDT_ASSUME_MASK
859 hex "Mask of conditions to assume for libfdt"
Tom Rini36a4ca02022-06-08 08:24:39 -0400860 depends on TPL_OF_LIBFDT || (FIT && TPL)
Simon Glassc48044d2019-10-27 09:47:40 -0600861 default 0xff
862 help
863 Use this to change the assumptions made by libfdt in TPL about the
864 device tree it is working with. A value of 0 means that no assumptions
865 are made, and libfdt is able to deal with malicious data. A value of
866 0xff means all assumptions are made and any invalid data may cause
867 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
868
Simon Glasse7ca7da2022-04-30 00:56:53 -0600869config VPL_OF_LIBFDT
870 bool "Enable the FDT library for VPL"
Tom Rini7fb323b2022-06-08 08:24:40 -0400871 depends on VPL
Simon Glasse7ca7da2022-04-30 00:56:53 -0600872 default y if VPL_OF_CONTROL && !VPL_OF_PLATDATA
873 help
874 This enables the FDT library (libfdt). It provides functions for
875 accessing binary device tree images in memory, such as adding and
876 removing nodes and properties, scanning through the tree and finding
877 particular compatible nodes. The library operates on a flattened
878 version of the device tree.
879
880config VPL_OF_LIBFDT_ASSUME_MASK
881 hex "Mask of conditions to assume for libfdt"
Tom Rini7fb323b2022-06-08 08:24:40 -0400882 depends on VPL_OF_LIBFDT || (FIT && VPL)
Simon Glasse7ca7da2022-04-30 00:56:53 -0600883 default 0xff
884 help
885 Use this to change the assumptions made by libfdt in SPL about the
886 device tree it is working with. A value of 0 means that no assumptions
887 are made, and libfdt is able to deal with malicious data. A value of
888 0xff means all assumptions are made and any invalid data may cause
889 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
890
Heiko Schocherc9ab9102016-10-06 07:31:45 +0200891config FDT_FIXUP_PARTITIONS
892 bool "overwrite MTD partitions in DTS through defined in 'mtdparts'"
893 depends on OF_LIBFDT
Masahiro Yamada734b7552018-07-20 11:04:09 +0900894 depends on CMD_MTDPARTS
Heiko Schocherc9ab9102016-10-06 07:31:45 +0200895 help
896 Allow overwriting defined partitions in the device tree blob
897 using partition info defined in the 'mtdparts' environment
898 variable.
899
Alexander Graffb228082016-08-19 01:23:23 +0200900menu "System tables"
Alexander Graf66f96e12016-08-19 01:23:29 +0200901 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
Alexander Graffb228082016-08-19 01:23:23 +0200902
Simon Glass5d093f32020-11-04 09:57:25 -0700903config BLOBLIST_TABLES
904 bool "Put tables in a bloblist"
Simon Glass171c6462021-03-15 18:11:22 +1300905 depends on X86 && BLOBLIST
Simon Glass5d093f32020-11-04 09:57:25 -0700906 help
907 Normally tables are placed at address 0xf0000 and can be up to 64KB
908 long. With this option, tables are instead placed in the bloblist
909 with a pointer from 0xf0000. The size can then be larger and the
910 tables can be placed high in memory.
911
Alexander Graffb228082016-08-19 01:23:23 +0200912config GENERATE_SMBIOS_TABLE
913 bool "Generate an SMBIOS (System Management BIOS) table"
914 default y
Alexander Graf66f96e12016-08-19 01:23:29 +0200915 depends on X86 || EFI_LOADER
Alexander Graffb228082016-08-19 01:23:23 +0200916 help
917 The System Management BIOS (SMBIOS) specification addresses how
918 motherboard and system vendors present management information about
919 their products in a standard format by extending the BIOS interface
920 on Intel architecture systems.
921
922 Check http://www.dmtf.org/standards/smbios for details.
923
Simon Glass052a03e2020-11-05 06:32:11 -0700924 See also SMBIOS_SYSINFO which allows SMBIOS values to be provided in
925 the devicetree.
926
Tero Kristocfbe15c2021-06-11 11:45:02 +0300927config LIB_RATIONAL
928 bool "enable continued fraction calculation routines"
929
930config SPL_LIB_RATIONAL
931 bool "enable continued fraction calculation routines for SPL"
932 depends on SPL
933
Alexander Graffb228082016-08-19 01:23:23 +0200934endmenu
935
AKASHI Takahirof7025262019-11-13 09:44:53 +0900936config ASN1_COMPILER
937 bool
Philippe Reynes2aba9442022-03-28 22:56:54 +0200938 help
939 ASN.1 (Abstract Syntax Notation One) is a standard interface
940 description language for defining data structures that can be
941 serialized and deserialized in a cross-platform way. It is
942 broadly used in telecommunications and computer networking,
943 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
944 This option enables the support of the asn1 compiler.
AKASHI Takahirof7025262019-11-13 09:44:53 +0900945
AKASHI Takahiro3a888712019-11-13 09:44:55 +0900946config ASN1_DECODER
947 bool
948 help
Philippe Reynes2aba9442022-03-28 22:56:54 +0200949 ASN.1 (Abstract Syntax Notation One) is a standard interface
950 description language for defining data structures that can be
951 serialized and deserialized in a cross-platform way. It is
952 broadly used in telecommunications and computer networking,
953 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
954 This option enables the support of the asn1 decoder.
AKASHI Takahiro3a888712019-11-13 09:44:55 +0900955
Philippe Reynescf538b52022-03-28 22:56:56 +0200956config SPL_ASN1_DECODER
957 bool
958 help
959 ASN.1 (Abstract Syntax Notation One) is a standard interface
960 description language for defining data structures that can be
961 serialized and deserialized in a cross-platform way. It is
962 broadly used in telecommunications and computer networking,
963 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
964 This option enables the support of the asn1 decoder in the SPL.
965
AKASHI Takahiro54923642019-11-13 09:44:57 +0900966config OID_REGISTRY
967 bool
968 help
Philippe Reynese35c3a22022-03-28 22:56:55 +0200969 In computing, object identifiers or OIDs are an identifier mechanism
970 standardized by the International Telecommunication Union (ITU) and
971 ISO/IEC for naming any object, concept, or "thing" with a globally
972 unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
AKASHI Takahiro54923642019-11-13 09:44:57 +0900973 Enable fast lookup object identifier registry.
974
Philippe Reynescf538b52022-03-28 22:56:56 +0200975config SPL_OID_REGISTRY
976 bool
977 help
978 In computing, object identifiers or OIDs are an identifier mechanism
979 standardized by the International Telecommunication Union (ITU) and
980 ISO/IEC for naming any object, concept, or "thing" with a globally
981 unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
982 Enable fast lookup object identifier registry in the SPL.
983
Christian Gmeiner19859982020-11-03 15:34:51 +0100984config SMBIOS_PARSER
985 bool "SMBIOS parser"
986 help
987 A simple parser for SMBIOS data.
988
Simon Glass9539e692015-07-31 09:31:36 -0600989source lib/efi/Kconfig
Alexander Graf67ee7052016-03-04 01:10:07 +0100990source lib/efi_loader/Kconfig
Bryan O'Donoghue4b0de7c2018-03-13 16:50:27 +0000991source lib/optee/Kconfig
Simon Glass9539e692015-07-31 09:31:36 -0600992
Thierry Reding52c7f1f32019-03-21 19:10:04 +0100993config TEST_FDTDEC
994 bool "enable fdtdec test"
995 depends on OF_LIBFDT
996
AKASHI Takahiro51ba5222019-11-13 09:44:49 +0900997config LIB_DATE
998 bool
999
Keerthy76f361a2020-02-12 13:55:03 +05301000config LIB_ELF
1001 bool
1002 help
Patrick Delaunayfb67df82021-01-04 15:33:28 +01001003 Support basic elf loading/validating functions.
1004 This supports for 32 bit and 64 bit versions.
Keerthy76f361a2020-02-12 13:55:03 +05301005
Patrick Delaunayd62063d2021-03-10 10:16:25 +01001006config LMB
1007 bool "Enable the logical memory blocks library (lmb)"
Tom Rini53320122022-04-06 09:21:25 -04001008 default y if ARC || ARM || M68K || MICROBLAZE || MIPS || \
Patrick Delaunayd62063d2021-03-10 10:16:25 +01001009 NIOS2 || PPC || RISCV || SANDBOX || SH || X86 || XTENSA
1010 help
1011 Support the library logical memory blocks.
1012
Patrick Delaunay71cc9c52021-03-10 10:16:31 +01001013config LMB_USE_MAX_REGIONS
Heinrich Schuchardtc4bc9182021-11-14 09:38:53 +01001014 bool "Use a common number of memory and reserved regions in lmb lib"
Patrick Delaunay71cc9c52021-03-10 10:16:31 +01001015 depends on LMB
1016 default y
1017 help
1018 Define the number of supported memory regions in the library logical
1019 memory blocks.
1020 This feature allow to reduce the lmb library size by using compiler
1021 optimization when LMB_MEMORY_REGIONS == LMB_RESERVED_REGIONS.
Patrick Delaunaycd831af2021-03-10 10:16:28 +01001022
1023config LMB_MAX_REGIONS
1024 int "Number of memory and reserved regions in lmb lib"
Patrick Delaunay71cc9c52021-03-10 10:16:31 +01001025 depends on LMB && LMB_USE_MAX_REGIONS
Patrick Delaunaycd831af2021-03-10 10:16:28 +01001026 default 8
1027 help
1028 Define the number of supported regions, memory and reserved, in the
1029 library logical memory blocks.
Patrick Delaunay71cc9c52021-03-10 10:16:31 +01001030
1031config LMB_MEMORY_REGIONS
1032 int "Number of memory regions in lmb lib"
1033 depends on LMB && !LMB_USE_MAX_REGIONS
1034 default 8
1035 help
1036 Define the number of supported memory regions in the library logical
1037 memory blocks.
1038 The minimal value is CONFIG_NR_DRAM_BANKS.
1039
1040config LMB_RESERVED_REGIONS
1041 int "Number of reserved regions in lmb lib"
1042 depends on LMB && !LMB_USE_MAX_REGIONS
1043 default 8
1044 help
1045 Define the number of supported reserved regions in the library logical
1046 memory blocks.
1047
Simon Glass42d97e52022-12-21 16:08:28 -07001048config PHANDLE_CHECK_SEQ
1049 bool "Enable phandle check while getting sequence number"
1050 help
1051 When there are multiple device tree nodes with same name,
1052 enable this config option to distinguish them using
1053 phandles in fdtdec_get_alias_seq() function.
1054
Eugen Hristevdb6bbcb2022-01-04 18:20:19 +02001055endmenu
Sughosh Ganu1cadae22022-10-21 18:16:03 +05301056
1057menu "FWU Multi Bank Updates"
1058
1059source lib/fwu_updates/Kconfig
1060
1061endmenu