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