xref: /openbmc/u-boot/lib/Kconfig (revision c66f5620)
1menu "Library routines"
2
3config 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
10config 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
18config 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
24config HAVE_PRIVATE_LIBGCC
25	bool
26
27config LIB_UUID
28	bool
29
30config PRINTF
31	bool
32	default y
33
34config SPL_PRINTF
35	bool
36	select SPL_SPRINTF
37	select SPL_STRTO if !USE_TINY_PRINTF
38
39config TPL_PRINTF
40	bool
41	select TPL_SPRINTF
42	select TPL_STRTO if !USE_TINY_PRINTF
43
44config SPRINTF
45	bool
46	default y
47
48config SPL_SPRINTF
49	bool
50
51config TPL_SPRINTF
52	bool
53
54config STRTO
55	bool
56	default y
57
58config SPL_STRTO
59	bool
60
61config TPL_STRTO
62	bool
63
64config USE_PRIVATE_LIBGCC
65	bool "Use private libgcc"
66	depends on HAVE_PRIVATE_LIBGCC
67	default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
68	help
69	  This option allows you to use the built-in libgcc implementation
70	  of U-Boot instead of the one provided by the compiler.
71	  If unsure, say N.
72
73config SYS_HZ
74	int
75	default 1000
76	help
77	  The frequency of the timer returned by get_timer().
78	  get_timer() must operate in milliseconds and this option must be
79	  set to 1000.
80
81config USE_TINY_PRINTF
82	bool "Enable tiny printf() version"
83	help
84	  This option enables a tiny, stripped down printf version.
85	  This should only be used in space limited environments,
86	  like SPL versions with hard memory limits. This version
87	  reduces the code size by about 2.5KiB on armv7.
88
89	  The supported format specifiers are %c, %s, %u/%d and %x.
90
91config PANIC_HANG
92	bool "Do not reset the system on fatal error"
93	help
94	  Define this option to stop the system in case of a fatal error,
95	  so that you have to reset it manually. This is probably NOT a good
96	  idea for an embedded system where you want the system to reboot
97	  automatically as fast as possible, but it may be useful during
98	  development since you can try to debug the conditions that lead to
99	  the situation.
100
101config REGEX
102	bool "Enable regular expression support"
103	default y if NET
104	help
105	  If this variable is defined, U-Boot is linked against the
106	  SLRE (Super Light Regular Expression) library, which adds
107	  regex support to some commands, for example "env grep" and
108	  "setexpr".
109
110choice
111	prompt "Pseudo-random library support type"
112	depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID
113	default LIB_RAND
114	help
115	  Select the library to provide pseudo-random number generator
116	  functions.  LIB_HW_RAND supports certain hardware engines that
117	  provide this functionality.  If in doubt, select LIB_RAND.
118
119config LIB_RAND
120	bool "Pseudo-random library support"
121
122config LIB_HW_RAND
123	bool "HW Engine for random libray support"
124
125endchoice
126
127config SPL_TINY_MEMSET
128	bool "Use a very small memset() in SPL"
129	help
130	  The faster memset() is the arch-specific one (if available) enabled
131	  by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
132	  better performance by writing a word at a time. But in very
133	  size-constrained envrionments even this may be too big. Enable this
134	  option to reduce code size slightly at the cost of some speed.
135
136config TPL_TINY_MEMSET
137	bool "Use a very small memset() in TPL"
138	help
139	  The faster memset() is the arch-specific one (if available) enabled
140	  by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
141	  better performance by writing a word at a time. But in very
142	  size-constrained envrionments even this may be too big. Enable this
143	  option to reduce code size slightly at the cost of some speed.
144
145config RBTREE
146	bool
147
148config BITREVERSE
149	bool "Bit reverse library from Linux"
150
151source lib/dhry/Kconfig
152
153menu "Security support"
154
155config AES
156	bool "Support the AES algorithm"
157	help
158	  This provides a means to encrypt and decrypt data using the AES
159	  (Advanced Encryption Standard). This algorithm uses a symetric key
160	  and is widely used as a streaming cipher. Different key lengths are
161	  supported by the algorithm but only a 128-bit key is supported at
162	  present.
163
164source lib/rsa/Kconfig
165
166config TPM
167	bool "Trusted Platform Module (TPM) Support"
168	depends on DM
169	help
170	  This enables support for TPMs which can be used to provide security
171	  features for your board. The TPM can be connected via LPC or I2C
172	  and a sandbox TPM is provided for testing purposes. Use the 'tpm'
173	  command to interactive the TPM. Driver model support is provided
174	  for the low-level TPM interface, but only one TPM is supported at
175	  a time by the TPM library.
176
177endmenu
178
179menu "Hashing Support"
180
181config SHA1
182	bool "Enable SHA1 support"
183	help
184	  This option enables support of hashing using SHA1 algorithm.
185	  The hash is calculated in software.
186	  The SHA1 algorithm produces a 160-bit (20-byte) hash value
187	  (digest).
188
189config SHA256
190	bool "Enable SHA256 support"
191	help
192	  This option enables support of hashing using SHA256 algorithm.
193	  The hash is calculated in software.
194	  The SHA256 algorithm produces a 256-bit (32-byte) hash value
195	  (digest).
196
197config SHA_HW_ACCEL
198	bool "Enable hashing using hardware"
199	help
200	  This option enables hardware acceleration
201	  for SHA1/SHA256 hashing.
202	  This affects the 'hash' command and also the
203	  hash_lookup_algo() function.
204
205config SHA_PROG_HW_ACCEL
206	bool "Enable Progressive hashing support using hardware"
207	depends on SHA_HW_ACCEL
208	help
209	  This option enables hardware-acceleration for
210	  SHA1/SHA256 progressive hashing.
211	  Data can be streamed in a block at a time and the hashing
212	  is performed in hardware.
213
214config MD5
215	bool
216
217config CRC32C
218	bool
219
220endmenu
221
222menu "Compression Support"
223
224config LZ4
225	bool "Enable LZ4 decompression support"
226	help
227	  If this option is set, support for LZ4 compressed images
228	  is included. The LZ4 algorithm can run in-place as long as the
229	  compressed image is loaded to the end of the output buffer, and
230	  trades lower compression ratios for much faster decompression.
231
232	  NOTE: This implements the release version of the LZ4 frame
233	  format as generated by default by the 'lz4' command line tool.
234	  This is not the same as the outdated, less efficient legacy
235	  frame format currently (2015) implemented in the Linux kernel
236	  (generated by 'lz4 -l'). The two formats are incompatible.
237
238config LZMA
239	bool "Enable LZMA decompression support"
240	help
241	  This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
242	  a dictionary compression algorithm that provides a high compression
243	  ratio and fairly fast decompression speed. See also
244	  CONFIG_CMD_LZMADEC which provides a decode command.
245
246config LZO
247	bool "Enable LZO decompression support"
248	help
249	  This enables support for LZO compression algorithm.r
250
251config SPL_LZO
252	bool "Enable LZO decompression support in SPL"
253	help
254	  This enables support for LZO compression algorithm in the SPL.
255
256config SPL_GZIP
257	bool "Enable gzip decompression support for SPL build"
258	select SPL_ZLIB
259	help
260	  This enables support for GZIP compression altorithm for SPL boot.
261
262config SPL_ZLIB
263	bool
264	help
265	  This enables compression lib for SPL boot.
266
267endmenu
268
269config ERRNO_STR
270	bool "Enable function for getting errno-related string message"
271	help
272	  The function errno_str(int errno), returns a pointer to the errno
273	  corresponding text message:
274	  - if errno is null or positive number - a pointer to "Success" message
275	  - if errno is negative - a pointer to errno related message
276
277config OF_LIBFDT
278	bool "Enable the FDT library"
279	default y if OF_CONTROL
280	help
281	  This enables the FDT library (libfdt). It provides functions for
282	  accessing binary device tree images in memory, such as adding and
283	  removing nodes and properties, scanning through the tree and finding
284	  particular compatible nodes. The library operates on a flattened
285	  version of the device tree.
286
287config OF_LIBFDT_OVERLAY
288	bool "Enable the FDT library overlay support"
289	depends on OF_LIBFDT
290	default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
291	help
292	  This enables the FDT library (libfdt) overlay support.
293
294config SPL_OF_LIBFDT
295	bool "Enable the FDT library for SPL"
296	default y if SPL_OF_CONTROL
297	help
298	  This enables the FDT library (libfdt). It provides functions for
299	  accessing binary device tree images in memory, such as adding and
300	  removing nodes and properties, scanning through the tree and finding
301	  particular compatible nodes. The library operates on a flattened
302	  version of the device tree.
303
304config FDT_FIXUP_PARTITIONS
305	bool "overwrite MTD partitions in DTS through defined in 'mtdparts'"
306	depends on OF_LIBFDT
307	default n
308	help
309	  Allow overwriting defined partitions in the device tree blob
310	  using partition info defined in the 'mtdparts' environment
311	  variable.
312
313menu "System tables"
314	depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
315
316config GENERATE_SMBIOS_TABLE
317	bool "Generate an SMBIOS (System Management BIOS) table"
318	default y
319	depends on X86 || EFI_LOADER
320	help
321	  The System Management BIOS (SMBIOS) specification addresses how
322	  motherboard and system vendors present management information about
323	  their products in a standard format by extending the BIOS interface
324	  on Intel architecture systems.
325
326	  Check http://www.dmtf.org/standards/smbios for details.
327
328config SMBIOS_MANUFACTURER
329	string "SMBIOS Manufacturer"
330	depends on GENERATE_SMBIOS_TABLE
331	default SYS_VENDOR
332	help
333	  The board manufacturer to store in SMBIOS structures.
334	  Change this to override the default one (CONFIG_SYS_VENDOR).
335
336config SMBIOS_PRODUCT_NAME
337	string "SMBIOS Product Name"
338	depends on GENERATE_SMBIOS_TABLE
339	default SYS_BOARD
340	help
341	  The product name to store in SMBIOS structures.
342	  Change this to override the default one (CONFIG_SYS_BOARD).
343
344endmenu
345
346source lib/efi/Kconfig
347source lib/efi_loader/Kconfig
348source lib/optee/Kconfig
349
350endmenu
351