blob: 7f4c30ec0d99efad9a28f2aecef80179395585c8 [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
9config SYS_NUM_ADDR_MAP
10 int "Size of the address-map table"
11 depends on ADDR_MAP
12 default 16
13 help
14 Sets the number of entries in the virtual-physical mapping table.
15
Adam Ford6ef2f902017-08-11 09:46:05 -050016config BCH
17 bool "Enable Software based BCH ECC"
18 help
19 Enables software based BCH ECC algorithm present in lib/bch.c
20 This is used by SoC platforms which do not have built-in ELM
21 hardware engine required for BCH ECC correction.
22
Simon Glass3c10dc92019-12-06 21:41:34 -070023config BINMAN_FDT
24 bool "Allow access to binman information in the device tree"
Bin Meng56e72572021-02-03 21:20:02 +080025 depends on BINMAN && DM && OF_CONTROL
Simon Glass3c10dc92019-12-06 21:41:34 -070026 default y
27 help
28 This enables U-Boot to access information about binman entries,
29 stored in the device tree in a binman node. Typical uses are to
30 locate entries in the firmware image. See binman.h for the available
31 functionality.
32
Masahiro Yamadab0928da2014-09-16 16:32:59 +090033config CC_OPTIMIZE_LIBS_FOR_SPEED
34 bool "Optimize libraries for speed"
35 help
36 Enabling this option will pass "-O2" to gcc when compiling
37 under "lib" directory.
38
39 If unsure, say N.
40
Faiz Abbas36c18772018-02-06 19:15:58 +053041config DYNAMIC_CRC_TABLE
42 bool "Enable Dynamic tables for CRC"
43 help
44 Enable this option to calculate entries for CRC tables at runtime.
45 This can be helpful when reducing the size of the build image
46
Bin Meng2895c4b2018-10-15 02:21:15 -070047config HAVE_ARCH_IOMAP
48 bool
49 help
50 Enable this option if architecture provides io{read,write}{8,16,32}
51 I/O accessor functions.
52
Masahiro Yamada45ccec82014-10-24 01:30:43 +090053config HAVE_PRIVATE_LIBGCC
54 bool
55
Adam Forda451bc22018-02-06 12:14:28 -060056config LIB_UUID
57 bool
58
Alex Kiernan14ad44a2018-04-19 04:32:54 +000059config PRINTF
60 bool
61 default y
62
63config SPL_PRINTF
64 bool
65 select SPL_SPRINTF
Simon Glass27084c02019-09-25 08:56:27 -060066 select SPL_STRTO if !SPL_USE_TINY_PRINTF
Alex Kiernan14ad44a2018-04-19 04:32:54 +000067
68config TPL_PRINTF
69 bool
70 select TPL_SPRINTF
Simon Glass27084c02019-09-25 08:56:27 -060071 select TPL_STRTO if !TPL_USE_TINY_PRINTF
Alex Kiernan14ad44a2018-04-19 04:32:54 +000072
73config SPRINTF
74 bool
75 default y
76
77config SPL_SPRINTF
78 bool
79
80config TPL_SPRINTF
81 bool
82
Andrii Anisove87dfb02020-08-06 12:42:52 +030083config SSCANF
84 bool
85 default n
86
Alex Kiernan14ad44a2018-04-19 04:32:54 +000087config STRTO
88 bool
89 default y
90
91config SPL_STRTO
92 bool
93
94config TPL_STRTO
95 bool
96
Alex Kiernanc232d142018-05-29 15:30:52 +000097config IMAGE_SPARSE
98 bool
99
100config IMAGE_SPARSE_FILLBUF_SIZE
101 hex "Android sparse image CHUNK_TYPE_FILL buffer size"
102 default 0x80000
103 depends on IMAGE_SPARSE
104 help
105 Set the size of the fill buffer used when processing CHUNK_TYPE_FILL
106 chunks.
107
Masahiro Yamada45ccec82014-10-24 01:30:43 +0900108config USE_PRIVATE_LIBGCC
109 bool "Use private libgcc"
110 depends on HAVE_PRIVATE_LIBGCC
Marek Vasut91b86e22016-05-26 18:01:47 +0200111 default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
Masahiro Yamada45ccec82014-10-24 01:30:43 +0900112 help
113 This option allows you to use the built-in libgcc implementation
Masahiro Yamada67976302016-03-30 20:17:42 +0900114 of U-Boot instead of the one provided by the compiler.
Masahiro Yamada45ccec82014-10-24 01:30:43 +0900115 If unsure, say N.
116
Masahiro Yamada8c688bc2014-10-24 01:30:40 +0900117config SYS_HZ
118 int
119 default 1000
120 help
121 The frequency of the timer returned by get_timer().
122 get_timer() must operate in milliseconds and this option must be
123 set to 1000.
124
Simon Glass27084c02019-09-25 08:56:27 -0600125config SPL_USE_TINY_PRINTF
Thomas Hebb37ef1772019-11-10 08:23:53 -0800126 bool "Enable tiny printf() version in SPL"
Simon Glass27084c02019-09-25 08:56:27 -0600127 depends on SPL
Tom Rini2a51e162019-06-08 12:46:18 -0400128 default y
Stefan Roese7d9cde12015-11-23 07:00:22 +0100129 help
130 This option enables a tiny, stripped down printf version.
131 This should only be used in space limited environments,
132 like SPL versions with hard memory limits. This version
133 reduces the code size by about 2.5KiB on armv7.
134
135 The supported format specifiers are %c, %s, %u/%d and %x.
136
Simon Glass27084c02019-09-25 08:56:27 -0600137config TPL_USE_TINY_PRINTF
Thomas Hebb37ef1772019-11-10 08:23:53 -0800138 bool "Enable tiny printf() version in TPL"
Simon Glass27084c02019-09-25 08:56:27 -0600139 depends on TPL
140 default y if SPL_USE_TINY_PRINTF
141 help
142 This option enables a tiny, stripped down printf version.
143 This should only be used in space limited environments,
144 like SPL versions with hard memory limits. This version
145 reduces the code size by about 2.5KiB on armv7.
146
147 The supported format specifiers are %c, %s, %u/%d and %x.
148
Masahiro Yamada7e3caa82017-12-04 12:37:00 +0900149config PANIC_HANG
150 bool "Do not reset the system on fatal error"
151 help
152 Define this option to stop the system in case of a fatal error,
153 so that you have to reset it manually. This is probably NOT a good
154 idea for an embedded system where you want the system to reboot
155 automatically as fast as possible, but it may be useful during
156 development since you can try to debug the conditions that lead to
157 the situation.
158
Joe Hershberger1a606502015-04-21 17:02:42 -0500159config REGEX
160 bool "Enable regular expression support"
Joe Hershbergerf7848d92015-06-22 17:57:36 -0500161 default y if NET
Joe Hershberger1a606502015-04-21 17:02:42 -0500162 help
163 If this variable is defined, U-Boot is linked against the
164 SLRE (Super Light Regular Expression) library, which adds
165 regex support to some commands, for example "env grep" and
166 "setexpr".
167
Adam Forda5a37562018-02-06 10:18:18 -0600168choice
169 prompt "Pseudo-random library support type"
Heinrich Schuchardt16112352020-01-19 19:28:12 +0100170 depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID || \
Heinrich Schuchardt28cef9c2020-11-20 12:55:22 +0100171 RNG_SANDBOX || UT_LIB && AES || FAT_WRITE
Adam Forda5a37562018-02-06 10:18:18 -0600172 default LIB_RAND
Masahiro Yamada3850dbe2015-06-11 19:16:43 +0900173 help
Adam Forda5a37562018-02-06 10:18:18 -0600174 Select the library to provide pseudo-random number generator
175 functions. LIB_HW_RAND supports certain hardware engines that
176 provide this functionality. If in doubt, select LIB_RAND.
177
178config LIB_RAND
179 bool "Pseudo-random library support"
180
181config LIB_HW_RAND
Marcin Juszkiewicz43e442a2020-05-26 19:07:15 +0200182 bool "HW Engine for random library support"
Adam Forda5a37562018-02-06 10:18:18 -0600183
184endchoice
Michal Simek9ba9e852015-05-25 11:37:22 +0200185
Simon Glassab4458b2017-04-02 09:50:28 -0600186config SPL_TINY_MEMSET
187 bool "Use a very small memset() in SPL"
188 help
189 The faster memset() is the arch-specific one (if available) enabled
190 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
191 better performance by writing a word at a time. But in very
Chris Packham6e705112019-01-13 22:13:28 +1300192 size-constrained environments even this may be too big. Enable this
Simon Glassab4458b2017-04-02 09:50:28 -0600193 option to reduce code size slightly at the cost of some speed.
194
Philipp Tomsich96b90822017-08-03 22:52:04 +0200195config TPL_TINY_MEMSET
196 bool "Use a very small memset() in TPL"
197 help
198 The faster memset() is the arch-specific one (if available) enabled
199 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
200 better performance by writing a word at a time. But in very
Chris Packham6e705112019-01-13 22:13:28 +1300201 size-constrained environments even this may be too big. Enable this
Philipp Tomsich96b90822017-08-03 22:52:04 +0200202 option to reduce code size slightly at the cost of some speed.
203
Boris Brezillonaa049152017-02-27 18:22:05 +0100204config RBTREE
205 bool
206
Nandor Handa5337a2017-11-08 15:35:14 +0000207config BITREVERSE
208 bool "Bit reverse library from Linux"
209
Simon Glassa24a78d2019-04-08 13:20:51 -0600210config TRACE
211 bool "Support for tracing of function calls and timing"
212 imply CMD_TRACE
Pragnesh Patela80f8512021-01-17 18:11:24 +0530213 select TIMER_EARLY
Simon Glassa24a78d2019-04-08 13:20:51 -0600214 help
215 Enables function tracing within U-Boot. This allows recording of call
216 traces including timing information. The command can write data to
217 memory for exporting for analysis (e.g. using bootchart).
218 See doc/README.trace for full details.
219
Simon Glass1c6eb072019-04-08 13:20:52 -0600220config TRACE_BUFFER_SIZE
221 hex "Size of trace buffer in U-Boot"
222 depends on TRACE
223 default 0x01000000
224 help
225 Sets the size of the trace buffer in U-Boot. This is allocated from
226 memory during relocation. If this buffer is too small, the trace
227 history will be truncated, with later records omitted.
228
229 If early trace is enabled (i.e. before relocation), this buffer must
230 be large enough to include all the data from the early trace buffer as
231 well, since this is copied over to the main buffer during relocation.
232
233 A trace record is emitted for each function call and each record is
234 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
235 the size is too small then 'trace stats' will show a message saying
236 how many records were dropped due to buffer overflow.
237
Heinrich Schuchardtda0fb5f2019-06-02 13:30:09 +0200238config TRACE_CALL_DEPTH_LIMIT
239 int "Trace call depth limit"
240 depends on TRACE
241 default 15
242 help
243 Sets the maximum call depth up to which function calls are recorded.
244
Simon Glass1c6eb072019-04-08 13:20:52 -0600245config TRACE_EARLY
246 bool "Enable tracing before relocation"
247 depends on TRACE
248 help
249 Sometimes it is helpful to trace execution of U-Boot before
250 relocation. This is possible by using a arch-specific, fixed buffer
251 position in memory. Enable this option to start tracing as early as
252 possible after U-Boot starts.
253
254config TRACE_EARLY_SIZE
255 hex "Size of early trace buffer in U-Boot"
256 depends on TRACE_EARLY
257 default 0x00100000
258 help
259 Sets the size of the early trace buffer in bytes. This is used to hold
260 tracing information before relocation.
261
Heinrich Schuchardtda0fb5f2019-06-02 13:30:09 +0200262config TRACE_EARLY_CALL_DEPTH_LIMIT
263 int "Early trace call depth limit"
264 depends on TRACE_EARLY
265 default 200
266 help
267 Sets the maximum call depth up to which function calls are recorded
268 during early tracing.
269
Simon Glass1c6eb072019-04-08 13:20:52 -0600270config TRACE_EARLY_ADDR
271 hex "Address of early trace buffer in U-Boot"
272 depends on TRACE_EARLY
273 default 0x00100000
274 help
275 Sets the address of the early trace buffer in U-Boot. This memory
276 must be accessible before relocation.
277
278 A trace record is emitted for each function call and each record is
279 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
280 the size is too small then the message which says the amount of early
281 data being coped will the the same as the
282
Simon Glassd1389402015-06-23 15:38:23 -0600283source lib/dhry/Kconfig
284
Simon Glassb1a873d2017-04-26 22:27:49 -0600285menu "Security support"
286
287config AES
288 bool "Support the AES algorithm"
289 help
290 This provides a means to encrypt and decrypt data using the AES
291 (Advanced Encryption Standard). This algorithm uses a symetric key
292 and is widely used as a streaming cipher. Different key lengths are
293 supported by the algorithm but only a 128-bit key is supported at
294 present.
295
Ruchika Guptad9f23c72015-01-23 16:01:56 +0530296source lib/rsa/Kconfig
AKASHI Takahirob4adf622019-11-13 09:45:00 +0900297source lib/crypto/Kconfig
Ruchika Guptac4beb222015-01-23 16:01:51 +0530298
Simon Glassa7d660b2015-08-22 18:31:19 -0600299config TPM
300 bool "Trusted Platform Module (TPM) Support"
Simon Glass2419cd12015-10-03 06:39:36 -0600301 depends on DM
Simon Glassa7d660b2015-08-22 18:31:19 -0600302 help
303 This enables support for TPMs which can be used to provide security
304 features for your board. The TPM can be connected via LPC or I2C
305 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
306 command to interactive the TPM. Driver model support is provided
307 for the low-level TPM interface, but only one TPM is supported at
308 a time by the TPM library.
309
Simon Glass63078962018-10-01 12:22:19 -0600310config SPL_TPM
311 bool "Trusted Platform Module (TPM) Support in SPL"
312 depends on SPL_DM
313 help
314 This enables support for TPMs which can be used to provide security
315 features for your board. The TPM can be connected via LPC or I2C
316 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
317 command to interactive the TPM. Driver model support is provided
318 for the low-level TPM interface, but only one TPM is supported at
319 a time by the TPM library.
320
321config TPL_TPM
322 bool "Trusted Platform Module (TPM) Support in TPL"
323 depends on TPL_DM
324 help
325 This enables support for TPMs which can be used to provide security
326 features for your board. The TPM can be connected via LPC or I2C
327 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
328 command to interactive the TPM. Driver model support is provided
329 for the low-level TPM interface, but only one TPM is supported at
330 a time by the TPM library.
331
Simon Glassb1a873d2017-04-26 22:27:49 -0600332endmenu
333
Igor Opaniuk33305842018-06-03 21:56:37 +0300334menu "Android Verified Boot"
335
336config LIBAVB
337 bool "Android Verified Boot 2.0 support"
338 depends on ANDROID_BOOT_IMAGE
339 default n
340 help
341 This enables support of Android Verified Boot 2.0 which can be used
342 to assure the end user of the integrity of the software running on a
343 device. Introduces such features as boot chain of trust, rollback
344 protection etc.
345
346endmenu
347
gaurav rana94e3c8c2015-02-20 12:51:46 +0530348menu "Hashing Support"
349
350config SHA1
351 bool "Enable SHA1 support"
352 help
353 This option enables support of hashing using SHA1 algorithm.
354 The hash is calculated in software.
355 The SHA1 algorithm produces a 160-bit (20-byte) hash value
356 (digest).
357
358config SHA256
359 bool "Enable SHA256 support"
360 help
361 This option enables support of hashing using SHA256 algorithm.
362 The hash is calculated in software.
363 The SHA256 algorithm produces a 256-bit (32-byte) hash value
364 (digest).
365
Reuben Dowled16b38f2020-04-16 17:36:52 +1200366config SHA512_ALGO
367 bool "Enable SHA512 algorithm"
368 help
369 This option enables support of internal SHA512 algorithm.
370
371config SHA512
372 bool "Enable SHA512 support"
373 depends on SHA512_ALGO
374 help
375 This option enables support of hashing using SHA512 algorithm.
376 The hash is calculated in software.
377 The SHA512 algorithm produces a 512-bit (64-byte) hash value
378 (digest).
379
380config SHA384
381 bool "Enable SHA384 support"
382 depends on SHA512_ALGO
383 help
384 This option enables support of hashing using SHA384 algorithm.
385 The hash is calculated in software.
386 The SHA384 algorithm produces a 384-bit (48-byte) hash value
387 (digest).
388
gaurav rana94e3c8c2015-02-20 12:51:46 +0530389config SHA_HW_ACCEL
390 bool "Enable hashing using hardware"
391 help
392 This option enables hardware acceleration
393 for SHA1/SHA256 hashing.
394 This affects the 'hash' command and also the
395 hash_lookup_algo() function.
396
397config SHA_PROG_HW_ACCEL
398 bool "Enable Progressive hashing support using hardware"
399 depends on SHA_HW_ACCEL
400 help
401 This option enables hardware-acceleration for
402 SHA1/SHA256 progressive hashing.
403 Data can be streamed in a block at a time and the hashing
404 is performed in hardware.
Andre Przywarabea79d72017-03-15 01:19:05 +0000405
406config MD5
Simon Glass8239be62020-05-06 08:03:56 -0600407 bool "Support MD5 algorithm"
408 help
409 This option enables MD5 support. MD5 is an algorithm designed
410 in 1991 that produces a 16-byte digest (or checksum) from its input
411 data. It has a number of vulnerabilities which preclude its use in
412 security applications, but it can be useful for providing a quick
413 checksum of a block of data.
414
415config SPL_MD5
416 bool "Support MD5 algorithm in SPL"
417 help
418 This option enables MD5 support in SPL. MD5 is an algorithm designed
419 in 1991 that produces a 16-byte digest (or checksum) from its input
420 data. It has a number of vulnerabilities which preclude its use in
421 security applications, but it can be useful for providing a quick
422 checksum of a block of data.
Andre Przywarabea79d72017-03-15 01:19:05 +0000423
Marek Behún85d8bf52017-09-03 17:00:23 +0200424config CRC32C
425 bool
426
Marek Behún83a486b2019-04-29 22:40:43 +0200427config XXHASH
428 bool
429
gaurav rana94e3c8c2015-02-20 12:51:46 +0530430endmenu
431
Julius Werner027b7282015-10-06 20:03:53 -0700432menu "Compression Support"
433
434config LZ4
435 bool "Enable LZ4 decompression support"
436 help
437 If this option is set, support for LZ4 compressed images
438 is included. The LZ4 algorithm can run in-place as long as the
439 compressed image is loaded to the end of the output buffer, and
440 trades lower compression ratios for much faster decompression.
441
442 NOTE: This implements the release version of the LZ4 frame
443 format as generated by default by the 'lz4' command line tool.
444 This is not the same as the outdated, less efficient legacy
445 frame format currently (2015) implemented in the Linux kernel
446 (generated by 'lz4 -l'). The two formats are incompatible.
447
Simon Glassaed998a2017-05-17 03:25:42 -0600448config LZMA
449 bool "Enable LZMA decompression support"
450 help
451 This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
452 a dictionary compression algorithm that provides a high compression
453 ratio and fairly fast decompression speed. See also
454 CONFIG_CMD_LZMADEC which provides a decode command.
455
Boris Brezillon173aafb2017-02-27 18:22:06 +0100456config LZO
Tom Rinid56b4b12017-07-22 18:36:16 -0400457 bool "Enable LZO decompression support"
458 help
459 This enables support for LZO compression algorithm.r
York Sun7264f292017-08-15 11:14:43 -0700460
Marek Vasut95f4bbd2019-03-08 16:06:55 +0100461config GZIP
Heiko Schocher51323612019-04-29 08:59:38 +0200462 bool "Enable gzip decompression support"
Marek Vasut95f4bbd2019-03-08 16:06:55 +0100463 select ZLIB
464 default y
465 help
466 This enables support for GZIP compression algorithm.
467
Joao Marcos Costa81014f72020-07-30 15:33:49 +0200468config ZLIB_UNCOMPRESS
469 bool "Enables zlib's uncompress() functionality"
470 help
471 This enables an extra zlib functionality: the uncompress() function,
472 which decompresses data from a buffer into another, knowing their
473 sizes. Unlike gunzip(), there is no header parsing.
474
Michael Walleeff5a542020-05-22 14:07:36 +0200475config GZIP_COMPRESSED
476 bool
477 select ZLIB
478
Atish Patra2a2119e2020-03-05 16:24:21 -0800479config BZIP2
480 bool "Enable bzip2 decompression support"
481 help
482 This enables support for BZIP2 compression algorithm.
483
Marek Vasut95f4bbd2019-03-08 16:06:55 +0100484config ZLIB
485 bool
486 default y
487 help
488 This enables ZLIB compression lib.
489
Marek Behún8509f222019-04-29 22:40:44 +0200490config ZSTD
491 bool "Enable Zstandard decompression support"
492 select XXHASH
493 help
494 This enables Zstandard decompression library.
495
Simon Glass048c6e82018-11-06 15:21:30 -0700496config SPL_LZ4
497 bool "Enable LZ4 decompression support in SPL"
498 help
Marcin Juszkiewicz43e442a2020-05-26 19:07:15 +0200499 This enables support for the LZ4 decompression algorithm in SPL. LZ4
Simon Glass048c6e82018-11-06 15:21:30 -0700500 is a lossless data compression algorithm that is focused on
501 fast compression and decompression speed. It belongs to the LZ77
502 family of byte-oriented compression schemes.
503
Weijie Gao04cb3992020-04-21 09:28:38 +0200504config SPL_LZMA
505 bool "Enable LZMA decompression support for SPL build"
506 help
Marcin Juszkiewicz43e442a2020-05-26 19:07:15 +0200507 This enables support for LZMA compression algorithm for SPL boot.
Weijie Gao04cb3992020-04-21 09:28:38 +0200508
Jean-Jacques Hiblotf52bdf42017-09-15 12:57:30 +0200509config SPL_LZO
510 bool "Enable LZO decompression support in SPL"
511 help
512 This enables support for LZO compression algorithm in the SPL.
513
York Sun7264f292017-08-15 11:14:43 -0700514config SPL_GZIP
515 bool "Enable gzip decompression support for SPL build"
516 select SPL_ZLIB
517 help
518 This enables support for GZIP compression altorithm for SPL boot.
519
520config SPL_ZLIB
521 bool
522 help
523 This enables compression lib for SPL boot.
524
Marek Behún8509f222019-04-29 22:40:44 +0200525config SPL_ZSTD
526 bool "Enable Zstandard decompression support in SPL"
527 select XXHASH
528 help
529 This enables Zstandard decompression library in the SPL.
530
Julius Werner027b7282015-10-06 20:03:53 -0700531endmenu
532
Przemyslaw Marczak6501ff62015-04-20 20:07:40 +0200533config ERRNO_STR
534 bool "Enable function for getting errno-related string message"
535 help
536 The function errno_str(int errno), returns a pointer to the errno
537 corresponding text message:
538 - if errno is null or positive number - a pointer to "Success" message
539 - if errno is negative - a pointer to errno related message
540
Alexey Brodkinf8c987f2018-06-05 17:17:57 +0300541config HEXDUMP
542 bool "Enable hexdump"
543 help
544 This enables functions for printing dumps of binary data.
545
Simon Glass26637e22020-09-12 11:13:35 -0600546config SPL_HEXDUMP
547 bool "Enable hexdump in SPL"
548 depends on HEXDUMP
549 default y
550 help
551 This enables functions for printing dumps of binary data in
552 SPL.
553
Sean Anderson72eda502020-10-27 19:55:36 -0400554config GETOPT
555 bool "Enable getopt"
556 help
557 This enables functions for parsing command-line options.
558
Simon Glass69e173e2016-02-22 22:55:42 -0700559config OF_LIBFDT
560 bool "Enable the FDT library"
561 default y if OF_CONTROL
562 help
563 This enables the FDT library (libfdt). It provides functions for
564 accessing binary device tree images in memory, such as adding and
Anatolij Gustschinf1a7ba12017-08-18 17:58:51 +0200565 removing nodes and properties, scanning through the tree and finding
Simon Glass69e173e2016-02-22 22:55:42 -0700566 particular compatible nodes. The library operates on a flattened
567 version of the device tree.
568
Simon Glass0d76afc2019-10-27 09:47:40 -0600569config OF_LIBFDT_ASSUME_MASK
570 hex "Mask of conditions to assume for libfdt"
571 depends on OF_LIBFDT || FIT
572 default 0
573 help
574 Use this to change the assumptions made by libfdt about the
575 device tree it is working with. A value of 0 means that no assumptions
576 are made, and libfdt is able to deal with malicious data. A value of
577 0xff means all assumptions are made and any invalid data may cause
578 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
579
Maxime Ripardddf67f72016-07-05 10:26:44 +0200580config OF_LIBFDT_OVERLAY
581 bool "Enable the FDT library overlay support"
Tom Rini64175722018-05-08 08:52:17 -0400582 depends on OF_LIBFDT
Praneeth Bajjuri58a46f82018-04-25 16:03:23 -0500583 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
Maxime Ripardddf67f72016-07-05 10:26:44 +0200584 help
585 This enables the FDT library (libfdt) overlay support.
586
Simon Glassaa34fbc2016-02-22 22:55:45 -0700587config SPL_OF_LIBFDT
588 bool "Enable the FDT library for SPL"
589 default y if SPL_OF_CONTROL
590 help
591 This enables the FDT library (libfdt). It provides functions for
592 accessing binary device tree images in memory, such as adding and
Anatolij Gustschinf1a7ba12017-08-18 17:58:51 +0200593 removing nodes and properties, scanning through the tree and finding
Simon Glassaa34fbc2016-02-22 22:55:45 -0700594 particular compatible nodes. The library operates on a flattened
595 version of the device tree.
596
Simon Glass0d76afc2019-10-27 09:47:40 -0600597config SPL_OF_LIBFDT_ASSUME_MASK
598 hex "Mask of conditions to assume for libfdt"
599 depends on SPL_OF_LIBFDT || FIT
600 default 0xff
601 help
602 Use this to change the assumptions made by libfdt in SPL about the
603 device tree it is working with. A value of 0 means that no assumptions
604 are made, and libfdt is able to deal with malicious data. A value of
605 0xff means all assumptions are made and any invalid data may cause
606 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
607
Simon Glass5592a632018-10-01 12:22:21 -0600608config TPL_OF_LIBFDT
609 bool "Enable the FDT library for TPL"
610 default y if TPL_OF_CONTROL
611 help
612 This enables the FDT library (libfdt). It provides functions for
613 accessing binary device tree images in memory, such as adding and
614 removing nodes and properties, scanning through the tree and finding
615 particular compatible nodes. The library operates on a flattened
616 version of the device tree.
617
Simon Glass0d76afc2019-10-27 09:47:40 -0600618config TPL_OF_LIBFDT_ASSUME_MASK
619 hex "Mask of conditions to assume for libfdt"
620 depends on TPL_OF_LIBFDT || FIT
621 default 0xff
622 help
623 Use this to change the assumptions made by libfdt in TPL about the
624 device tree it is working with. A value of 0 means that no assumptions
625 are made, and libfdt is able to deal with malicious data. A value of
626 0xff means all assumptions are made and any invalid data may cause
627 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
628
Heiko Schocherebf7fff2016-10-06 07:31:45 +0200629config FDT_FIXUP_PARTITIONS
630 bool "overwrite MTD partitions in DTS through defined in 'mtdparts'"
631 depends on OF_LIBFDT
Masahiro Yamadaab948cd2018-07-20 11:04:09 +0900632 depends on CMD_MTDPARTS
Heiko Schocherebf7fff2016-10-06 07:31:45 +0200633 help
634 Allow overwriting defined partitions in the device tree blob
635 using partition info defined in the 'mtdparts' environment
636 variable.
637
Alexander Graf4b6dddc2016-08-19 01:23:23 +0200638menu "System tables"
Alexander Grafe663b352016-08-19 01:23:29 +0200639 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
Alexander Graf4b6dddc2016-08-19 01:23:23 +0200640
Simon Glassd2cb7a22020-11-04 09:57:25 -0700641config BLOBLIST_TABLES
642 bool "Put tables in a bloblist"
643 depends on X86
644 help
645 Normally tables are placed at address 0xf0000 and can be up to 64KB
646 long. With this option, tables are instead placed in the bloblist
647 with a pointer from 0xf0000. The size can then be larger and the
648 tables can be placed high in memory.
649
Alexander Graf4b6dddc2016-08-19 01:23:23 +0200650config GENERATE_SMBIOS_TABLE
651 bool "Generate an SMBIOS (System Management BIOS) table"
652 default y
Alexander Grafe663b352016-08-19 01:23:29 +0200653 depends on X86 || EFI_LOADER
Alexander Graf4b6dddc2016-08-19 01:23:23 +0200654 help
655 The System Management BIOS (SMBIOS) specification addresses how
656 motherboard and system vendors present management information about
657 their products in a standard format by extending the BIOS interface
658 on Intel architecture systems.
659
660 Check http://www.dmtf.org/standards/smbios for details.
661
Simon Glass44c74bd2020-11-05 06:32:11 -0700662 See also SMBIOS_SYSINFO which allows SMBIOS values to be provided in
663 the devicetree.
664
Alexander Graf4b6dddc2016-08-19 01:23:23 +0200665endmenu
666
AKASHI Takahiro2b121962019-11-13 09:44:53 +0900667config ASN1_COMPILER
668 bool
669
AKASHI Takahiroab8a0e02019-11-13 09:44:55 +0900670config ASN1_DECODER
671 bool
672 help
673 Enable asn1 decoder library.
674
AKASHI Takahiroa9b45e62019-11-13 09:44:57 +0900675config OID_REGISTRY
676 bool
677 help
678 Enable fast lookup object identifier registry.
679
Christian Gmeiner415eab02020-11-03 15:34:51 +0100680config SMBIOS_PARSER
681 bool "SMBIOS parser"
682 help
683 A simple parser for SMBIOS data.
684
Simon Glass867a6ac2015-07-31 09:31:36 -0600685source lib/efi/Kconfig
Alexander Grafed980b82016-03-04 01:10:07 +0100686source lib/efi_loader/Kconfig
Bryan O'Donoghue32ce6172018-03-13 16:50:27 +0000687source lib/optee/Kconfig
Simon Glass867a6ac2015-07-31 09:31:36 -0600688
Thierry Reding54969b42019-03-21 19:10:04 +0100689config TEST_FDTDEC
690 bool "enable fdtdec test"
691 depends on OF_LIBFDT
692
AKASHI Takahiro05429b62019-11-13 09:44:49 +0900693config LIB_DATE
694 bool
695
Keerthy805b3ca2020-02-12 13:55:03 +0530696config LIB_ELF
697 bool
698 help
Patrick Delaunay6205bbb2021-01-04 15:33:28 +0100699 Support basic elf loading/validating functions.
700 This supports for 32 bit and 64 bit versions.
Keerthy805b3ca2020-02-12 13:55:03 +0530701
Masahiro Yamadaed363232014-09-16 16:32:58 +0900702endmenu
Aswath Govindrajuc5891322020-12-03 10:55:45 +0530703
704config PHANDLE_CHECK_SEQ
705 bool "Enable phandle check while getting sequence number"
706 default n
707 help
708 When there are multiple device tree nodes with same name,
709 enable this config option to distinguish them using
710 phandles in fdtdec_get_alias_seq() function.