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