blob: 203f40e2662952aca0dc282a3257b63797d0f8da [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
Michal Simek15fa3a82024-11-01 10:17:54 +010048config BINMAN_DTB
49 string "binman DTB description"
50 depends on BINMAN
51 help
52 This enables option to point to different DTB file with binman node which
53 is outside of DTB used by the firmware. Use this option if information
54 about generated images shouldn't be the part of target binary. Or on system
55 with limited storage.
56
Masahiro Yamada3f053fe2014-09-16 16:32:59 +090057config CC_OPTIMIZE_LIBS_FOR_SPEED
58 bool "Optimize libraries for speed"
59 help
60 Enabling this option will pass "-O2" to gcc when compiling
61 under "lib" directory.
62
63 If unsure, say N.
64
Simon Glassc17db992021-07-02 12:36:17 -060065config CHARSET
66 bool
Simon Glassc17db992021-07-02 12:36:17 -060067
Faiz Abbas6199fb12018-02-06 19:15:58 +053068config DYNAMIC_CRC_TABLE
69 bool "Enable Dynamic tables for CRC"
70 help
71 Enable this option to calculate entries for CRC tables at runtime.
72 This can be helpful when reducing the size of the build image
73
Bin Mengb95e9db2018-10-15 02:21:15 -070074config HAVE_ARCH_IOMAP
75 bool
76 help
77 Enable this option if architecture provides io{read,write}{8,16,32}
78 I/O accessor functions.
79
Masahiro Yamada9520b712014-10-24 01:30:43 +090080config HAVE_PRIVATE_LIBGCC
81 bool
82
Adam Ford70c8f052018-02-06 12:14:28 -060083config LIB_UUID
84 bool
Caleb Connolly2f4f0be2024-08-30 13:34:32 +010085 select SHA1
Adam Ford70c8f052018-02-06 12:14:28 -060086
AKASHI Takahirod1e31582023-10-26 14:31:31 -040087config RANDOM_UUID
88 bool "GPT Random UUID generation"
89 select LIB_UUID
90 help
91 Enable the generation of partitions with random UUIDs if none
92 are provided.
93
Simon Glass8090d8d2023-02-22 09:34:11 -070094config SPL_LIB_UUID
95 depends on SPL
96 bool
97
Kautuk Consula51bb742022-12-07 17:12:34 +053098config SEMIHOSTING
99 bool "Support semihosting"
Kautuk Consulc86cb4a2022-12-07 17:12:35 +0530100 depends on ARM || RISCV
Kautuk Consula51bb742022-12-07 17:12:34 +0530101 help
102 Semihosting is a method for a target to communicate with a host
103 debugger. It uses special instructions which the debugger will trap
104 on and interpret. This allows U-Boot to read/write files, print to
105 the console, and execute arbitrary commands on the host system.
106
107 Enabling this option will add support for reading and writing files
108 on the host system. If you don't have a debugger attached then trying
109 to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
110
111config SEMIHOSTING_FALLBACK
112 bool "Recover gracefully when semihosting fails"
Sean Andersonbf641f22023-10-27 16:40:15 -0400113 depends on SEMIHOSTING
Kautuk Consula51bb742022-12-07 17:12:34 +0530114 default y
115 help
116 Normally, if U-Boot makes a semihosting call and no debugger is
117 attached, then it will panic due to a synchronous abort
118 exception. This config adds an exception handler which will allow
119 U-Boot to recover. Say 'y' if unsure.
120
121config SPL_SEMIHOSTING
122 bool "Support semihosting in SPL"
Kautuk Consulc86cb4a2022-12-07 17:12:35 +0530123 depends on SPL && (ARM || RISCV)
Kautuk Consula51bb742022-12-07 17:12:34 +0530124 help
125 Semihosting is a method for a target to communicate with a host
126 debugger. It uses special instructions which the debugger will trap
127 on and interpret. This allows U-Boot to read/write files, print to
128 the console, and execute arbitrary commands on the host system.
129
130 Enabling this option will add support for reading and writing files
131 on the host system. If you don't have a debugger attached then trying
132 to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
133
134config SPL_SEMIHOSTING_FALLBACK
135 bool "Recover gracefully when semihosting fails in SPL"
Sean Andersonbf641f22023-10-27 16:40:15 -0400136 depends on SPL_SEMIHOSTING
Kautuk Consulc86cb4a2022-12-07 17:12:35 +0530137 select ARMV8_SPL_EXCEPTION_VECTORS if ARM64
Kautuk Consula51bb742022-12-07 17:12:34 +0530138 default y
139 help
140 Normally, if U-Boot makes a semihosting call and no debugger is
141 attached, then it will panic due to a synchronous abort
142 exception. This config adds an exception handler which will allow
143 U-Boot to recover. Say 'y' if unsure.
144
Alex Kiernan5b404282018-04-19 04:32:54 +0000145config PRINTF
146 bool
147 default y
148
149config SPL_PRINTF
150 bool
151 select SPL_SPRINTF
Simon Glass7611ac62019-09-25 08:56:27 -0600152 select SPL_STRTO if !SPL_USE_TINY_PRINTF
Alex Kiernan5b404282018-04-19 04:32:54 +0000153
154config TPL_PRINTF
155 bool
156 select TPL_SPRINTF
Simon Glass7611ac62019-09-25 08:56:27 -0600157 select TPL_STRTO if !TPL_USE_TINY_PRINTF
Alex Kiernan5b404282018-04-19 04:32:54 +0000158
Simon Glasse7ca7da2022-04-30 00:56:53 -0600159config VPL_PRINTF
160 bool
161 select VPL_SPRINTF
162 select VPL_STRTO if !VPL_USE_TINY_PRINTF
163
Alex Kiernan5b404282018-04-19 04:32:54 +0000164config SPRINTF
165 bool
166 default y
167
168config SPL_SPRINTF
169 bool
170
171config TPL_SPRINTF
172 bool
173
Simon Glasse7ca7da2022-04-30 00:56:53 -0600174config VPL_SPRINTF
175 bool
176
Andrii Anisov6e29ac42020-08-06 12:42:52 +0300177config SSCANF
178 bool
Andrii Anisov6e29ac42020-08-06 12:42:52 +0300179
Alex Kiernan5b404282018-04-19 04:32:54 +0000180config STRTO
181 bool
182 default y
183
184config SPL_STRTO
185 bool
186
187config TPL_STRTO
188 bool
189
Simon Glasse7ca7da2022-04-30 00:56:53 -0600190config VPL_STRTO
191 bool
192
Alex Kiernanc568bcb2018-05-29 15:30:52 +0000193config IMAGE_SPARSE
194 bool
195
196config IMAGE_SPARSE_FILLBUF_SIZE
197 hex "Android sparse image CHUNK_TYPE_FILL buffer size"
198 default 0x80000
199 depends on IMAGE_SPARSE
200 help
201 Set the size of the fill buffer used when processing CHUNK_TYPE_FILL
202 chunks.
203
Masahiro Yamada9520b712014-10-24 01:30:43 +0900204config USE_PRIVATE_LIBGCC
205 bool "Use private libgcc"
206 depends on HAVE_PRIVATE_LIBGCC
Marek Vasut4e0126e2016-05-26 18:01:47 +0200207 default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
Masahiro Yamada9520b712014-10-24 01:30:43 +0900208 help
209 This option allows you to use the built-in libgcc implementation
Masahiro Yamada1c6a5e42016-03-30 20:17:42 +0900210 of U-Boot instead of the one provided by the compiler.
Masahiro Yamada9520b712014-10-24 01:30:43 +0900211 If unsure, say N.
212
Masahiro Yamadae301fa02014-10-24 01:30:40 +0900213config SYS_HZ
214 int
215 default 1000
216 help
217 The frequency of the timer returned by get_timer().
218 get_timer() must operate in milliseconds and this option must be
219 set to 1000.
220
Simon Glass7611ac62019-09-25 08:56:27 -0600221config SPL_USE_TINY_PRINTF
Thomas Hebb0c12fb52019-11-10 08:23:53 -0800222 bool "Enable tiny printf() version in SPL"
Simon Glass7611ac62019-09-25 08:56:27 -0600223 depends on SPL
Tom Rinid0502b72019-06-08 12:46:18 -0400224 default y
Stefan Roese363ab7b2015-11-23 07:00:22 +0100225 help
226 This option enables a tiny, stripped down printf version.
227 This should only be used in space limited environments,
228 like SPL versions with hard memory limits. This version
229 reduces the code size by about 2.5KiB on armv7.
230
231 The supported format specifiers are %c, %s, %u/%d and %x.
232
Simon Glass7611ac62019-09-25 08:56:27 -0600233config TPL_USE_TINY_PRINTF
Thomas Hebb0c12fb52019-11-10 08:23:53 -0800234 bool "Enable tiny printf() version in TPL"
Simon Glass7611ac62019-09-25 08:56:27 -0600235 depends on TPL
236 default y if SPL_USE_TINY_PRINTF
237 help
238 This option enables a tiny, stripped down printf version.
239 This should only be used in space limited environments,
240 like SPL versions with hard memory limits. This version
241 reduces the code size by about 2.5KiB on armv7.
242
243 The supported format specifiers are %c, %s, %u/%d and %x.
244
Simon Glasse7ca7da2022-04-30 00:56:53 -0600245config VPL_USE_TINY_PRINTF
246 bool "Enable tiny printf() version for VPL"
247 depends on VPL
248 help
249 This option enables a tiny, stripped down printf version.
250 This should only be used in space limited environments,
251 like SPL versions with hard memory limits. This version
252 reduces the code size by about 2.5KiB on armv7.
253
254 The supported format specifiers are %c, %s, %u/%d and %x.
255
Masahiro Yamadaacede7a2017-12-04 12:37:00 +0900256config PANIC_HANG
257 bool "Do not reset the system on fatal error"
258 help
259 Define this option to stop the system in case of a fatal error,
260 so that you have to reset it manually. This is probably NOT a good
261 idea for an embedded system where you want the system to reboot
262 automatically as fast as possible, but it may be useful during
263 development since you can try to debug the conditions that lead to
264 the situation.
265
Joe Hershberger937d3e82015-04-21 17:02:42 -0500266config REGEX
267 bool "Enable regular expression support"
Joe Hershberger8ab8b722015-06-22 17:57:36 -0500268 default y if NET
Joe Hershberger937d3e82015-04-21 17:02:42 -0500269 help
270 If this variable is defined, U-Boot is linked against the
271 SLRE (Super Light Regular Expression) library, which adds
272 regex support to some commands, for example "env grep" and
273 "setexpr".
274
Adam Ford38003a62018-02-06 10:18:18 -0600275choice
276 prompt "Pseudo-random library support type"
Heinrich Schuchardtb2e67a22020-01-19 19:28:12 +0100277 depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID || \
Heinrich Schuchardtba9c44e2020-11-20 12:55:22 +0100278 RNG_SANDBOX || UT_LIB && AES || FAT_WRITE
Adam Ford38003a62018-02-06 10:18:18 -0600279 default LIB_RAND
Masahiro Yamada2743c072015-06-11 19:16:43 +0900280 help
Adam Ford38003a62018-02-06 10:18:18 -0600281 Select the library to provide pseudo-random number generator
282 functions. LIB_HW_RAND supports certain hardware engines that
283 provide this functionality. If in doubt, select LIB_RAND.
284
285config LIB_RAND
286 bool "Pseudo-random library support"
287
288config LIB_HW_RAND
Marcin Juszkiewicza360c2c2020-05-26 19:07:15 +0200289 bool "HW Engine for random library support"
Adam Ford38003a62018-02-06 10:18:18 -0600290
291endchoice
Michal Simek2c1b1db2015-05-25 11:37:22 +0200292
Simon Glassa6cee932021-12-01 09:02:36 -0700293config SUPPORT_ACPI
294 bool
295 help
296 Enable this if your arch or board can support generating ACPI
297 (Advanced Configuration and Power Interface) tables. In this case
298 U-Boot can generate these tables and pass them to the Operating
299 System.
300
Simon Glasse264be42023-05-04 16:54:57 -0600301config ACPI
302 bool "Enable support for ACPI libraries"
303 depends on SUPPORT_ACPI
304 help
305 Provides library functions for dealing with ACPI tables. This does
306 not necessarily include generation of tables
307 (see GENERATE_ACPI_TABLE), but allows for tables to be located.
308
Simon Glass1a2fcc22023-09-19 21:00:06 -0600309config SPL_ACPI
310 bool "Enable support for ACPI libraries in SPL"
311 depends on SPL && SUPPORT_ACPI
312 help
313 Provides library functions for dealing with ACPI tables in SPL. This
314 does not necessarily include generation of tables
315 (see GENERATE_ACPI_TABLE), but allows for tables to be located.
316
Simon Glassa6cee932021-12-01 09:02:36 -0700317config GENERATE_ACPI_TABLE
318 bool "Generate an ACPI (Advanced Configuration and Power Interface) table"
Simon Glasse264be42023-05-04 16:54:57 -0600319 depends on ACPI
Simon Glassa6cee932021-12-01 09:02:36 -0700320 select QFW if QEMU
321 help
322 The Advanced Configuration and Power Interface (ACPI) specification
323 provides an open standard for device configuration and management
324 by the operating system. It defines platform-independent interfaces
325 for configuration and power management monitoring.
326
Patrick Rudolph2f6f8d92024-10-23 15:20:13 +0200327config ACPI_PARKING_PROTOCOL
328 bool "Support ACPI parking protocol method"
329 depends on GENERATE_ACPI_TABLE
330 depends on ARMV8_MULTIENTRY
331 depends on BLOBLIST_TABLES
332 default y if !SEC_FIRMWARE_ARMV8_PSCI && !ARMV8_PSCI
333 help
334 Say Y here to support "ACPI parking protocol" enable method
335 for booting Linux.
336
337 To use this feature, you must do:
338 - Bring secondary CPUs into U-Boot proper in a board-specific
339 manner. This must be done *after* relocation. Otherwise, the
340 secondary CPUs will spin in unprotected memory-area because the
341 master CPU protects the relocated spin code.
342
Simon Glasse2f94ae2017-04-02 09:50:28 -0600343config SPL_TINY_MEMSET
344 bool "Use a very small memset() in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400345 depends on SPL
Simon Glasse2f94ae2017-04-02 09:50:28 -0600346 help
347 The faster memset() is the arch-specific one (if available) enabled
348 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
349 better performance by writing a word at a time. But in very
Chris Packham1c3b7ba2019-01-13 22:13:28 +1300350 size-constrained environments even this may be too big. Enable this
Simon Glasse2f94ae2017-04-02 09:50:28 -0600351 option to reduce code size slightly at the cost of some speed.
352
Philipp Tomsichfefc4ec2017-08-03 22:52:04 +0200353config TPL_TINY_MEMSET
354 bool "Use a very small memset() in TPL"
Tom Rini36a4ca02022-06-08 08:24:39 -0400355 depends on TPL
Philipp Tomsichfefc4ec2017-08-03 22:52:04 +0200356 help
357 The faster memset() is the arch-specific one (if available) enabled
358 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
359 better performance by writing a word at a time. But in very
Chris Packham1c3b7ba2019-01-13 22:13:28 +1300360 size-constrained environments even this may be too big. Enable this
Philipp Tomsichfefc4ec2017-08-03 22:52:04 +0200361 option to reduce code size slightly at the cost of some speed.
362
Boris Brezillon627dc182017-02-27 18:22:05 +0100363config RBTREE
364 bool
365
Nandor Hand5ea84a2017-11-08 15:35:14 +0000366config BITREVERSE
367 bool "Bit reverse library from Linux"
368
Simon Glassbfce7fc2019-04-08 13:20:51 -0600369config TRACE
370 bool "Support for tracing of function calls and timing"
371 imply CMD_TRACE
Simon Glass6b5424a2022-12-21 16:08:26 -0700372 imply TIMER_EARLY
Simon Glassbfce7fc2019-04-08 13:20:51 -0600373 help
374 Enables function tracing within U-Boot. This allows recording of call
375 traces including timing information. The command can write data to
376 memory for exporting for analysis (e.g. using bootchart).
Vincent Stehlé28c23622024-04-11 18:44:02 +0200377 See doc/develop/trace.rst for full details.
Simon Glassbfce7fc2019-04-08 13:20:51 -0600378
Simon Glass445078e2019-04-08 13:20:52 -0600379config TRACE_BUFFER_SIZE
380 hex "Size of trace buffer in U-Boot"
381 depends on TRACE
382 default 0x01000000
383 help
384 Sets the size of the trace buffer in U-Boot. This is allocated from
385 memory during relocation. If this buffer is too small, the trace
386 history will be truncated, with later records omitted.
387
388 If early trace is enabled (i.e. before relocation), this buffer must
389 be large enough to include all the data from the early trace buffer as
390 well, since this is copied over to the main buffer during relocation.
391
392 A trace record is emitted for each function call and each record is
393 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
394 the size is too small then 'trace stats' will show a message saying
395 how many records were dropped due to buffer overflow.
396
Heinrich Schuchardtc1a73792019-06-02 13:30:09 +0200397config TRACE_CALL_DEPTH_LIMIT
398 int "Trace call depth limit"
399 depends on TRACE
400 default 15
401 help
402 Sets the maximum call depth up to which function calls are recorded.
403
Simon Glass445078e2019-04-08 13:20:52 -0600404config TRACE_EARLY
405 bool "Enable tracing before relocation"
406 depends on TRACE
407 help
408 Sometimes it is helpful to trace execution of U-Boot before
409 relocation. This is possible by using a arch-specific, fixed buffer
410 position in memory. Enable this option to start tracing as early as
411 possible after U-Boot starts.
412
413config TRACE_EARLY_SIZE
414 hex "Size of early trace buffer in U-Boot"
415 depends on TRACE_EARLY
416 default 0x00100000
417 help
418 Sets the size of the early trace buffer in bytes. This is used to hold
419 tracing information before relocation.
420
Heinrich Schuchardtc1a73792019-06-02 13:30:09 +0200421config TRACE_EARLY_CALL_DEPTH_LIMIT
422 int "Early trace call depth limit"
423 depends on TRACE_EARLY
Simon Glass971574d2023-01-15 14:15:44 -0700424 default 15
Heinrich Schuchardtc1a73792019-06-02 13:30:09 +0200425 help
426 Sets the maximum call depth up to which function calls are recorded
427 during early tracing.
428
Simon Glass445078e2019-04-08 13:20:52 -0600429config TRACE_EARLY_ADDR
430 hex "Address of early trace buffer in U-Boot"
431 depends on TRACE_EARLY
Sughosh Ganu3f768682024-08-26 17:29:32 +0530432 default 0x00200000
Simon Glass445078e2019-04-08 13:20:52 -0600433 help
434 Sets the address of the early trace buffer in U-Boot. This memory
435 must be accessible before relocation.
436
437 A trace record is emitted for each function call and each record is
438 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
439 the size is too small then the message which says the amount of early
440 data being coped will the the same as the
441
Loic Poulain12797e62021-11-25 18:16:14 +0100442config CIRCBUF
443 bool "Enable circular buffer support"
444
Michal Simekdd5000ef2024-04-16 08:55:16 +0200445source "lib/dhry/Kconfig"
Simon Glass99dbe4b2015-06-23 15:38:23 -0600446
Raymond Mao87010c32024-10-03 14:50:15 -0700447menu "Alternative crypto libraries"
448source lib/mbedtls/Kconfig
449endmenu
450
Simon Glass528fdd12017-04-26 22:27:49 -0600451menu "Security support"
452
453config AES
454 bool "Support the AES algorithm"
455 help
456 This provides a means to encrypt and decrypt data using the AES
457 (Advanced Encryption Standard). This algorithm uses a symetric key
458 and is widely used as a streaming cipher. Different key lengths are
459 supported by the algorithm but only a 128-bit key is supported at
460 present.
461
Michal Simekdd5000ef2024-04-16 08:55:16 +0200462source "lib/ecdsa/Kconfig"
463source "lib/rsa/Kconfig"
464source "lib/crypto/Kconfig"
465source "lib/crypt/Kconfig"
Ruchika Gupta2c3822e2015-01-23 16:01:51 +0530466
Simon Glass350497c2015-08-22 18:31:19 -0600467config TPM
468 bool "Trusted Platform Module (TPM) Support"
Simon Glasscf294b02015-10-03 06:39:36 -0600469 depends on DM
Sughosh Ganu9737fab2022-07-22 21:32:04 +0530470 imply DM_RNG
Eddie James8ed7bb32023-10-24 10:43:49 -0500471 select SHA1
Simon Glass350497c2015-08-22 18:31:19 -0600472 help
473 This enables support for TPMs which can be used to provide security
474 features for your board. The TPM can be connected via LPC or I2C
475 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
476 command to interactive the TPM. Driver model support is provided
477 for the low-level TPM interface, but only one TPM is supported at
478 a time by the TPM library.
Ilias Apalodimas1e665f92024-06-23 14:48:18 +0300479 For size reasons only SHA1 is selected which is supported on TPM1.2.
480 If you want a fully functional TPM enable all hashing algorithms.
481 If you enabled measured boot all hashing algorithms are selected.
Simon Glass350497c2015-08-22 18:31:19 -0600482
Simon Glass93a45b12018-10-01 12:22:19 -0600483config SPL_TPM
484 bool "Trusted Platform Module (TPM) Support in SPL"
485 depends on SPL_DM
Simon Glass2b95b492023-01-07 14:57:20 -0700486 imply SPL_CRC8
Simon Glass93a45b12018-10-01 12:22:19 -0600487 help
488 This enables support for TPMs which can be used to provide security
489 features for your board. The TPM can be connected via LPC or I2C
490 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
491 command to interactive the TPM. Driver model support is provided
492 for the low-level TPM interface, but only one TPM is supported at
493 a time by the TPM library.
494
495config TPL_TPM
496 bool "Trusted Platform Module (TPM) Support in TPL"
497 depends on TPL_DM
498 help
499 This enables support for TPMs which can be used to provide security
500 features for your board. The TPM can be connected via LPC or I2C
501 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
502 command to interactive the TPM. Driver model support is provided
503 for the low-level TPM interface, but only one TPM is supported at
504 a time by the TPM library.
505
Simon Glasse7ca7da2022-04-30 00:56:53 -0600506config VPL_TPM
507 bool "Trusted Platform Module (TPM) Support in VPL"
508 depends on VPL_DM
509 help
510 This enables support for TPMs which can be used to provide security
511 features for your board. The TPM can be connected via LPC or I2C
512 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
513 command to interactive the TPM. Driver model support is provided
514 for the low-level TPM interface, but only one TPM is supported at
515 a time by the TPM library.
516
Simon Glass528fdd12017-04-26 22:27:49 -0600517endmenu
518
Igor Opaniuk525d1d82018-06-03 21:56:37 +0300519menu "Android Verified Boot"
520
521config LIBAVB
522 bool "Android Verified Boot 2.0 support"
523 depends on ANDROID_BOOT_IMAGE
Igor Opaniuk525d1d82018-06-03 21:56:37 +0300524 help
525 This enables support of Android Verified Boot 2.0 which can be used
526 to assure the end user of the integrity of the software running on a
527 device. Introduces such features as boot chain of trust, rollback
528 protection etc.
529
530endmenu
531
gaurav ranaef201592015-02-20 12:51:46 +0530532menu "Hashing Support"
533
Qu Wenruob98e8a22021-12-27 14:12:07 +0800534config BLAKE2
535 bool "Enable BLAKE2 support"
536 help
537 This option enables support of hashing using BLAKE2B algorithm.
538 The hash is calculated in software.
539 The BLAKE2 algorithm produces a hash value (digest) between 1 and
540 64 bytes.
541
gaurav ranaef201592015-02-20 12:51:46 +0530542config SHA1
543 bool "Enable SHA1 support"
544 help
545 This option enables support of hashing using SHA1 algorithm.
546 The hash is calculated in software.
547 The SHA1 algorithm produces a 160-bit (20-byte) hash value
548 (digest).
549
550config SHA256
551 bool "Enable SHA256 support"
552 help
553 This option enables support of hashing using SHA256 algorithm.
554 The hash is calculated in software.
555 The SHA256 algorithm produces a 256-bit (32-byte) hash value
556 (digest).
557
Reuben Dowle1908fd92020-04-16 17:36:52 +1200558config SHA512
559 bool "Enable SHA512 support"
Manorit Chawdhrya58132a2023-07-14 11:22:39 +0530560 default y if TI_SECURE_DEVICE && FIT_SIGNATURE
Reuben Dowle1908fd92020-04-16 17:36:52 +1200561 help
562 This option enables support of hashing using SHA512 algorithm.
563 The hash is calculated in software.
564 The SHA512 algorithm produces a 512-bit (64-byte) hash value
565 (digest).
566
567config SHA384
568 bool "Enable SHA384 support"
Alexandru Gagniuc5df5d692021-09-02 19:54:18 -0500569 select SHA512
Reuben Dowle1908fd92020-04-16 17:36:52 +1200570 help
571 This option enables support of hashing using SHA384 algorithm.
Alexandru Gagniuc5df5d692021-09-02 19:54:18 -0500572 The hash is calculated in software. This is also selects SHA512,
573 because these implementations share the bulk of the code..
Reuben Dowle1908fd92020-04-16 17:36:52 +1200574 The SHA384 algorithm produces a 384-bit (48-byte) hash value
575 (digest).
576
gaurav ranaef201592015-02-20 12:51:46 +0530577config SHA_HW_ACCEL
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200578 bool "Enable hardware acceleration for SHA hash functions"
gaurav ranaef201592015-02-20 12:51:46 +0530579 help
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200580 This option enables hardware acceleration for the SHA1 and SHA256
581 hashing algorithms. This affects the 'hash' command and also the
582 hash_lookup_algo() function.
583
Simon Glassf7b37c22021-09-25 19:43:17 -0600584if SPL
585
Oleksandr Suvorov15a23ca2023-08-03 19:05:40 +0300586config SPL_CRC32
587 bool "Enable CRC32 support in SPL"
588 default y if SPL_LEGACY_IMAGE_SUPPORT || SPL_EFI_PARTITION
589 default y if SPL_ENV_SUPPORT || TPL_BLOBLIST
590 help
591 This option enables support of hashing using CRC32 algorithm.
592 The CRC32 algorithm produces 32-bit checksum value. For FIT
593 images, this is the least secure type of checksum, suitable for
594 detected accidental image corruption. For secure applications you
595 should consider SHA256 or SHA384.
596
Simon Glassf7b37c22021-09-25 19:43:17 -0600597config SPL_SHA1
598 bool "Enable SHA1 support in SPL"
599 default y if SHA1
600 help
601 This option enables support of hashing using SHA1 algorithm.
602 The hash is calculated in software.
603 The SHA1 algorithm produces a 160-bit (20-byte) hash value
604 (digest).
605
606config SPL_SHA256
607 bool "Enable SHA256 support in SPL"
608 default y if SHA256
609 help
610 This option enables support of hashing using SHA256 algorithm.
611 The hash is calculated in software.
612 The SHA256 algorithm produces a 256-bit (32-byte) hash value
613 (digest).
614
615config SPL_SHA512
616 bool "Enable SHA512 support in SPL"
617 default y if SHA512
618 help
619 This option enables support of hashing using SHA512 algorithm.
620 The hash is calculated in software.
621 The SHA512 algorithm produces a 512-bit (64-byte) hash value
622 (digest).
623
624config SPL_SHA384
625 bool "Enable SHA384 support in SPL"
626 default y if SHA384
627 select SPL_SHA512
628 help
629 This option enables support of hashing using SHA384 algorithm.
630 The hash is calculated in software. This is also selects SHA512,
631 because these implementations share the bulk of the code..
632 The SHA384 algorithm produces a 384-bit (48-byte) hash value
633 (digest).
634
Simon Glass383dd572021-09-25 19:43:18 -0600635config SPL_SHA_HW_ACCEL
636 bool "Enable hardware acceleration for SHA hash functions"
637 default y if SHA_HW_ACCEL
638 help
639 This option enables hardware acceleration for the SHA1 and SHA256
640 hashing algorithms. This affects the 'hash' command and also the
641 hash_lookup_algo() function.
642
643config SPL_SHA_PROG_HW_ACCEL
644 bool "Enable Progressive hashing support using hardware in SPL"
645 depends on SHA_PROG_HW_ACCEL
646 default y
647 help
648 This option enables hardware-acceleration for SHA progressive
649 hashing.
650 Data can be streamed in a block at a time and the hashing is
651 performed in hardware.
652
Simon Glassf7b37c22021-09-25 19:43:17 -0600653endif
654
Simon Glass540883b2023-02-22 09:34:01 -0700655config VPL_SHA1
656 bool "Enable SHA1 support in VPL"
657 depends on VPL
658 default y if SHA1
659 help
660 This option enables support of hashing using SHA1 algorithm.
661 The hash is calculated in software.
662 The SHA1 algorithm produces a 160-bit (20-byte) hash value
663 (digest).
664
665config VPL_SHA256
666 bool "Enable SHA256 support in VPL"
667 depends on VPL
668 default y if SHA256
669 help
670 This option enables support of hashing using SHA256 algorithm.
671 The hash is calculated in software.
672 The SHA256 algorithm produces a 256-bit (32-byte) hash value
673 (digest).
674
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200675if SHA_HW_ACCEL
676
677config SHA512_HW_ACCEL
678 bool "Enable hardware acceleration for SHA512"
Alexandru Gagniuc5df5d692021-09-02 19:54:18 -0500679 depends on SHA512
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200680 help
681 This option enables hardware acceleration for the SHA384 and SHA512
682 hashing algorithms. This affects the 'hash' command and also the
683 hash_lookup_algo() function.
gaurav ranaef201592015-02-20 12:51:46 +0530684
685config SHA_PROG_HW_ACCEL
686 bool "Enable Progressive hashing support using hardware"
gaurav ranaef201592015-02-20 12:51:46 +0530687 help
Joel Stanley92efc1f2021-02-17 13:50:42 +1030688 This option enables hardware-acceleration for SHA progressive
689 hashing.
690 Data can be streamed in a block at a time and the hashing is
691 performed in hardware.
Andre Przywaraf0fa1132017-03-15 01:19:05 +0000692
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200693endif
694
Andre Przywaraf0fa1132017-03-15 01:19:05 +0000695config MD5
Simon Glassd33d0db2020-05-06 08:03:56 -0600696 bool "Support MD5 algorithm"
697 help
698 This option enables MD5 support. MD5 is an algorithm designed
699 in 1991 that produces a 16-byte digest (or checksum) from its input
700 data. It has a number of vulnerabilities which preclude its use in
701 security applications, but it can be useful for providing a quick
702 checksum of a block of data.
703
704config SPL_MD5
705 bool "Support MD5 algorithm in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400706 depends on SPL
Simon Glassd33d0db2020-05-06 08:03:56 -0600707 help
708 This option enables MD5 support in SPL. MD5 is an algorithm designed
709 in 1991 that produces a 16-byte digest (or checksum) from its input
710 data. It has a number of vulnerabilities which preclude its use in
711 security applications, but it can be useful for providing a quick
712 checksum of a block of data.
Andre Przywaraf0fa1132017-03-15 01:19:05 +0000713
Simon Glass2b95b492023-01-07 14:57:20 -0700714config CRC8
715 def_bool y
716 help
717 Enables CRC8 support in U-Boot. This is normally required. CRC8 is
718 a simple and fast checksumming algorithm which does a bytewise
719 checksum with feedback to produce an 8-bit result. The code is small
720 and it does not require a lookup table (unlike CRC32).
721
722config SPL_CRC8
723 bool "Support CRC8 in SPL"
724 depends on SPL
725 help
726 Enables CRC8 support in SPL. This is not normally required. CRC8 is
727 a simple and fast checksumming algorithm which does a bytewise
728 checksum with feedback to produce an 8-bit result. The code is small
729 and it does not require a lookup table (unlike CRC32).
730
Sean Anderson01349c12023-10-14 16:47:49 -0400731config SPL_CRC16
732 bool "Support CRC16 in SPL"
733 depends on SPL
734 help
735 Enables CRC16 support in SPL. This is not normally required.
736
Simon Glass577226c2021-09-25 19:43:24 -0600737config CRC32
738 def_bool y
739 help
740 Enables CRC32 support in U-Boot. This is normally required.
741
Marek Behúncdccc032017-09-03 17:00:23 +0200742config CRC32C
743 bool
744
Marek Behúnb139a7f2019-04-29 22:40:43 +0200745config XXHASH
746 bool
747
gaurav ranaef201592015-02-20 12:51:46 +0530748endmenu
749
Julius Wernerf41a3ca2015-10-06 20:03:53 -0700750menu "Compression Support"
751
752config LZ4
753 bool "Enable LZ4 decompression support"
754 help
755 If this option is set, support for LZ4 compressed images
756 is included. The LZ4 algorithm can run in-place as long as the
757 compressed image is loaded to the end of the output buffer, and
758 trades lower compression ratios for much faster decompression.
Patrick Delaunaycd831af2021-03-10 10:16:28 +0100759
Julius Wernerf41a3ca2015-10-06 20:03:53 -0700760 NOTE: This implements the release version of the LZ4 frame
761 format as generated by default by the 'lz4' command line tool.
762 This is not the same as the outdated, less efficient legacy
763 frame format currently (2015) implemented in the Linux kernel
764 (generated by 'lz4 -l'). The two formats are incompatible.
765
Simon Glass264aa5f2017-05-17 03:25:42 -0600766config LZMA
767 bool "Enable LZMA decompression support"
768 help
769 This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
770 a dictionary compression algorithm that provides a high compression
771 ratio and fairly fast decompression speed. See also
772 CONFIG_CMD_LZMADEC which provides a decode command.
773
Boris Brezillonaa57d0f2017-02-27 18:22:06 +0100774config LZO
Tom Rinic20bb732017-07-22 18:36:16 -0400775 bool "Enable LZO decompression support"
776 help
Oleksandr Suvorov30a4c312021-09-01 16:05:08 +0300777 This enables support for the LZO compression algorithm.
York Suna6945fe2017-08-15 11:14:43 -0700778
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100779config GZIP
Heiko Schocherb93cc602019-04-29 08:59:38 +0200780 bool "Enable gzip decompression support"
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100781 select ZLIB
782 default y
783 help
784 This enables support for GZIP compression algorithm.
785
Joao Marcos Costaae8abb12020-07-30 15:33:49 +0200786config ZLIB_UNCOMPRESS
787 bool "Enables zlib's uncompress() functionality"
788 help
789 This enables an extra zlib functionality: the uncompress() function,
790 which decompresses data from a buffer into another, knowing their
791 sizes. Unlike gunzip(), there is no header parsing.
792
Michael Walle3a6e3512020-05-22 14:07:36 +0200793config GZIP_COMPRESSED
794 bool
795 select ZLIB
796
Atish Patra1fa79622020-03-05 16:24:21 -0800797config BZIP2
798 bool "Enable bzip2 decompression support"
799 help
800 This enables support for BZIP2 compression algorithm.
801
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100802config ZLIB
803 bool
804 default y
805 help
806 This enables ZLIB compression lib.
807
Marek Behúne87e2002019-04-29 22:40:44 +0200808config ZSTD
809 bool "Enable Zstandard decompression support"
810 select XXHASH
811 help
812 This enables Zstandard decompression library.
813
Brandon Maierdbe88da2023-01-12 10:27:45 -0600814if ZSTD
815
816config ZSTD_LIB_MINIFY
817 bool "Minify Zstandard code"
818 default y
819 help
820 This disables various optional components and changes the
821 compilation flags to prioritize space-saving.
822
823 For detailed info, see zstd's lib/README.md
824
825 https://github.com/facebook/zstd/blob/dev/lib/README.md
826
827endif
828
Simon Glass1af8b152023-02-22 09:33:54 -0700829config SPL_BZIP2
830 bool "Enable bzip2 decompression support for SPL build"
831 depends on SPL
832 help
833 This enables support for bzip2 compression algorithm for SPL boot.
834
Simon Glasse107bcd2018-11-06 15:21:30 -0700835config SPL_LZ4
836 bool "Enable LZ4 decompression support in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400837 depends on SPL
Simon Glasse107bcd2018-11-06 15:21:30 -0700838 help
Marcin Juszkiewicza360c2c2020-05-26 19:07:15 +0200839 This enables support for the LZ4 decompression algorithm in SPL. LZ4
Simon Glasse107bcd2018-11-06 15:21:30 -0700840 is a lossless data compression algorithm that is focused on
841 fast compression and decompression speed. It belongs to the LZ77
842 family of byte-oriented compression schemes.
843
Simon Glass2d311212024-12-19 11:29:03 -0700844config TPL_LZ4
845 bool "Enable LZ4 decompression support in TPL"
846 depends on TPL
847 help
848 This enables support for the LZ4 decompression algorithm in TPL. LZ4
849 is a lossless data compression algorithm that is focused on
850 fast compression and decompression speed. It belongs to the LZ77
851 family of byte-oriented compression schemes.
852
853config VPL_LZ4
854 bool "Enable LZ4 decompression support in VPL"
855 depends on VPL
856 help
857 This enables support for the LZ4 decompression algorithm in VPL. LZ4
858 is a lossless data compression algorithm that is focused on
859 fast compression and decompression speed. It belongs to the LZ77
860 family of byte-oriented compression schemes.
861
developer6a4e1d32020-04-21 09:28:38 +0200862config SPL_LZMA
863 bool "Enable LZMA decompression support for SPL build"
Tom Rini0a83cc22022-06-10 23:03:09 -0400864 depends on SPL
developer6a4e1d32020-04-21 09:28:38 +0200865 help
Marcin Juszkiewicza360c2c2020-05-26 19:07:15 +0200866 This enables support for LZMA compression algorithm for SPL boot.
developer6a4e1d32020-04-21 09:28:38 +0200867
Simon Glass2d311212024-12-19 11:29:03 -0700868config TPL_LZMA
869 bool "Enable LZMA decompression support for TPL build"
870 depends on TPL
871 help
872 This enables support for LZMA compression algorithm for TPL boot.
873
Simon Glasse7ca7da2022-04-30 00:56:53 -0600874config VPL_LZMA
875 bool "Enable LZMA decompression support for VPL build"
876 default y if LZMA
877 help
878 This enables support for LZMA compression algorithm for VPL boot.
879
Jean-Jacques Hiblotdbde2882017-09-15 12:57:30 +0200880config SPL_LZO
881 bool "Enable LZO decompression support in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400882 depends on SPL
Jean-Jacques Hiblotdbde2882017-09-15 12:57:30 +0200883 help
884 This enables support for LZO compression algorithm in the SPL.
885
York Suna6945fe2017-08-15 11:14:43 -0700886config SPL_GZIP
887 bool "Enable gzip decompression support for SPL build"
888 select SPL_ZLIB
889 help
Oleksandr Suvorov30a4c312021-09-01 16:05:08 +0300890 This enables support for the GZIP compression algorithm for SPL boot.
York Suna6945fe2017-08-15 11:14:43 -0700891
Simon Glass2d311212024-12-19 11:29:03 -0700892config TPL_GZIP
893 bool "Enable gzip decompression support for SPL build"
894 select TPL_ZLIB
895 help
896 This enables support for the GZIP compression algorithm for TPL
897
York Suna6945fe2017-08-15 11:14:43 -0700898config SPL_ZLIB
899 bool
900 help
901 This enables compression lib for SPL boot.
902
Simon Glass2d311212024-12-19 11:29:03 -0700903config TPL_ZLIB
904 bool
905 help
906 This enables compression lib for TPL
907
Marek Behúne87e2002019-04-29 22:40:44 +0200908config SPL_ZSTD
909 bool "Enable Zstandard decompression support in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400910 depends on SPL
Marek Behúne87e2002019-04-29 22:40:44 +0200911 select XXHASH
912 help
913 This enables Zstandard decompression library in the SPL.
914
Julius Wernerf41a3ca2015-10-06 20:03:53 -0700915endmenu
916
Przemyslaw Marczak37550132015-04-20 20:07:40 +0200917config ERRNO_STR
918 bool "Enable function for getting errno-related string message"
919 help
920 The function errno_str(int errno), returns a pointer to the errno
921 corresponding text message:
922 - if errno is null or positive number - a pointer to "Success" message
923 - if errno is negative - a pointer to errno related message
924
Alexey Brodkin2d2fa492018-06-05 17:17:57 +0300925config HEXDUMP
926 bool "Enable hexdump"
927 help
928 This enables functions for printing dumps of binary data.
929
Simon Glassa37fd4d2020-09-12 11:13:35 -0600930config SPL_HEXDUMP
931 bool "Enable hexdump in SPL"
Heinrich Schuchardt11df0722021-07-24 17:35:46 +0200932 depends on SPL && HEXDUMP
Simon Glassa37fd4d2020-09-12 11:13:35 -0600933 help
934 This enables functions for printing dumps of binary data in
935 SPL.
936
Sean Anderson3b4a6f52020-10-27 19:55:36 -0400937config GETOPT
938 bool "Enable getopt"
939 help
940 This enables functions for parsing command-line options.
941
Simon Glassa66c5412016-02-22 22:55:42 -0700942config OF_LIBFDT
943 bool "Enable the FDT library"
944 default y if OF_CONTROL
945 help
946 This enables the FDT library (libfdt). It provides functions for
947 accessing binary device tree images in memory, such as adding and
Anatolij Gustschinda707d42017-08-18 17:58:51 +0200948 removing nodes and properties, scanning through the tree and finding
Simon Glassa66c5412016-02-22 22:55:42 -0700949 particular compatible nodes. The library operates on a flattened
950 version of the device tree.
951
Simon Glassc48044d2019-10-27 09:47:40 -0600952config OF_LIBFDT_ASSUME_MASK
953 hex "Mask of conditions to assume for libfdt"
954 depends on OF_LIBFDT || FIT
Tom Rinif18679c2023-08-02 11:09:43 -0400955 default 0x0
Simon Glassc48044d2019-10-27 09:47:40 -0600956 help
957 Use this to change the assumptions made by libfdt about the
958 device tree it is working with. A value of 0 means that no assumptions
959 are made, and libfdt is able to deal with malicious data. A value of
960 0xff means all assumptions are made and any invalid data may cause
961 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
962
Maxime Ripard9e901ce2016-07-05 10:26:44 +0200963config OF_LIBFDT_OVERLAY
964 bool "Enable the FDT library overlay support"
Tom Rinic1e49ba2018-05-08 08:52:17 -0400965 depends on OF_LIBFDT
Praneeth Bajjuri7b71a012018-04-25 16:03:23 -0500966 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
Maxime Ripard9e901ce2016-07-05 10:26:44 +0200967 help
968 This enables the FDT library (libfdt) overlay support.
969
Tom Rinid2cd4312022-08-02 07:33:27 -0400970config SYS_FDT_PAD
971 hex "Maximum size of the FDT memory area passeed to the OS"
972 depends on OF_LIBFDT
973 default 0x13000 if FMAN_ENET || QE || U_QE
974 default 0x3000
975 help
976 During OS boot, we allocate a region of memory within the bootmap
977 for the FDT. This is the size that we will expand the FDT that we
978 are using will be extended to be, in bytes.
979
Simon Glass8b426922016-02-22 22:55:45 -0700980config SPL_OF_LIBFDT
981 bool "Enable the FDT library for SPL"
Simon Glasse7ca7da2022-04-30 00:56:53 -0600982 depends on SPL_LIBGENERIC_SUPPORT
Simon Glass8b426922016-02-22 22:55:45 -0700983 default y if SPL_OF_CONTROL
984 help
985 This enables the FDT library (libfdt). It provides functions for
986 accessing binary device tree images in memory, such as adding and
Anatolij Gustschinda707d42017-08-18 17:58:51 +0200987 removing nodes and properties, scanning through the tree and finding
Simon Glass8b426922016-02-22 22:55:45 -0700988 particular compatible nodes. The library operates on a flattened
989 version of the device tree.
990
Simon Glassc48044d2019-10-27 09:47:40 -0600991config SPL_OF_LIBFDT_ASSUME_MASK
992 hex "Mask of conditions to assume for libfdt"
Tom Rini0a83cc22022-06-10 23:03:09 -0400993 depends on SPL_OF_LIBFDT || (FIT && SPL)
Simon Glassc48044d2019-10-27 09:47:40 -0600994 default 0xff
995 help
996 Use this to change the assumptions made by libfdt in SPL about the
997 device tree it is working with. A value of 0 means that no assumptions
998 are made, and libfdt is able to deal with malicious data. A value of
999 0xff means all assumptions are made and any invalid data may cause
1000 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
1001
Simon Glassca8ec4b2018-10-01 12:22:21 -06001002config TPL_OF_LIBFDT
1003 bool "Enable the FDT library for TPL"
Simon Glasse7ca7da2022-04-30 00:56:53 -06001004 depends on TPL_LIBGENERIC_SUPPORT
Simon Glassca8ec4b2018-10-01 12:22:21 -06001005 default y if TPL_OF_CONTROL
1006 help
1007 This enables the FDT library (libfdt). It provides functions for
1008 accessing binary device tree images in memory, such as adding and
1009 removing nodes and properties, scanning through the tree and finding
1010 particular compatible nodes. The library operates on a flattened
1011 version of the device tree.
1012
Simon Glassc48044d2019-10-27 09:47:40 -06001013config TPL_OF_LIBFDT_ASSUME_MASK
1014 hex "Mask of conditions to assume for libfdt"
Tom Rini36a4ca02022-06-08 08:24:39 -04001015 depends on TPL_OF_LIBFDT || (FIT && TPL)
Simon Glassc48044d2019-10-27 09:47:40 -06001016 default 0xff
1017 help
1018 Use this to change the assumptions made by libfdt in TPL about the
1019 device tree it is working with. A value of 0 means that no assumptions
1020 are made, and libfdt is able to deal with malicious data. A value of
1021 0xff means all assumptions are made and any invalid data may cause
1022 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
1023
Simon Glasse7ca7da2022-04-30 00:56:53 -06001024config VPL_OF_LIBFDT
1025 bool "Enable the FDT library for VPL"
Tom Rini7fb323b2022-06-08 08:24:40 -04001026 depends on VPL
Simon Glasse7ca7da2022-04-30 00:56:53 -06001027 default y if VPL_OF_CONTROL && !VPL_OF_PLATDATA
1028 help
1029 This enables the FDT library (libfdt). It provides functions for
1030 accessing binary device tree images in memory, such as adding and
1031 removing nodes and properties, scanning through the tree and finding
1032 particular compatible nodes. The library operates on a flattened
1033 version of the device tree.
1034
1035config VPL_OF_LIBFDT_ASSUME_MASK
1036 hex "Mask of conditions to assume for libfdt"
Tom Rini7fb323b2022-06-08 08:24:40 -04001037 depends on VPL_OF_LIBFDT || (FIT && VPL)
Simon Glasse7ca7da2022-04-30 00:56:53 -06001038 default 0xff
1039 help
1040 Use this to change the assumptions made by libfdt in SPL about the
1041 device tree it is working with. A value of 0 means that no assumptions
1042 are made, and libfdt is able to deal with malicious data. A value of
1043 0xff means all assumptions are made and any invalid data may cause
1044 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
1045
Alexander Graffb228082016-08-19 01:23:23 +02001046menu "System tables"
Alexander Graf66f96e12016-08-19 01:23:29 +02001047 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
Alexander Graffb228082016-08-19 01:23:23 +02001048
Simon Glass5d093f32020-11-04 09:57:25 -07001049config BLOBLIST_TABLES
1050 bool "Put tables in a bloblist"
Patrick Rudolphad392d52024-10-23 15:20:07 +02001051 depends on BLOBLIST
1052 default y if (ARM && EFI_LOADER && GENERATE_ACPI_TABLE)
1053 default n
Simon Glass5d093f32020-11-04 09:57:25 -07001054 help
Patrick Rudolphad392d52024-10-23 15:20:07 +02001055 On x86 normally tables are placed at address 0xf0000 and can be up
1056 to 64KB long. With this option, tables are instead placed in the
1057 bloblist with a pointer from 0xf0000. The size can then be larger
1058 and the tables can be placed high in memory.
1059 On other architectures the tables are always placed in high memory.
Simon Glass5d093f32020-11-04 09:57:25 -07001060
Alexander Graffb228082016-08-19 01:23:23 +02001061config GENERATE_SMBIOS_TABLE
1062 bool "Generate an SMBIOS (System Management BIOS) table"
Simon Glass5059dbe2023-09-19 21:00:13 -06001063 depends on SMBIOS
Alexander Graffb228082016-08-19 01:23:23 +02001064 default y
Alexander Graffb228082016-08-19 01:23:23 +02001065 help
1066 The System Management BIOS (SMBIOS) specification addresses how
1067 motherboard and system vendors present management information about
1068 their products in a standard format by extending the BIOS interface
1069 on Intel architecture systems.
1070
1071 Check http://www.dmtf.org/standards/smbios for details.
1072
Tom Rinid0dca222023-11-20 15:17:23 -05001073 See also SYSINFO_SMBIOS which allows SMBIOS values to be provided in
Simon Glass052a03e2020-11-05 06:32:11 -07001074 the devicetree.
1075
Simon Glasse70648e2023-09-14 10:55:39 -06001076endmenu
1077
Tero Kristocfbe15c2021-06-11 11:45:02 +03001078config LIB_RATIONAL
1079 bool "enable continued fraction calculation routines"
1080
1081config SPL_LIB_RATIONAL
1082 bool "enable continued fraction calculation routines for SPL"
1083 depends on SPL
1084
AKASHI Takahirof7025262019-11-13 09:44:53 +09001085config ASN1_COMPILER
1086 bool
Philippe Reynes2aba9442022-03-28 22:56:54 +02001087 help
1088 ASN.1 (Abstract Syntax Notation One) is a standard interface
1089 description language for defining data structures that can be
1090 serialized and deserialized in a cross-platform way. It is
1091 broadly used in telecommunications and computer networking,
1092 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1093 This option enables the support of the asn1 compiler.
AKASHI Takahirof7025262019-11-13 09:44:53 +09001094
AKASHI Takahiro3a888712019-11-13 09:44:55 +09001095config ASN1_DECODER
1096 bool
1097 help
Philippe Reynes2aba9442022-03-28 22:56:54 +02001098 ASN.1 (Abstract Syntax Notation One) is a standard interface
1099 description language for defining data structures that can be
1100 serialized and deserialized in a cross-platform way. It is
1101 broadly used in telecommunications and computer networking,
1102 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1103 This option enables the support of the asn1 decoder.
AKASHI Takahiro3a888712019-11-13 09:44:55 +09001104
Philippe Reynescf538b52022-03-28 22:56:56 +02001105config SPL_ASN1_DECODER
1106 bool
1107 help
1108 ASN.1 (Abstract Syntax Notation One) is a standard interface
1109 description language for defining data structures that can be
1110 serialized and deserialized in a cross-platform way. It is
1111 broadly used in telecommunications and computer networking,
1112 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1113 This option enables the support of the asn1 decoder in the SPL.
1114
AKASHI Takahiro54923642019-11-13 09:44:57 +09001115config OID_REGISTRY
1116 bool
1117 help
Philippe Reynese35c3a22022-03-28 22:56:55 +02001118 In computing, object identifiers or OIDs are an identifier mechanism
1119 standardized by the International Telecommunication Union (ITU) and
1120 ISO/IEC for naming any object, concept, or "thing" with a globally
1121 unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
AKASHI Takahiro54923642019-11-13 09:44:57 +09001122 Enable fast lookup object identifier registry.
1123
Philippe Reynescf538b52022-03-28 22:56:56 +02001124config SPL_OID_REGISTRY
1125 bool
1126 help
1127 In computing, object identifiers or OIDs are an identifier mechanism
1128 standardized by the International Telecommunication Union (ITU) and
1129 ISO/IEC for naming any object, concept, or "thing" with a globally
1130 unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
1131 Enable fast lookup object identifier registry in the SPL.
1132
Simon Glass5059dbe2023-09-19 21:00:13 -06001133config SMBIOS
1134 bool "SMBIOS support"
1135 depends on X86 || EFI_LOADER
1136 default y
Simon Glassaadec122023-09-20 07:29:51 -06001137 select LAST_STAGE_INIT
Simon Glass5059dbe2023-09-19 21:00:13 -06001138 help
1139 Indicates that this platform can support System Management BIOS
1140 (SMBIOS) tables. These provide various pieces of information about
1141 the board, such as the manufacturer and the model name.
1142
1143 See GENERATE_SMBIOS_TABLE which controls whether U-Boot actually
1144 creates these tables, rather than them coming from a previous firmware
1145 stage.
1146
Christian Gmeiner19859982020-11-03 15:34:51 +01001147config SMBIOS_PARSER
1148 bool "SMBIOS parser"
1149 help
1150 A simple parser for SMBIOS data.
1151
Michal Simekdd5000ef2024-04-16 08:55:16 +02001152source "lib/optee/Kconfig"
Simon Glass9539e692015-07-31 09:31:36 -06001153
Thierry Reding52c7f1f32019-03-21 19:10:04 +01001154config TEST_FDTDEC
1155 bool "enable fdtdec test"
1156 depends on OF_LIBFDT
1157
AKASHI Takahiro51ba5222019-11-13 09:44:49 +09001158config LIB_DATE
1159 bool
1160
Keerthy76f361a2020-02-12 13:55:03 +05301161config LIB_ELF
1162 bool
1163 help
Patrick Delaunayfb67df82021-01-04 15:33:28 +01001164 Support basic elf loading/validating functions.
1165 This supports for 32 bit and 64 bit versions.
Keerthy76f361a2020-02-12 13:55:03 +05301166
Patrick Delaunayd62063d2021-03-10 10:16:25 +01001167config LMB
1168 bool "Enable the logical memory blocks library (lmb)"
Tom Rini53320122022-04-06 09:21:25 -04001169 default y if ARC || ARM || M68K || MICROBLAZE || MIPS || \
Patrick Delaunayd62063d2021-03-10 10:16:25 +01001170 NIOS2 || PPC || RISCV || SANDBOX || SH || X86 || XTENSA
Sughosh Ganuad3b6e92024-08-26 17:29:29 +05301171 select ARCH_MISC_INIT if PPC
Patrick Delaunayd62063d2021-03-10 10:16:25 +01001172 help
Sughosh Ganu69db78f2024-08-26 17:29:21 +05301173 Support the library logical memory blocks. This will require
1174 a malloc() implementation for defining the data structures
1175 needed for maintaining the LMB memory map.
1176
1177config SPL_LMB
1178 bool "Enable LMB module for SPL"
1179 depends on SPL && SPL_FRAMEWORK && SPL_SYS_MALLOC
1180 help
1181 Enable support for Logical Memory Block library routines in
1182 SPL. This will require a malloc() implementation for defining
1183 the data structures needed for maintaining the LMB memory map.
Patrick Delaunayd62063d2021-03-10 10:16:25 +01001184
Sughosh Ganu1a36d442024-10-15 21:07:11 +05301185config LMB_ARCH_MEM_MAP
1186 bool "Add an architecture specific memory map"
1187 depends on LMB
Sughosh Ganu526eebd2024-10-15 21:07:13 +05301188 default y if FSL_LAYERSCAPE || X86
Sughosh Ganu1a36d442024-10-15 21:07:11 +05301189 help
1190 Some architectures have special or unique aspects which need
1191 consideration when adding memory ranges to the list of available
1192 memory map. Enable this config in such scenarios which allow
1193 architectures and boards to define their own memory map.
1194
1195config SPL_LMB_ARCH_MEM_MAP
1196 bool "Add an architecture specific memory map"
1197 depends on SPL_LMB
1198 help
1199 Some architectures have special or unique scenarios which need
1200 consideration when adding memory ranges to the list of available
1201 memory map. Enable this config in such scenarios which allow
1202 architectures and boards to define their own memory map.
1203
Simon Glass42d97e52022-12-21 16:08:28 -07001204config PHANDLE_CHECK_SEQ
1205 bool "Enable phandle check while getting sequence number"
1206 help
1207 When there are multiple device tree nodes with same name,
Anand Moon6c368f42024-06-23 23:10:21 +05301208 enable this config option to distinguish them using
Simon Glass42d97e52022-12-21 16:08:28 -07001209 phandles in fdtdec_get_alias_seq() function.
1210
Eugen Hristevdb6bbcb2022-01-04 18:20:19 +02001211endmenu
Sughosh Ganu1cadae22022-10-21 18:16:03 +05301212
Michal Simekdd5000ef2024-04-16 08:55:16 +02001213source "lib/fwu_updates/Kconfig"