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