blob: 5f282ecb543e6fb266152d2d0331da4c4122aac7 [file] [log] [blame]
Masahiro Yamadaed363232014-09-16 16:32:58 +09001menu "Library routines"
2
Marek Szyprowski69be8fd2020-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 Menge0103152021-02-25 17:22:36 +08009 This library only works in the post-relocation phase.
10
Marek Szyprowski69be8fd2020-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 Rini3b8dfc42022-11-16 13:10:38 -050018config SYS_TIMER_COUNTS_DOWN
Marek Vasutc61df342023-03-19 04:13:02 +010019 bool "System timer counts down rather than up"
Tom Rini3b8dfc42022-11-16 13:10:38 -050020
Simon Glass6405ab72021-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 Ford6ef2f902017-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 Glass3c10dc92019-12-06 21:41:34 -070038config BINMAN_FDT
39 bool "Allow access to binman information in the device tree"
Bin Meng56e72572021-02-03 21:20:02 +080040 depends on BINMAN && DM && OF_CONTROL
Bin Meng1621d3c2021-05-10 20:23:36 +080041 default y if OF_SEPARATE || OF_EMBED
Simon Glass3c10dc92019-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 Yamadab0928da2014-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 Glass1a46cb62021-07-02 12:36:17 -060056config CHARSET
57 bool
Simon Glass1a46cb62021-07-02 12:36:17 -060058
Faiz Abbas36c18772018-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 Meng2895c4b2018-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 Yamada45ccec82014-10-24 01:30:43 +090071config HAVE_PRIVATE_LIBGCC
72 bool
73
Adam Forda451bc22018-02-06 12:14:28 -060074config LIB_UUID
75 bool
76
AKASHI Takahiroa4dc3d52023-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 Glass3b510802023-02-22 09:34:11 -070084config SPL_LIB_UUID
85 depends on SPL
86 bool
87
Kautuk Consul1c03ab92022-12-07 17:12:34 +053088config SEMIHOSTING
89 bool "Support semihosting"
Kautuk Consulae3527f2022-12-07 17:12:35 +053090 depends on ARM || RISCV
Kautuk Consul1c03ab92022-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 Anderson47cfdb22023-10-27 16:40:15 -0400103 depends on SEMIHOSTING
Kautuk Consul1c03ab92022-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 Consulae3527f2022-12-07 17:12:35 +0530113 depends on SPL && (ARM || RISCV)
Kautuk Consul1c03ab92022-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 Anderson47cfdb22023-10-27 16:40:15 -0400126 depends on SPL_SEMIHOSTING
Kautuk Consulae3527f2022-12-07 17:12:35 +0530127 select ARMV8_SPL_EXCEPTION_VECTORS if ARM64
Kautuk Consul1c03ab92022-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 Kiernan14ad44a2018-04-19 04:32:54 +0000135config PRINTF
136 bool
137 default y
138
139config SPL_PRINTF
140 bool
141 select SPL_SPRINTF
Simon Glass27084c02019-09-25 08:56:27 -0600142 select SPL_STRTO if !SPL_USE_TINY_PRINTF
Alex Kiernan14ad44a2018-04-19 04:32:54 +0000143
144config TPL_PRINTF
145 bool
146 select TPL_SPRINTF
Simon Glass27084c02019-09-25 08:56:27 -0600147 select TPL_STRTO if !TPL_USE_TINY_PRINTF
Alex Kiernan14ad44a2018-04-19 04:32:54 +0000148
Simon Glass747093d2022-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 Kiernan14ad44a2018-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 Glass747093d2022-04-30 00:56:53 -0600164config VPL_SPRINTF
165 bool
166
Andrii Anisove87dfb02020-08-06 12:42:52 +0300167config SSCANF
168 bool
Andrii Anisove87dfb02020-08-06 12:42:52 +0300169
Alex Kiernan14ad44a2018-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 Glass747093d2022-04-30 00:56:53 -0600180config VPL_STRTO
181 bool
182
Alex Kiernanc232d142018-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 Yamada45ccec82014-10-24 01:30:43 +0900194config USE_PRIVATE_LIBGCC
195 bool "Use private libgcc"
196 depends on HAVE_PRIVATE_LIBGCC
Marek Vasut91b86e22016-05-26 18:01:47 +0200197 default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
Masahiro Yamada45ccec82014-10-24 01:30:43 +0900198 help
199 This option allows you to use the built-in libgcc implementation
Masahiro Yamada67976302016-03-30 20:17:42 +0900200 of U-Boot instead of the one provided by the compiler.
Masahiro Yamada45ccec82014-10-24 01:30:43 +0900201 If unsure, say N.
202
Masahiro Yamada8c688bc2014-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 Glass27084c02019-09-25 08:56:27 -0600211config SPL_USE_TINY_PRINTF
Thomas Hebb37ef1772019-11-10 08:23:53 -0800212 bool "Enable tiny printf() version in SPL"
Simon Glass27084c02019-09-25 08:56:27 -0600213 depends on SPL
Tom Rini2a51e162019-06-08 12:46:18 -0400214 default y
Stefan Roese7d9cde12015-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 Glass27084c02019-09-25 08:56:27 -0600223config TPL_USE_TINY_PRINTF
Thomas Hebb37ef1772019-11-10 08:23:53 -0800224 bool "Enable tiny printf() version in TPL"
Simon Glass27084c02019-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 Glass747093d2022-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 Yamada7e3caa82017-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 Hershberger1a606502015-04-21 17:02:42 -0500256config REGEX
257 bool "Enable regular expression support"
Joe Hershbergerf7848d92015-06-22 17:57:36 -0500258 default y if NET
Joe Hershberger1a606502015-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 Forda5a37562018-02-06 10:18:18 -0600265choice
266 prompt "Pseudo-random library support type"
Heinrich Schuchardt16112352020-01-19 19:28:12 +0100267 depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID || \
Heinrich Schuchardt28cef9c2020-11-20 12:55:22 +0100268 RNG_SANDBOX || UT_LIB && AES || FAT_WRITE
Adam Forda5a37562018-02-06 10:18:18 -0600269 default LIB_RAND
Masahiro Yamada3850dbe2015-06-11 19:16:43 +0900270 help
Adam Forda5a37562018-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 Juszkiewicz43e442a2020-05-26 19:07:15 +0200279 bool "HW Engine for random library support"
Adam Forda5a37562018-02-06 10:18:18 -0600280
281endchoice
Michal Simek9ba9e852015-05-25 11:37:22 +0200282
Simon Glasse1722fc2021-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 Glass0992a902023-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 Glass0c45c762023-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 Glasse1722fc2021-12-01 09:02:36 -0700307config GENERATE_ACPI_TABLE
308 bool "Generate an ACPI (Advanced Configuration and Power Interface) table"
Simon Glass0992a902023-05-04 16:54:57 -0600309 depends on ACPI
Simon Glasse1722fc2021-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 Glassab4458b2017-04-02 09:50:28 -0600317config SPL_TINY_MEMSET
318 bool "Use a very small memset() in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400319 depends on SPL
Simon Glassab4458b2017-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 Packham6e705112019-01-13 22:13:28 +1300324 size-constrained environments even this may be too big. Enable this
Simon Glassab4458b2017-04-02 09:50:28 -0600325 option to reduce code size slightly at the cost of some speed.
326
Philipp Tomsich96b90822017-08-03 22:52:04 +0200327config TPL_TINY_MEMSET
328 bool "Use a very small memset() in TPL"
Tom Rini8bea4bf2022-06-08 08:24:39 -0400329 depends on TPL
Philipp Tomsich96b90822017-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 Packham6e705112019-01-13 22:13:28 +1300334 size-constrained environments even this may be too big. Enable this
Philipp Tomsich96b90822017-08-03 22:52:04 +0200335 option to reduce code size slightly at the cost of some speed.
336
Boris Brezillonaa049152017-02-27 18:22:05 +0100337config RBTREE
338 bool
339
Nandor Handa5337a2017-11-08 15:35:14 +0000340config BITREVERSE
341 bool "Bit reverse library from Linux"
342
Simon Glassa24a78d2019-04-08 13:20:51 -0600343config TRACE
344 bool "Support for tracing of function calls and timing"
345 imply CMD_TRACE
Simon Glass12619d42022-12-21 16:08:26 -0700346 imply TIMER_EARLY
Simon Glassa24a78d2019-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é6d9a8512024-04-11 18:44:02 +0200351 See doc/develop/trace.rst for full details.
Simon Glassa24a78d2019-04-08 13:20:51 -0600352
Simon Glass1c6eb072019-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 Schuchardtda0fb5f2019-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 Glass1c6eb072019-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 Schuchardtda0fb5f2019-06-02 13:30:09 +0200395config TRACE_EARLY_CALL_DEPTH_LIMIT
396 int "Early trace call depth limit"
397 depends on TRACE_EARLY
Simon Glassc33425c2023-01-15 14:15:44 -0700398 default 15
Heinrich Schuchardtda0fb5f2019-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 Glass1c6eb072019-04-08 13:20:52 -0600403config TRACE_EARLY_ADDR
404 hex "Address of early trace buffer in U-Boot"
405 depends on TRACE_EARLY
Sughosh Ganu9b19e202024-08-26 17:29:32 +0530406 default 0x00200000
Simon Glass1c6eb072019-04-08 13:20:52 -0600407 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 Poulain334a9b92021-11-25 18:16:14 +0100416config CIRCBUF
417 bool "Enable circular buffer support"
418
Michal Simek953d3352024-04-16 08:55:16 +0200419source "lib/dhry/Kconfig"
Simon Glassd1389402015-06-23 15:38:23 -0600420
Simon Glassb1a873d2017-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 Simek953d3352024-04-16 08:55:16 +0200432source "lib/ecdsa/Kconfig"
433source "lib/rsa/Kconfig"
434source "lib/crypto/Kconfig"
435source "lib/crypt/Kconfig"
Ruchika Guptac4beb222015-01-23 16:01:51 +0530436
Simon Glassa7d660b2015-08-22 18:31:19 -0600437config TPM
438 bool "Trusted Platform Module (TPM) Support"
Simon Glass2419cd12015-10-03 06:39:36 -0600439 depends on DM
Sughosh Ganue67ffb52022-07-22 21:32:04 +0530440 imply DM_RNG
Eddie James97707f12023-10-24 10:43:49 -0500441 select SHA1
Simon Glassa7d660b2015-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 Apalodimase7505b32024-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 Glassa7d660b2015-08-22 18:31:19 -0600452
Simon Glass63078962018-10-01 12:22:19 -0600453config SPL_TPM
454 bool "Trusted Platform Module (TPM) Support in SPL"
455 depends on SPL_DM
Simon Glass0c16fca2023-01-07 14:57:20 -0700456 imply SPL_CRC8
Simon Glass63078962018-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 Glass747093d2022-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 Glassb1a873d2017-04-26 22:27:49 -0600487endmenu
488
Igor Opaniuk33305842018-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 Opaniuk33305842018-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 rana94e3c8c2015-02-20 12:51:46 +0530502menu "Hashing Support"
503
Qu Wenruo7c3fd5c2021-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 rana94e3c8c2015-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 Dowled16b38f2020-04-16 17:36:52 +1200528config SHA512
529 bool "Enable SHA512 support"
Manorit Chawdhrydfe00b32023-07-14 11:22:39 +0530530 default y if TI_SECURE_DEVICE && FIT_SIGNATURE
Reuben Dowled16b38f2020-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 Gagniuce60e4492021-09-02 19:54:18 -0500539 select SHA512
Reuben Dowled16b38f2020-04-16 17:36:52 +1200540 help
541 This option enables support of hashing using SHA384 algorithm.
Alexandru Gagniuce60e4492021-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 Dowled16b38f2020-04-16 17:36:52 +1200544 The SHA384 algorithm produces a 384-bit (48-byte) hash value
545 (digest).
546
gaurav rana94e3c8c2015-02-20 12:51:46 +0530547config SHA_HW_ACCEL
Heinrich Schuchardte2ae4832021-05-14 07:08:27 +0200548 bool "Enable hardware acceleration for SHA hash functions"
gaurav rana94e3c8c2015-02-20 12:51:46 +0530549 help
Heinrich Schuchardte2ae4832021-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 Glass603d15a2021-09-25 19:43:17 -0600554if SPL
555
Oleksandr Suvorovaf62d832023-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 Glass603d15a2021-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 Glass2c212562021-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 Glass603d15a2021-09-25 19:43:17 -0600623endif
624
Simon Glass5a6bc162023-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 Schuchardte2ae4832021-05-14 07:08:27 +0200645if SHA_HW_ACCEL
646
647config SHA512_HW_ACCEL
648 bool "Enable hardware acceleration for SHA512"
Alexandru Gagniuce60e4492021-09-02 19:54:18 -0500649 depends on SHA512
Heinrich Schuchardte2ae4832021-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 rana94e3c8c2015-02-20 12:51:46 +0530654
655config SHA_PROG_HW_ACCEL
656 bool "Enable Progressive hashing support using hardware"
gaurav rana94e3c8c2015-02-20 12:51:46 +0530657 help
Joel Stanleya479f102021-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 Przywarabea79d72017-03-15 01:19:05 +0000662
Heinrich Schuchardte2ae4832021-05-14 07:08:27 +0200663endif
664
Andre Przywarabea79d72017-03-15 01:19:05 +0000665config MD5
Simon Glass8239be62020-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 Rinib3401992022-06-10 23:03:09 -0400676 depends on SPL
Simon Glass8239be62020-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 Przywarabea79d72017-03-15 01:19:05 +0000683
Simon Glass0c16fca2023-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 Anderson44071cd2023-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 Glasse7d285b2021-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ún85d8bf52017-09-03 17:00:23 +0200712config CRC32C
713 bool
714
Marek Behún83a486b2019-04-29 22:40:43 +0200715config XXHASH
716 bool
717
gaurav rana94e3c8c2015-02-20 12:51:46 +0530718endmenu
719
Julius Werner027b7282015-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 Delaunay4fa01502021-03-10 10:16:28 +0100729
Julius Werner027b7282015-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 Glassaed998a2017-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 Brezillon173aafb2017-02-27 18:22:06 +0100744config LZO
Tom Rinid56b4b12017-07-22 18:36:16 -0400745 bool "Enable LZO decompression support"
746 help
Oleksandr Suvorov5145bc72021-09-01 16:05:08 +0300747 This enables support for the LZO compression algorithm.
York Sun7264f292017-08-15 11:14:43 -0700748
Marek Vasut95f4bbd2019-03-08 16:06:55 +0100749config GZIP
Heiko Schocher51323612019-04-29 08:59:38 +0200750 bool "Enable gzip decompression support"
Marek Vasut95f4bbd2019-03-08 16:06:55 +0100751 select ZLIB
752 default y
753 help
754 This enables support for GZIP compression algorithm.
755
Joao Marcos Costa81014f72020-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 Walleeff5a542020-05-22 14:07:36 +0200763config GZIP_COMPRESSED
764 bool
765 select ZLIB
766
Atish Patra2a2119e2020-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 Vasut95f4bbd2019-03-08 16:06:55 +0100772config ZLIB
773 bool
774 default y
775 help
776 This enables ZLIB compression lib.
777
Marek Behún8509f222019-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 Maier4b9b25d2023-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 Glassae625d92023-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 Glass048c6e82018-11-06 15:21:30 -0700805config SPL_LZ4
806 bool "Enable LZ4 decompression support in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400807 depends on SPL
Simon Glass048c6e82018-11-06 15:21:30 -0700808 help
Marcin Juszkiewicz43e442a2020-05-26 19:07:15 +0200809 This enables support for the LZ4 decompression algorithm in SPL. LZ4
Simon Glass048c6e82018-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
Weijie Gao04cb3992020-04-21 09:28:38 +0200814config SPL_LZMA
815 bool "Enable LZMA decompression support for SPL build"
Tom Rinib3401992022-06-10 23:03:09 -0400816 depends on SPL
Weijie Gao04cb3992020-04-21 09:28:38 +0200817 help
Marcin Juszkiewicz43e442a2020-05-26 19:07:15 +0200818 This enables support for LZMA compression algorithm for SPL boot.
Weijie Gao04cb3992020-04-21 09:28:38 +0200819
Simon Glass747093d2022-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 Hiblotf52bdf42017-09-15 12:57:30 +0200826config SPL_LZO
827 bool "Enable LZO decompression support in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400828 depends on SPL
Jean-Jacques Hiblotf52bdf42017-09-15 12:57:30 +0200829 help
830 This enables support for LZO compression algorithm in the SPL.
831
York Sun7264f292017-08-15 11:14:43 -0700832config SPL_GZIP
833 bool "Enable gzip decompression support for SPL build"
834 select SPL_ZLIB
835 help
Oleksandr Suvorov5145bc72021-09-01 16:05:08 +0300836 This enables support for the GZIP compression algorithm for SPL boot.
York Sun7264f292017-08-15 11:14:43 -0700837
838config SPL_ZLIB
839 bool
840 help
841 This enables compression lib for SPL boot.
842
Marek Behún8509f222019-04-29 22:40:44 +0200843config SPL_ZSTD
844 bool "Enable Zstandard decompression support in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400845 depends on SPL
Marek Behún8509f222019-04-29 22:40:44 +0200846 select XXHASH
847 help
848 This enables Zstandard decompression library in the SPL.
849
Julius Werner027b7282015-10-06 20:03:53 -0700850endmenu
851
Przemyslaw Marczak6501ff62015-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 Brodkinf8c987f2018-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 Glass26637e22020-09-12 11:13:35 -0600865config SPL_HEXDUMP
866 bool "Enable hexdump in SPL"
Heinrich Schuchardtfa3f1f12021-07-24 17:35:46 +0200867 depends on SPL && HEXDUMP
Simon Glass26637e22020-09-12 11:13:35 -0600868 help
869 This enables functions for printing dumps of binary data in
870 SPL.
871
Sean Anderson72eda502020-10-27 19:55:36 -0400872config GETOPT
873 bool "Enable getopt"
874 help
875 This enables functions for parsing command-line options.
876
Simon Glass69e173e2016-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 Gustschinf1a7ba12017-08-18 17:58:51 +0200883 removing nodes and properties, scanning through the tree and finding
Simon Glass69e173e2016-02-22 22:55:42 -0700884 particular compatible nodes. The library operates on a flattened
885 version of the device tree.
886
Simon Glass0d76afc2019-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 Rinia077ac12023-08-02 11:09:43 -0400890 default 0x0
Simon Glass0d76afc2019-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 Ripardddf67f72016-07-05 10:26:44 +0200898config OF_LIBFDT_OVERLAY
899 bool "Enable the FDT library overlay support"
Tom Rini64175722018-05-08 08:52:17 -0400900 depends on OF_LIBFDT
Praneeth Bajjuri58a46f82018-04-25 16:03:23 -0500901 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
Maxime Ripardddf67f72016-07-05 10:26:44 +0200902 help
903 This enables the FDT library (libfdt) overlay support.
904
Tom Rini40ed7be2022-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 Glassaa34fbc2016-02-22 22:55:45 -0700915config SPL_OF_LIBFDT
916 bool "Enable the FDT library for SPL"
Simon Glass747093d2022-04-30 00:56:53 -0600917 depends on SPL_LIBGENERIC_SUPPORT
Simon Glassaa34fbc2016-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 Gustschinf1a7ba12017-08-18 17:58:51 +0200922 removing nodes and properties, scanning through the tree and finding
Simon Glassaa34fbc2016-02-22 22:55:45 -0700923 particular compatible nodes. The library operates on a flattened
924 version of the device tree.
925
Simon Glass0d76afc2019-10-27 09:47:40 -0600926config SPL_OF_LIBFDT_ASSUME_MASK
927 hex "Mask of conditions to assume for libfdt"
Tom Rinib3401992022-06-10 23:03:09 -0400928 depends on SPL_OF_LIBFDT || (FIT && SPL)
Simon Glass0d76afc2019-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 Glass5592a632018-10-01 12:22:21 -0600937config TPL_OF_LIBFDT
938 bool "Enable the FDT library for TPL"
Simon Glass747093d2022-04-30 00:56:53 -0600939 depends on TPL_LIBGENERIC_SUPPORT
Simon Glass5592a632018-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 Glass0d76afc2019-10-27 09:47:40 -0600948config TPL_OF_LIBFDT_ASSUME_MASK
949 hex "Mask of conditions to assume for libfdt"
Tom Rini8bea4bf2022-06-08 08:24:39 -0400950 depends on TPL_OF_LIBFDT || (FIT && TPL)
Simon Glass0d76afc2019-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 Glass747093d2022-04-30 00:56:53 -0600959config VPL_OF_LIBFDT
960 bool "Enable the FDT library for VPL"
Tom Rini13ce3512022-06-08 08:24:40 -0400961 depends on VPL
Simon Glass747093d2022-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 Rini13ce3512022-06-08 08:24:40 -0400972 depends on VPL_OF_LIBFDT || (FIT && VPL)
Simon Glass747093d2022-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 Graf4b6dddc2016-08-19 01:23:23 +0200981menu "System tables"
Alexander Grafe663b352016-08-19 01:23:29 +0200982 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
Alexander Graf4b6dddc2016-08-19 01:23:23 +0200983
Simon Glassd2cb7a22020-11-04 09:57:25 -0700984config BLOBLIST_TABLES
985 bool "Put tables in a bloblist"
Simon Glassf2c14422021-03-15 18:11:22 +1300986 depends on X86 && BLOBLIST
Simon Glassd2cb7a22020-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 Graf4b6dddc2016-08-19 01:23:23 +0200993config GENERATE_SMBIOS_TABLE
994 bool "Generate an SMBIOS (System Management BIOS) table"
Simon Glass8c11d192023-09-19 21:00:13 -0600995 depends on SMBIOS
Alexander Graf4b6dddc2016-08-19 01:23:23 +0200996 default y
Alexander Graf4b6dddc2016-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 Rini253f9392023-11-20 15:17:23 -05001005 See also SYSINFO_SMBIOS which allows SMBIOS values to be provided in
Simon Glass44c74bd2020-11-05 06:32:11 -07001006 the devicetree.
1007
Simon Glassa90b5942023-09-14 10:55:39 -06001008endmenu
1009
Tero Kristo7d0f3fb2021-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 Takahiro2b121962019-11-13 09:44:53 +09001017config ASN1_COMPILER
1018 bool
Philippe Reynesa0e71d92022-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 Takahiro2b121962019-11-13 09:44:53 +09001026
AKASHI Takahiroab8a0e02019-11-13 09:44:55 +09001027config ASN1_DECODER
1028 bool
1029 help
Philippe Reynesa0e71d92022-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 Takahiroab8a0e02019-11-13 09:44:55 +09001036
Philippe Reynesfd210fe2022-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 Takahiroa9b45e62019-11-13 09:44:57 +09001047config OID_REGISTRY
1048 bool
1049 help
Philippe Reynes7d44a982022-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 Takahiroa9b45e62019-11-13 09:44:57 +09001054 Enable fast lookup object identifier registry.
1055
Philippe Reynesfd210fe2022-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 Glass8c11d192023-09-19 21:00:13 -06001065config SMBIOS
1066 bool "SMBIOS support"
1067 depends on X86 || EFI_LOADER
1068 default y
Simon Glass53fab132023-09-20 07:29:51 -06001069 select LAST_STAGE_INIT
Simon Glass8c11d192023-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 Gmeiner415eab02020-11-03 15:34:51 +01001079config SMBIOS_PARSER
1080 bool "SMBIOS parser"
1081 help
1082 A simple parser for SMBIOS data.
1083
Michal Simek953d3352024-04-16 08:55:16 +02001084source "lib/efi/Kconfig"
1085source "lib/efi_loader/Kconfig"
1086source "lib/optee/Kconfig"
Simon Glass867a6ac2015-07-31 09:31:36 -06001087
Thierry Reding54969b42019-03-21 19:10:04 +01001088config TEST_FDTDEC
1089 bool "enable fdtdec test"
1090 depends on OF_LIBFDT
1091
AKASHI Takahiro05429b62019-11-13 09:44:49 +09001092config LIB_DATE
1093 bool
1094
Keerthy805b3ca2020-02-12 13:55:03 +05301095config LIB_ELF
1096 bool
1097 help
Patrick Delaunay6205bbb2021-01-04 15:33:28 +01001098 Support basic elf loading/validating functions.
1099 This supports for 32 bit and 64 bit versions.
Keerthy805b3ca2020-02-12 13:55:03 +05301100
Patrick Delaunay77b8cfe2021-03-10 10:16:25 +01001101config LMB
1102 bool "Enable the logical memory blocks library (lmb)"
Tom Rini11232132022-04-06 09:21:25 -04001103 default y if ARC || ARM || M68K || MICROBLAZE || MIPS || \
Patrick Delaunay77b8cfe2021-03-10 10:16:25 +01001104 NIOS2 || PPC || RISCV || SANDBOX || SH || X86 || XTENSA
Sughosh Ganu17f695d2024-08-26 17:29:29 +05301105 select ARCH_MISC_INIT if PPC
Patrick Delaunay77b8cfe2021-03-10 10:16:25 +01001106 help
Sughosh Ganu8281fde2024-08-26 17:29:21 +05301107 Support the library logical memory blocks. This will require
1108 a malloc() implementation for defining the data structures
1109 needed for maintaining the LMB memory map.
1110
1111config SPL_LMB
1112 bool "Enable LMB module for SPL"
1113 depends on SPL && SPL_FRAMEWORK && SPL_SYS_MALLOC
1114 help
1115 Enable support for Logical Memory Block library routines in
1116 SPL. This will require a malloc() implementation for defining
1117 the data structures needed for maintaining the LMB memory map.
Patrick Delaunay77b8cfe2021-03-10 10:16:25 +01001118
Simon Glassebc1d502022-12-21 16:08:28 -07001119config PHANDLE_CHECK_SEQ
1120 bool "Enable phandle check while getting sequence number"
1121 help
1122 When there are multiple device tree nodes with same name,
Anand Moon608a88c2024-06-23 23:10:21 +05301123 enable this config option to distinguish them using
Simon Glassebc1d502022-12-21 16:08:28 -07001124 phandles in fdtdec_get_alias_seq() function.
1125
Eugen Hristev97f2a742022-01-04 18:20:19 +02001126endmenu
Sughosh Ganu86794052022-10-21 18:16:03 +05301127
Michal Simek953d3352024-04-16 08:55:16 +02001128source "lib/fwu_updates/Kconfig"