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