blob: 135f0b372b074270beab7450a542edeeef94124f [file] [log] [blame]
Masahiro Yamadaf3e12b72014-09-16 16:32:58 +09001menu "Library routines"
2
Adam Ford02bf5362017-08-11 09:46:05 -05003config BCH
4 bool "Enable Software based BCH ECC"
5 help
6 Enables software based BCH ECC algorithm present in lib/bch.c
7 This is used by SoC platforms which do not have built-in ELM
8 hardware engine required for BCH ECC correction.
9
Masahiro Yamada3f053fe2014-09-16 16:32:59 +090010config CC_OPTIMIZE_LIBS_FOR_SPEED
11 bool "Optimize libraries for speed"
12 help
13 Enabling this option will pass "-O2" to gcc when compiling
14 under "lib" directory.
15
16 If unsure, say N.
17
Faiz Abbas6199fb12018-02-06 19:15:58 +053018config DYNAMIC_CRC_TABLE
19 bool "Enable Dynamic tables for CRC"
20 help
21 Enable this option to calculate entries for CRC tables at runtime.
22 This can be helpful when reducing the size of the build image
23
Bin Mengb95e9db2018-10-15 02:21:15 -070024config HAVE_ARCH_IOMAP
25 bool
26 help
27 Enable this option if architecture provides io{read,write}{8,16,32}
28 I/O accessor functions.
29
Masahiro Yamada9520b712014-10-24 01:30:43 +090030config HAVE_PRIVATE_LIBGCC
31 bool
32
Adam Ford70c8f052018-02-06 12:14:28 -060033config LIB_UUID
34 bool
35
Alex Kiernan5b404282018-04-19 04:32:54 +000036config PRINTF
37 bool
38 default y
39
40config SPL_PRINTF
41 bool
42 select SPL_SPRINTF
Simon Glass7611ac62019-09-25 08:56:27 -060043 select SPL_STRTO if !SPL_USE_TINY_PRINTF
Alex Kiernan5b404282018-04-19 04:32:54 +000044
45config TPL_PRINTF
46 bool
47 select TPL_SPRINTF
Simon Glass7611ac62019-09-25 08:56:27 -060048 select TPL_STRTO if !TPL_USE_TINY_PRINTF
Alex Kiernan5b404282018-04-19 04:32:54 +000049
50config SPRINTF
51 bool
52 default y
53
54config SPL_SPRINTF
55 bool
56
57config TPL_SPRINTF
58 bool
59
60config STRTO
61 bool
62 default y
63
64config SPL_STRTO
65 bool
66
67config TPL_STRTO
68 bool
69
Alex Kiernanc568bcb2018-05-29 15:30:52 +000070config IMAGE_SPARSE
71 bool
72
73config IMAGE_SPARSE_FILLBUF_SIZE
74 hex "Android sparse image CHUNK_TYPE_FILL buffer size"
75 default 0x80000
76 depends on IMAGE_SPARSE
77 help
78 Set the size of the fill buffer used when processing CHUNK_TYPE_FILL
79 chunks.
80
Masahiro Yamada9520b712014-10-24 01:30:43 +090081config USE_PRIVATE_LIBGCC
82 bool "Use private libgcc"
83 depends on HAVE_PRIVATE_LIBGCC
Marek Vasut4e0126e2016-05-26 18:01:47 +020084 default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
Masahiro Yamada9520b712014-10-24 01:30:43 +090085 help
86 This option allows you to use the built-in libgcc implementation
Masahiro Yamada1c6a5e42016-03-30 20:17:42 +090087 of U-Boot instead of the one provided by the compiler.
Masahiro Yamada9520b712014-10-24 01:30:43 +090088 If unsure, say N.
89
Masahiro Yamadae301fa02014-10-24 01:30:40 +090090config SYS_HZ
91 int
92 default 1000
93 help
94 The frequency of the timer returned by get_timer().
95 get_timer() must operate in milliseconds and this option must be
96 set to 1000.
97
Simon Glass7611ac62019-09-25 08:56:27 -060098config SPL_USE_TINY_PRINTF
Stefan Roese363ab7b2015-11-23 07:00:22 +010099 bool "Enable tiny printf() version"
Simon Glass7611ac62019-09-25 08:56:27 -0600100 depends on SPL
Tom Rinid0502b72019-06-08 12:46:18 -0400101 default y
Stefan Roese363ab7b2015-11-23 07:00:22 +0100102 help
103 This option enables a tiny, stripped down printf version.
104 This should only be used in space limited environments,
105 like SPL versions with hard memory limits. This version
106 reduces the code size by about 2.5KiB on armv7.
107
108 The supported format specifiers are %c, %s, %u/%d and %x.
109
Simon Glass7611ac62019-09-25 08:56:27 -0600110config TPL_USE_TINY_PRINTF
111 bool "Enable tiny printf() version"
112 depends on TPL
113 default y if SPL_USE_TINY_PRINTF
114 help
115 This option enables a tiny, stripped down printf version.
116 This should only be used in space limited environments,
117 like SPL versions with hard memory limits. This version
118 reduces the code size by about 2.5KiB on armv7.
119
120 The supported format specifiers are %c, %s, %u/%d and %x.
121
Masahiro Yamadaacede7a2017-12-04 12:37:00 +0900122config PANIC_HANG
123 bool "Do not reset the system on fatal error"
124 help
125 Define this option to stop the system in case of a fatal error,
126 so that you have to reset it manually. This is probably NOT a good
127 idea for an embedded system where you want the system to reboot
128 automatically as fast as possible, but it may be useful during
129 development since you can try to debug the conditions that lead to
130 the situation.
131
Joe Hershberger937d3e82015-04-21 17:02:42 -0500132config REGEX
133 bool "Enable regular expression support"
Joe Hershberger8ab8b722015-06-22 17:57:36 -0500134 default y if NET
Joe Hershberger937d3e82015-04-21 17:02:42 -0500135 help
136 If this variable is defined, U-Boot is linked against the
137 SLRE (Super Light Regular Expression) library, which adds
138 regex support to some commands, for example "env grep" and
139 "setexpr".
140
Adam Ford38003a62018-02-06 10:18:18 -0600141choice
142 prompt "Pseudo-random library support type"
143 depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID
144 default LIB_RAND
Masahiro Yamada2743c072015-06-11 19:16:43 +0900145 help
Adam Ford38003a62018-02-06 10:18:18 -0600146 Select the library to provide pseudo-random number generator
147 functions. LIB_HW_RAND supports certain hardware engines that
148 provide this functionality. If in doubt, select LIB_RAND.
149
150config LIB_RAND
151 bool "Pseudo-random library support"
152
153config LIB_HW_RAND
154 bool "HW Engine for random libray support"
155
156endchoice
Michal Simek2c1b1db2015-05-25 11:37:22 +0200157
Simon Glasse2f94ae2017-04-02 09:50:28 -0600158config SPL_TINY_MEMSET
159 bool "Use a very small memset() in SPL"
160 help
161 The faster memset() is the arch-specific one (if available) enabled
162 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
163 better performance by writing a word at a time. But in very
Chris Packham1c3b7ba2019-01-13 22:13:28 +1300164 size-constrained environments even this may be too big. Enable this
Simon Glasse2f94ae2017-04-02 09:50:28 -0600165 option to reduce code size slightly at the cost of some speed.
166
Philipp Tomsichfefc4ec2017-08-03 22:52:04 +0200167config TPL_TINY_MEMSET
168 bool "Use a very small memset() in TPL"
169 help
170 The faster memset() is the arch-specific one (if available) enabled
171 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
172 better performance by writing a word at a time. But in very
Chris Packham1c3b7ba2019-01-13 22:13:28 +1300173 size-constrained environments even this may be too big. Enable this
Philipp Tomsichfefc4ec2017-08-03 22:52:04 +0200174 option to reduce code size slightly at the cost of some speed.
175
Boris Brezillon627dc182017-02-27 18:22:05 +0100176config RBTREE
177 bool
178
Nandor Hand5ea84a2017-11-08 15:35:14 +0000179config BITREVERSE
180 bool "Bit reverse library from Linux"
181
Simon Glassbfce7fc2019-04-08 13:20:51 -0600182config TRACE
183 bool "Support for tracing of function calls and timing"
184 imply CMD_TRACE
185 help
186 Enables function tracing within U-Boot. This allows recording of call
187 traces including timing information. The command can write data to
188 memory for exporting for analysis (e.g. using bootchart).
189 See doc/README.trace for full details.
190
Simon Glass445078e2019-04-08 13:20:52 -0600191config TRACE_BUFFER_SIZE
192 hex "Size of trace buffer in U-Boot"
193 depends on TRACE
194 default 0x01000000
195 help
196 Sets the size of the trace buffer in U-Boot. This is allocated from
197 memory during relocation. If this buffer is too small, the trace
198 history will be truncated, with later records omitted.
199
200 If early trace is enabled (i.e. before relocation), this buffer must
201 be large enough to include all the data from the early trace buffer as
202 well, since this is copied over to the main buffer during relocation.
203
204 A trace record is emitted for each function call and each record is
205 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
206 the size is too small then 'trace stats' will show a message saying
207 how many records were dropped due to buffer overflow.
208
Heinrich Schuchardtc1a73792019-06-02 13:30:09 +0200209config TRACE_CALL_DEPTH_LIMIT
210 int "Trace call depth limit"
211 depends on TRACE
212 default 15
213 help
214 Sets the maximum call depth up to which function calls are recorded.
215
Simon Glass445078e2019-04-08 13:20:52 -0600216config TRACE_EARLY
217 bool "Enable tracing before relocation"
218 depends on TRACE
219 help
220 Sometimes it is helpful to trace execution of U-Boot before
221 relocation. This is possible by using a arch-specific, fixed buffer
222 position in memory. Enable this option to start tracing as early as
223 possible after U-Boot starts.
224
225config TRACE_EARLY_SIZE
226 hex "Size of early trace buffer in U-Boot"
227 depends on TRACE_EARLY
228 default 0x00100000
229 help
230 Sets the size of the early trace buffer in bytes. This is used to hold
231 tracing information before relocation.
232
Heinrich Schuchardtc1a73792019-06-02 13:30:09 +0200233config TRACE_EARLY_CALL_DEPTH_LIMIT
234 int "Early trace call depth limit"
235 depends on TRACE_EARLY
236 default 200
237 help
238 Sets the maximum call depth up to which function calls are recorded
239 during early tracing.
240
Simon Glass445078e2019-04-08 13:20:52 -0600241config TRACE_EARLY_ADDR
242 hex "Address of early trace buffer in U-Boot"
243 depends on TRACE_EARLY
244 default 0x00100000
245 help
246 Sets the address of the early trace buffer in U-Boot. This memory
247 must be accessible before relocation.
248
249 A trace record is emitted for each function call and each record is
250 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
251 the size is too small then the message which says the amount of early
252 data being coped will the the same as the
253
Simon Glass99dbe4b2015-06-23 15:38:23 -0600254source lib/dhry/Kconfig
255
Simon Glass528fdd12017-04-26 22:27:49 -0600256menu "Security support"
257
258config AES
259 bool "Support the AES algorithm"
260 help
261 This provides a means to encrypt and decrypt data using the AES
262 (Advanced Encryption Standard). This algorithm uses a symetric key
263 and is widely used as a streaming cipher. Different key lengths are
264 supported by the algorithm but only a 128-bit key is supported at
265 present.
266
Ruchika Gupta4acd8c42015-01-23 16:01:56 +0530267source lib/rsa/Kconfig
Ruchika Gupta2c3822e2015-01-23 16:01:51 +0530268
Simon Glass350497c2015-08-22 18:31:19 -0600269config TPM
270 bool "Trusted Platform Module (TPM) Support"
Simon Glasscf294b02015-10-03 06:39:36 -0600271 depends on DM
Simon Glass350497c2015-08-22 18:31:19 -0600272 help
273 This enables support for TPMs which can be used to provide security
274 features for your board. The TPM can be connected via LPC or I2C
275 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
276 command to interactive the TPM. Driver model support is provided
277 for the low-level TPM interface, but only one TPM is supported at
278 a time by the TPM library.
279
Simon Glass93a45b12018-10-01 12:22:19 -0600280config SPL_TPM
281 bool "Trusted Platform Module (TPM) Support in SPL"
282 depends on SPL_DM
283 help
284 This enables support for TPMs which can be used to provide security
285 features for your board. The TPM can be connected via LPC or I2C
286 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
287 command to interactive the TPM. Driver model support is provided
288 for the low-level TPM interface, but only one TPM is supported at
289 a time by the TPM library.
290
291config TPL_TPM
292 bool "Trusted Platform Module (TPM) Support in TPL"
293 depends on TPL_DM
294 help
295 This enables support for TPMs which can be used to provide security
296 features for your board. The TPM can be connected via LPC or I2C
297 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
298 command to interactive the TPM. Driver model support is provided
299 for the low-level TPM interface, but only one TPM is supported at
300 a time by the TPM library.
301
Simon Glass528fdd12017-04-26 22:27:49 -0600302endmenu
303
Igor Opaniuk525d1d82018-06-03 21:56:37 +0300304menu "Android Verified Boot"
305
306config LIBAVB
307 bool "Android Verified Boot 2.0 support"
308 depends on ANDROID_BOOT_IMAGE
309 default n
310 help
311 This enables support of Android Verified Boot 2.0 which can be used
312 to assure the end user of the integrity of the software running on a
313 device. Introduces such features as boot chain of trust, rollback
314 protection etc.
315
316endmenu
317
gaurav ranaef201592015-02-20 12:51:46 +0530318menu "Hashing Support"
319
320config SHA1
321 bool "Enable SHA1 support"
322 help
323 This option enables support of hashing using SHA1 algorithm.
324 The hash is calculated in software.
325 The SHA1 algorithm produces a 160-bit (20-byte) hash value
326 (digest).
327
328config SHA256
329 bool "Enable SHA256 support"
330 help
331 This option enables support of hashing using SHA256 algorithm.
332 The hash is calculated in software.
333 The SHA256 algorithm produces a 256-bit (32-byte) hash value
334 (digest).
335
336config SHA_HW_ACCEL
337 bool "Enable hashing using hardware"
338 help
339 This option enables hardware acceleration
340 for SHA1/SHA256 hashing.
341 This affects the 'hash' command and also the
342 hash_lookup_algo() function.
343
344config SHA_PROG_HW_ACCEL
345 bool "Enable Progressive hashing support using hardware"
346 depends on SHA_HW_ACCEL
347 help
348 This option enables hardware-acceleration for
349 SHA1/SHA256 progressive hashing.
350 Data can be streamed in a block at a time and the hashing
351 is performed in hardware.
Andre Przywaraf0fa1132017-03-15 01:19:05 +0000352
353config MD5
354 bool
355
Marek BehĂșncdccc032017-09-03 17:00:23 +0200356config CRC32C
357 bool
358
Marek BehĂșnb139a7f2019-04-29 22:40:43 +0200359config XXHASH
360 bool
361
gaurav ranaef201592015-02-20 12:51:46 +0530362endmenu
363
Julius Wernerf41a3ca2015-10-06 20:03:53 -0700364menu "Compression Support"
365
366config LZ4
367 bool "Enable LZ4 decompression support"
368 help
369 If this option is set, support for LZ4 compressed images
370 is included. The LZ4 algorithm can run in-place as long as the
371 compressed image is loaded to the end of the output buffer, and
372 trades lower compression ratios for much faster decompression.
373
374 NOTE: This implements the release version of the LZ4 frame
375 format as generated by default by the 'lz4' command line tool.
376 This is not the same as the outdated, less efficient legacy
377 frame format currently (2015) implemented in the Linux kernel
378 (generated by 'lz4 -l'). The two formats are incompatible.
379
Simon Glass264aa5f2017-05-17 03:25:42 -0600380config LZMA
381 bool "Enable LZMA decompression support"
382 help
383 This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
384 a dictionary compression algorithm that provides a high compression
385 ratio and fairly fast decompression speed. See also
386 CONFIG_CMD_LZMADEC which provides a decode command.
387
Boris Brezillonaa57d0f2017-02-27 18:22:06 +0100388config LZO
Tom Rinic20bb732017-07-22 18:36:16 -0400389 bool "Enable LZO decompression support"
390 help
391 This enables support for LZO compression algorithm.r
York Suna6945fe2017-08-15 11:14:43 -0700392
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100393config GZIP
Heiko Schocherb93cc602019-04-29 08:59:38 +0200394 bool "Enable gzip decompression support"
Marek Vasutaeaa29d2019-03-08 16:06:55 +0100395 select ZLIB
396 default y
397 help
398 This enables support for GZIP compression algorithm.
399
400config ZLIB
401 bool
402 default y
403 help
404 This enables ZLIB compression lib.
405
Marek BehĂșne87e2002019-04-29 22:40:44 +0200406config ZSTD
407 bool "Enable Zstandard decompression support"
408 select XXHASH
409 help
410 This enables Zstandard decompression library.
411
Simon Glasse107bcd2018-11-06 15:21:30 -0700412config SPL_LZ4
413 bool "Enable LZ4 decompression support in SPL"
414 help
415 This enables support for tge LZ4 decompression algorithm in SPL. LZ4
416 is a lossless data compression algorithm that is focused on
417 fast compression and decompression speed. It belongs to the LZ77
418 family of byte-oriented compression schemes.
419
Jean-Jacques Hiblotdbde2882017-09-15 12:57:30 +0200420config SPL_LZO
421 bool "Enable LZO decompression support in SPL"
422 help
423 This enables support for LZO compression algorithm in the SPL.
424
York Suna6945fe2017-08-15 11:14:43 -0700425config SPL_GZIP
426 bool "Enable gzip decompression support for SPL build"
427 select SPL_ZLIB
428 help
429 This enables support for GZIP compression altorithm for SPL boot.
430
431config SPL_ZLIB
432 bool
433 help
434 This enables compression lib for SPL boot.
435
Marek BehĂșne87e2002019-04-29 22:40:44 +0200436config SPL_ZSTD
437 bool "Enable Zstandard decompression support in SPL"
438 select XXHASH
439 help
440 This enables Zstandard decompression library in the SPL.
441
Julius Wernerf41a3ca2015-10-06 20:03:53 -0700442endmenu
443
Przemyslaw Marczak37550132015-04-20 20:07:40 +0200444config ERRNO_STR
445 bool "Enable function for getting errno-related string message"
446 help
447 The function errno_str(int errno), returns a pointer to the errno
448 corresponding text message:
449 - if errno is null or positive number - a pointer to "Success" message
450 - if errno is negative - a pointer to errno related message
451
Alexey Brodkin2d2fa492018-06-05 17:17:57 +0300452config HEXDUMP
453 bool "Enable hexdump"
454 help
455 This enables functions for printing dumps of binary data.
456
Simon Glassa66c5412016-02-22 22:55:42 -0700457config OF_LIBFDT
458 bool "Enable the FDT library"
459 default y if OF_CONTROL
460 help
461 This enables the FDT library (libfdt). It provides functions for
462 accessing binary device tree images in memory, such as adding and
Anatolij Gustschinda707d42017-08-18 17:58:51 +0200463 removing nodes and properties, scanning through the tree and finding
Simon Glassa66c5412016-02-22 22:55:42 -0700464 particular compatible nodes. The library operates on a flattened
465 version of the device tree.
466
Maxime Ripard9e901ce2016-07-05 10:26:44 +0200467config OF_LIBFDT_OVERLAY
468 bool "Enable the FDT library overlay support"
Tom Rinic1e49ba2018-05-08 08:52:17 -0400469 depends on OF_LIBFDT
Praneeth Bajjuri7b71a012018-04-25 16:03:23 -0500470 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
Maxime Ripard9e901ce2016-07-05 10:26:44 +0200471 help
472 This enables the FDT library (libfdt) overlay support.
473
Simon Glass8b426922016-02-22 22:55:45 -0700474config SPL_OF_LIBFDT
475 bool "Enable the FDT library for SPL"
476 default y if SPL_OF_CONTROL
477 help
478 This enables the FDT library (libfdt). It provides functions for
479 accessing binary device tree images in memory, such as adding and
Anatolij Gustschinda707d42017-08-18 17:58:51 +0200480 removing nodes and properties, scanning through the tree and finding
Simon Glass8b426922016-02-22 22:55:45 -0700481 particular compatible nodes. The library operates on a flattened
482 version of the device tree.
483
Simon Glassca8ec4b2018-10-01 12:22:21 -0600484config TPL_OF_LIBFDT
485 bool "Enable the FDT library for TPL"
486 default y if TPL_OF_CONTROL
487 help
488 This enables the FDT library (libfdt). It provides functions for
489 accessing binary device tree images in memory, such as adding and
490 removing nodes and properties, scanning through the tree and finding
491 particular compatible nodes. The library operates on a flattened
492 version of the device tree.
493
Heiko Schocherc9ab9102016-10-06 07:31:45 +0200494config FDT_FIXUP_PARTITIONS
495 bool "overwrite MTD partitions in DTS through defined in 'mtdparts'"
496 depends on OF_LIBFDT
Masahiro Yamada734b7552018-07-20 11:04:09 +0900497 depends on CMD_MTDPARTS
Heiko Schocherc9ab9102016-10-06 07:31:45 +0200498 help
499 Allow overwriting defined partitions in the device tree blob
500 using partition info defined in the 'mtdparts' environment
501 variable.
502
Alexander Graffb228082016-08-19 01:23:23 +0200503menu "System tables"
Alexander Graf66f96e12016-08-19 01:23:29 +0200504 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
Alexander Graffb228082016-08-19 01:23:23 +0200505
506config GENERATE_SMBIOS_TABLE
507 bool "Generate an SMBIOS (System Management BIOS) table"
508 default y
Alexander Graf66f96e12016-08-19 01:23:29 +0200509 depends on X86 || EFI_LOADER
Alexander Graffb228082016-08-19 01:23:23 +0200510 help
511 The System Management BIOS (SMBIOS) specification addresses how
512 motherboard and system vendors present management information about
513 their products in a standard format by extending the BIOS interface
514 on Intel architecture systems.
515
516 Check http://www.dmtf.org/standards/smbios for details.
517
518config SMBIOS_MANUFACTURER
519 string "SMBIOS Manufacturer"
520 depends on GENERATE_SMBIOS_TABLE
521 default SYS_VENDOR
522 help
523 The board manufacturer to store in SMBIOS structures.
524 Change this to override the default one (CONFIG_SYS_VENDOR).
525
526config SMBIOS_PRODUCT_NAME
527 string "SMBIOS Product Name"
528 depends on GENERATE_SMBIOS_TABLE
529 default SYS_BOARD
530 help
531 The product name to store in SMBIOS structures.
532 Change this to override the default one (CONFIG_SYS_BOARD).
533
534endmenu
535
Simon Glass9539e692015-07-31 09:31:36 -0600536source lib/efi/Kconfig
Alexander Graf67ee7052016-03-04 01:10:07 +0100537source lib/efi_loader/Kconfig
Bryan O'Donoghue4b0de7c2018-03-13 16:50:27 +0000538source lib/optee/Kconfig
Simon Glass9539e692015-07-31 09:31:36 -0600539
Thierry Reding52c7f1f32019-03-21 19:10:04 +0100540config TEST_FDTDEC
541 bool "enable fdtdec test"
542 depends on OF_LIBFDT
543
Masahiro Yamadaf3e12b72014-09-16 16:32:58 +0900544endmenu