blob: a704568443c9580377f562099c222bd853d24724 [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
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 Ford02bf5362017-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 Glassdd7fb9b2019-12-06 21:41:34 -070023config BINMAN_FDT
24 bool "Allow access to binman information in the device tree"
25 depends on BINMAN && OF_CONTROL
26 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 Yamada3f053fe2014-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 Abbas6199fb12018-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 Mengb95e9db2018-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 Yamada9520b712014-10-24 01:30:43 +090053config HAVE_PRIVATE_LIBGCC
54 bool
55
Adam Ford70c8f052018-02-06 12:14:28 -060056config LIB_UUID
57 bool
58
Alex Kiernan5b404282018-04-19 04:32:54 +000059config PRINTF
60 bool
61 default y
62
63config SPL_PRINTF
64 bool
65 select SPL_SPRINTF
Simon Glass7611ac62019-09-25 08:56:27 -060066 select SPL_STRTO if !SPL_USE_TINY_PRINTF
Alex Kiernan5b404282018-04-19 04:32:54 +000067
68config TPL_PRINTF
69 bool
70 select TPL_SPRINTF
Simon Glass7611ac62019-09-25 08:56:27 -060071 select TPL_STRTO if !TPL_USE_TINY_PRINTF
Alex Kiernan5b404282018-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 Anisov6e29ac42020-08-06 12:42:52 +030083config SSCANF
84 bool
85 default n
86
Alex Kiernan5b404282018-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 Kiernanc568bcb2018-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 Yamada9520b712014-10-24 01:30:43 +0900108config USE_PRIVATE_LIBGCC
109 bool "Use private libgcc"
110 depends on HAVE_PRIVATE_LIBGCC
Marek Vasut4e0126e2016-05-26 18:01:47 +0200111 default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
Masahiro Yamada9520b712014-10-24 01:30:43 +0900112 help
113 This option allows you to use the built-in libgcc implementation
Masahiro Yamada1c6a5e42016-03-30 20:17:42 +0900114 of U-Boot instead of the one provided by the compiler.
Masahiro Yamada9520b712014-10-24 01:30:43 +0900115 If unsure, say N.
116
Masahiro Yamadae301fa02014-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 Glass7611ac62019-09-25 08:56:27 -0600125config SPL_USE_TINY_PRINTF
Thomas Hebb0c12fb52019-11-10 08:23:53 -0800126 bool "Enable tiny printf() version in SPL"
Simon Glass7611ac62019-09-25 08:56:27 -0600127 depends on SPL
Tom Rinid0502b72019-06-08 12:46:18 -0400128 default y
Stefan Roese363ab7b2015-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 Glass7611ac62019-09-25 08:56:27 -0600137config TPL_USE_TINY_PRINTF
Thomas Hebb0c12fb52019-11-10 08:23:53 -0800138 bool "Enable tiny printf() version in TPL"
Simon Glass7611ac62019-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 Yamadaacede7a2017-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 Hershberger937d3e82015-04-21 17:02:42 -0500159config REGEX
160 bool "Enable regular expression support"
Joe Hershberger8ab8b722015-06-22 17:57:36 -0500161 default y if NET
Joe Hershberger937d3e82015-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 Ford38003a62018-02-06 10:18:18 -0600168choice
169 prompt "Pseudo-random library support type"
Heinrich Schuchardtb2e67a22020-01-19 19:28:12 +0100170 depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID || \
Heinrich Schuchardtba9c44e2020-11-20 12:55:22 +0100171 RNG_SANDBOX || UT_LIB && AES || FAT_WRITE
Adam Ford38003a62018-02-06 10:18:18 -0600172 default LIB_RAND
Masahiro Yamada2743c072015-06-11 19:16:43 +0900173 help
Adam Ford38003a62018-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 Juszkiewicza360c2c2020-05-26 19:07:15 +0200182 bool "HW Engine for random library support"
Adam Ford38003a62018-02-06 10:18:18 -0600183
184endchoice
Michal Simek2c1b1db2015-05-25 11:37:22 +0200185
Simon Glasse2f94ae2017-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 Packham1c3b7ba2019-01-13 22:13:28 +1300192 size-constrained environments even this may be too big. Enable this
Simon Glasse2f94ae2017-04-02 09:50:28 -0600193 option to reduce code size slightly at the cost of some speed.
194
Philipp Tomsichfefc4ec2017-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 Packham1c3b7ba2019-01-13 22:13:28 +1300201 size-constrained environments even this may be too big. Enable this
Philipp Tomsichfefc4ec2017-08-03 22:52:04 +0200202 option to reduce code size slightly at the cost of some speed.
203
Boris Brezillon627dc182017-02-27 18:22:05 +0100204config RBTREE
205 bool
206
Nandor Hand5ea84a2017-11-08 15:35:14 +0000207config BITREVERSE
208 bool "Bit reverse library from Linux"
209
Simon Glassbfce7fc2019-04-08 13:20:51 -0600210config TRACE
211 bool "Support for tracing of function calls and timing"
212 imply CMD_TRACE
213 help
214 Enables function tracing within U-Boot. This allows recording of call
215 traces including timing information. The command can write data to
216 memory for exporting for analysis (e.g. using bootchart).
217 See doc/README.trace for full details.
218
Simon Glass445078e2019-04-08 13:20:52 -0600219config TRACE_BUFFER_SIZE
220 hex "Size of trace buffer in U-Boot"
221 depends on TRACE
222 default 0x01000000
223 help
224 Sets the size of the trace buffer in U-Boot. This is allocated from
225 memory during relocation. If this buffer is too small, the trace
226 history will be truncated, with later records omitted.
227
228 If early trace is enabled (i.e. before relocation), this buffer must
229 be large enough to include all the data from the early trace buffer as
230 well, since this is copied over to the main buffer during relocation.
231
232 A trace record is emitted for each function call and each record is
233 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
234 the size is too small then 'trace stats' will show a message saying
235 how many records were dropped due to buffer overflow.
236
Heinrich Schuchardtc1a73792019-06-02 13:30:09 +0200237config TRACE_CALL_DEPTH_LIMIT
238 int "Trace call depth limit"
239 depends on TRACE
240 default 15
241 help
242 Sets the maximum call depth up to which function calls are recorded.
243
Simon Glass445078e2019-04-08 13:20:52 -0600244config TRACE_EARLY
245 bool "Enable tracing before relocation"
246 depends on TRACE
247 help
248 Sometimes it is helpful to trace execution of U-Boot before
249 relocation. This is possible by using a arch-specific, fixed buffer
250 position in memory. Enable this option to start tracing as early as
251 possible after U-Boot starts.
252
253config TRACE_EARLY_SIZE
254 hex "Size of early trace buffer in U-Boot"
255 depends on TRACE_EARLY
256 default 0x00100000
257 help
258 Sets the size of the early trace buffer in bytes. This is used to hold
259 tracing information before relocation.
260
Heinrich Schuchardtc1a73792019-06-02 13:30:09 +0200261config TRACE_EARLY_CALL_DEPTH_LIMIT
262 int "Early trace call depth limit"
263 depends on TRACE_EARLY
264 default 200
265 help
266 Sets the maximum call depth up to which function calls are recorded
267 during early tracing.
268
Simon Glass445078e2019-04-08 13:20:52 -0600269config TRACE_EARLY_ADDR
270 hex "Address of early trace buffer in U-Boot"
271 depends on TRACE_EARLY
272 default 0x00100000
273 help
274 Sets the address of the early trace buffer in U-Boot. This memory
275 must be accessible before relocation.
276
277 A trace record is emitted for each function call and each record is
278 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
279 the size is too small then the message which says the amount of early
280 data being coped will the the same as the
281
Simon Glass99dbe4b2015-06-23 15:38:23 -0600282source lib/dhry/Kconfig
283
Simon Glass528fdd12017-04-26 22:27:49 -0600284menu "Security support"
285
286config AES
287 bool "Support the AES algorithm"
288 help
289 This provides a means to encrypt and decrypt data using the AES
290 (Advanced Encryption Standard). This algorithm uses a symetric key
291 and is widely used as a streaming cipher. Different key lengths are
292 supported by the algorithm but only a 128-bit key is supported at
293 present.
294
Ruchika Gupta4acd8c42015-01-23 16:01:56 +0530295source lib/rsa/Kconfig
AKASHI Takahiro591535c2019-11-13 09:45:00 +0900296source lib/crypto/Kconfig
Ruchika Gupta2c3822e2015-01-23 16:01:51 +0530297
Simon Glass350497c2015-08-22 18:31:19 -0600298config TPM
299 bool "Trusted Platform Module (TPM) Support"
Simon Glasscf294b02015-10-03 06:39:36 -0600300 depends on DM
Simon Glass350497c2015-08-22 18:31:19 -0600301 help
302 This enables support for TPMs which can be used to provide security
303 features for your board. The TPM can be connected via LPC or I2C
304 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
305 command to interactive the TPM. Driver model support is provided
306 for the low-level TPM interface, but only one TPM is supported at
307 a time by the TPM library.
308
Simon Glass93a45b12018-10-01 12:22:19 -0600309config SPL_TPM
310 bool "Trusted Platform Module (TPM) Support in SPL"
311 depends on SPL_DM
312 help
313 This enables support for TPMs which can be used to provide security
314 features for your board. The TPM can be connected via LPC or I2C
315 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
316 command to interactive the TPM. Driver model support is provided
317 for the low-level TPM interface, but only one TPM is supported at
318 a time by the TPM library.
319
320config TPL_TPM
321 bool "Trusted Platform Module (TPM) Support in TPL"
322 depends on TPL_DM
323 help
324 This enables support for TPMs which can be used to provide security
325 features for your board. The TPM can be connected via LPC or I2C
326 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
327 command to interactive the TPM. Driver model support is provided
328 for the low-level TPM interface, but only one TPM is supported at
329 a time by the TPM library.
330
Simon Glass528fdd12017-04-26 22:27:49 -0600331endmenu
332
Igor Opaniuk525d1d82018-06-03 21:56:37 +0300333menu "Android Verified Boot"
334
335config LIBAVB
336 bool "Android Verified Boot 2.0 support"
337 depends on ANDROID_BOOT_IMAGE
338 default n
339 help
340 This enables support of Android Verified Boot 2.0 which can be used
341 to assure the end user of the integrity of the software running on a
342 device. Introduces such features as boot chain of trust, rollback
343 protection etc.
344
345endmenu
346
gaurav ranaef201592015-02-20 12:51:46 +0530347menu "Hashing Support"
348
349config SHA1
350 bool "Enable SHA1 support"
351 help
352 This option enables support of hashing using SHA1 algorithm.
353 The hash is calculated in software.
354 The SHA1 algorithm produces a 160-bit (20-byte) hash value
355 (digest).
356
357config SHA256
358 bool "Enable SHA256 support"
359 help
360 This option enables support of hashing using SHA256 algorithm.
361 The hash is calculated in software.
362 The SHA256 algorithm produces a 256-bit (32-byte) hash value
363 (digest).
364
Reuben Dowle1908fd92020-04-16 17:36:52 +1200365config SHA512_ALGO
366 bool "Enable SHA512 algorithm"
367 help
368 This option enables support of internal SHA512 algorithm.
369
370config SHA512
371 bool "Enable SHA512 support"
372 depends on SHA512_ALGO
373 help
374 This option enables support of hashing using SHA512 algorithm.
375 The hash is calculated in software.
376 The SHA512 algorithm produces a 512-bit (64-byte) hash value
377 (digest).
378
379config SHA384
380 bool "Enable SHA384 support"
381 depends on SHA512_ALGO
382 help
383 This option enables support of hashing using SHA384 algorithm.
384 The hash is calculated in software.
385 The SHA384 algorithm produces a 384-bit (48-byte) hash value
386 (digest).
387
gaurav ranaef201592015-02-20 12:51:46 +0530388config SHA_HW_ACCEL
389 bool "Enable hashing using hardware"
390 help
391 This option enables hardware acceleration
392 for SHA1/SHA256 hashing.
393 This affects the 'hash' command and also the
394 hash_lookup_algo() function.
395
396config SHA_PROG_HW_ACCEL
397 bool "Enable Progressive hashing support using hardware"
398 depends on SHA_HW_ACCEL
399 help
400 This option enables hardware-acceleration for
401 SHA1/SHA256 progressive hashing.
402 Data can be streamed in a block at a time and the hashing
403 is performed in hardware.
Andre Przywaraf0fa1132017-03-15 01:19:05 +0000404
405config MD5
Simon Glassd33d0db2020-05-06 08:03:56 -0600406 bool "Support MD5 algorithm"
407 help
408 This option enables MD5 support. MD5 is an algorithm designed
409 in 1991 that produces a 16-byte digest (or checksum) from its input
410 data. It has a number of vulnerabilities which preclude its use in
411 security applications, but it can be useful for providing a quick
412 checksum of a block of data.
413
414config SPL_MD5
415 bool "Support MD5 algorithm in SPL"
416 help
417 This option enables MD5 support in SPL. MD5 is an algorithm designed
418 in 1991 that produces a 16-byte digest (or checksum) from its input
419 data. It has a number of vulnerabilities which preclude its use in
420 security applications, but it can be useful for providing a quick
421 checksum of a block of data.
Andre Przywaraf0fa1132017-03-15 01:19:05 +0000422
Marek Behúncdccc032017-09-03 17:00:23 +0200423config CRC32C
424 bool
425
Marek Behúnb139a7f2019-04-29 22:40:43 +0200426config XXHASH
427 bool
428
gaurav ranaef201592015-02-20 12:51:46 +0530429endmenu
430
Julius Wernerf41a3ca2015-10-06 20:03:53 -0700431menu "Compression Support"
432
433config LZ4
434 bool "Enable LZ4 decompression support"
435 help
436 If this option is set, support for LZ4 compressed images
437 is included. The LZ4 algorithm can run in-place as long as the
438 compressed image is loaded to the end of the output buffer, and
439 trades lower compression ratios for much faster decompression.
440
441 NOTE: This implements the release version of the LZ4 frame
442 format as generated by default by the 'lz4' command line tool.
443 This is not the same as the outdated, less efficient legacy
444 frame format currently (2015) implemented in the Linux kernel
445 (generated by 'lz4 -l'). The two formats are incompatible.
446
Simon Glass264aa5f2017-05-17 03:25:42 -0600447config LZMA
448 bool "Enable LZMA decompression support"
449 help
450 This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
451 a dictionary compression algorithm that provides a high compression
452 ratio and fairly fast decompression speed. See also
453 CONFIG_CMD_LZMADEC which provides a decode command.
454
Boris Brezillonaa57d0f2017-02-27 18:22:06 +0100455config LZO
Tom Rinic20bb732017-07-22 18:36:16 -0400456 bool "Enable LZO decompression support"
457 help
458 This enables support for LZO compression algorithm.r
York Suna6945fe2017-08-15 11:14:43 -0700459
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100460config GZIP
Heiko Schocherb93cc602019-04-29 08:59:38 +0200461 bool "Enable gzip decompression support"
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100462 select ZLIB
463 default y
464 help
465 This enables support for GZIP compression algorithm.
466
Joao Marcos Costaae8abb12020-07-30 15:33:49 +0200467config ZLIB_UNCOMPRESS
468 bool "Enables zlib's uncompress() functionality"
469 help
470 This enables an extra zlib functionality: the uncompress() function,
471 which decompresses data from a buffer into another, knowing their
472 sizes. Unlike gunzip(), there is no header parsing.
473
Michael Walle3a6e3512020-05-22 14:07:36 +0200474config GZIP_COMPRESSED
475 bool
476 select ZLIB
477
Atish Patra1fa79622020-03-05 16:24:21 -0800478config BZIP2
479 bool "Enable bzip2 decompression support"
480 help
481 This enables support for BZIP2 compression algorithm.
482
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100483config ZLIB
484 bool
485 default y
486 help
487 This enables ZLIB compression lib.
488
Marek Behúne87e2002019-04-29 22:40:44 +0200489config ZSTD
490 bool "Enable Zstandard decompression support"
491 select XXHASH
492 help
493 This enables Zstandard decompression library.
494
Simon Glasse107bcd2018-11-06 15:21:30 -0700495config SPL_LZ4
496 bool "Enable LZ4 decompression support in SPL"
497 help
Marcin Juszkiewicza360c2c2020-05-26 19:07:15 +0200498 This enables support for the LZ4 decompression algorithm in SPL. LZ4
Simon Glasse107bcd2018-11-06 15:21:30 -0700499 is a lossless data compression algorithm that is focused on
500 fast compression and decompression speed. It belongs to the LZ77
501 family of byte-oriented compression schemes.
502
developer6a4e1d32020-04-21 09:28:38 +0200503config SPL_LZMA
504 bool "Enable LZMA decompression support for SPL build"
505 help
Marcin Juszkiewicza360c2c2020-05-26 19:07:15 +0200506 This enables support for LZMA compression algorithm for SPL boot.
developer6a4e1d32020-04-21 09:28:38 +0200507
Jean-Jacques Hiblotdbde2882017-09-15 12:57:30 +0200508config SPL_LZO
509 bool "Enable LZO decompression support in SPL"
510 help
511 This enables support for LZO compression algorithm in the SPL.
512
York Suna6945fe2017-08-15 11:14:43 -0700513config SPL_GZIP
514 bool "Enable gzip decompression support for SPL build"
515 select SPL_ZLIB
516 help
517 This enables support for GZIP compression altorithm for SPL boot.
518
519config SPL_ZLIB
520 bool
521 help
522 This enables compression lib for SPL boot.
523
Marek Behúne87e2002019-04-29 22:40:44 +0200524config SPL_ZSTD
525 bool "Enable Zstandard decompression support in SPL"
526 select XXHASH
527 help
528 This enables Zstandard decompression library in the SPL.
529
Julius Wernerf41a3ca2015-10-06 20:03:53 -0700530endmenu
531
Przemyslaw Marczak37550132015-04-20 20:07:40 +0200532config ERRNO_STR
533 bool "Enable function for getting errno-related string message"
534 help
535 The function errno_str(int errno), returns a pointer to the errno
536 corresponding text message:
537 - if errno is null or positive number - a pointer to "Success" message
538 - if errno is negative - a pointer to errno related message
539
Alexey Brodkin2d2fa492018-06-05 17:17:57 +0300540config HEXDUMP
541 bool "Enable hexdump"
542 help
543 This enables functions for printing dumps of binary data.
544
Simon Glassa37fd4d2020-09-12 11:13:35 -0600545config SPL_HEXDUMP
546 bool "Enable hexdump in SPL"
547 depends on HEXDUMP
548 default y
549 help
550 This enables functions for printing dumps of binary data in
551 SPL.
552
Sean Anderson3b4a6f52020-10-27 19:55:36 -0400553config GETOPT
554 bool "Enable getopt"
555 help
556 This enables functions for parsing command-line options.
557
Simon Glassa66c5412016-02-22 22:55:42 -0700558config OF_LIBFDT
559 bool "Enable the FDT library"
560 default y if OF_CONTROL
561 help
562 This enables the FDT library (libfdt). It provides functions for
563 accessing binary device tree images in memory, such as adding and
Anatolij Gustschinda707d42017-08-18 17:58:51 +0200564 removing nodes and properties, scanning through the tree and finding
Simon Glassa66c5412016-02-22 22:55:42 -0700565 particular compatible nodes. The library operates on a flattened
566 version of the device tree.
567
Simon Glassc48044d2019-10-27 09:47:40 -0600568config OF_LIBFDT_ASSUME_MASK
569 hex "Mask of conditions to assume for libfdt"
570 depends on OF_LIBFDT || FIT
571 default 0
572 help
573 Use this to change the assumptions made by libfdt about the
574 device tree it is working with. A value of 0 means that no assumptions
575 are made, and libfdt is able to deal with malicious data. A value of
576 0xff means all assumptions are made and any invalid data may cause
577 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
578
Maxime Ripard9e901ce2016-07-05 10:26:44 +0200579config OF_LIBFDT_OVERLAY
580 bool "Enable the FDT library overlay support"
Tom Rinic1e49ba2018-05-08 08:52:17 -0400581 depends on OF_LIBFDT
Praneeth Bajjuri7b71a012018-04-25 16:03:23 -0500582 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
Maxime Ripard9e901ce2016-07-05 10:26:44 +0200583 help
584 This enables the FDT library (libfdt) overlay support.
585
Simon Glass8b426922016-02-22 22:55:45 -0700586config SPL_OF_LIBFDT
587 bool "Enable the FDT library for SPL"
588 default y if SPL_OF_CONTROL
589 help
590 This enables the FDT library (libfdt). It provides functions for
591 accessing binary device tree images in memory, such as adding and
Anatolij Gustschinda707d42017-08-18 17:58:51 +0200592 removing nodes and properties, scanning through the tree and finding
Simon Glass8b426922016-02-22 22:55:45 -0700593 particular compatible nodes. The library operates on a flattened
594 version of the device tree.
595
Simon Glassc48044d2019-10-27 09:47:40 -0600596config SPL_OF_LIBFDT_ASSUME_MASK
597 hex "Mask of conditions to assume for libfdt"
598 depends on SPL_OF_LIBFDT || FIT
599 default 0xff
600 help
601 Use this to change the assumptions made by libfdt in SPL about the
602 device tree it is working with. A value of 0 means that no assumptions
603 are made, and libfdt is able to deal with malicious data. A value of
604 0xff means all assumptions are made and any invalid data may cause
605 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
606
Simon Glassca8ec4b2018-10-01 12:22:21 -0600607config TPL_OF_LIBFDT
608 bool "Enable the FDT library for TPL"
609 default y if TPL_OF_CONTROL
610 help
611 This enables the FDT library (libfdt). It provides functions for
612 accessing binary device tree images in memory, such as adding and
613 removing nodes and properties, scanning through the tree and finding
614 particular compatible nodes. The library operates on a flattened
615 version of the device tree.
616
Simon Glassc48044d2019-10-27 09:47:40 -0600617config TPL_OF_LIBFDT_ASSUME_MASK
618 hex "Mask of conditions to assume for libfdt"
619 depends on TPL_OF_LIBFDT || FIT
620 default 0xff
621 help
622 Use this to change the assumptions made by libfdt in TPL about the
623 device tree it is working with. A value of 0 means that no assumptions
624 are made, and libfdt is able to deal with malicious data. A value of
625 0xff means all assumptions are made and any invalid data may cause
626 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
627
Heiko Schocherc9ab9102016-10-06 07:31:45 +0200628config FDT_FIXUP_PARTITIONS
629 bool "overwrite MTD partitions in DTS through defined in 'mtdparts'"
630 depends on OF_LIBFDT
Masahiro Yamada734b7552018-07-20 11:04:09 +0900631 depends on CMD_MTDPARTS
Heiko Schocherc9ab9102016-10-06 07:31:45 +0200632 help
633 Allow overwriting defined partitions in the device tree blob
634 using partition info defined in the 'mtdparts' environment
635 variable.
636
Alexander Graffb228082016-08-19 01:23:23 +0200637menu "System tables"
Alexander Graf66f96e12016-08-19 01:23:29 +0200638 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
Alexander Graffb228082016-08-19 01:23:23 +0200639
Simon Glass5d093f32020-11-04 09:57:25 -0700640config BLOBLIST_TABLES
641 bool "Put tables in a bloblist"
642 depends on X86
643 help
644 Normally tables are placed at address 0xf0000 and can be up to 64KB
645 long. With this option, tables are instead placed in the bloblist
646 with a pointer from 0xf0000. The size can then be larger and the
647 tables can be placed high in memory.
648
Alexander Graffb228082016-08-19 01:23:23 +0200649config GENERATE_SMBIOS_TABLE
650 bool "Generate an SMBIOS (System Management BIOS) table"
651 default y
Alexander Graf66f96e12016-08-19 01:23:29 +0200652 depends on X86 || EFI_LOADER
Alexander Graffb228082016-08-19 01:23:23 +0200653 help
654 The System Management BIOS (SMBIOS) specification addresses how
655 motherboard and system vendors present management information about
656 their products in a standard format by extending the BIOS interface
657 on Intel architecture systems.
658
659 Check http://www.dmtf.org/standards/smbios for details.
660
Simon Glass052a03e2020-11-05 06:32:11 -0700661 See also SMBIOS_SYSINFO which allows SMBIOS values to be provided in
662 the devicetree.
663
Alexander Graffb228082016-08-19 01:23:23 +0200664endmenu
665
AKASHI Takahirof7025262019-11-13 09:44:53 +0900666config ASN1_COMPILER
667 bool
668
AKASHI Takahiro3a888712019-11-13 09:44:55 +0900669config ASN1_DECODER
670 bool
671 help
672 Enable asn1 decoder library.
673
AKASHI Takahiro54923642019-11-13 09:44:57 +0900674config OID_REGISTRY
675 bool
676 help
677 Enable fast lookup object identifier registry.
678
Christian Gmeiner19859982020-11-03 15:34:51 +0100679config SMBIOS_PARSER
680 bool "SMBIOS parser"
681 help
682 A simple parser for SMBIOS data.
683
Simon Glass9539e692015-07-31 09:31:36 -0600684source lib/efi/Kconfig
Alexander Graf67ee7052016-03-04 01:10:07 +0100685source lib/efi_loader/Kconfig
Bryan O'Donoghue4b0de7c2018-03-13 16:50:27 +0000686source lib/optee/Kconfig
Simon Glass9539e692015-07-31 09:31:36 -0600687
Thierry Reding52c7f1f32019-03-21 19:10:04 +0100688config TEST_FDTDEC
689 bool "enable fdtdec test"
690 depends on OF_LIBFDT
691
AKASHI Takahiro51ba5222019-11-13 09:44:49 +0900692config LIB_DATE
693 bool
694
Keerthy76f361a2020-02-12 13:55:03 +0530695config LIB_ELF
696 bool
697 help
698 Supoort basic elf loading/validating functions.
699 This supports fir 32 bit and 64 bit versions.
700
Masahiro Yamadaf3e12b72014-09-16 16:32:58 +0900701endmenu
Aswath Govindraju3dd81252020-12-03 10:55:45 +0530702
703config PHANDLE_CHECK_SEQ
704 bool "Enable phandle check while getting sequence number"
705 default n
706 help
707 When there are multiple device tree nodes with same name,
708 enable this config option to distinguish them using
709 phandles in fdtdec_get_alias_seq() function.