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