blob: 2059219a12070ca0d6d1b0b1b3b0831a7cf58471 [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
Marek Vasut88e5a202023-03-19 04:13:02 +010019 bool "System timer counts down rather than up"
Tom Rini1f173632022-11-16 13:10:38 -050020
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
AKASHI Takahirod1e31582023-10-26 14:31:31 -040077config RANDOM_UUID
78 bool "GPT Random UUID generation"
79 select LIB_UUID
80 help
81 Enable the generation of partitions with random UUIDs if none
82 are provided.
83
Simon Glass8090d8d2023-02-22 09:34:11 -070084config SPL_LIB_UUID
85 depends on SPL
86 bool
87
Kautuk Consula51bb742022-12-07 17:12:34 +053088config SEMIHOSTING
89 bool "Support semihosting"
Kautuk Consulc86cb4a2022-12-07 17:12:35 +053090 depends on ARM || RISCV
Kautuk Consula51bb742022-12-07 17:12:34 +053091 help
92 Semihosting is a method for a target to communicate with a host
93 debugger. It uses special instructions which the debugger will trap
94 on and interpret. This allows U-Boot to read/write files, print to
95 the console, and execute arbitrary commands on the host system.
96
97 Enabling this option will add support for reading and writing files
98 on the host system. If you don't have a debugger attached then trying
99 to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
100
101config SEMIHOSTING_FALLBACK
102 bool "Recover gracefully when semihosting fails"
Sean Andersonbf641f22023-10-27 16:40:15 -0400103 depends on SEMIHOSTING
Kautuk Consula51bb742022-12-07 17:12:34 +0530104 default y
105 help
106 Normally, if U-Boot makes a semihosting call and no debugger is
107 attached, then it will panic due to a synchronous abort
108 exception. This config adds an exception handler which will allow
109 U-Boot to recover. Say 'y' if unsure.
110
111config SPL_SEMIHOSTING
112 bool "Support semihosting in SPL"
Kautuk Consulc86cb4a2022-12-07 17:12:35 +0530113 depends on SPL && (ARM || RISCV)
Kautuk Consula51bb742022-12-07 17:12:34 +0530114 help
115 Semihosting is a method for a target to communicate with a host
116 debugger. It uses special instructions which the debugger will trap
117 on and interpret. This allows U-Boot to read/write files, print to
118 the console, and execute arbitrary commands on the host system.
119
120 Enabling this option will add support for reading and writing files
121 on the host system. If you don't have a debugger attached then trying
122 to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
123
124config SPL_SEMIHOSTING_FALLBACK
125 bool "Recover gracefully when semihosting fails in SPL"
Sean Andersonbf641f22023-10-27 16:40:15 -0400126 depends on SPL_SEMIHOSTING
Kautuk Consulc86cb4a2022-12-07 17:12:35 +0530127 select ARMV8_SPL_EXCEPTION_VECTORS if ARM64
Kautuk Consula51bb742022-12-07 17:12:34 +0530128 default y
129 help
130 Normally, if U-Boot makes a semihosting call and no debugger is
131 attached, then it will panic due to a synchronous abort
132 exception. This config adds an exception handler which will allow
133 U-Boot to recover. Say 'y' if unsure.
134
Alex Kiernan5b404282018-04-19 04:32:54 +0000135config PRINTF
136 bool
137 default y
138
139config SPL_PRINTF
140 bool
141 select SPL_SPRINTF
Simon Glass7611ac62019-09-25 08:56:27 -0600142 select SPL_STRTO if !SPL_USE_TINY_PRINTF
Alex Kiernan5b404282018-04-19 04:32:54 +0000143
144config TPL_PRINTF
145 bool
146 select TPL_SPRINTF
Simon Glass7611ac62019-09-25 08:56:27 -0600147 select TPL_STRTO if !TPL_USE_TINY_PRINTF
Alex Kiernan5b404282018-04-19 04:32:54 +0000148
Simon Glasse7ca7da2022-04-30 00:56:53 -0600149config VPL_PRINTF
150 bool
151 select VPL_SPRINTF
152 select VPL_STRTO if !VPL_USE_TINY_PRINTF
153
Alex Kiernan5b404282018-04-19 04:32:54 +0000154config SPRINTF
155 bool
156 default y
157
158config SPL_SPRINTF
159 bool
160
161config TPL_SPRINTF
162 bool
163
Simon Glasse7ca7da2022-04-30 00:56:53 -0600164config VPL_SPRINTF
165 bool
166
Andrii Anisov6e29ac42020-08-06 12:42:52 +0300167config SSCANF
168 bool
Andrii Anisov6e29ac42020-08-06 12:42:52 +0300169
Alex Kiernan5b404282018-04-19 04:32:54 +0000170config STRTO
171 bool
172 default y
173
174config SPL_STRTO
175 bool
176
177config TPL_STRTO
178 bool
179
Simon Glasse7ca7da2022-04-30 00:56:53 -0600180config VPL_STRTO
181 bool
182
Alex Kiernanc568bcb2018-05-29 15:30:52 +0000183config IMAGE_SPARSE
184 bool
185
186config IMAGE_SPARSE_FILLBUF_SIZE
187 hex "Android sparse image CHUNK_TYPE_FILL buffer size"
188 default 0x80000
189 depends on IMAGE_SPARSE
190 help
191 Set the size of the fill buffer used when processing CHUNK_TYPE_FILL
192 chunks.
193
Masahiro Yamada9520b712014-10-24 01:30:43 +0900194config USE_PRIVATE_LIBGCC
195 bool "Use private libgcc"
196 depends on HAVE_PRIVATE_LIBGCC
Marek Vasut4e0126e2016-05-26 18:01:47 +0200197 default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
Masahiro Yamada9520b712014-10-24 01:30:43 +0900198 help
199 This option allows you to use the built-in libgcc implementation
Masahiro Yamada1c6a5e42016-03-30 20:17:42 +0900200 of U-Boot instead of the one provided by the compiler.
Masahiro Yamada9520b712014-10-24 01:30:43 +0900201 If unsure, say N.
202
Masahiro Yamadae301fa02014-10-24 01:30:40 +0900203config SYS_HZ
204 int
205 default 1000
206 help
207 The frequency of the timer returned by get_timer().
208 get_timer() must operate in milliseconds and this option must be
209 set to 1000.
210
Simon Glass7611ac62019-09-25 08:56:27 -0600211config SPL_USE_TINY_PRINTF
Thomas Hebb0c12fb52019-11-10 08:23:53 -0800212 bool "Enable tiny printf() version in SPL"
Simon Glass7611ac62019-09-25 08:56:27 -0600213 depends on SPL
Tom Rinid0502b72019-06-08 12:46:18 -0400214 default y
Stefan Roese363ab7b2015-11-23 07:00:22 +0100215 help
216 This option enables a tiny, stripped down printf version.
217 This should only be used in space limited environments,
218 like SPL versions with hard memory limits. This version
219 reduces the code size by about 2.5KiB on armv7.
220
221 The supported format specifiers are %c, %s, %u/%d and %x.
222
Simon Glass7611ac62019-09-25 08:56:27 -0600223config TPL_USE_TINY_PRINTF
Thomas Hebb0c12fb52019-11-10 08:23:53 -0800224 bool "Enable tiny printf() version in TPL"
Simon Glass7611ac62019-09-25 08:56:27 -0600225 depends on TPL
226 default y if SPL_USE_TINY_PRINTF
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
Simon Glasse7ca7da2022-04-30 00:56:53 -0600235config VPL_USE_TINY_PRINTF
236 bool "Enable tiny printf() version for VPL"
237 depends on VPL
238 help
239 This option enables a tiny, stripped down printf version.
240 This should only be used in space limited environments,
241 like SPL versions with hard memory limits. This version
242 reduces the code size by about 2.5KiB on armv7.
243
244 The supported format specifiers are %c, %s, %u/%d and %x.
245
Masahiro Yamadaacede7a2017-12-04 12:37:00 +0900246config PANIC_HANG
247 bool "Do not reset the system on fatal error"
248 help
249 Define this option to stop the system in case of a fatal error,
250 so that you have to reset it manually. This is probably NOT a good
251 idea for an embedded system where you want the system to reboot
252 automatically as fast as possible, but it may be useful during
253 development since you can try to debug the conditions that lead to
254 the situation.
255
Joe Hershberger937d3e82015-04-21 17:02:42 -0500256config REGEX
257 bool "Enable regular expression support"
Joe Hershberger8ab8b722015-06-22 17:57:36 -0500258 default y if NET
Joe Hershberger937d3e82015-04-21 17:02:42 -0500259 help
260 If this variable is defined, U-Boot is linked against the
261 SLRE (Super Light Regular Expression) library, which adds
262 regex support to some commands, for example "env grep" and
263 "setexpr".
264
Adam Ford38003a62018-02-06 10:18:18 -0600265choice
266 prompt "Pseudo-random library support type"
Heinrich Schuchardtb2e67a22020-01-19 19:28:12 +0100267 depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID || \
Heinrich Schuchardtba9c44e2020-11-20 12:55:22 +0100268 RNG_SANDBOX || UT_LIB && AES || FAT_WRITE
Adam Ford38003a62018-02-06 10:18:18 -0600269 default LIB_RAND
Masahiro Yamada2743c072015-06-11 19:16:43 +0900270 help
Adam Ford38003a62018-02-06 10:18:18 -0600271 Select the library to provide pseudo-random number generator
272 functions. LIB_HW_RAND supports certain hardware engines that
273 provide this functionality. If in doubt, select LIB_RAND.
274
275config LIB_RAND
276 bool "Pseudo-random library support"
277
278config LIB_HW_RAND
Marcin Juszkiewicza360c2c2020-05-26 19:07:15 +0200279 bool "HW Engine for random library support"
Adam Ford38003a62018-02-06 10:18:18 -0600280
281endchoice
Michal Simek2c1b1db2015-05-25 11:37:22 +0200282
Simon Glassa6cee932021-12-01 09:02:36 -0700283config SUPPORT_ACPI
284 bool
285 help
286 Enable this if your arch or board can support generating ACPI
287 (Advanced Configuration and Power Interface) tables. In this case
288 U-Boot can generate these tables and pass them to the Operating
289 System.
290
Simon Glasse264be42023-05-04 16:54:57 -0600291config ACPI
292 bool "Enable support for ACPI libraries"
293 depends on SUPPORT_ACPI
294 help
295 Provides library functions for dealing with ACPI tables. This does
296 not necessarily include generation of tables
297 (see GENERATE_ACPI_TABLE), but allows for tables to be located.
298
Simon Glass1a2fcc22023-09-19 21:00:06 -0600299config SPL_ACPI
300 bool "Enable support for ACPI libraries in SPL"
301 depends on SPL && SUPPORT_ACPI
302 help
303 Provides library functions for dealing with ACPI tables in SPL. This
304 does not necessarily include generation of tables
305 (see GENERATE_ACPI_TABLE), but allows for tables to be located.
306
Simon Glassa6cee932021-12-01 09:02:36 -0700307config GENERATE_ACPI_TABLE
308 bool "Generate an ACPI (Advanced Configuration and Power Interface) table"
Simon Glasse264be42023-05-04 16:54:57 -0600309 depends on ACPI
Simon Glassa6cee932021-12-01 09:02:36 -0700310 select QFW if QEMU
311 help
312 The Advanced Configuration and Power Interface (ACPI) specification
313 provides an open standard for device configuration and management
314 by the operating system. It defines platform-independent interfaces
315 for configuration and power management monitoring.
316
Simon Glasse2f94ae2017-04-02 09:50:28 -0600317config SPL_TINY_MEMSET
318 bool "Use a very small memset() in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400319 depends on SPL
Simon Glasse2f94ae2017-04-02 09:50:28 -0600320 help
321 The faster memset() is the arch-specific one (if available) enabled
322 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
323 better performance by writing a word at a time. But in very
Chris Packham1c3b7ba2019-01-13 22:13:28 +1300324 size-constrained environments even this may be too big. Enable this
Simon Glasse2f94ae2017-04-02 09:50:28 -0600325 option to reduce code size slightly at the cost of some speed.
326
Philipp Tomsichfefc4ec2017-08-03 22:52:04 +0200327config TPL_TINY_MEMSET
328 bool "Use a very small memset() in TPL"
Tom Rini36a4ca02022-06-08 08:24:39 -0400329 depends on TPL
Philipp Tomsichfefc4ec2017-08-03 22:52:04 +0200330 help
331 The faster memset() is the arch-specific one (if available) enabled
332 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
333 better performance by writing a word at a time. But in very
Chris Packham1c3b7ba2019-01-13 22:13:28 +1300334 size-constrained environments even this may be too big. Enable this
Philipp Tomsichfefc4ec2017-08-03 22:52:04 +0200335 option to reduce code size slightly at the cost of some speed.
336
Boris Brezillon627dc182017-02-27 18:22:05 +0100337config RBTREE
338 bool
339
Nandor Hand5ea84a2017-11-08 15:35:14 +0000340config BITREVERSE
341 bool "Bit reverse library from Linux"
342
Simon Glassbfce7fc2019-04-08 13:20:51 -0600343config TRACE
344 bool "Support for tracing of function calls and timing"
345 imply CMD_TRACE
Simon Glass6b5424a2022-12-21 16:08:26 -0700346 imply TIMER_EARLY
Simon Glassbfce7fc2019-04-08 13:20:51 -0600347 help
348 Enables function tracing within U-Boot. This allows recording of call
349 traces including timing information. The command can write data to
350 memory for exporting for analysis (e.g. using bootchart).
Vincent Stehlé28c23622024-04-11 18:44:02 +0200351 See doc/develop/trace.rst for full details.
Simon Glassbfce7fc2019-04-08 13:20:51 -0600352
Simon Glass445078e2019-04-08 13:20:52 -0600353config TRACE_BUFFER_SIZE
354 hex "Size of trace buffer in U-Boot"
355 depends on TRACE
356 default 0x01000000
357 help
358 Sets the size of the trace buffer in U-Boot. This is allocated from
359 memory during relocation. If this buffer is too small, the trace
360 history will be truncated, with later records omitted.
361
362 If early trace is enabled (i.e. before relocation), this buffer must
363 be large enough to include all the data from the early trace buffer as
364 well, since this is copied over to the main buffer during relocation.
365
366 A trace record is emitted for each function call and each record is
367 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
368 the size is too small then 'trace stats' will show a message saying
369 how many records were dropped due to buffer overflow.
370
Heinrich Schuchardtc1a73792019-06-02 13:30:09 +0200371config TRACE_CALL_DEPTH_LIMIT
372 int "Trace call depth limit"
373 depends on TRACE
374 default 15
375 help
376 Sets the maximum call depth up to which function calls are recorded.
377
Simon Glass445078e2019-04-08 13:20:52 -0600378config TRACE_EARLY
379 bool "Enable tracing before relocation"
380 depends on TRACE
381 help
382 Sometimes it is helpful to trace execution of U-Boot before
383 relocation. This is possible by using a arch-specific, fixed buffer
384 position in memory. Enable this option to start tracing as early as
385 possible after U-Boot starts.
386
387config TRACE_EARLY_SIZE
388 hex "Size of early trace buffer in U-Boot"
389 depends on TRACE_EARLY
390 default 0x00100000
391 help
392 Sets the size of the early trace buffer in bytes. This is used to hold
393 tracing information before relocation.
394
Heinrich Schuchardtc1a73792019-06-02 13:30:09 +0200395config TRACE_EARLY_CALL_DEPTH_LIMIT
396 int "Early trace call depth limit"
397 depends on TRACE_EARLY
Simon Glass971574d2023-01-15 14:15:44 -0700398 default 15
Heinrich Schuchardtc1a73792019-06-02 13:30:09 +0200399 help
400 Sets the maximum call depth up to which function calls are recorded
401 during early tracing.
402
Simon Glass445078e2019-04-08 13:20:52 -0600403config TRACE_EARLY_ADDR
404 hex "Address of early trace buffer in U-Boot"
405 depends on TRACE_EARLY
406 default 0x00100000
407 help
408 Sets the address of the early trace buffer in U-Boot. This memory
409 must be accessible before relocation.
410
411 A trace record is emitted for each function call and each record is
412 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
413 the size is too small then the message which says the amount of early
414 data being coped will the the same as the
415
Loic Poulain12797e62021-11-25 18:16:14 +0100416config CIRCBUF
417 bool "Enable circular buffer support"
418
Michal Simekdd5000ef2024-04-16 08:55:16 +0200419source "lib/dhry/Kconfig"
Simon Glass99dbe4b2015-06-23 15:38:23 -0600420
Simon Glass528fdd12017-04-26 22:27:49 -0600421menu "Security support"
422
423config AES
424 bool "Support the AES algorithm"
425 help
426 This provides a means to encrypt and decrypt data using the AES
427 (Advanced Encryption Standard). This algorithm uses a symetric key
428 and is widely used as a streaming cipher. Different key lengths are
429 supported by the algorithm but only a 128-bit key is supported at
430 present.
431
Michal Simekdd5000ef2024-04-16 08:55:16 +0200432source "lib/ecdsa/Kconfig"
433source "lib/rsa/Kconfig"
434source "lib/crypto/Kconfig"
435source "lib/crypt/Kconfig"
Ruchika Gupta2c3822e2015-01-23 16:01:51 +0530436
Simon Glass350497c2015-08-22 18:31:19 -0600437config TPM
438 bool "Trusted Platform Module (TPM) Support"
Simon Glasscf294b02015-10-03 06:39:36 -0600439 depends on DM
Sughosh Ganu9737fab2022-07-22 21:32:04 +0530440 imply DM_RNG
Eddie James8ed7bb32023-10-24 10:43:49 -0500441 select SHA1
Simon Glass350497c2015-08-22 18:31:19 -0600442 help
443 This enables support for TPMs which can be used to provide security
444 features for your board. The TPM can be connected via LPC or I2C
445 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
446 command to interactive the TPM. Driver model support is provided
447 for the low-level TPM interface, but only one TPM is supported at
448 a time by the TPM library.
Ilias Apalodimas1e665f92024-06-23 14:48:18 +0300449 For size reasons only SHA1 is selected which is supported on TPM1.2.
450 If you want a fully functional TPM enable all hashing algorithms.
451 If you enabled measured boot all hashing algorithms are selected.
Simon Glass350497c2015-08-22 18:31:19 -0600452
Simon Glass93a45b12018-10-01 12:22:19 -0600453config SPL_TPM
454 bool "Trusted Platform Module (TPM) Support in SPL"
455 depends on SPL_DM
Simon Glass2b95b492023-01-07 14:57:20 -0700456 imply SPL_CRC8
Simon Glass93a45b12018-10-01 12:22:19 -0600457 help
458 This enables support for TPMs which can be used to provide security
459 features for your board. The TPM can be connected via LPC or I2C
460 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
461 command to interactive the TPM. Driver model support is provided
462 for the low-level TPM interface, but only one TPM is supported at
463 a time by the TPM library.
464
465config TPL_TPM
466 bool "Trusted Platform Module (TPM) Support in TPL"
467 depends on TPL_DM
468 help
469 This enables support for TPMs which can be used to provide security
470 features for your board. The TPM can be connected via LPC or I2C
471 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
472 command to interactive the TPM. Driver model support is provided
473 for the low-level TPM interface, but only one TPM is supported at
474 a time by the TPM library.
475
Simon Glasse7ca7da2022-04-30 00:56:53 -0600476config VPL_TPM
477 bool "Trusted Platform Module (TPM) Support in VPL"
478 depends on VPL_DM
479 help
480 This enables support for TPMs which can be used to provide security
481 features for your board. The TPM can be connected via LPC or I2C
482 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
483 command to interactive the TPM. Driver model support is provided
484 for the low-level TPM interface, but only one TPM is supported at
485 a time by the TPM library.
486
Simon Glass528fdd12017-04-26 22:27:49 -0600487endmenu
488
Igor Opaniuk525d1d82018-06-03 21:56:37 +0300489menu "Android Verified Boot"
490
491config LIBAVB
492 bool "Android Verified Boot 2.0 support"
493 depends on ANDROID_BOOT_IMAGE
Igor Opaniuk525d1d82018-06-03 21:56:37 +0300494 help
495 This enables support of Android Verified Boot 2.0 which can be used
496 to assure the end user of the integrity of the software running on a
497 device. Introduces such features as boot chain of trust, rollback
498 protection etc.
499
500endmenu
501
gaurav ranaef201592015-02-20 12:51:46 +0530502menu "Hashing Support"
503
Qu Wenruob98e8a22021-12-27 14:12:07 +0800504config BLAKE2
505 bool "Enable BLAKE2 support"
506 help
507 This option enables support of hashing using BLAKE2B algorithm.
508 The hash is calculated in software.
509 The BLAKE2 algorithm produces a hash value (digest) between 1 and
510 64 bytes.
511
gaurav ranaef201592015-02-20 12:51:46 +0530512config SHA1
513 bool "Enable SHA1 support"
514 help
515 This option enables support of hashing using SHA1 algorithm.
516 The hash is calculated in software.
517 The SHA1 algorithm produces a 160-bit (20-byte) hash value
518 (digest).
519
520config SHA256
521 bool "Enable SHA256 support"
522 help
523 This option enables support of hashing using SHA256 algorithm.
524 The hash is calculated in software.
525 The SHA256 algorithm produces a 256-bit (32-byte) hash value
526 (digest).
527
Reuben Dowle1908fd92020-04-16 17:36:52 +1200528config SHA512
529 bool "Enable SHA512 support"
Manorit Chawdhrya58132a2023-07-14 11:22:39 +0530530 default y if TI_SECURE_DEVICE && FIT_SIGNATURE
Reuben Dowle1908fd92020-04-16 17:36:52 +1200531 help
532 This option enables support of hashing using SHA512 algorithm.
533 The hash is calculated in software.
534 The SHA512 algorithm produces a 512-bit (64-byte) hash value
535 (digest).
536
537config SHA384
538 bool "Enable SHA384 support"
Alexandru Gagniuc5df5d692021-09-02 19:54:18 -0500539 select SHA512
Reuben Dowle1908fd92020-04-16 17:36:52 +1200540 help
541 This option enables support of hashing using SHA384 algorithm.
Alexandru Gagniuc5df5d692021-09-02 19:54:18 -0500542 The hash is calculated in software. This is also selects SHA512,
543 because these implementations share the bulk of the code..
Reuben Dowle1908fd92020-04-16 17:36:52 +1200544 The SHA384 algorithm produces a 384-bit (48-byte) hash value
545 (digest).
546
gaurav ranaef201592015-02-20 12:51:46 +0530547config SHA_HW_ACCEL
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200548 bool "Enable hardware acceleration for SHA hash functions"
gaurav ranaef201592015-02-20 12:51:46 +0530549 help
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200550 This option enables hardware acceleration for the SHA1 and SHA256
551 hashing algorithms. This affects the 'hash' command and also the
552 hash_lookup_algo() function.
553
Simon Glassf7b37c22021-09-25 19:43:17 -0600554if SPL
555
Oleksandr Suvorov15a23ca2023-08-03 19:05:40 +0300556config SPL_CRC32
557 bool "Enable CRC32 support in SPL"
558 default y if SPL_LEGACY_IMAGE_SUPPORT || SPL_EFI_PARTITION
559 default y if SPL_ENV_SUPPORT || TPL_BLOBLIST
560 help
561 This option enables support of hashing using CRC32 algorithm.
562 The CRC32 algorithm produces 32-bit checksum value. For FIT
563 images, this is the least secure type of checksum, suitable for
564 detected accidental image corruption. For secure applications you
565 should consider SHA256 or SHA384.
566
Simon Glassf7b37c22021-09-25 19:43:17 -0600567config SPL_SHA1
568 bool "Enable SHA1 support in SPL"
569 default y if SHA1
570 help
571 This option enables support of hashing using SHA1 algorithm.
572 The hash is calculated in software.
573 The SHA1 algorithm produces a 160-bit (20-byte) hash value
574 (digest).
575
576config SPL_SHA256
577 bool "Enable SHA256 support in SPL"
578 default y if SHA256
579 help
580 This option enables support of hashing using SHA256 algorithm.
581 The hash is calculated in software.
582 The SHA256 algorithm produces a 256-bit (32-byte) hash value
583 (digest).
584
585config SPL_SHA512
586 bool "Enable SHA512 support in SPL"
587 default y if SHA512
588 help
589 This option enables support of hashing using SHA512 algorithm.
590 The hash is calculated in software.
591 The SHA512 algorithm produces a 512-bit (64-byte) hash value
592 (digest).
593
594config SPL_SHA384
595 bool "Enable SHA384 support in SPL"
596 default y if SHA384
597 select SPL_SHA512
598 help
599 This option enables support of hashing using SHA384 algorithm.
600 The hash is calculated in software. This is also selects SHA512,
601 because these implementations share the bulk of the code..
602 The SHA384 algorithm produces a 384-bit (48-byte) hash value
603 (digest).
604
Simon Glass383dd572021-09-25 19:43:18 -0600605config SPL_SHA_HW_ACCEL
606 bool "Enable hardware acceleration for SHA hash functions"
607 default y if SHA_HW_ACCEL
608 help
609 This option enables hardware acceleration for the SHA1 and SHA256
610 hashing algorithms. This affects the 'hash' command and also the
611 hash_lookup_algo() function.
612
613config SPL_SHA_PROG_HW_ACCEL
614 bool "Enable Progressive hashing support using hardware in SPL"
615 depends on SHA_PROG_HW_ACCEL
616 default y
617 help
618 This option enables hardware-acceleration for SHA progressive
619 hashing.
620 Data can be streamed in a block at a time and the hashing is
621 performed in hardware.
622
Simon Glassf7b37c22021-09-25 19:43:17 -0600623endif
624
Simon Glass540883b2023-02-22 09:34:01 -0700625config VPL_SHA1
626 bool "Enable SHA1 support in VPL"
627 depends on VPL
628 default y if SHA1
629 help
630 This option enables support of hashing using SHA1 algorithm.
631 The hash is calculated in software.
632 The SHA1 algorithm produces a 160-bit (20-byte) hash value
633 (digest).
634
635config VPL_SHA256
636 bool "Enable SHA256 support in VPL"
637 depends on VPL
638 default y if SHA256
639 help
640 This option enables support of hashing using SHA256 algorithm.
641 The hash is calculated in software.
642 The SHA256 algorithm produces a 256-bit (32-byte) hash value
643 (digest).
644
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200645if SHA_HW_ACCEL
646
647config SHA512_HW_ACCEL
648 bool "Enable hardware acceleration for SHA512"
Alexandru Gagniuc5df5d692021-09-02 19:54:18 -0500649 depends on SHA512
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200650 help
651 This option enables hardware acceleration for the SHA384 and SHA512
652 hashing algorithms. This affects the 'hash' command and also the
653 hash_lookup_algo() function.
gaurav ranaef201592015-02-20 12:51:46 +0530654
655config SHA_PROG_HW_ACCEL
656 bool "Enable Progressive hashing support using hardware"
gaurav ranaef201592015-02-20 12:51:46 +0530657 help
Joel Stanley92efc1f2021-02-17 13:50:42 +1030658 This option enables hardware-acceleration for SHA progressive
659 hashing.
660 Data can be streamed in a block at a time and the hashing is
661 performed in hardware.
Andre Przywaraf0fa1132017-03-15 01:19:05 +0000662
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200663endif
664
Andre Przywaraf0fa1132017-03-15 01:19:05 +0000665config MD5
Simon Glassd33d0db2020-05-06 08:03:56 -0600666 bool "Support MD5 algorithm"
667 help
668 This option enables MD5 support. MD5 is an algorithm designed
669 in 1991 that produces a 16-byte digest (or checksum) from its input
670 data. It has a number of vulnerabilities which preclude its use in
671 security applications, but it can be useful for providing a quick
672 checksum of a block of data.
673
674config SPL_MD5
675 bool "Support MD5 algorithm in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400676 depends on SPL
Simon Glassd33d0db2020-05-06 08:03:56 -0600677 help
678 This option enables MD5 support in SPL. MD5 is an algorithm designed
679 in 1991 that produces a 16-byte digest (or checksum) from its input
680 data. It has a number of vulnerabilities which preclude its use in
681 security applications, but it can be useful for providing a quick
682 checksum of a block of data.
Andre Przywaraf0fa1132017-03-15 01:19:05 +0000683
Simon Glass2b95b492023-01-07 14:57:20 -0700684config CRC8
685 def_bool y
686 help
687 Enables CRC8 support in U-Boot. This is normally required. CRC8 is
688 a simple and fast checksumming algorithm which does a bytewise
689 checksum with feedback to produce an 8-bit result. The code is small
690 and it does not require a lookup table (unlike CRC32).
691
692config SPL_CRC8
693 bool "Support CRC8 in SPL"
694 depends on SPL
695 help
696 Enables CRC8 support in SPL. This is not normally required. CRC8 is
697 a simple and fast checksumming algorithm which does a bytewise
698 checksum with feedback to produce an 8-bit result. The code is small
699 and it does not require a lookup table (unlike CRC32).
700
Sean Anderson01349c12023-10-14 16:47:49 -0400701config SPL_CRC16
702 bool "Support CRC16 in SPL"
703 depends on SPL
704 help
705 Enables CRC16 support in SPL. This is not normally required.
706
Simon Glass577226c2021-09-25 19:43:24 -0600707config CRC32
708 def_bool y
709 help
710 Enables CRC32 support in U-Boot. This is normally required.
711
Marek Behúncdccc032017-09-03 17:00:23 +0200712config CRC32C
713 bool
714
Marek Behúnb139a7f2019-04-29 22:40:43 +0200715config XXHASH
716 bool
717
gaurav ranaef201592015-02-20 12:51:46 +0530718endmenu
719
Julius Wernerf41a3ca2015-10-06 20:03:53 -0700720menu "Compression Support"
721
722config LZ4
723 bool "Enable LZ4 decompression support"
724 help
725 If this option is set, support for LZ4 compressed images
726 is included. The LZ4 algorithm can run in-place as long as the
727 compressed image is loaded to the end of the output buffer, and
728 trades lower compression ratios for much faster decompression.
Patrick Delaunaycd831af2021-03-10 10:16:28 +0100729
Julius Wernerf41a3ca2015-10-06 20:03:53 -0700730 NOTE: This implements the release version of the LZ4 frame
731 format as generated by default by the 'lz4' command line tool.
732 This is not the same as the outdated, less efficient legacy
733 frame format currently (2015) implemented in the Linux kernel
734 (generated by 'lz4 -l'). The two formats are incompatible.
735
Simon Glass264aa5f2017-05-17 03:25:42 -0600736config LZMA
737 bool "Enable LZMA decompression support"
738 help
739 This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
740 a dictionary compression algorithm that provides a high compression
741 ratio and fairly fast decompression speed. See also
742 CONFIG_CMD_LZMADEC which provides a decode command.
743
Boris Brezillonaa57d0f2017-02-27 18:22:06 +0100744config LZO
Tom Rinic20bb732017-07-22 18:36:16 -0400745 bool "Enable LZO decompression support"
746 help
Oleksandr Suvorov30a4c312021-09-01 16:05:08 +0300747 This enables support for the LZO compression algorithm.
York Suna6945fe2017-08-15 11:14:43 -0700748
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100749config GZIP
Heiko Schocherb93cc602019-04-29 08:59:38 +0200750 bool "Enable gzip decompression support"
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100751 select ZLIB
752 default y
753 help
754 This enables support for GZIP compression algorithm.
755
Joao Marcos Costaae8abb12020-07-30 15:33:49 +0200756config ZLIB_UNCOMPRESS
757 bool "Enables zlib's uncompress() functionality"
758 help
759 This enables an extra zlib functionality: the uncompress() function,
760 which decompresses data from a buffer into another, knowing their
761 sizes. Unlike gunzip(), there is no header parsing.
762
Michael Walle3a6e3512020-05-22 14:07:36 +0200763config GZIP_COMPRESSED
764 bool
765 select ZLIB
766
Atish Patra1fa79622020-03-05 16:24:21 -0800767config BZIP2
768 bool "Enable bzip2 decompression support"
769 help
770 This enables support for BZIP2 compression algorithm.
771
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100772config ZLIB
773 bool
774 default y
775 help
776 This enables ZLIB compression lib.
777
Marek Behúne87e2002019-04-29 22:40:44 +0200778config ZSTD
779 bool "Enable Zstandard decompression support"
780 select XXHASH
781 help
782 This enables Zstandard decompression library.
783
Brandon Maierdbe88da2023-01-12 10:27:45 -0600784if ZSTD
785
786config ZSTD_LIB_MINIFY
787 bool "Minify Zstandard code"
788 default y
789 help
790 This disables various optional components and changes the
791 compilation flags to prioritize space-saving.
792
793 For detailed info, see zstd's lib/README.md
794
795 https://github.com/facebook/zstd/blob/dev/lib/README.md
796
797endif
798
Simon Glass1af8b152023-02-22 09:33:54 -0700799config SPL_BZIP2
800 bool "Enable bzip2 decompression support for SPL build"
801 depends on SPL
802 help
803 This enables support for bzip2 compression algorithm for SPL boot.
804
Simon Glasse107bcd2018-11-06 15:21:30 -0700805config SPL_LZ4
806 bool "Enable LZ4 decompression support in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400807 depends on SPL
Simon Glasse107bcd2018-11-06 15:21:30 -0700808 help
Marcin Juszkiewicza360c2c2020-05-26 19:07:15 +0200809 This enables support for the LZ4 decompression algorithm in SPL. LZ4
Simon Glasse107bcd2018-11-06 15:21:30 -0700810 is a lossless data compression algorithm that is focused on
811 fast compression and decompression speed. It belongs to the LZ77
812 family of byte-oriented compression schemes.
813
developer6a4e1d32020-04-21 09:28:38 +0200814config SPL_LZMA
815 bool "Enable LZMA decompression support for SPL build"
Tom Rini0a83cc22022-06-10 23:03:09 -0400816 depends on SPL
developer6a4e1d32020-04-21 09:28:38 +0200817 help
Marcin Juszkiewicza360c2c2020-05-26 19:07:15 +0200818 This enables support for LZMA compression algorithm for SPL boot.
developer6a4e1d32020-04-21 09:28:38 +0200819
Simon Glasse7ca7da2022-04-30 00:56:53 -0600820config VPL_LZMA
821 bool "Enable LZMA decompression support for VPL build"
822 default y if LZMA
823 help
824 This enables support for LZMA compression algorithm for VPL boot.
825
Jean-Jacques Hiblotdbde2882017-09-15 12:57:30 +0200826config SPL_LZO
827 bool "Enable LZO decompression support in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400828 depends on SPL
Jean-Jacques Hiblotdbde2882017-09-15 12:57:30 +0200829 help
830 This enables support for LZO compression algorithm in the SPL.
831
York Suna6945fe2017-08-15 11:14:43 -0700832config SPL_GZIP
833 bool "Enable gzip decompression support for SPL build"
834 select SPL_ZLIB
835 help
Oleksandr Suvorov30a4c312021-09-01 16:05:08 +0300836 This enables support for the GZIP compression algorithm for SPL boot.
York Suna6945fe2017-08-15 11:14:43 -0700837
838config SPL_ZLIB
839 bool
840 help
841 This enables compression lib for SPL boot.
842
Marek Behúne87e2002019-04-29 22:40:44 +0200843config SPL_ZSTD
844 bool "Enable Zstandard decompression support in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400845 depends on SPL
Marek Behúne87e2002019-04-29 22:40:44 +0200846 select XXHASH
847 help
848 This enables Zstandard decompression library in the SPL.
849
Julius Wernerf41a3ca2015-10-06 20:03:53 -0700850endmenu
851
Przemyslaw Marczak37550132015-04-20 20:07:40 +0200852config ERRNO_STR
853 bool "Enable function for getting errno-related string message"
854 help
855 The function errno_str(int errno), returns a pointer to the errno
856 corresponding text message:
857 - if errno is null or positive number - a pointer to "Success" message
858 - if errno is negative - a pointer to errno related message
859
Alexey Brodkin2d2fa492018-06-05 17:17:57 +0300860config HEXDUMP
861 bool "Enable hexdump"
862 help
863 This enables functions for printing dumps of binary data.
864
Simon Glassa37fd4d2020-09-12 11:13:35 -0600865config SPL_HEXDUMP
866 bool "Enable hexdump in SPL"
Heinrich Schuchardt11df0722021-07-24 17:35:46 +0200867 depends on SPL && HEXDUMP
Simon Glassa37fd4d2020-09-12 11:13:35 -0600868 help
869 This enables functions for printing dumps of binary data in
870 SPL.
871
Sean Anderson3b4a6f52020-10-27 19:55:36 -0400872config GETOPT
873 bool "Enable getopt"
874 help
875 This enables functions for parsing command-line options.
876
Simon Glassa66c5412016-02-22 22:55:42 -0700877config OF_LIBFDT
878 bool "Enable the FDT library"
879 default y if OF_CONTROL
880 help
881 This enables the FDT library (libfdt). It provides functions for
882 accessing binary device tree images in memory, such as adding and
Anatolij Gustschinda707d42017-08-18 17:58:51 +0200883 removing nodes and properties, scanning through the tree and finding
Simon Glassa66c5412016-02-22 22:55:42 -0700884 particular compatible nodes. The library operates on a flattened
885 version of the device tree.
886
Simon Glassc48044d2019-10-27 09:47:40 -0600887config OF_LIBFDT_ASSUME_MASK
888 hex "Mask of conditions to assume for libfdt"
889 depends on OF_LIBFDT || FIT
Tom Rinif18679c2023-08-02 11:09:43 -0400890 default 0x0
Simon Glassc48044d2019-10-27 09:47:40 -0600891 help
892 Use this to change the assumptions made by libfdt about the
893 device tree it is working with. A value of 0 means that no assumptions
894 are made, and libfdt is able to deal with malicious data. A value of
895 0xff means all assumptions are made and any invalid data may cause
896 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
897
Maxime Ripard9e901ce2016-07-05 10:26:44 +0200898config OF_LIBFDT_OVERLAY
899 bool "Enable the FDT library overlay support"
Tom Rinic1e49ba2018-05-08 08:52:17 -0400900 depends on OF_LIBFDT
Praneeth Bajjuri7b71a012018-04-25 16:03:23 -0500901 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
Maxime Ripard9e901ce2016-07-05 10:26:44 +0200902 help
903 This enables the FDT library (libfdt) overlay support.
904
Tom Rinid2cd4312022-08-02 07:33:27 -0400905config SYS_FDT_PAD
906 hex "Maximum size of the FDT memory area passeed to the OS"
907 depends on OF_LIBFDT
908 default 0x13000 if FMAN_ENET || QE || U_QE
909 default 0x3000
910 help
911 During OS boot, we allocate a region of memory within the bootmap
912 for the FDT. This is the size that we will expand the FDT that we
913 are using will be extended to be, in bytes.
914
Simon Glass8b426922016-02-22 22:55:45 -0700915config SPL_OF_LIBFDT
916 bool "Enable the FDT library for SPL"
Simon Glasse7ca7da2022-04-30 00:56:53 -0600917 depends on SPL_LIBGENERIC_SUPPORT
Simon Glass8b426922016-02-22 22:55:45 -0700918 default y if SPL_OF_CONTROL
919 help
920 This enables the FDT library (libfdt). It provides functions for
921 accessing binary device tree images in memory, such as adding and
Anatolij Gustschinda707d42017-08-18 17:58:51 +0200922 removing nodes and properties, scanning through the tree and finding
Simon Glass8b426922016-02-22 22:55:45 -0700923 particular compatible nodes. The library operates on a flattened
924 version of the device tree.
925
Simon Glassc48044d2019-10-27 09:47:40 -0600926config SPL_OF_LIBFDT_ASSUME_MASK
927 hex "Mask of conditions to assume for libfdt"
Tom Rini0a83cc22022-06-10 23:03:09 -0400928 depends on SPL_OF_LIBFDT || (FIT && SPL)
Simon Glassc48044d2019-10-27 09:47:40 -0600929 default 0xff
930 help
931 Use this to change the assumptions made by libfdt in SPL about the
932 device tree it is working with. A value of 0 means that no assumptions
933 are made, and libfdt is able to deal with malicious data. A value of
934 0xff means all assumptions are made and any invalid data may cause
935 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
936
Simon Glassca8ec4b2018-10-01 12:22:21 -0600937config TPL_OF_LIBFDT
938 bool "Enable the FDT library for TPL"
Simon Glasse7ca7da2022-04-30 00:56:53 -0600939 depends on TPL_LIBGENERIC_SUPPORT
Simon Glassca8ec4b2018-10-01 12:22:21 -0600940 default y if TPL_OF_CONTROL
941 help
942 This enables the FDT library (libfdt). It provides functions for
943 accessing binary device tree images in memory, such as adding and
944 removing nodes and properties, scanning through the tree and finding
945 particular compatible nodes. The library operates on a flattened
946 version of the device tree.
947
Simon Glassc48044d2019-10-27 09:47:40 -0600948config TPL_OF_LIBFDT_ASSUME_MASK
949 hex "Mask of conditions to assume for libfdt"
Tom Rini36a4ca02022-06-08 08:24:39 -0400950 depends on TPL_OF_LIBFDT || (FIT && TPL)
Simon Glassc48044d2019-10-27 09:47:40 -0600951 default 0xff
952 help
953 Use this to change the assumptions made by libfdt in TPL about the
954 device tree it is working with. A value of 0 means that no assumptions
955 are made, and libfdt is able to deal with malicious data. A value of
956 0xff means all assumptions are made and any invalid data may cause
957 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
958
Simon Glasse7ca7da2022-04-30 00:56:53 -0600959config VPL_OF_LIBFDT
960 bool "Enable the FDT library for VPL"
Tom Rini7fb323b2022-06-08 08:24:40 -0400961 depends on VPL
Simon Glasse7ca7da2022-04-30 00:56:53 -0600962 default y if VPL_OF_CONTROL && !VPL_OF_PLATDATA
963 help
964 This enables the FDT library (libfdt). It provides functions for
965 accessing binary device tree images in memory, such as adding and
966 removing nodes and properties, scanning through the tree and finding
967 particular compatible nodes. The library operates on a flattened
968 version of the device tree.
969
970config VPL_OF_LIBFDT_ASSUME_MASK
971 hex "Mask of conditions to assume for libfdt"
Tom Rini7fb323b2022-06-08 08:24:40 -0400972 depends on VPL_OF_LIBFDT || (FIT && VPL)
Simon Glasse7ca7da2022-04-30 00:56:53 -0600973 default 0xff
974 help
975 Use this to change the assumptions made by libfdt in SPL 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
Alexander Graffb228082016-08-19 01:23:23 +0200981menu "System tables"
Alexander Graf66f96e12016-08-19 01:23:29 +0200982 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
Alexander Graffb228082016-08-19 01:23:23 +0200983
Simon Glass5d093f32020-11-04 09:57:25 -0700984config BLOBLIST_TABLES
985 bool "Put tables in a bloblist"
Simon Glass171c6462021-03-15 18:11:22 +1300986 depends on X86 && BLOBLIST
Simon Glass5d093f32020-11-04 09:57:25 -0700987 help
988 Normally tables are placed at address 0xf0000 and can be up to 64KB
989 long. With this option, tables are instead placed in the bloblist
990 with a pointer from 0xf0000. The size can then be larger and the
991 tables can be placed high in memory.
992
Alexander Graffb228082016-08-19 01:23:23 +0200993config GENERATE_SMBIOS_TABLE
994 bool "Generate an SMBIOS (System Management BIOS) table"
Simon Glass5059dbe2023-09-19 21:00:13 -0600995 depends on SMBIOS
Alexander Graffb228082016-08-19 01:23:23 +0200996 default y
Alexander Graffb228082016-08-19 01:23:23 +0200997 help
998 The System Management BIOS (SMBIOS) specification addresses how
999 motherboard and system vendors present management information about
1000 their products in a standard format by extending the BIOS interface
1001 on Intel architecture systems.
1002
1003 Check http://www.dmtf.org/standards/smbios for details.
1004
Tom Rinid0dca222023-11-20 15:17:23 -05001005 See also SYSINFO_SMBIOS which allows SMBIOS values to be provided in
Simon Glass052a03e2020-11-05 06:32:11 -07001006 the devicetree.
1007
Simon Glasse70648e2023-09-14 10:55:39 -06001008endmenu
1009
Tero Kristocfbe15c2021-06-11 11:45:02 +03001010config LIB_RATIONAL
1011 bool "enable continued fraction calculation routines"
1012
1013config SPL_LIB_RATIONAL
1014 bool "enable continued fraction calculation routines for SPL"
1015 depends on SPL
1016
AKASHI Takahirof7025262019-11-13 09:44:53 +09001017config ASN1_COMPILER
1018 bool
Philippe Reynes2aba9442022-03-28 22:56:54 +02001019 help
1020 ASN.1 (Abstract Syntax Notation One) is a standard interface
1021 description language for defining data structures that can be
1022 serialized and deserialized in a cross-platform way. It is
1023 broadly used in telecommunications and computer networking,
1024 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1025 This option enables the support of the asn1 compiler.
AKASHI Takahirof7025262019-11-13 09:44:53 +09001026
AKASHI Takahiro3a888712019-11-13 09:44:55 +09001027config ASN1_DECODER
1028 bool
1029 help
Philippe Reynes2aba9442022-03-28 22:56:54 +02001030 ASN.1 (Abstract Syntax Notation One) is a standard interface
1031 description language for defining data structures that can be
1032 serialized and deserialized in a cross-platform way. It is
1033 broadly used in telecommunications and computer networking,
1034 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1035 This option enables the support of the asn1 decoder.
AKASHI Takahiro3a888712019-11-13 09:44:55 +09001036
Philippe Reynescf538b52022-03-28 22:56:56 +02001037config SPL_ASN1_DECODER
1038 bool
1039 help
1040 ASN.1 (Abstract Syntax Notation One) is a standard interface
1041 description language for defining data structures that can be
1042 serialized and deserialized in a cross-platform way. It is
1043 broadly used in telecommunications and computer networking,
1044 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1045 This option enables the support of the asn1 decoder in the SPL.
1046
AKASHI Takahiro54923642019-11-13 09:44:57 +09001047config OID_REGISTRY
1048 bool
1049 help
Philippe Reynese35c3a22022-03-28 22:56:55 +02001050 In computing, object identifiers or OIDs are an identifier mechanism
1051 standardized by the International Telecommunication Union (ITU) and
1052 ISO/IEC for naming any object, concept, or "thing" with a globally
1053 unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
AKASHI Takahiro54923642019-11-13 09:44:57 +09001054 Enable fast lookup object identifier registry.
1055
Philippe Reynescf538b52022-03-28 22:56:56 +02001056config SPL_OID_REGISTRY
1057 bool
1058 help
1059 In computing, object identifiers or OIDs are an identifier mechanism
1060 standardized by the International Telecommunication Union (ITU) and
1061 ISO/IEC for naming any object, concept, or "thing" with a globally
1062 unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
1063 Enable fast lookup object identifier registry in the SPL.
1064
Simon Glass5059dbe2023-09-19 21:00:13 -06001065config SMBIOS
1066 bool "SMBIOS support"
1067 depends on X86 || EFI_LOADER
1068 default y
Simon Glassaadec122023-09-20 07:29:51 -06001069 select LAST_STAGE_INIT
Simon Glass5059dbe2023-09-19 21:00:13 -06001070 help
1071 Indicates that this platform can support System Management BIOS
1072 (SMBIOS) tables. These provide various pieces of information about
1073 the board, such as the manufacturer and the model name.
1074
1075 See GENERATE_SMBIOS_TABLE which controls whether U-Boot actually
1076 creates these tables, rather than them coming from a previous firmware
1077 stage.
1078
Christian Gmeiner19859982020-11-03 15:34:51 +01001079config SMBIOS_PARSER
1080 bool "SMBIOS parser"
1081 help
1082 A simple parser for SMBIOS data.
1083
Michal Simekdd5000ef2024-04-16 08:55:16 +02001084source "lib/efi/Kconfig"
1085source "lib/efi_loader/Kconfig"
1086source "lib/optee/Kconfig"
Simon Glass9539e692015-07-31 09:31:36 -06001087
Thierry Reding52c7f1f32019-03-21 19:10:04 +01001088config TEST_FDTDEC
1089 bool "enable fdtdec test"
1090 depends on OF_LIBFDT
1091
AKASHI Takahiro51ba5222019-11-13 09:44:49 +09001092config LIB_DATE
1093 bool
1094
Keerthy76f361a2020-02-12 13:55:03 +05301095config LIB_ELF
1096 bool
1097 help
Patrick Delaunayfb67df82021-01-04 15:33:28 +01001098 Support basic elf loading/validating functions.
1099 This supports for 32 bit and 64 bit versions.
Keerthy76f361a2020-02-12 13:55:03 +05301100
Patrick Delaunayd62063d2021-03-10 10:16:25 +01001101config LMB
1102 bool "Enable the logical memory blocks library (lmb)"
Tom Rini53320122022-04-06 09:21:25 -04001103 default y if ARC || ARM || M68K || MICROBLAZE || MIPS || \
Patrick Delaunayd62063d2021-03-10 10:16:25 +01001104 NIOS2 || PPC || RISCV || SANDBOX || SH || X86 || XTENSA
1105 help
1106 Support the library logical memory blocks.
1107
Patrick Delaunay71cc9c52021-03-10 10:16:31 +01001108config LMB_USE_MAX_REGIONS
Heinrich Schuchardtc4bc9182021-11-14 09:38:53 +01001109 bool "Use a common number of memory and reserved regions in lmb lib"
Tom Rinia91fe442023-02-08 10:18:26 -05001110 default y
Patrick Delaunay71cc9c52021-03-10 10:16:31 +01001111 help
1112 Define the number of supported memory regions in the library logical
1113 memory blocks.
1114 This feature allow to reduce the lmb library size by using compiler
1115 optimization when LMB_MEMORY_REGIONS == LMB_RESERVED_REGIONS.
Patrick Delaunaycd831af2021-03-10 10:16:28 +01001116
1117config LMB_MAX_REGIONS
1118 int "Number of memory and reserved regions in lmb lib"
Patrick Delaunay479de712023-03-22 19:12:25 +01001119 depends on LMB_USE_MAX_REGIONS
Sjoerd Simons826a9942023-01-19 09:38:17 +01001120 default 16
Patrick Delaunaycd831af2021-03-10 10:16:28 +01001121 help
1122 Define the number of supported regions, memory and reserved, in the
1123 library logical memory blocks.
Patrick Delaunay71cc9c52021-03-10 10:16:31 +01001124
1125config LMB_MEMORY_REGIONS
1126 int "Number of memory regions in lmb lib"
Patrick Delaunay479de712023-03-22 19:12:25 +01001127 depends on !LMB_USE_MAX_REGIONS
Patrick Delaunay71cc9c52021-03-10 10:16:31 +01001128 default 8
1129 help
1130 Define the number of supported memory regions in the library logical
1131 memory blocks.
1132 The minimal value is CONFIG_NR_DRAM_BANKS.
1133
1134config LMB_RESERVED_REGIONS
1135 int "Number of reserved regions in lmb lib"
Patrick Delaunay479de712023-03-22 19:12:25 +01001136 depends on !LMB_USE_MAX_REGIONS
Patrick Delaunay71cc9c52021-03-10 10:16:31 +01001137 default 8
1138 help
1139 Define the number of supported reserved regions in the library logical
1140 memory blocks.
1141
Simon Glass42d97e52022-12-21 16:08:28 -07001142config PHANDLE_CHECK_SEQ
1143 bool "Enable phandle check while getting sequence number"
1144 help
1145 When there are multiple device tree nodes with same name,
Anand Moon6c368f42024-06-23 23:10:21 +05301146 enable this config option to distinguish them using
Simon Glass42d97e52022-12-21 16:08:28 -07001147 phandles in fdtdec_get_alias_seq() function.
1148
Eugen Hristevdb6bbcb2022-01-04 18:20:19 +02001149endmenu
Sughosh Ganu1cadae22022-10-21 18:16:03 +05301150
Michal Simekdd5000ef2024-04-16 08:55:16 +02001151source "lib/fwu_updates/Kconfig"