blob: 980bbc45d9ec938682a40d05c69470dc7f6fd625 [file] [log] [blame]
Masahiro Yamadaed363232014-09-16 16:32:58 +09001menu "Library routines"
2
Marek Szyprowski69be8fd2020-06-03 14:43:40 +02003config ADDR_MAP
4 bool "Enable support for non-identity virtual-physical mappings"
5 help
6 Enables helper code for implementing non-identity virtual-physical
7 memory mappings for 32bit CPUs.
8
Bin Menge0103152021-02-25 17:22:36 +08009 This library only works in the post-relocation phase.
10
Marek Szyprowski69be8fd2020-06-03 14:43:40 +020011config SYS_NUM_ADDR_MAP
12 int "Size of the address-map table"
13 depends on ADDR_MAP
14 default 16
15 help
16 Sets the number of entries in the virtual-physical mapping table.
17
Tom Rini3b8dfc42022-11-16 13:10:38 -050018config SYS_TIMER_COUNTS_DOWN
19 bool "System timer counts down rathe than up"
20
Simon Glass6405ab72021-11-24 09:26:42 -070021config PHYSMEM
22 bool "Access to physical memory region (> 4G)"
23 help
24 Some basic support is provided for operations on memory not
25 normally accessible to 32-bit U-Boot - e.g. some architectures
26 support access to more than 4G of memory on 32-bit
27 machines using physical address extension or similar.
28 Enable this to access this basic support, which only supports clearing
29 the memory.
30
Adam Ford6ef2f902017-08-11 09:46:05 -050031config BCH
32 bool "Enable Software based BCH ECC"
33 help
34 Enables software based BCH ECC algorithm present in lib/bch.c
35 This is used by SoC platforms which do not have built-in ELM
36 hardware engine required for BCH ECC correction.
37
Simon Glass3c10dc92019-12-06 21:41:34 -070038config BINMAN_FDT
39 bool "Allow access to binman information in the device tree"
Bin Meng56e72572021-02-03 21:20:02 +080040 depends on BINMAN && DM && OF_CONTROL
Bin Meng1621d3c2021-05-10 20:23:36 +080041 default y if OF_SEPARATE || OF_EMBED
Simon Glass3c10dc92019-12-06 21:41:34 -070042 help
43 This enables U-Boot to access information about binman entries,
44 stored in the device tree in a binman node. Typical uses are to
45 locate entries in the firmware image. See binman.h for the available
46 functionality.
47
Masahiro Yamadab0928da2014-09-16 16:32:59 +090048config CC_OPTIMIZE_LIBS_FOR_SPEED
49 bool "Optimize libraries for speed"
50 help
51 Enabling this option will pass "-O2" to gcc when compiling
52 under "lib" directory.
53
54 If unsure, say N.
55
Simon Glass1a46cb62021-07-02 12:36:17 -060056config CHARSET
57 bool
Simon Glass1a46cb62021-07-02 12:36:17 -060058
Faiz Abbas36c18772018-02-06 19:15:58 +053059config DYNAMIC_CRC_TABLE
60 bool "Enable Dynamic tables for CRC"
61 help
62 Enable this option to calculate entries for CRC tables at runtime.
63 This can be helpful when reducing the size of the build image
64
Bin Meng2895c4b2018-10-15 02:21:15 -070065config HAVE_ARCH_IOMAP
66 bool
67 help
68 Enable this option if architecture provides io{read,write}{8,16,32}
69 I/O accessor functions.
70
Masahiro Yamada45ccec82014-10-24 01:30:43 +090071config HAVE_PRIVATE_LIBGCC
72 bool
73
Adam Forda451bc22018-02-06 12:14:28 -060074config LIB_UUID
75 bool
76
Kautuk Consul1c03ab92022-12-07 17:12:34 +053077config SEMIHOSTING
78 bool "Support semihosting"
Kautuk Consulae3527f2022-12-07 17:12:35 +053079 depends on ARM || RISCV
Kautuk Consul1c03ab92022-12-07 17:12:34 +053080 help
81 Semihosting is a method for a target to communicate with a host
82 debugger. It uses special instructions which the debugger will trap
83 on and interpret. This allows U-Boot to read/write files, print to
84 the console, and execute arbitrary commands on the host system.
85
86 Enabling this option will add support for reading and writing files
87 on the host system. If you don't have a debugger attached then trying
88 to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
89
90config SEMIHOSTING_FALLBACK
91 bool "Recover gracefully when semihosting fails"
Kautuk Consulae3527f2022-12-07 17:12:35 +053092 depends on SEMIHOSTING && (ARM64 || RISCV)
Kautuk Consul1c03ab92022-12-07 17:12:34 +053093 default y
94 help
95 Normally, if U-Boot makes a semihosting call and no debugger is
96 attached, then it will panic due to a synchronous abort
97 exception. This config adds an exception handler which will allow
98 U-Boot to recover. Say 'y' if unsure.
99
100config SPL_SEMIHOSTING
101 bool "Support semihosting in SPL"
Kautuk Consulae3527f2022-12-07 17:12:35 +0530102 depends on SPL && (ARM || RISCV)
Kautuk Consul1c03ab92022-12-07 17:12:34 +0530103 help
104 Semihosting is a method for a target to communicate with a host
105 debugger. It uses special instructions which the debugger will trap
106 on and interpret. This allows U-Boot to read/write files, print to
107 the console, and execute arbitrary commands on the host system.
108
109 Enabling this option will add support for reading and writing files
110 on the host system. If you don't have a debugger attached then trying
111 to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
112
113config SPL_SEMIHOSTING_FALLBACK
114 bool "Recover gracefully when semihosting fails in SPL"
Kautuk Consulae3527f2022-12-07 17:12:35 +0530115 depends on SPL_SEMIHOSTING && (ARM64 || RISCV)
116 select ARMV8_SPL_EXCEPTION_VECTORS if ARM64
Kautuk Consul1c03ab92022-12-07 17:12:34 +0530117 default y
118 help
119 Normally, if U-Boot makes a semihosting call and no debugger is
120 attached, then it will panic due to a synchronous abort
121 exception. This config adds an exception handler which will allow
122 U-Boot to recover. Say 'y' if unsure.
123
Alex Kiernan14ad44a2018-04-19 04:32:54 +0000124config PRINTF
125 bool
126 default y
127
128config SPL_PRINTF
129 bool
130 select SPL_SPRINTF
Simon Glass27084c02019-09-25 08:56:27 -0600131 select SPL_STRTO if !SPL_USE_TINY_PRINTF
Alex Kiernan14ad44a2018-04-19 04:32:54 +0000132
133config TPL_PRINTF
134 bool
135 select TPL_SPRINTF
Simon Glass27084c02019-09-25 08:56:27 -0600136 select TPL_STRTO if !TPL_USE_TINY_PRINTF
Alex Kiernan14ad44a2018-04-19 04:32:54 +0000137
Simon Glass747093d2022-04-30 00:56:53 -0600138config VPL_PRINTF
139 bool
140 select VPL_SPRINTF
141 select VPL_STRTO if !VPL_USE_TINY_PRINTF
142
Alex Kiernan14ad44a2018-04-19 04:32:54 +0000143config SPRINTF
144 bool
145 default y
146
147config SPL_SPRINTF
148 bool
149
150config TPL_SPRINTF
151 bool
152
Simon Glass747093d2022-04-30 00:56:53 -0600153config VPL_SPRINTF
154 bool
155
Andrii Anisove87dfb02020-08-06 12:42:52 +0300156config SSCANF
157 bool
Andrii Anisove87dfb02020-08-06 12:42:52 +0300158
Alex Kiernan14ad44a2018-04-19 04:32:54 +0000159config STRTO
160 bool
161 default y
162
163config SPL_STRTO
164 bool
165
166config TPL_STRTO
167 bool
168
Simon Glass747093d2022-04-30 00:56:53 -0600169config VPL_STRTO
170 bool
171
Alex Kiernanc232d142018-05-29 15:30:52 +0000172config IMAGE_SPARSE
173 bool
174
175config IMAGE_SPARSE_FILLBUF_SIZE
176 hex "Android sparse image CHUNK_TYPE_FILL buffer size"
177 default 0x80000
178 depends on IMAGE_SPARSE
179 help
180 Set the size of the fill buffer used when processing CHUNK_TYPE_FILL
181 chunks.
182
Masahiro Yamada45ccec82014-10-24 01:30:43 +0900183config USE_PRIVATE_LIBGCC
184 bool "Use private libgcc"
185 depends on HAVE_PRIVATE_LIBGCC
Marek Vasut91b86e22016-05-26 18:01:47 +0200186 default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
Masahiro Yamada45ccec82014-10-24 01:30:43 +0900187 help
188 This option allows you to use the built-in libgcc implementation
Masahiro Yamada67976302016-03-30 20:17:42 +0900189 of U-Boot instead of the one provided by the compiler.
Masahiro Yamada45ccec82014-10-24 01:30:43 +0900190 If unsure, say N.
191
Masahiro Yamada8c688bc2014-10-24 01:30:40 +0900192config SYS_HZ
193 int
194 default 1000
195 help
196 The frequency of the timer returned by get_timer().
197 get_timer() must operate in milliseconds and this option must be
198 set to 1000.
199
Simon Glass27084c02019-09-25 08:56:27 -0600200config SPL_USE_TINY_PRINTF
Thomas Hebb37ef1772019-11-10 08:23:53 -0800201 bool "Enable tiny printf() version in SPL"
Simon Glass27084c02019-09-25 08:56:27 -0600202 depends on SPL
Tom Rini2a51e162019-06-08 12:46:18 -0400203 default y
Stefan Roese7d9cde12015-11-23 07:00:22 +0100204 help
205 This option enables a tiny, stripped down printf version.
206 This should only be used in space limited environments,
207 like SPL versions with hard memory limits. This version
208 reduces the code size by about 2.5KiB on armv7.
209
210 The supported format specifiers are %c, %s, %u/%d and %x.
211
Simon Glass27084c02019-09-25 08:56:27 -0600212config TPL_USE_TINY_PRINTF
Thomas Hebb37ef1772019-11-10 08:23:53 -0800213 bool "Enable tiny printf() version in TPL"
Simon Glass27084c02019-09-25 08:56:27 -0600214 depends on TPL
215 default y if SPL_USE_TINY_PRINTF
216 help
217 This option enables a tiny, stripped down printf version.
218 This should only be used in space limited environments,
219 like SPL versions with hard memory limits. This version
220 reduces the code size by about 2.5KiB on armv7.
221
222 The supported format specifiers are %c, %s, %u/%d and %x.
223
Simon Glass747093d2022-04-30 00:56:53 -0600224config VPL_USE_TINY_PRINTF
225 bool "Enable tiny printf() version for VPL"
226 depends on VPL
227 help
228 This option enables a tiny, stripped down printf version.
229 This should only be used in space limited environments,
230 like SPL versions with hard memory limits. This version
231 reduces the code size by about 2.5KiB on armv7.
232
233 The supported format specifiers are %c, %s, %u/%d and %x.
234
Masahiro Yamada7e3caa82017-12-04 12:37:00 +0900235config PANIC_HANG
236 bool "Do not reset the system on fatal error"
237 help
238 Define this option to stop the system in case of a fatal error,
239 so that you have to reset it manually. This is probably NOT a good
240 idea for an embedded system where you want the system to reboot
241 automatically as fast as possible, but it may be useful during
242 development since you can try to debug the conditions that lead to
243 the situation.
244
Joe Hershberger1a606502015-04-21 17:02:42 -0500245config REGEX
246 bool "Enable regular expression support"
Joe Hershbergerf7848d92015-06-22 17:57:36 -0500247 default y if NET
Joe Hershberger1a606502015-04-21 17:02:42 -0500248 help
249 If this variable is defined, U-Boot is linked against the
250 SLRE (Super Light Regular Expression) library, which adds
251 regex support to some commands, for example "env grep" and
252 "setexpr".
253
Adam Forda5a37562018-02-06 10:18:18 -0600254choice
255 prompt "Pseudo-random library support type"
Heinrich Schuchardt16112352020-01-19 19:28:12 +0100256 depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID || \
Heinrich Schuchardt28cef9c2020-11-20 12:55:22 +0100257 RNG_SANDBOX || UT_LIB && AES || FAT_WRITE
Adam Forda5a37562018-02-06 10:18:18 -0600258 default LIB_RAND
Masahiro Yamada3850dbe2015-06-11 19:16:43 +0900259 help
Adam Forda5a37562018-02-06 10:18:18 -0600260 Select the library to provide pseudo-random number generator
261 functions. LIB_HW_RAND supports certain hardware engines that
262 provide this functionality. If in doubt, select LIB_RAND.
263
264config LIB_RAND
265 bool "Pseudo-random library support"
266
267config LIB_HW_RAND
Marcin Juszkiewicz43e442a2020-05-26 19:07:15 +0200268 bool "HW Engine for random library support"
Adam Forda5a37562018-02-06 10:18:18 -0600269
270endchoice
Michal Simek9ba9e852015-05-25 11:37:22 +0200271
Simon Glasse1722fc2021-12-01 09:02:36 -0700272config SUPPORT_ACPI
273 bool
274 help
275 Enable this if your arch or board can support generating ACPI
276 (Advanced Configuration and Power Interface) tables. In this case
277 U-Boot can generate these tables and pass them to the Operating
278 System.
279
280config GENERATE_ACPI_TABLE
281 bool "Generate an ACPI (Advanced Configuration and Power Interface) table"
282 depends on SUPPORT_ACPI
283 select QFW if QEMU
284 help
285 The Advanced Configuration and Power Interface (ACPI) specification
286 provides an open standard for device configuration and management
287 by the operating system. It defines platform-independent interfaces
288 for configuration and power management monitoring.
289
Simon Glassab4458b2017-04-02 09:50:28 -0600290config SPL_TINY_MEMSET
291 bool "Use a very small memset() in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400292 depends on SPL
Simon Glassab4458b2017-04-02 09:50:28 -0600293 help
294 The faster memset() is the arch-specific one (if available) enabled
295 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
296 better performance by writing a word at a time. But in very
Chris Packham6e705112019-01-13 22:13:28 +1300297 size-constrained environments even this may be too big. Enable this
Simon Glassab4458b2017-04-02 09:50:28 -0600298 option to reduce code size slightly at the cost of some speed.
299
Philipp Tomsich96b90822017-08-03 22:52:04 +0200300config TPL_TINY_MEMSET
301 bool "Use a very small memset() in TPL"
Tom Rini8bea4bf2022-06-08 08:24:39 -0400302 depends on TPL
Philipp Tomsich96b90822017-08-03 22:52:04 +0200303 help
304 The faster memset() is the arch-specific one (if available) enabled
305 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
306 better performance by writing a word at a time. But in very
Chris Packham6e705112019-01-13 22:13:28 +1300307 size-constrained environments even this may be too big. Enable this
Philipp Tomsich96b90822017-08-03 22:52:04 +0200308 option to reduce code size slightly at the cost of some speed.
309
Boris Brezillonaa049152017-02-27 18:22:05 +0100310config RBTREE
311 bool
312
Nandor Handa5337a2017-11-08 15:35:14 +0000313config BITREVERSE
314 bool "Bit reverse library from Linux"
315
Simon Glassa24a78d2019-04-08 13:20:51 -0600316config TRACE
317 bool "Support for tracing of function calls and timing"
318 imply CMD_TRACE
Pragnesh Patela80f8512021-01-17 18:11:24 +0530319 select TIMER_EARLY
Simon Glassa24a78d2019-04-08 13:20:51 -0600320 help
321 Enables function tracing within U-Boot. This allows recording of call
322 traces including timing information. The command can write data to
323 memory for exporting for analysis (e.g. using bootchart).
324 See doc/README.trace for full details.
325
Simon Glass1c6eb072019-04-08 13:20:52 -0600326config TRACE_BUFFER_SIZE
327 hex "Size of trace buffer in U-Boot"
328 depends on TRACE
329 default 0x01000000
330 help
331 Sets the size of the trace buffer in U-Boot. This is allocated from
332 memory during relocation. If this buffer is too small, the trace
333 history will be truncated, with later records omitted.
334
335 If early trace is enabled (i.e. before relocation), this buffer must
336 be large enough to include all the data from the early trace buffer as
337 well, since this is copied over to the main buffer during relocation.
338
339 A trace record is emitted for each function call and each record is
340 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
341 the size is too small then 'trace stats' will show a message saying
342 how many records were dropped due to buffer overflow.
343
Heinrich Schuchardtda0fb5f2019-06-02 13:30:09 +0200344config TRACE_CALL_DEPTH_LIMIT
345 int "Trace call depth limit"
346 depends on TRACE
347 default 15
348 help
349 Sets the maximum call depth up to which function calls are recorded.
350
Simon Glass1c6eb072019-04-08 13:20:52 -0600351config TRACE_EARLY
352 bool "Enable tracing before relocation"
353 depends on TRACE
354 help
355 Sometimes it is helpful to trace execution of U-Boot before
356 relocation. This is possible by using a arch-specific, fixed buffer
357 position in memory. Enable this option to start tracing as early as
358 possible after U-Boot starts.
359
360config TRACE_EARLY_SIZE
361 hex "Size of early trace buffer in U-Boot"
362 depends on TRACE_EARLY
363 default 0x00100000
364 help
365 Sets the size of the early trace buffer in bytes. This is used to hold
366 tracing information before relocation.
367
Heinrich Schuchardtda0fb5f2019-06-02 13:30:09 +0200368config TRACE_EARLY_CALL_DEPTH_LIMIT
369 int "Early trace call depth limit"
370 depends on TRACE_EARLY
371 default 200
372 help
373 Sets the maximum call depth up to which function calls are recorded
374 during early tracing.
375
Simon Glass1c6eb072019-04-08 13:20:52 -0600376config TRACE_EARLY_ADDR
377 hex "Address of early trace buffer in U-Boot"
378 depends on TRACE_EARLY
379 default 0x00100000
380 help
381 Sets the address of the early trace buffer in U-Boot. This memory
382 must be accessible before relocation.
383
384 A trace record is emitted for each function call and each record is
385 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
386 the size is too small then the message which says the amount of early
387 data being coped will the the same as the
388
Loic Poulain334a9b92021-11-25 18:16:14 +0100389config CIRCBUF
390 bool "Enable circular buffer support"
391
Simon Glassd1389402015-06-23 15:38:23 -0600392source lib/dhry/Kconfig
393
Simon Glassb1a873d2017-04-26 22:27:49 -0600394menu "Security support"
395
396config AES
397 bool "Support the AES algorithm"
398 help
399 This provides a means to encrypt and decrypt data using the AES
400 (Advanced Encryption Standard). This algorithm uses a symetric key
401 and is widely used as a streaming cipher. Different key lengths are
402 supported by the algorithm but only a 128-bit key is supported at
403 present.
404
Alexandru Gagniuc928a8be2021-07-29 11:47:16 -0500405source lib/ecdsa/Kconfig
Ruchika Guptad9f23c72015-01-23 16:01:56 +0530406source lib/rsa/Kconfig
AKASHI Takahirob4adf622019-11-13 09:45:00 +0900407source lib/crypto/Kconfig
Steffen Jaeckel26dd9932021-07-08 15:57:33 +0200408source lib/crypt/Kconfig
Ruchika Guptac4beb222015-01-23 16:01:51 +0530409
Simon Glassa7d660b2015-08-22 18:31:19 -0600410config TPM
411 bool "Trusted Platform Module (TPM) Support"
Simon Glass2419cd12015-10-03 06:39:36 -0600412 depends on DM
Sughosh Ganue67ffb52022-07-22 21:32:04 +0530413 imply DM_RNG
Simon Glassa7d660b2015-08-22 18:31:19 -0600414 help
415 This enables support for TPMs which can be used to provide security
416 features for your board. The TPM can be connected via LPC or I2C
417 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
418 command to interactive the TPM. Driver model support is provided
419 for the low-level TPM interface, but only one TPM is supported at
420 a time by the TPM library.
421
Simon Glass63078962018-10-01 12:22:19 -0600422config SPL_TPM
423 bool "Trusted Platform Module (TPM) Support in SPL"
424 depends on SPL_DM
425 help
426 This enables support for TPMs which can be used to provide security
427 features for your board. The TPM can be connected via LPC or I2C
428 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
429 command to interactive the TPM. Driver model support is provided
430 for the low-level TPM interface, but only one TPM is supported at
431 a time by the TPM library.
432
433config TPL_TPM
434 bool "Trusted Platform Module (TPM) Support in TPL"
435 depends on TPL_DM
436 help
437 This enables support for TPMs which can be used to provide security
438 features for your board. The TPM can be connected via LPC or I2C
439 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
440 command to interactive the TPM. Driver model support is provided
441 for the low-level TPM interface, but only one TPM is supported at
442 a time by the TPM library.
443
Simon Glass747093d2022-04-30 00:56:53 -0600444config VPL_TPM
445 bool "Trusted Platform Module (TPM) Support in VPL"
446 depends on VPL_DM
447 help
448 This enables support for TPMs which can be used to provide security
449 features for your board. The TPM can be connected via LPC or I2C
450 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
451 command to interactive the TPM. Driver model support is provided
452 for the low-level TPM interface, but only one TPM is supported at
453 a time by the TPM library.
454
Simon Glassb1a873d2017-04-26 22:27:49 -0600455endmenu
456
Igor Opaniuk33305842018-06-03 21:56:37 +0300457menu "Android Verified Boot"
458
459config LIBAVB
460 bool "Android Verified Boot 2.0 support"
461 depends on ANDROID_BOOT_IMAGE
Igor Opaniuk33305842018-06-03 21:56:37 +0300462 help
463 This enables support of Android Verified Boot 2.0 which can be used
464 to assure the end user of the integrity of the software running on a
465 device. Introduces such features as boot chain of trust, rollback
466 protection etc.
467
468endmenu
469
gaurav rana94e3c8c2015-02-20 12:51:46 +0530470menu "Hashing Support"
471
Qu Wenruo7c3fd5c2021-12-27 14:12:07 +0800472config BLAKE2
473 bool "Enable BLAKE2 support"
474 help
475 This option enables support of hashing using BLAKE2B algorithm.
476 The hash is calculated in software.
477 The BLAKE2 algorithm produces a hash value (digest) between 1 and
478 64 bytes.
479
gaurav rana94e3c8c2015-02-20 12:51:46 +0530480config SHA1
481 bool "Enable SHA1 support"
482 help
483 This option enables support of hashing using SHA1 algorithm.
484 The hash is calculated in software.
485 The SHA1 algorithm produces a 160-bit (20-byte) hash value
486 (digest).
487
488config SHA256
489 bool "Enable SHA256 support"
490 help
491 This option enables support of hashing using SHA256 algorithm.
492 The hash is calculated in software.
493 The SHA256 algorithm produces a 256-bit (32-byte) hash value
494 (digest).
495
Reuben Dowled16b38f2020-04-16 17:36:52 +1200496config SHA512
497 bool "Enable SHA512 support"
Reuben Dowled16b38f2020-04-16 17:36:52 +1200498 help
499 This option enables support of hashing using SHA512 algorithm.
500 The hash is calculated in software.
501 The SHA512 algorithm produces a 512-bit (64-byte) hash value
502 (digest).
503
504config SHA384
505 bool "Enable SHA384 support"
Alexandru Gagniuce60e4492021-09-02 19:54:18 -0500506 select SHA512
Reuben Dowled16b38f2020-04-16 17:36:52 +1200507 help
508 This option enables support of hashing using SHA384 algorithm.
Alexandru Gagniuce60e4492021-09-02 19:54:18 -0500509 The hash is calculated in software. This is also selects SHA512,
510 because these implementations share the bulk of the code..
Reuben Dowled16b38f2020-04-16 17:36:52 +1200511 The SHA384 algorithm produces a 384-bit (48-byte) hash value
512 (digest).
513
gaurav rana94e3c8c2015-02-20 12:51:46 +0530514config SHA_HW_ACCEL
Heinrich Schuchardte2ae4832021-05-14 07:08:27 +0200515 bool "Enable hardware acceleration for SHA hash functions"
gaurav rana94e3c8c2015-02-20 12:51:46 +0530516 help
Heinrich Schuchardte2ae4832021-05-14 07:08:27 +0200517 This option enables hardware acceleration for the SHA1 and SHA256
518 hashing algorithms. This affects the 'hash' command and also the
519 hash_lookup_algo() function.
520
Simon Glass603d15a2021-09-25 19:43:17 -0600521if SPL
522
523config SPL_SHA1
524 bool "Enable SHA1 support in SPL"
525 default y if SHA1
526 help
527 This option enables support of hashing using SHA1 algorithm.
528 The hash is calculated in software.
529 The SHA1 algorithm produces a 160-bit (20-byte) hash value
530 (digest).
531
532config SPL_SHA256
533 bool "Enable SHA256 support in SPL"
534 default y if SHA256
535 help
536 This option enables support of hashing using SHA256 algorithm.
537 The hash is calculated in software.
538 The SHA256 algorithm produces a 256-bit (32-byte) hash value
539 (digest).
540
541config SPL_SHA512
542 bool "Enable SHA512 support in SPL"
543 default y if SHA512
544 help
545 This option enables support of hashing using SHA512 algorithm.
546 The hash is calculated in software.
547 The SHA512 algorithm produces a 512-bit (64-byte) hash value
548 (digest).
549
550config SPL_SHA384
551 bool "Enable SHA384 support in SPL"
552 default y if SHA384
553 select SPL_SHA512
554 help
555 This option enables support of hashing using SHA384 algorithm.
556 The hash is calculated in software. This is also selects SHA512,
557 because these implementations share the bulk of the code..
558 The SHA384 algorithm produces a 384-bit (48-byte) hash value
559 (digest).
560
Simon Glass2c212562021-09-25 19:43:18 -0600561config SPL_SHA_HW_ACCEL
562 bool "Enable hardware acceleration for SHA hash functions"
563 default y if SHA_HW_ACCEL
564 help
565 This option enables hardware acceleration for the SHA1 and SHA256
566 hashing algorithms. This affects the 'hash' command and also the
567 hash_lookup_algo() function.
568
569config SPL_SHA_PROG_HW_ACCEL
570 bool "Enable Progressive hashing support using hardware in SPL"
571 depends on SHA_PROG_HW_ACCEL
572 default y
573 help
574 This option enables hardware-acceleration for SHA progressive
575 hashing.
576 Data can be streamed in a block at a time and the hashing is
577 performed in hardware.
578
Simon Glass603d15a2021-09-25 19:43:17 -0600579endif
580
Heinrich Schuchardte2ae4832021-05-14 07:08:27 +0200581if SHA_HW_ACCEL
582
583config SHA512_HW_ACCEL
584 bool "Enable hardware acceleration for SHA512"
Alexandru Gagniuce60e4492021-09-02 19:54:18 -0500585 depends on SHA512
Heinrich Schuchardte2ae4832021-05-14 07:08:27 +0200586 help
587 This option enables hardware acceleration for the SHA384 and SHA512
588 hashing algorithms. This affects the 'hash' command and also the
589 hash_lookup_algo() function.
gaurav rana94e3c8c2015-02-20 12:51:46 +0530590
591config SHA_PROG_HW_ACCEL
592 bool "Enable Progressive hashing support using hardware"
gaurav rana94e3c8c2015-02-20 12:51:46 +0530593 help
Joel Stanleya479f102021-02-17 13:50:42 +1030594 This option enables hardware-acceleration for SHA progressive
595 hashing.
596 Data can be streamed in a block at a time and the hashing is
597 performed in hardware.
Andre Przywarabea79d72017-03-15 01:19:05 +0000598
Heinrich Schuchardte2ae4832021-05-14 07:08:27 +0200599endif
600
Andre Przywarabea79d72017-03-15 01:19:05 +0000601config MD5
Simon Glass8239be62020-05-06 08:03:56 -0600602 bool "Support MD5 algorithm"
603 help
604 This option enables MD5 support. MD5 is an algorithm designed
605 in 1991 that produces a 16-byte digest (or checksum) from its input
606 data. It has a number of vulnerabilities which preclude its use in
607 security applications, but it can be useful for providing a quick
608 checksum of a block of data.
609
610config SPL_MD5
611 bool "Support MD5 algorithm in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400612 depends on SPL
Simon Glass8239be62020-05-06 08:03:56 -0600613 help
614 This option enables MD5 support in SPL. MD5 is an algorithm designed
615 in 1991 that produces a 16-byte digest (or checksum) from its input
616 data. It has a number of vulnerabilities which preclude its use in
617 security applications, but it can be useful for providing a quick
618 checksum of a block of data.
Andre Przywarabea79d72017-03-15 01:19:05 +0000619
Simon Glasse7d285b2021-09-25 19:43:24 -0600620config CRC32
621 def_bool y
622 help
623 Enables CRC32 support in U-Boot. This is normally required.
624
Marek Behún85d8bf52017-09-03 17:00:23 +0200625config CRC32C
626 bool
627
Marek Behún83a486b2019-04-29 22:40:43 +0200628config XXHASH
629 bool
630
gaurav rana94e3c8c2015-02-20 12:51:46 +0530631endmenu
632
Julius Werner027b7282015-10-06 20:03:53 -0700633menu "Compression Support"
634
635config LZ4
636 bool "Enable LZ4 decompression support"
637 help
638 If this option is set, support for LZ4 compressed images
639 is included. The LZ4 algorithm can run in-place as long as the
640 compressed image is loaded to the end of the output buffer, and
641 trades lower compression ratios for much faster decompression.
Patrick Delaunay4fa01502021-03-10 10:16:28 +0100642
Julius Werner027b7282015-10-06 20:03:53 -0700643 NOTE: This implements the release version of the LZ4 frame
644 format as generated by default by the 'lz4' command line tool.
645 This is not the same as the outdated, less efficient legacy
646 frame format currently (2015) implemented in the Linux kernel
647 (generated by 'lz4 -l'). The two formats are incompatible.
648
Simon Glassaed998a2017-05-17 03:25:42 -0600649config LZMA
650 bool "Enable LZMA decompression support"
651 help
652 This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
653 a dictionary compression algorithm that provides a high compression
654 ratio and fairly fast decompression speed. See also
655 CONFIG_CMD_LZMADEC which provides a decode command.
656
Boris Brezillon173aafb2017-02-27 18:22:06 +0100657config LZO
Tom Rinid56b4b12017-07-22 18:36:16 -0400658 bool "Enable LZO decompression support"
659 help
Oleksandr Suvorov5145bc72021-09-01 16:05:08 +0300660 This enables support for the LZO compression algorithm.
York Sun7264f292017-08-15 11:14:43 -0700661
Marek Vasut95f4bbd2019-03-08 16:06:55 +0100662config GZIP
Heiko Schocher51323612019-04-29 08:59:38 +0200663 bool "Enable gzip decompression support"
Marek Vasut95f4bbd2019-03-08 16:06:55 +0100664 select ZLIB
665 default y
666 help
667 This enables support for GZIP compression algorithm.
668
Joao Marcos Costa81014f72020-07-30 15:33:49 +0200669config ZLIB_UNCOMPRESS
670 bool "Enables zlib's uncompress() functionality"
671 help
672 This enables an extra zlib functionality: the uncompress() function,
673 which decompresses data from a buffer into another, knowing their
674 sizes. Unlike gunzip(), there is no header parsing.
675
Michael Walleeff5a542020-05-22 14:07:36 +0200676config GZIP_COMPRESSED
677 bool
678 select ZLIB
679
Atish Patra2a2119e2020-03-05 16:24:21 -0800680config BZIP2
681 bool "Enable bzip2 decompression support"
682 help
683 This enables support for BZIP2 compression algorithm.
684
Marek Vasut95f4bbd2019-03-08 16:06:55 +0100685config ZLIB
686 bool
687 default y
688 help
689 This enables ZLIB compression lib.
690
Marek Behún8509f222019-04-29 22:40:44 +0200691config ZSTD
692 bool "Enable Zstandard decompression support"
693 select XXHASH
694 help
695 This enables Zstandard decompression library.
696
Brandon Maier4b9b25d2023-01-12 10:27:45 -0600697if ZSTD
698
699config ZSTD_LIB_MINIFY
700 bool "Minify Zstandard code"
701 default y
702 help
703 This disables various optional components and changes the
704 compilation flags to prioritize space-saving.
705
706 For detailed info, see zstd's lib/README.md
707
708 https://github.com/facebook/zstd/blob/dev/lib/README.md
709
710endif
711
Simon Glass048c6e82018-11-06 15:21:30 -0700712config SPL_LZ4
713 bool "Enable LZ4 decompression support in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400714 depends on SPL
Simon Glass048c6e82018-11-06 15:21:30 -0700715 help
Marcin Juszkiewicz43e442a2020-05-26 19:07:15 +0200716 This enables support for the LZ4 decompression algorithm in SPL. LZ4
Simon Glass048c6e82018-11-06 15:21:30 -0700717 is a lossless data compression algorithm that is focused on
718 fast compression and decompression speed. It belongs to the LZ77
719 family of byte-oriented compression schemes.
720
Weijie Gao04cb3992020-04-21 09:28:38 +0200721config SPL_LZMA
722 bool "Enable LZMA decompression support for SPL build"
Tom Rinib3401992022-06-10 23:03:09 -0400723 depends on SPL
Weijie Gao04cb3992020-04-21 09:28:38 +0200724 help
Marcin Juszkiewicz43e442a2020-05-26 19:07:15 +0200725 This enables support for LZMA compression algorithm for SPL boot.
Weijie Gao04cb3992020-04-21 09:28:38 +0200726
Simon Glass747093d2022-04-30 00:56:53 -0600727config VPL_LZMA
728 bool "Enable LZMA decompression support for VPL build"
729 default y if LZMA
730 help
731 This enables support for LZMA compression algorithm for VPL boot.
732
Jean-Jacques Hiblotf52bdf42017-09-15 12:57:30 +0200733config SPL_LZO
734 bool "Enable LZO decompression support in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400735 depends on SPL
Jean-Jacques Hiblotf52bdf42017-09-15 12:57:30 +0200736 help
737 This enables support for LZO compression algorithm in the SPL.
738
York Sun7264f292017-08-15 11:14:43 -0700739config SPL_GZIP
740 bool "Enable gzip decompression support for SPL build"
741 select SPL_ZLIB
742 help
Oleksandr Suvorov5145bc72021-09-01 16:05:08 +0300743 This enables support for the GZIP compression algorithm for SPL boot.
York Sun7264f292017-08-15 11:14:43 -0700744
745config SPL_ZLIB
746 bool
747 help
748 This enables compression lib for SPL boot.
749
Marek Behún8509f222019-04-29 22:40:44 +0200750config SPL_ZSTD
751 bool "Enable Zstandard decompression support in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400752 depends on SPL
Marek Behún8509f222019-04-29 22:40:44 +0200753 select XXHASH
754 help
755 This enables Zstandard decompression library in the SPL.
756
Julius Werner027b7282015-10-06 20:03:53 -0700757endmenu
758
Przemyslaw Marczak6501ff62015-04-20 20:07:40 +0200759config ERRNO_STR
760 bool "Enable function for getting errno-related string message"
761 help
762 The function errno_str(int errno), returns a pointer to the errno
763 corresponding text message:
764 - if errno is null or positive number - a pointer to "Success" message
765 - if errno is negative - a pointer to errno related message
766
Alexey Brodkinf8c987f2018-06-05 17:17:57 +0300767config HEXDUMP
768 bool "Enable hexdump"
769 help
770 This enables functions for printing dumps of binary data.
771
Simon Glass26637e22020-09-12 11:13:35 -0600772config SPL_HEXDUMP
773 bool "Enable hexdump in SPL"
Heinrich Schuchardtfa3f1f12021-07-24 17:35:46 +0200774 depends on SPL && HEXDUMP
Simon Glass26637e22020-09-12 11:13:35 -0600775 help
776 This enables functions for printing dumps of binary data in
777 SPL.
778
Sean Anderson72eda502020-10-27 19:55:36 -0400779config GETOPT
780 bool "Enable getopt"
781 help
782 This enables functions for parsing command-line options.
783
Simon Glass69e173e2016-02-22 22:55:42 -0700784config OF_LIBFDT
785 bool "Enable the FDT library"
786 default y if OF_CONTROL
787 help
788 This enables the FDT library (libfdt). It provides functions for
789 accessing binary device tree images in memory, such as adding and
Anatolij Gustschinf1a7ba12017-08-18 17:58:51 +0200790 removing nodes and properties, scanning through the tree and finding
Simon Glass69e173e2016-02-22 22:55:42 -0700791 particular compatible nodes. The library operates on a flattened
792 version of the device tree.
793
Simon Glass0d76afc2019-10-27 09:47:40 -0600794config OF_LIBFDT_ASSUME_MASK
795 hex "Mask of conditions to assume for libfdt"
796 depends on OF_LIBFDT || FIT
797 default 0
798 help
799 Use this to change the assumptions made by libfdt about the
800 device tree it is working with. A value of 0 means that no assumptions
801 are made, and libfdt is able to deal with malicious data. A value of
802 0xff means all assumptions are made and any invalid data may cause
803 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
804
Maxime Ripardddf67f72016-07-05 10:26:44 +0200805config OF_LIBFDT_OVERLAY
806 bool "Enable the FDT library overlay support"
Tom Rini64175722018-05-08 08:52:17 -0400807 depends on OF_LIBFDT
Praneeth Bajjuri58a46f82018-04-25 16:03:23 -0500808 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
Maxime Ripardddf67f72016-07-05 10:26:44 +0200809 help
810 This enables the FDT library (libfdt) overlay support.
811
Tom Rini40ed7be2022-08-02 07:33:27 -0400812config SYS_FDT_PAD
813 hex "Maximum size of the FDT memory area passeed to the OS"
814 depends on OF_LIBFDT
815 default 0x13000 if FMAN_ENET || QE || U_QE
816 default 0x3000
817 help
818 During OS boot, we allocate a region of memory within the bootmap
819 for the FDT. This is the size that we will expand the FDT that we
820 are using will be extended to be, in bytes.
821
Simon Glassaa34fbc2016-02-22 22:55:45 -0700822config SPL_OF_LIBFDT
823 bool "Enable the FDT library for SPL"
Simon Glass747093d2022-04-30 00:56:53 -0600824 depends on SPL_LIBGENERIC_SUPPORT
Simon Glassaa34fbc2016-02-22 22:55:45 -0700825 default y if SPL_OF_CONTROL
826 help
827 This enables the FDT library (libfdt). It provides functions for
828 accessing binary device tree images in memory, such as adding and
Anatolij Gustschinf1a7ba12017-08-18 17:58:51 +0200829 removing nodes and properties, scanning through the tree and finding
Simon Glassaa34fbc2016-02-22 22:55:45 -0700830 particular compatible nodes. The library operates on a flattened
831 version of the device tree.
832
Simon Glass0d76afc2019-10-27 09:47:40 -0600833config SPL_OF_LIBFDT_ASSUME_MASK
834 hex "Mask of conditions to assume for libfdt"
Tom Rinib3401992022-06-10 23:03:09 -0400835 depends on SPL_OF_LIBFDT || (FIT && SPL)
Simon Glass0d76afc2019-10-27 09:47:40 -0600836 default 0xff
837 help
838 Use this to change the assumptions made by libfdt in SPL about the
839 device tree it is working with. A value of 0 means that no assumptions
840 are made, and libfdt is able to deal with malicious data. A value of
841 0xff means all assumptions are made and any invalid data may cause
842 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
843
Simon Glass5592a632018-10-01 12:22:21 -0600844config TPL_OF_LIBFDT
845 bool "Enable the FDT library for TPL"
Simon Glass747093d2022-04-30 00:56:53 -0600846 depends on TPL_LIBGENERIC_SUPPORT
Simon Glass5592a632018-10-01 12:22:21 -0600847 default y if TPL_OF_CONTROL
848 help
849 This enables the FDT library (libfdt). It provides functions for
850 accessing binary device tree images in memory, such as adding and
851 removing nodes and properties, scanning through the tree and finding
852 particular compatible nodes. The library operates on a flattened
853 version of the device tree.
854
Simon Glass0d76afc2019-10-27 09:47:40 -0600855config TPL_OF_LIBFDT_ASSUME_MASK
856 hex "Mask of conditions to assume for libfdt"
Tom Rini8bea4bf2022-06-08 08:24:39 -0400857 depends on TPL_OF_LIBFDT || (FIT && TPL)
Simon Glass0d76afc2019-10-27 09:47:40 -0600858 default 0xff
859 help
860 Use this to change the assumptions made by libfdt in TPL about the
861 device tree it is working with. A value of 0 means that no assumptions
862 are made, and libfdt is able to deal with malicious data. A value of
863 0xff means all assumptions are made and any invalid data may cause
864 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
865
Simon Glass747093d2022-04-30 00:56:53 -0600866config VPL_OF_LIBFDT
867 bool "Enable the FDT library for VPL"
Tom Rini13ce3512022-06-08 08:24:40 -0400868 depends on VPL
Simon Glass747093d2022-04-30 00:56:53 -0600869 default y if VPL_OF_CONTROL && !VPL_OF_PLATDATA
870 help
871 This enables the FDT library (libfdt). It provides functions for
872 accessing binary device tree images in memory, such as adding and
873 removing nodes and properties, scanning through the tree and finding
874 particular compatible nodes. The library operates on a flattened
875 version of the device tree.
876
877config VPL_OF_LIBFDT_ASSUME_MASK
878 hex "Mask of conditions to assume for libfdt"
Tom Rini13ce3512022-06-08 08:24:40 -0400879 depends on VPL_OF_LIBFDT || (FIT && VPL)
Simon Glass747093d2022-04-30 00:56:53 -0600880 default 0xff
881 help
882 Use this to change the assumptions made by libfdt in SPL about the
883 device tree it is working with. A value of 0 means that no assumptions
884 are made, and libfdt is able to deal with malicious data. A value of
885 0xff means all assumptions are made and any invalid data may cause
886 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
887
Heiko Schocherebf7fff2016-10-06 07:31:45 +0200888config FDT_FIXUP_PARTITIONS
889 bool "overwrite MTD partitions in DTS through defined in 'mtdparts'"
890 depends on OF_LIBFDT
Masahiro Yamadaab948cd2018-07-20 11:04:09 +0900891 depends on CMD_MTDPARTS
Heiko Schocherebf7fff2016-10-06 07:31:45 +0200892 help
893 Allow overwriting defined partitions in the device tree blob
894 using partition info defined in the 'mtdparts' environment
895 variable.
896
Alexander Graf4b6dddc2016-08-19 01:23:23 +0200897menu "System tables"
Alexander Grafe663b352016-08-19 01:23:29 +0200898 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
Alexander Graf4b6dddc2016-08-19 01:23:23 +0200899
Simon Glassd2cb7a22020-11-04 09:57:25 -0700900config BLOBLIST_TABLES
901 bool "Put tables in a bloblist"
Simon Glassf2c14422021-03-15 18:11:22 +1300902 depends on X86 && BLOBLIST
Simon Glassd2cb7a22020-11-04 09:57:25 -0700903 help
904 Normally tables are placed at address 0xf0000 and can be up to 64KB
905 long. With this option, tables are instead placed in the bloblist
906 with a pointer from 0xf0000. The size can then be larger and the
907 tables can be placed high in memory.
908
Alexander Graf4b6dddc2016-08-19 01:23:23 +0200909config GENERATE_SMBIOS_TABLE
910 bool "Generate an SMBIOS (System Management BIOS) table"
911 default y
Alexander Grafe663b352016-08-19 01:23:29 +0200912 depends on X86 || EFI_LOADER
Alexander Graf4b6dddc2016-08-19 01:23:23 +0200913 help
914 The System Management BIOS (SMBIOS) specification addresses how
915 motherboard and system vendors present management information about
916 their products in a standard format by extending the BIOS interface
917 on Intel architecture systems.
918
919 Check http://www.dmtf.org/standards/smbios for details.
920
Simon Glass44c74bd2020-11-05 06:32:11 -0700921 See also SMBIOS_SYSINFO which allows SMBIOS values to be provided in
922 the devicetree.
923
Tero Kristo7d0f3fb2021-06-11 11:45:02 +0300924config LIB_RATIONAL
925 bool "enable continued fraction calculation routines"
926
927config SPL_LIB_RATIONAL
928 bool "enable continued fraction calculation routines for SPL"
929 depends on SPL
930
Alexander Graf4b6dddc2016-08-19 01:23:23 +0200931endmenu
932
AKASHI Takahiro2b121962019-11-13 09:44:53 +0900933config ASN1_COMPILER
934 bool
Philippe Reynesa0e71d92022-03-28 22:56:54 +0200935 help
936 ASN.1 (Abstract Syntax Notation One) is a standard interface
937 description language for defining data structures that can be
938 serialized and deserialized in a cross-platform way. It is
939 broadly used in telecommunications and computer networking,
940 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
941 This option enables the support of the asn1 compiler.
AKASHI Takahiro2b121962019-11-13 09:44:53 +0900942
AKASHI Takahiroab8a0e02019-11-13 09:44:55 +0900943config ASN1_DECODER
944 bool
945 help
Philippe Reynesa0e71d92022-03-28 22:56:54 +0200946 ASN.1 (Abstract Syntax Notation One) is a standard interface
947 description language for defining data structures that can be
948 serialized and deserialized in a cross-platform way. It is
949 broadly used in telecommunications and computer networking,
950 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
951 This option enables the support of the asn1 decoder.
AKASHI Takahiroab8a0e02019-11-13 09:44:55 +0900952
Philippe Reynesfd210fe2022-03-28 22:56:56 +0200953config SPL_ASN1_DECODER
954 bool
955 help
956 ASN.1 (Abstract Syntax Notation One) is a standard interface
957 description language for defining data structures that can be
958 serialized and deserialized in a cross-platform way. It is
959 broadly used in telecommunications and computer networking,
960 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
961 This option enables the support of the asn1 decoder in the SPL.
962
AKASHI Takahiroa9b45e62019-11-13 09:44:57 +0900963config OID_REGISTRY
964 bool
965 help
Philippe Reynes7d44a982022-03-28 22:56:55 +0200966 In computing, object identifiers or OIDs are an identifier mechanism
967 standardized by the International Telecommunication Union (ITU) and
968 ISO/IEC for naming any object, concept, or "thing" with a globally
969 unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
AKASHI Takahiroa9b45e62019-11-13 09:44:57 +0900970 Enable fast lookup object identifier registry.
971
Philippe Reynesfd210fe2022-03-28 22:56:56 +0200972config SPL_OID_REGISTRY
973 bool
974 help
975 In computing, object identifiers or OIDs are an identifier mechanism
976 standardized by the International Telecommunication Union (ITU) and
977 ISO/IEC for naming any object, concept, or "thing" with a globally
978 unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
979 Enable fast lookup object identifier registry in the SPL.
980
Christian Gmeiner415eab02020-11-03 15:34:51 +0100981config SMBIOS_PARSER
982 bool "SMBIOS parser"
983 help
984 A simple parser for SMBIOS data.
985
Simon Glass867a6ac2015-07-31 09:31:36 -0600986source lib/efi/Kconfig
Alexander Grafed980b82016-03-04 01:10:07 +0100987source lib/efi_loader/Kconfig
Bryan O'Donoghue32ce6172018-03-13 16:50:27 +0000988source lib/optee/Kconfig
Simon Glass867a6ac2015-07-31 09:31:36 -0600989
Thierry Reding54969b42019-03-21 19:10:04 +0100990config TEST_FDTDEC
991 bool "enable fdtdec test"
992 depends on OF_LIBFDT
993
AKASHI Takahiro05429b62019-11-13 09:44:49 +0900994config LIB_DATE
995 bool
996
Keerthy805b3ca2020-02-12 13:55:03 +0530997config LIB_ELF
998 bool
999 help
Patrick Delaunay6205bbb2021-01-04 15:33:28 +01001000 Support basic elf loading/validating functions.
1001 This supports for 32 bit and 64 bit versions.
Keerthy805b3ca2020-02-12 13:55:03 +05301002
Patrick Delaunay77b8cfe2021-03-10 10:16:25 +01001003config LMB
1004 bool "Enable the logical memory blocks library (lmb)"
Tom Rini11232132022-04-06 09:21:25 -04001005 default y if ARC || ARM || M68K || MICROBLAZE || MIPS || \
Patrick Delaunay77b8cfe2021-03-10 10:16:25 +01001006 NIOS2 || PPC || RISCV || SANDBOX || SH || X86 || XTENSA
1007 help
1008 Support the library logical memory blocks.
1009
Patrick Delaunay6d665022021-03-10 10:16:31 +01001010config LMB_USE_MAX_REGIONS
Heinrich Schuchardtac7606a2021-11-14 09:38:53 +01001011 bool "Use a common number of memory and reserved regions in lmb lib"
Patrick Delaunay6d665022021-03-10 10:16:31 +01001012 depends on LMB
1013 default y
1014 help
1015 Define the number of supported memory regions in the library logical
1016 memory blocks.
1017 This feature allow to reduce the lmb library size by using compiler
1018 optimization when LMB_MEMORY_REGIONS == LMB_RESERVED_REGIONS.
Patrick Delaunay4fa01502021-03-10 10:16:28 +01001019
1020config LMB_MAX_REGIONS
1021 int "Number of memory and reserved regions in lmb lib"
Patrick Delaunay6d665022021-03-10 10:16:31 +01001022 depends on LMB && LMB_USE_MAX_REGIONS
Patrick Delaunay4fa01502021-03-10 10:16:28 +01001023 default 8
1024 help
1025 Define the number of supported regions, memory and reserved, in the
1026 library logical memory blocks.
Patrick Delaunay6d665022021-03-10 10:16:31 +01001027
1028config LMB_MEMORY_REGIONS
1029 int "Number of memory regions in lmb lib"
1030 depends on LMB && !LMB_USE_MAX_REGIONS
1031 default 8
1032 help
1033 Define the number of supported memory regions in the library logical
1034 memory blocks.
1035 The minimal value is CONFIG_NR_DRAM_BANKS.
1036
1037config LMB_RESERVED_REGIONS
1038 int "Number of reserved regions in lmb lib"
1039 depends on LMB && !LMB_USE_MAX_REGIONS
1040 default 8
1041 help
1042 Define the number of supported reserved regions in the library logical
1043 memory blocks.
1044
Eugen Hristev97f2a742022-01-04 18:20:19 +02001045endmenu
Sughosh Ganu86794052022-10-21 18:16:03 +05301046
1047menu "FWU Multi Bank Updates"
1048
1049source lib/fwu_updates/Kconfig
1050
1051endmenu