blob: 3c5a4ab38612dd79a7eb4cfeb6b86e43b7fa0ac4 [file] [log] [blame]
Masahiro Yamadaf3e12b72014-09-16 16:32:58 +09001menu "Library routines"
2
Marek Szyprowski795dc7d2020-06-03 14:43:40 +02003config ADDR_MAP
4 bool "Enable support for non-identity virtual-physical mappings"
5 help
6 Enables helper code for implementing non-identity virtual-physical
7 memory mappings for 32bit CPUs.
8
Bin Meng0a5fee52021-02-25 17:22:36 +08009 This library only works in the post-relocation phase.
10
Marek Szyprowski795dc7d2020-06-03 14:43:40 +020011config SYS_NUM_ADDR_MAP
12 int "Size of the address-map table"
13 depends on ADDR_MAP
14 default 16
15 help
16 Sets the number of entries in the virtual-physical mapping table.
17
Simon Glassef9e7622021-11-24 09:26:42 -070018config PHYSMEM
19 bool "Access to physical memory region (> 4G)"
20 help
21 Some basic support is provided for operations on memory not
22 normally accessible to 32-bit U-Boot - e.g. some architectures
23 support access to more than 4G of memory on 32-bit
24 machines using physical address extension or similar.
25 Enable this to access this basic support, which only supports clearing
26 the memory.
27
Adam Ford02bf5362017-08-11 09:46:05 -050028config BCH
29 bool "Enable Software based BCH ECC"
30 help
31 Enables software based BCH ECC algorithm present in lib/bch.c
32 This is used by SoC platforms which do not have built-in ELM
33 hardware engine required for BCH ECC correction.
34
Simon Glassdd7fb9b2019-12-06 21:41:34 -070035config BINMAN_FDT
36 bool "Allow access to binman information in the device tree"
Bin Mengc5e8b312021-02-03 21:20:02 +080037 depends on BINMAN && DM && OF_CONTROL
Bin Mengc9155f12021-05-10 20:23:36 +080038 default y if OF_SEPARATE || OF_EMBED
Simon Glassdd7fb9b2019-12-06 21:41:34 -070039 help
40 This enables U-Boot to access information about binman entries,
41 stored in the device tree in a binman node. Typical uses are to
42 locate entries in the firmware image. See binman.h for the available
43 functionality.
44
Masahiro Yamada3f053fe2014-09-16 16:32:59 +090045config CC_OPTIMIZE_LIBS_FOR_SPEED
46 bool "Optimize libraries for speed"
47 help
48 Enabling this option will pass "-O2" to gcc when compiling
49 under "lib" directory.
50
51 If unsure, say N.
52
Simon Glassc17db992021-07-02 12:36:17 -060053config CHARSET
54 bool
Simon Glassc17db992021-07-02 12:36:17 -060055
Faiz Abbas6199fb12018-02-06 19:15:58 +053056config DYNAMIC_CRC_TABLE
57 bool "Enable Dynamic tables for CRC"
58 help
59 Enable this option to calculate entries for CRC tables at runtime.
60 This can be helpful when reducing the size of the build image
61
Bin Mengb95e9db2018-10-15 02:21:15 -070062config HAVE_ARCH_IOMAP
63 bool
64 help
65 Enable this option if architecture provides io{read,write}{8,16,32}
66 I/O accessor functions.
67
Masahiro Yamada9520b712014-10-24 01:30:43 +090068config HAVE_PRIVATE_LIBGCC
69 bool
70
Adam Ford70c8f052018-02-06 12:14:28 -060071config LIB_UUID
72 bool
73
Kautuk Consula51bb742022-12-07 17:12:34 +053074config SEMIHOSTING
75 bool "Support semihosting"
Kautuk Consulc86cb4a2022-12-07 17:12:35 +053076 depends on ARM || RISCV
Kautuk Consula51bb742022-12-07 17:12:34 +053077 help
78 Semihosting is a method for a target to communicate with a host
79 debugger. It uses special instructions which the debugger will trap
80 on and interpret. This allows U-Boot to read/write files, print to
81 the console, and execute arbitrary commands on the host system.
82
83 Enabling this option will add support for reading and writing files
84 on the host system. If you don't have a debugger attached then trying
85 to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
86
87config SEMIHOSTING_FALLBACK
88 bool "Recover gracefully when semihosting fails"
Kautuk Consulc86cb4a2022-12-07 17:12:35 +053089 depends on SEMIHOSTING && (ARM64 || RISCV)
Kautuk Consula51bb742022-12-07 17:12:34 +053090 default y
91 help
92 Normally, if U-Boot makes a semihosting call and no debugger is
93 attached, then it will panic due to a synchronous abort
94 exception. This config adds an exception handler which will allow
95 U-Boot to recover. Say 'y' if unsure.
96
97config SPL_SEMIHOSTING
98 bool "Support semihosting in SPL"
Kautuk Consulc86cb4a2022-12-07 17:12:35 +053099 depends on SPL && (ARM || RISCV)
Kautuk Consula51bb742022-12-07 17:12:34 +0530100 help
101 Semihosting is a method for a target to communicate with a host
102 debugger. It uses special instructions which the debugger will trap
103 on and interpret. This allows U-Boot to read/write files, print to
104 the console, and execute arbitrary commands on the host system.
105
106 Enabling this option will add support for reading and writing files
107 on the host system. If you don't have a debugger attached then trying
108 to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
109
110config SPL_SEMIHOSTING_FALLBACK
111 bool "Recover gracefully when semihosting fails in SPL"
Kautuk Consulc86cb4a2022-12-07 17:12:35 +0530112 depends on SPL_SEMIHOSTING && (ARM64 || RISCV)
113 select ARMV8_SPL_EXCEPTION_VECTORS if ARM64
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
Alex Kiernan5b404282018-04-19 04:32:54 +0000121config PRINTF
122 bool
123 default y
124
125config SPL_PRINTF
126 bool
127 select SPL_SPRINTF
Simon Glass7611ac62019-09-25 08:56:27 -0600128 select SPL_STRTO if !SPL_USE_TINY_PRINTF
Alex Kiernan5b404282018-04-19 04:32:54 +0000129
130config TPL_PRINTF
131 bool
132 select TPL_SPRINTF
Simon Glass7611ac62019-09-25 08:56:27 -0600133 select TPL_STRTO if !TPL_USE_TINY_PRINTF
Alex Kiernan5b404282018-04-19 04:32:54 +0000134
Simon Glasse7ca7da2022-04-30 00:56:53 -0600135config VPL_PRINTF
136 bool
137 select VPL_SPRINTF
138 select VPL_STRTO if !VPL_USE_TINY_PRINTF
139
Alex Kiernan5b404282018-04-19 04:32:54 +0000140config SPRINTF
141 bool
142 default y
143
144config SPL_SPRINTF
145 bool
146
147config TPL_SPRINTF
148 bool
149
Simon Glasse7ca7da2022-04-30 00:56:53 -0600150config VPL_SPRINTF
151 bool
152
Andrii Anisov6e29ac42020-08-06 12:42:52 +0300153config SSCANF
154 bool
Andrii Anisov6e29ac42020-08-06 12:42:52 +0300155
Alex Kiernan5b404282018-04-19 04:32:54 +0000156config STRTO
157 bool
158 default y
159
160config SPL_STRTO
161 bool
162
163config TPL_STRTO
164 bool
165
Simon Glasse7ca7da2022-04-30 00:56:53 -0600166config VPL_STRTO
167 bool
168
Alex Kiernanc568bcb2018-05-29 15:30:52 +0000169config IMAGE_SPARSE
170 bool
171
172config IMAGE_SPARSE_FILLBUF_SIZE
173 hex "Android sparse image CHUNK_TYPE_FILL buffer size"
174 default 0x80000
175 depends on IMAGE_SPARSE
176 help
177 Set the size of the fill buffer used when processing CHUNK_TYPE_FILL
178 chunks.
179
Masahiro Yamada9520b712014-10-24 01:30:43 +0900180config USE_PRIVATE_LIBGCC
181 bool "Use private libgcc"
182 depends on HAVE_PRIVATE_LIBGCC
Marek Vasut4e0126e2016-05-26 18:01:47 +0200183 default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
Masahiro Yamada9520b712014-10-24 01:30:43 +0900184 help
185 This option allows you to use the built-in libgcc implementation
Masahiro Yamada1c6a5e42016-03-30 20:17:42 +0900186 of U-Boot instead of the one provided by the compiler.
Masahiro Yamada9520b712014-10-24 01:30:43 +0900187 If unsure, say N.
188
Masahiro Yamadae301fa02014-10-24 01:30:40 +0900189config SYS_HZ
190 int
191 default 1000
192 help
193 The frequency of the timer returned by get_timer().
194 get_timer() must operate in milliseconds and this option must be
195 set to 1000.
196
Simon Glass7611ac62019-09-25 08:56:27 -0600197config SPL_USE_TINY_PRINTF
Thomas Hebb0c12fb52019-11-10 08:23:53 -0800198 bool "Enable tiny printf() version in SPL"
Simon Glass7611ac62019-09-25 08:56:27 -0600199 depends on SPL
Tom Rinid0502b72019-06-08 12:46:18 -0400200 default y
Stefan Roese363ab7b2015-11-23 07:00:22 +0100201 help
202 This option enables a tiny, stripped down printf version.
203 This should only be used in space limited environments,
204 like SPL versions with hard memory limits. This version
205 reduces the code size by about 2.5KiB on armv7.
206
207 The supported format specifiers are %c, %s, %u/%d and %x.
208
Simon Glass7611ac62019-09-25 08:56:27 -0600209config TPL_USE_TINY_PRINTF
Thomas Hebb0c12fb52019-11-10 08:23:53 -0800210 bool "Enable tiny printf() version in TPL"
Simon Glass7611ac62019-09-25 08:56:27 -0600211 depends on TPL
212 default y if SPL_USE_TINY_PRINTF
213 help
214 This option enables a tiny, stripped down printf version.
215 This should only be used in space limited environments,
216 like SPL versions with hard memory limits. This version
217 reduces the code size by about 2.5KiB on armv7.
218
219 The supported format specifiers are %c, %s, %u/%d and %x.
220
Simon Glasse7ca7da2022-04-30 00:56:53 -0600221config VPL_USE_TINY_PRINTF
222 bool "Enable tiny printf() version for VPL"
223 depends on VPL
224 help
225 This option enables a tiny, stripped down printf version.
226 This should only be used in space limited environments,
227 like SPL versions with hard memory limits. This version
228 reduces the code size by about 2.5KiB on armv7.
229
230 The supported format specifiers are %c, %s, %u/%d and %x.
231
Masahiro Yamadaacede7a2017-12-04 12:37:00 +0900232config PANIC_HANG
233 bool "Do not reset the system on fatal error"
234 help
235 Define this option to stop the system in case of a fatal error,
236 so that you have to reset it manually. This is probably NOT a good
237 idea for an embedded system where you want the system to reboot
238 automatically as fast as possible, but it may be useful during
239 development since you can try to debug the conditions that lead to
240 the situation.
241
Joe Hershberger937d3e82015-04-21 17:02:42 -0500242config REGEX
243 bool "Enable regular expression support"
Joe Hershberger8ab8b722015-06-22 17:57:36 -0500244 default y if NET
Joe Hershberger937d3e82015-04-21 17:02:42 -0500245 help
246 If this variable is defined, U-Boot is linked against the
247 SLRE (Super Light Regular Expression) library, which adds
248 regex support to some commands, for example "env grep" and
249 "setexpr".
250
Adam Ford38003a62018-02-06 10:18:18 -0600251choice
252 prompt "Pseudo-random library support type"
Heinrich Schuchardtb2e67a22020-01-19 19:28:12 +0100253 depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID || \
Heinrich Schuchardtba9c44e2020-11-20 12:55:22 +0100254 RNG_SANDBOX || UT_LIB && AES || FAT_WRITE
Adam Ford38003a62018-02-06 10:18:18 -0600255 default LIB_RAND
Masahiro Yamada2743c072015-06-11 19:16:43 +0900256 help
Adam Ford38003a62018-02-06 10:18:18 -0600257 Select the library to provide pseudo-random number generator
258 functions. LIB_HW_RAND supports certain hardware engines that
259 provide this functionality. If in doubt, select LIB_RAND.
260
261config LIB_RAND
262 bool "Pseudo-random library support"
263
264config LIB_HW_RAND
Marcin Juszkiewicza360c2c2020-05-26 19:07:15 +0200265 bool "HW Engine for random library support"
Adam Ford38003a62018-02-06 10:18:18 -0600266
267endchoice
Michal Simek2c1b1db2015-05-25 11:37:22 +0200268
Simon Glassa6cee932021-12-01 09:02:36 -0700269config SUPPORT_ACPI
270 bool
271 help
272 Enable this if your arch or board can support generating ACPI
273 (Advanced Configuration and Power Interface) tables. In this case
274 U-Boot can generate these tables and pass them to the Operating
275 System.
276
277config GENERATE_ACPI_TABLE
278 bool "Generate an ACPI (Advanced Configuration and Power Interface) table"
279 depends on SUPPORT_ACPI
280 select QFW if QEMU
281 help
282 The Advanced Configuration and Power Interface (ACPI) specification
283 provides an open standard for device configuration and management
284 by the operating system. It defines platform-independent interfaces
285 for configuration and power management monitoring.
286
Simon Glasse2f94ae2017-04-02 09:50:28 -0600287config SPL_TINY_MEMSET
288 bool "Use a very small memset() in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400289 depends on SPL
Simon Glasse2f94ae2017-04-02 09:50:28 -0600290 help
291 The faster memset() is the arch-specific one (if available) enabled
292 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
293 better performance by writing a word at a time. But in very
Chris Packham1c3b7ba2019-01-13 22:13:28 +1300294 size-constrained environments even this may be too big. Enable this
Simon Glasse2f94ae2017-04-02 09:50:28 -0600295 option to reduce code size slightly at the cost of some speed.
296
Philipp Tomsichfefc4ec2017-08-03 22:52:04 +0200297config TPL_TINY_MEMSET
298 bool "Use a very small memset() in TPL"
Tom Rini36a4ca02022-06-08 08:24:39 -0400299 depends on TPL
Philipp Tomsichfefc4ec2017-08-03 22:52:04 +0200300 help
301 The faster memset() is the arch-specific one (if available) enabled
302 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
303 better performance by writing a word at a time. But in very
Chris Packham1c3b7ba2019-01-13 22:13:28 +1300304 size-constrained environments even this may be too big. Enable this
Philipp Tomsichfefc4ec2017-08-03 22:52:04 +0200305 option to reduce code size slightly at the cost of some speed.
306
Boris Brezillon627dc182017-02-27 18:22:05 +0100307config RBTREE
308 bool
309
Nandor Hand5ea84a2017-11-08 15:35:14 +0000310config BITREVERSE
311 bool "Bit reverse library from Linux"
312
Simon Glassbfce7fc2019-04-08 13:20:51 -0600313config TRACE
314 bool "Support for tracing of function calls and timing"
315 imply CMD_TRACE
Pragnesh Patel0dd501a2021-01-17 18:11:24 +0530316 select TIMER_EARLY
Simon Glassbfce7fc2019-04-08 13:20:51 -0600317 help
318 Enables function tracing within U-Boot. This allows recording of call
319 traces including timing information. The command can write data to
320 memory for exporting for analysis (e.g. using bootchart).
321 See doc/README.trace for full details.
322
Simon Glass445078e2019-04-08 13:20:52 -0600323config TRACE_BUFFER_SIZE
324 hex "Size of trace buffer in U-Boot"
325 depends on TRACE
326 default 0x01000000
327 help
328 Sets the size of the trace buffer in U-Boot. This is allocated from
329 memory during relocation. If this buffer is too small, the trace
330 history will be truncated, with later records omitted.
331
332 If early trace is enabled (i.e. before relocation), this buffer must
333 be large enough to include all the data from the early trace buffer as
334 well, since this is copied over to the main buffer during relocation.
335
336 A trace record is emitted for each function call and each record is
337 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
338 the size is too small then 'trace stats' will show a message saying
339 how many records were dropped due to buffer overflow.
340
Heinrich Schuchardtc1a73792019-06-02 13:30:09 +0200341config TRACE_CALL_DEPTH_LIMIT
342 int "Trace call depth limit"
343 depends on TRACE
344 default 15
345 help
346 Sets the maximum call depth up to which function calls are recorded.
347
Simon Glass445078e2019-04-08 13:20:52 -0600348config TRACE_EARLY
349 bool "Enable tracing before relocation"
350 depends on TRACE
351 help
352 Sometimes it is helpful to trace execution of U-Boot before
353 relocation. This is possible by using a arch-specific, fixed buffer
354 position in memory. Enable this option to start tracing as early as
355 possible after U-Boot starts.
356
357config TRACE_EARLY_SIZE
358 hex "Size of early trace buffer in U-Boot"
359 depends on TRACE_EARLY
360 default 0x00100000
361 help
362 Sets the size of the early trace buffer in bytes. This is used to hold
363 tracing information before relocation.
364
Heinrich Schuchardtc1a73792019-06-02 13:30:09 +0200365config TRACE_EARLY_CALL_DEPTH_LIMIT
366 int "Early trace call depth limit"
367 depends on TRACE_EARLY
368 default 200
369 help
370 Sets the maximum call depth up to which function calls are recorded
371 during early tracing.
372
Simon Glass445078e2019-04-08 13:20:52 -0600373config TRACE_EARLY_ADDR
374 hex "Address of early trace buffer in U-Boot"
375 depends on TRACE_EARLY
376 default 0x00100000
377 help
378 Sets the address of the early trace buffer in U-Boot. This memory
379 must be accessible before relocation.
380
381 A trace record is emitted for each function call and each record is
382 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
383 the size is too small then the message which says the amount of early
384 data being coped will the the same as the
385
Loic Poulain12797e62021-11-25 18:16:14 +0100386config CIRCBUF
387 bool "Enable circular buffer support"
388
Simon Glass99dbe4b2015-06-23 15:38:23 -0600389source lib/dhry/Kconfig
390
Simon Glass528fdd12017-04-26 22:27:49 -0600391menu "Security support"
392
393config AES
394 bool "Support the AES algorithm"
395 help
396 This provides a means to encrypt and decrypt data using the AES
397 (Advanced Encryption Standard). This algorithm uses a symetric key
398 and is widely used as a streaming cipher. Different key lengths are
399 supported by the algorithm but only a 128-bit key is supported at
400 present.
401
Alexandru Gagniuc48cb9b82021-07-29 11:47:16 -0500402source lib/ecdsa/Kconfig
Ruchika Gupta4acd8c42015-01-23 16:01:56 +0530403source lib/rsa/Kconfig
AKASHI Takahiro591535c2019-11-13 09:45:00 +0900404source lib/crypto/Kconfig
Steffen Jaeckel229bd512021-07-08 15:57:33 +0200405source lib/crypt/Kconfig
Ruchika Gupta2c3822e2015-01-23 16:01:51 +0530406
Simon Glass350497c2015-08-22 18:31:19 -0600407config TPM
408 bool "Trusted Platform Module (TPM) Support"
Simon Glasscf294b02015-10-03 06:39:36 -0600409 depends on DM
Sughosh Ganu9737fab2022-07-22 21:32:04 +0530410 imply DM_RNG
Simon Glass350497c2015-08-22 18:31:19 -0600411 help
412 This enables support for TPMs which can be used to provide security
413 features for your board. The TPM can be connected via LPC or I2C
414 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
415 command to interactive the TPM. Driver model support is provided
416 for the low-level TPM interface, but only one TPM is supported at
417 a time by the TPM library.
418
Simon Glass93a45b12018-10-01 12:22:19 -0600419config SPL_TPM
420 bool "Trusted Platform Module (TPM) Support in SPL"
421 depends on SPL_DM
422 help
423 This enables support for TPMs which can be used to provide security
424 features for your board. The TPM can be connected via LPC or I2C
425 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
426 command to interactive the TPM. Driver model support is provided
427 for the low-level TPM interface, but only one TPM is supported at
428 a time by the TPM library.
429
430config TPL_TPM
431 bool "Trusted Platform Module (TPM) Support in TPL"
432 depends on TPL_DM
433 help
434 This enables support for TPMs which can be used to provide security
435 features for your board. The TPM can be connected via LPC or I2C
436 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
437 command to interactive the TPM. Driver model support is provided
438 for the low-level TPM interface, but only one TPM is supported at
439 a time by the TPM library.
440
Simon Glasse7ca7da2022-04-30 00:56:53 -0600441config VPL_TPM
442 bool "Trusted Platform Module (TPM) Support in VPL"
443 depends on VPL_DM
444 help
445 This enables support for TPMs which can be used to provide security
446 features for your board. The TPM can be connected via LPC or I2C
447 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
448 command to interactive the TPM. Driver model support is provided
449 for the low-level TPM interface, but only one TPM is supported at
450 a time by the TPM library.
451
Simon Glass528fdd12017-04-26 22:27:49 -0600452endmenu
453
Igor Opaniuk525d1d82018-06-03 21:56:37 +0300454menu "Android Verified Boot"
455
456config LIBAVB
457 bool "Android Verified Boot 2.0 support"
458 depends on ANDROID_BOOT_IMAGE
Igor Opaniuk525d1d82018-06-03 21:56:37 +0300459 help
460 This enables support of Android Verified Boot 2.0 which can be used
461 to assure the end user of the integrity of the software running on a
462 device. Introduces such features as boot chain of trust, rollback
463 protection etc.
464
465endmenu
466
gaurav ranaef201592015-02-20 12:51:46 +0530467menu "Hashing Support"
468
Qu Wenruob98e8a22021-12-27 14:12:07 +0800469config BLAKE2
470 bool "Enable BLAKE2 support"
471 help
472 This option enables support of hashing using BLAKE2B algorithm.
473 The hash is calculated in software.
474 The BLAKE2 algorithm produces a hash value (digest) between 1 and
475 64 bytes.
476
gaurav ranaef201592015-02-20 12:51:46 +0530477config SHA1
478 bool "Enable SHA1 support"
479 help
480 This option enables support of hashing using SHA1 algorithm.
481 The hash is calculated in software.
482 The SHA1 algorithm produces a 160-bit (20-byte) hash value
483 (digest).
484
485config SHA256
486 bool "Enable SHA256 support"
487 help
488 This option enables support of hashing using SHA256 algorithm.
489 The hash is calculated in software.
490 The SHA256 algorithm produces a 256-bit (32-byte) hash value
491 (digest).
492
Reuben Dowle1908fd92020-04-16 17:36:52 +1200493config SHA512
494 bool "Enable SHA512 support"
Reuben Dowle1908fd92020-04-16 17:36:52 +1200495 help
496 This option enables support of hashing using SHA512 algorithm.
497 The hash is calculated in software.
498 The SHA512 algorithm produces a 512-bit (64-byte) hash value
499 (digest).
500
501config SHA384
502 bool "Enable SHA384 support"
Alexandru Gagniuc5df5d692021-09-02 19:54:18 -0500503 select SHA512
Reuben Dowle1908fd92020-04-16 17:36:52 +1200504 help
505 This option enables support of hashing using SHA384 algorithm.
Alexandru Gagniuc5df5d692021-09-02 19:54:18 -0500506 The hash is calculated in software. This is also selects SHA512,
507 because these implementations share the bulk of the code..
Reuben Dowle1908fd92020-04-16 17:36:52 +1200508 The SHA384 algorithm produces a 384-bit (48-byte) hash value
509 (digest).
510
gaurav ranaef201592015-02-20 12:51:46 +0530511config SHA_HW_ACCEL
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200512 bool "Enable hardware acceleration for SHA hash functions"
gaurav ranaef201592015-02-20 12:51:46 +0530513 help
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200514 This option enables hardware acceleration for the SHA1 and SHA256
515 hashing algorithms. This affects the 'hash' command and also the
516 hash_lookup_algo() function.
517
Simon Glassf7b37c22021-09-25 19:43:17 -0600518if SPL
519
520config SPL_SHA1
521 bool "Enable SHA1 support in SPL"
522 default y if SHA1
523 help
524 This option enables support of hashing using SHA1 algorithm.
525 The hash is calculated in software.
526 The SHA1 algorithm produces a 160-bit (20-byte) hash value
527 (digest).
528
529config SPL_SHA256
530 bool "Enable SHA256 support in SPL"
531 default y if SHA256
532 help
533 This option enables support of hashing using SHA256 algorithm.
534 The hash is calculated in software.
535 The SHA256 algorithm produces a 256-bit (32-byte) hash value
536 (digest).
537
538config SPL_SHA512
539 bool "Enable SHA512 support in SPL"
540 default y if SHA512
541 help
542 This option enables support of hashing using SHA512 algorithm.
543 The hash is calculated in software.
544 The SHA512 algorithm produces a 512-bit (64-byte) hash value
545 (digest).
546
547config SPL_SHA384
548 bool "Enable SHA384 support in SPL"
549 default y if SHA384
550 select SPL_SHA512
551 help
552 This option enables support of hashing using SHA384 algorithm.
553 The hash is calculated in software. This is also selects SHA512,
554 because these implementations share the bulk of the code..
555 The SHA384 algorithm produces a 384-bit (48-byte) hash value
556 (digest).
557
Simon Glass383dd572021-09-25 19:43:18 -0600558config SPL_SHA_HW_ACCEL
559 bool "Enable hardware acceleration for SHA hash functions"
560 default y if SHA_HW_ACCEL
561 help
562 This option enables hardware acceleration for the SHA1 and SHA256
563 hashing algorithms. This affects the 'hash' command and also the
564 hash_lookup_algo() function.
565
566config SPL_SHA_PROG_HW_ACCEL
567 bool "Enable Progressive hashing support using hardware in SPL"
568 depends on SHA_PROG_HW_ACCEL
569 default y
570 help
571 This option enables hardware-acceleration for SHA progressive
572 hashing.
573 Data can be streamed in a block at a time and the hashing is
574 performed in hardware.
575
Simon Glassf7b37c22021-09-25 19:43:17 -0600576endif
577
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200578if SHA_HW_ACCEL
579
580config SHA512_HW_ACCEL
581 bool "Enable hardware acceleration for SHA512"
Alexandru Gagniuc5df5d692021-09-02 19:54:18 -0500582 depends on SHA512
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200583 help
584 This option enables hardware acceleration for the SHA384 and SHA512
585 hashing algorithms. This affects the 'hash' command and also the
586 hash_lookup_algo() function.
gaurav ranaef201592015-02-20 12:51:46 +0530587
588config SHA_PROG_HW_ACCEL
589 bool "Enable Progressive hashing support using hardware"
gaurav ranaef201592015-02-20 12:51:46 +0530590 help
Joel Stanley92efc1f2021-02-17 13:50:42 +1030591 This option enables hardware-acceleration for SHA progressive
592 hashing.
593 Data can be streamed in a block at a time and the hashing is
594 performed in hardware.
Andre Przywaraf0fa1132017-03-15 01:19:05 +0000595
Heinrich Schuchardtd42f81f2021-05-14 07:08:27 +0200596endif
597
Andre Przywaraf0fa1132017-03-15 01:19:05 +0000598config MD5
Simon Glassd33d0db2020-05-06 08:03:56 -0600599 bool "Support MD5 algorithm"
600 help
601 This option enables MD5 support. MD5 is an algorithm designed
602 in 1991 that produces a 16-byte digest (or checksum) from its input
603 data. It has a number of vulnerabilities which preclude its use in
604 security applications, but it can be useful for providing a quick
605 checksum of a block of data.
606
607config SPL_MD5
608 bool "Support MD5 algorithm in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400609 depends on SPL
Simon Glassd33d0db2020-05-06 08:03:56 -0600610 help
611 This option enables MD5 support in SPL. MD5 is an algorithm designed
612 in 1991 that produces a 16-byte digest (or checksum) from its input
613 data. It has a number of vulnerabilities which preclude its use in
614 security applications, but it can be useful for providing a quick
615 checksum of a block of data.
Andre Przywaraf0fa1132017-03-15 01:19:05 +0000616
Simon Glass577226c2021-09-25 19:43:24 -0600617config CRC32
618 def_bool y
619 help
620 Enables CRC32 support in U-Boot. This is normally required.
621
Marek Behúncdccc032017-09-03 17:00:23 +0200622config CRC32C
623 bool
624
Marek Behúnb139a7f2019-04-29 22:40:43 +0200625config XXHASH
626 bool
627
gaurav ranaef201592015-02-20 12:51:46 +0530628endmenu
629
Julius Wernerf41a3ca2015-10-06 20:03:53 -0700630menu "Compression Support"
631
632config LZ4
633 bool "Enable LZ4 decompression support"
634 help
635 If this option is set, support for LZ4 compressed images
636 is included. The LZ4 algorithm can run in-place as long as the
637 compressed image is loaded to the end of the output buffer, and
638 trades lower compression ratios for much faster decompression.
Patrick Delaunaycd831af2021-03-10 10:16:28 +0100639
Julius Wernerf41a3ca2015-10-06 20:03:53 -0700640 NOTE: This implements the release version of the LZ4 frame
641 format as generated by default by the 'lz4' command line tool.
642 This is not the same as the outdated, less efficient legacy
643 frame format currently (2015) implemented in the Linux kernel
644 (generated by 'lz4 -l'). The two formats are incompatible.
645
Simon Glass264aa5f2017-05-17 03:25:42 -0600646config LZMA
647 bool "Enable LZMA decompression support"
648 help
649 This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
650 a dictionary compression algorithm that provides a high compression
651 ratio and fairly fast decompression speed. See also
652 CONFIG_CMD_LZMADEC which provides a decode command.
653
Boris Brezillonaa57d0f2017-02-27 18:22:06 +0100654config LZO
Tom Rinic20bb732017-07-22 18:36:16 -0400655 bool "Enable LZO decompression support"
656 help
Oleksandr Suvorov30a4c312021-09-01 16:05:08 +0300657 This enables support for the LZO compression algorithm.
York Suna6945fe2017-08-15 11:14:43 -0700658
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100659config GZIP
Heiko Schocherb93cc602019-04-29 08:59:38 +0200660 bool "Enable gzip decompression support"
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100661 select ZLIB
662 default y
663 help
664 This enables support for GZIP compression algorithm.
665
Joao Marcos Costaae8abb12020-07-30 15:33:49 +0200666config ZLIB_UNCOMPRESS
667 bool "Enables zlib's uncompress() functionality"
668 help
669 This enables an extra zlib functionality: the uncompress() function,
670 which decompresses data from a buffer into another, knowing their
671 sizes. Unlike gunzip(), there is no header parsing.
672
Michael Walle3a6e3512020-05-22 14:07:36 +0200673config GZIP_COMPRESSED
674 bool
675 select ZLIB
676
Atish Patra1fa79622020-03-05 16:24:21 -0800677config BZIP2
678 bool "Enable bzip2 decompression support"
679 help
680 This enables support for BZIP2 compression algorithm.
681
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100682config ZLIB
683 bool
684 default y
685 help
686 This enables ZLIB compression lib.
687
Marek Behúne87e2002019-04-29 22:40:44 +0200688config ZSTD
689 bool "Enable Zstandard decompression support"
690 select XXHASH
691 help
692 This enables Zstandard decompression library.
693
Simon Glasse107bcd2018-11-06 15:21:30 -0700694config SPL_LZ4
695 bool "Enable LZ4 decompression support in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400696 depends on SPL
Simon Glasse107bcd2018-11-06 15:21:30 -0700697 help
Marcin Juszkiewicza360c2c2020-05-26 19:07:15 +0200698 This enables support for the LZ4 decompression algorithm in SPL. LZ4
Simon Glasse107bcd2018-11-06 15:21:30 -0700699 is a lossless data compression algorithm that is focused on
700 fast compression and decompression speed. It belongs to the LZ77
701 family of byte-oriented compression schemes.
702
developer6a4e1d32020-04-21 09:28:38 +0200703config SPL_LZMA
704 bool "Enable LZMA decompression support for SPL build"
Tom Rini0a83cc22022-06-10 23:03:09 -0400705 depends on SPL
developer6a4e1d32020-04-21 09:28:38 +0200706 help
Marcin Juszkiewicza360c2c2020-05-26 19:07:15 +0200707 This enables support for LZMA compression algorithm for SPL boot.
developer6a4e1d32020-04-21 09:28:38 +0200708
Simon Glasse7ca7da2022-04-30 00:56:53 -0600709config VPL_LZMA
710 bool "Enable LZMA decompression support for VPL build"
711 default y if LZMA
712 help
713 This enables support for LZMA compression algorithm for VPL boot.
714
Jean-Jacques Hiblotdbde2882017-09-15 12:57:30 +0200715config SPL_LZO
716 bool "Enable LZO decompression support in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400717 depends on SPL
Jean-Jacques Hiblotdbde2882017-09-15 12:57:30 +0200718 help
719 This enables support for LZO compression algorithm in the SPL.
720
York Suna6945fe2017-08-15 11:14:43 -0700721config SPL_GZIP
722 bool "Enable gzip decompression support for SPL build"
723 select SPL_ZLIB
724 help
Oleksandr Suvorov30a4c312021-09-01 16:05:08 +0300725 This enables support for the GZIP compression algorithm for SPL boot.
York Suna6945fe2017-08-15 11:14:43 -0700726
727config SPL_ZLIB
728 bool
729 help
730 This enables compression lib for SPL boot.
731
Marek Behúne87e2002019-04-29 22:40:44 +0200732config SPL_ZSTD
733 bool "Enable Zstandard decompression support in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400734 depends on SPL
Marek Behúne87e2002019-04-29 22:40:44 +0200735 select XXHASH
736 help
737 This enables Zstandard decompression library in the SPL.
738
Julius Wernerf41a3ca2015-10-06 20:03:53 -0700739endmenu
740
Przemyslaw Marczak37550132015-04-20 20:07:40 +0200741config ERRNO_STR
742 bool "Enable function for getting errno-related string message"
743 help
744 The function errno_str(int errno), returns a pointer to the errno
745 corresponding text message:
746 - if errno is null or positive number - a pointer to "Success" message
747 - if errno is negative - a pointer to errno related message
748
Alexey Brodkin2d2fa492018-06-05 17:17:57 +0300749config HEXDUMP
750 bool "Enable hexdump"
751 help
752 This enables functions for printing dumps of binary data.
753
Simon Glassa37fd4d2020-09-12 11:13:35 -0600754config SPL_HEXDUMP
755 bool "Enable hexdump in SPL"
Heinrich Schuchardt11df0722021-07-24 17:35:46 +0200756 depends on SPL && HEXDUMP
Simon Glassa37fd4d2020-09-12 11:13:35 -0600757 help
758 This enables functions for printing dumps of binary data in
759 SPL.
760
Sean Anderson3b4a6f52020-10-27 19:55:36 -0400761config GETOPT
762 bool "Enable getopt"
763 help
764 This enables functions for parsing command-line options.
765
Simon Glassa66c5412016-02-22 22:55:42 -0700766config OF_LIBFDT
767 bool "Enable the FDT library"
768 default y if OF_CONTROL
769 help
770 This enables the FDT library (libfdt). It provides functions for
771 accessing binary device tree images in memory, such as adding and
Anatolij Gustschinda707d42017-08-18 17:58:51 +0200772 removing nodes and properties, scanning through the tree and finding
Simon Glassa66c5412016-02-22 22:55:42 -0700773 particular compatible nodes. The library operates on a flattened
774 version of the device tree.
775
Simon Glassc48044d2019-10-27 09:47:40 -0600776config OF_LIBFDT_ASSUME_MASK
777 hex "Mask of conditions to assume for libfdt"
778 depends on OF_LIBFDT || FIT
779 default 0
780 help
781 Use this to change the assumptions made by libfdt about the
782 device tree it is working with. A value of 0 means that no assumptions
783 are made, and libfdt is able to deal with malicious data. A value of
784 0xff means all assumptions are made and any invalid data may cause
785 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
786
Maxime Ripard9e901ce2016-07-05 10:26:44 +0200787config OF_LIBFDT_OVERLAY
788 bool "Enable the FDT library overlay support"
Tom Rinic1e49ba2018-05-08 08:52:17 -0400789 depends on OF_LIBFDT
Praneeth Bajjuri7b71a012018-04-25 16:03:23 -0500790 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
Maxime Ripard9e901ce2016-07-05 10:26:44 +0200791 help
792 This enables the FDT library (libfdt) overlay support.
793
Tom Rinid2cd4312022-08-02 07:33:27 -0400794config SYS_FDT_PAD
795 hex "Maximum size of the FDT memory area passeed to the OS"
796 depends on OF_LIBFDT
797 default 0x13000 if FMAN_ENET || QE || U_QE
798 default 0x3000
799 help
800 During OS boot, we allocate a region of memory within the bootmap
801 for the FDT. This is the size that we will expand the FDT that we
802 are using will be extended to be, in bytes.
803
Simon Glass8b426922016-02-22 22:55:45 -0700804config SPL_OF_LIBFDT
805 bool "Enable the FDT library for SPL"
Simon Glasse7ca7da2022-04-30 00:56:53 -0600806 depends on SPL_LIBGENERIC_SUPPORT
Simon Glass8b426922016-02-22 22:55:45 -0700807 default y if SPL_OF_CONTROL
808 help
809 This enables the FDT library (libfdt). It provides functions for
810 accessing binary device tree images in memory, such as adding and
Anatolij Gustschinda707d42017-08-18 17:58:51 +0200811 removing nodes and properties, scanning through the tree and finding
Simon Glass8b426922016-02-22 22:55:45 -0700812 particular compatible nodes. The library operates on a flattened
813 version of the device tree.
814
Simon Glassc48044d2019-10-27 09:47:40 -0600815config SPL_OF_LIBFDT_ASSUME_MASK
816 hex "Mask of conditions to assume for libfdt"
Tom Rini0a83cc22022-06-10 23:03:09 -0400817 depends on SPL_OF_LIBFDT || (FIT && SPL)
Simon Glassc48044d2019-10-27 09:47:40 -0600818 default 0xff
819 help
820 Use this to change the assumptions made by libfdt in SPL about the
821 device tree it is working with. A value of 0 means that no assumptions
822 are made, and libfdt is able to deal with malicious data. A value of
823 0xff means all assumptions are made and any invalid data may cause
824 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
825
Simon Glassca8ec4b2018-10-01 12:22:21 -0600826config TPL_OF_LIBFDT
827 bool "Enable the FDT library for TPL"
Simon Glasse7ca7da2022-04-30 00:56:53 -0600828 depends on TPL_LIBGENERIC_SUPPORT
Simon Glassca8ec4b2018-10-01 12:22:21 -0600829 default y if TPL_OF_CONTROL
830 help
831 This enables the FDT library (libfdt). It provides functions for
832 accessing binary device tree images in memory, such as adding and
833 removing nodes and properties, scanning through the tree and finding
834 particular compatible nodes. The library operates on a flattened
835 version of the device tree.
836
Simon Glassc48044d2019-10-27 09:47:40 -0600837config TPL_OF_LIBFDT_ASSUME_MASK
838 hex "Mask of conditions to assume for libfdt"
Tom Rini36a4ca02022-06-08 08:24:39 -0400839 depends on TPL_OF_LIBFDT || (FIT && TPL)
Simon Glassc48044d2019-10-27 09:47:40 -0600840 default 0xff
841 help
842 Use this to change the assumptions made by libfdt in TPL about the
843 device tree it is working with. A value of 0 means that no assumptions
844 are made, and libfdt is able to deal with malicious data. A value of
845 0xff means all assumptions are made and any invalid data may cause
846 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
847
Simon Glasse7ca7da2022-04-30 00:56:53 -0600848config VPL_OF_LIBFDT
849 bool "Enable the FDT library for VPL"
Tom Rini7fb323b2022-06-08 08:24:40 -0400850 depends on VPL
Simon Glasse7ca7da2022-04-30 00:56:53 -0600851 default y if VPL_OF_CONTROL && !VPL_OF_PLATDATA
852 help
853 This enables the FDT library (libfdt). It provides functions for
854 accessing binary device tree images in memory, such as adding and
855 removing nodes and properties, scanning through the tree and finding
856 particular compatible nodes. The library operates on a flattened
857 version of the device tree.
858
859config VPL_OF_LIBFDT_ASSUME_MASK
860 hex "Mask of conditions to assume for libfdt"
Tom Rini7fb323b2022-06-08 08:24:40 -0400861 depends on VPL_OF_LIBFDT || (FIT && VPL)
Simon Glasse7ca7da2022-04-30 00:56:53 -0600862 default 0xff
863 help
864 Use this to change the assumptions made by libfdt in SPL about the
865 device tree it is working with. A value of 0 means that no assumptions
866 are made, and libfdt is able to deal with malicious data. A value of
867 0xff means all assumptions are made and any invalid data may cause
868 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
869
Heiko Schocherc9ab9102016-10-06 07:31:45 +0200870config FDT_FIXUP_PARTITIONS
871 bool "overwrite MTD partitions in DTS through defined in 'mtdparts'"
872 depends on OF_LIBFDT
Masahiro Yamada734b7552018-07-20 11:04:09 +0900873 depends on CMD_MTDPARTS
Heiko Schocherc9ab9102016-10-06 07:31:45 +0200874 help
875 Allow overwriting defined partitions in the device tree blob
876 using partition info defined in the 'mtdparts' environment
877 variable.
878
Alexander Graffb228082016-08-19 01:23:23 +0200879menu "System tables"
Alexander Graf66f96e12016-08-19 01:23:29 +0200880 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
Alexander Graffb228082016-08-19 01:23:23 +0200881
Simon Glass5d093f32020-11-04 09:57:25 -0700882config BLOBLIST_TABLES
883 bool "Put tables in a bloblist"
Simon Glass171c6462021-03-15 18:11:22 +1300884 depends on X86 && BLOBLIST
Simon Glass5d093f32020-11-04 09:57:25 -0700885 help
886 Normally tables are placed at address 0xf0000 and can be up to 64KB
887 long. With this option, tables are instead placed in the bloblist
888 with a pointer from 0xf0000. The size can then be larger and the
889 tables can be placed high in memory.
890
Alexander Graffb228082016-08-19 01:23:23 +0200891config GENERATE_SMBIOS_TABLE
892 bool "Generate an SMBIOS (System Management BIOS) table"
893 default y
Alexander Graf66f96e12016-08-19 01:23:29 +0200894 depends on X86 || EFI_LOADER
Alexander Graffb228082016-08-19 01:23:23 +0200895 help
896 The System Management BIOS (SMBIOS) specification addresses how
897 motherboard and system vendors present management information about
898 their products in a standard format by extending the BIOS interface
899 on Intel architecture systems.
900
901 Check http://www.dmtf.org/standards/smbios for details.
902
Simon Glass052a03e2020-11-05 06:32:11 -0700903 See also SMBIOS_SYSINFO which allows SMBIOS values to be provided in
904 the devicetree.
905
Tero Kristocfbe15c2021-06-11 11:45:02 +0300906config LIB_RATIONAL
907 bool "enable continued fraction calculation routines"
908
909config SPL_LIB_RATIONAL
910 bool "enable continued fraction calculation routines for SPL"
911 depends on SPL
912
Alexander Graffb228082016-08-19 01:23:23 +0200913endmenu
914
AKASHI Takahirof7025262019-11-13 09:44:53 +0900915config ASN1_COMPILER
916 bool
Philippe Reynes2aba9442022-03-28 22:56:54 +0200917 help
918 ASN.1 (Abstract Syntax Notation One) is a standard interface
919 description language for defining data structures that can be
920 serialized and deserialized in a cross-platform way. It is
921 broadly used in telecommunications and computer networking,
922 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
923 This option enables the support of the asn1 compiler.
AKASHI Takahirof7025262019-11-13 09:44:53 +0900924
AKASHI Takahiro3a888712019-11-13 09:44:55 +0900925config ASN1_DECODER
926 bool
927 help
Philippe Reynes2aba9442022-03-28 22:56:54 +0200928 ASN.1 (Abstract Syntax Notation One) is a standard interface
929 description language for defining data structures that can be
930 serialized and deserialized in a cross-platform way. It is
931 broadly used in telecommunications and computer networking,
932 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
933 This option enables the support of the asn1 decoder.
AKASHI Takahiro3a888712019-11-13 09:44:55 +0900934
Philippe Reynescf538b52022-03-28 22:56:56 +0200935config SPL_ASN1_DECODER
936 bool
937 help
938 ASN.1 (Abstract Syntax Notation One) is a standard interface
939 description language for defining data structures that can be
940 serialized and deserialized in a cross-platform way. It is
941 broadly used in telecommunications and computer networking,
942 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
943 This option enables the support of the asn1 decoder in the SPL.
944
AKASHI Takahiro54923642019-11-13 09:44:57 +0900945config OID_REGISTRY
946 bool
947 help
Philippe Reynese35c3a22022-03-28 22:56:55 +0200948 In computing, object identifiers or OIDs are an identifier mechanism
949 standardized by the International Telecommunication Union (ITU) and
950 ISO/IEC for naming any object, concept, or "thing" with a globally
951 unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
AKASHI Takahiro54923642019-11-13 09:44:57 +0900952 Enable fast lookup object identifier registry.
953
Philippe Reynescf538b52022-03-28 22:56:56 +0200954config SPL_OID_REGISTRY
955 bool
956 help
957 In computing, object identifiers or OIDs are an identifier mechanism
958 standardized by the International Telecommunication Union (ITU) and
959 ISO/IEC for naming any object, concept, or "thing" with a globally
960 unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
961 Enable fast lookup object identifier registry in the SPL.
962
Christian Gmeiner19859982020-11-03 15:34:51 +0100963config SMBIOS_PARSER
964 bool "SMBIOS parser"
965 help
966 A simple parser for SMBIOS data.
967
Simon Glass9539e692015-07-31 09:31:36 -0600968source lib/efi/Kconfig
Alexander Graf67ee7052016-03-04 01:10:07 +0100969source lib/efi_loader/Kconfig
Bryan O'Donoghue4b0de7c2018-03-13 16:50:27 +0000970source lib/optee/Kconfig
Simon Glass9539e692015-07-31 09:31:36 -0600971
Thierry Reding52c7f1f32019-03-21 19:10:04 +0100972config TEST_FDTDEC
973 bool "enable fdtdec test"
974 depends on OF_LIBFDT
975
AKASHI Takahiro51ba5222019-11-13 09:44:49 +0900976config LIB_DATE
977 bool
978
Keerthy76f361a2020-02-12 13:55:03 +0530979config LIB_ELF
980 bool
981 help
Patrick Delaunayfb67df82021-01-04 15:33:28 +0100982 Support basic elf loading/validating functions.
983 This supports for 32 bit and 64 bit versions.
Keerthy76f361a2020-02-12 13:55:03 +0530984
Patrick Delaunayd62063d2021-03-10 10:16:25 +0100985config LMB
986 bool "Enable the logical memory blocks library (lmb)"
Tom Rini53320122022-04-06 09:21:25 -0400987 default y if ARC || ARM || M68K || MICROBLAZE || MIPS || \
Patrick Delaunayd62063d2021-03-10 10:16:25 +0100988 NIOS2 || PPC || RISCV || SANDBOX || SH || X86 || XTENSA
989 help
990 Support the library logical memory blocks.
991
Patrick Delaunay71cc9c52021-03-10 10:16:31 +0100992config LMB_USE_MAX_REGIONS
Heinrich Schuchardtc4bc9182021-11-14 09:38:53 +0100993 bool "Use a common number of memory and reserved regions in lmb lib"
Patrick Delaunay71cc9c52021-03-10 10:16:31 +0100994 depends on LMB
995 default y
996 help
997 Define the number of supported memory regions in the library logical
998 memory blocks.
999 This feature allow to reduce the lmb library size by using compiler
1000 optimization when LMB_MEMORY_REGIONS == LMB_RESERVED_REGIONS.
Patrick Delaunaycd831af2021-03-10 10:16:28 +01001001
1002config LMB_MAX_REGIONS
1003 int "Number of memory and reserved regions in lmb lib"
Patrick Delaunay71cc9c52021-03-10 10:16:31 +01001004 depends on LMB && LMB_USE_MAX_REGIONS
Patrick Delaunaycd831af2021-03-10 10:16:28 +01001005 default 8
1006 help
1007 Define the number of supported regions, memory and reserved, in the
1008 library logical memory blocks.
Patrick Delaunay71cc9c52021-03-10 10:16:31 +01001009
1010config LMB_MEMORY_REGIONS
1011 int "Number of memory regions in lmb lib"
1012 depends on LMB && !LMB_USE_MAX_REGIONS
1013 default 8
1014 help
1015 Define the number of supported memory regions in the library logical
1016 memory blocks.
1017 The minimal value is CONFIG_NR_DRAM_BANKS.
1018
1019config LMB_RESERVED_REGIONS
1020 int "Number of reserved regions in lmb lib"
1021 depends on LMB && !LMB_USE_MAX_REGIONS
1022 default 8
1023 help
1024 Define the number of supported reserved regions in the library logical
1025 memory blocks.
1026
Eugen Hristevdb6bbcb2022-01-04 18:20:19 +02001027endmenu
Sughosh Ganu1cadae22022-10-21 18:16:03 +05301028
1029menu "FWU Multi Bank Updates"
1030
1031source lib/fwu_updates/Kconfig
1032
1033endmenu