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