iPXE
general.h
Go to the documentation of this file.
1#ifndef CONFIG_GENERAL_H
2#define CONFIG_GENERAL_H
3
4/** @file
5 *
6 * General configuration
7 *
8 */
9
10FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
11FILE_SECBOOT ( PERMITTED );
12
13#include <config/defaults.h>
14
15/*****************************************************************************
16 *
17 * Network protocols
18 *
19 */
20
21/* Protocols supported on all platforms */
22#define NET_PROTO_EAPOL /* EAP over LAN protocol */
23//#define NET_PROTO_FCOE /* Fibre Channel over Ethernet protocol */
24#define NET_PROTO_IPV4 /* IPv4 protocol */
25#define NET_PROTO_IPV6 /* IPv6 protocol */
26#define NET_PROTO_LACP /* Link Aggregation control protocol */
27#define NET_PROTO_LLDP /* Link Layer Discovery protocol */
28#define NET_PROTO_STP /* Spanning Tree protocol */
29
30/* Disable protocols not historically included in BIOS builds */
31#if defined ( PLATFORM_pcbios )
32 #undef NET_PROTO_IPV6
33 #undef NET_PROTO_LLDP
34#endif
35
36/*****************************************************************************
37 *
38 * Download protocols
39 *
40 */
41
42/* Protocols supported on all platforms */
43#define DOWNLOAD_PROTO_TFTP /* Trivial File Transfer Protocol */
44#define DOWNLOAD_PROTO_HTTP /* Hypertext Transfer Protocol */
45#define DOWNLOAD_PROTO_HTTPS /* Secure Hypertext Transfer Protocol */
46//#define DOWNLOAD_PROTO_FTP /* File Transfer Protocol */
47//#define DOWNLOAD_PROTO_SLAM /* Scalable Local Area Multicast */
48//#define DOWNLOAD_PROTO_NFS /* Network File System Protocol */
49#define DOWNLOAD_PROTO_DATA /* Inline Data */
50
51/* Protocols supported only on platforms with filesystem abstractions */
52#if defined ( PLATFORM_efi )
53 #define DOWNLOAD_PROTO_FILE /* Local filesystem access */
54#endif
55
56/* HTTP(S) protocol extensions */
57#define HTTP_AUTH_BASIC /* Basic authentication */
58#define HTTP_AUTH_DIGEST /* Digest authentication */
59#define HTTP_AUTH_NTLM /* NTLM authentication */
60//#define HTTP_ENC_PEERDIST /* PeerDist content encoding */
61
62/* Disable protocols not historically included in BIOS builds */
63#if defined ( PLATFORM_pcbios )
64 #undef DOWNLOAD_PROTO_HTTPS
65 #undef HTTP_AUTH_NTLM
66#endif
67
68/*****************************************************************************
69 *
70 * SAN boot protocols
71 *
72 */
73
74/* Protocols supported on all platforms with SAN boot abstractions */
75#if ! defined ( SANBOOT_NULL )
76 #define SANBOOT_PROTO_AOE /* AoE protocol */
77 #define SANBOOT_PROTO_FCP /* Fibre Channel protocol */
78 #define SANBOOT_PROTO_HTTP /* HTTP SAN protocol */
79 #define SANBOOT_PROTO_IB_SRP /* Infiniband SCSI RDMA protocol */
80 #define SANBOOT_PROTO_ISCSI /* iSCSI protocol */
81#endif
82
83/*****************************************************************************
84 *
85 * Command-line and script commands
86 *
87 */
88
89/* Commands supported on all platforms */
90#define AUTOBOOT_CMD /* Automatic booting */
91#define CERT_CMD /* Certificate management commands */
92#define CONFIG_CMD /* Option configuration console */
93#define CONSOLE_CMD /* Console command */
94#define DIGEST_CMD /* Image crypto digest commands */
95#define DHCP_CMD /* DHCP management commands */
96#define FCMGMT_CMD /* Fibre Channel management commands */
97#define FORM_CMD /* Form commands */
98#define IBMGMT_CMD /* Infiniband management commands */
99#define IFMGMT_CMD /* Interface management commands */
100#define IMAGE_CMD /* Image management commands */
101#define IMAGE_ARCHIVE_CMD /* Archive image management commands */
102//#define IMAGE_CRYPT_CMD /* Image encryption management commands */
103//#define IMAGE_MEM_CMD /* Read memory command */
104#define IMAGE_SET_CMD /* Image setting commands */
105//#define IMAGE_TRUST_CMD /* Image trust management commands */
106//#define IPSTAT_CMD /* IP statistics commands */
107#define IWMGMT_CMD /* Wireless interface management commands */
108#define LOGIN_CMD /* Login command */
109//#define LOTEST_CMD /* Loopback testing commands */
110#define MENU_CMD /* Menu commands */
111//#define NEIGHBOUR_CMD /* Neighbour management commands */
112//#define NSLOOKUP_CMD /* DNS resolving command */
113#define NTP_CMD /* NTP commands */
114#define NVO_CMD /* Non-volatile option storage commands */
115#define PARAM_CMD /* Request parameter commands */
116#define PCI_CMD /* PCI commands */
117//#define PING_CMD /* Ping command */
118//#define PROFSTAT_CMD /* Profiling commands */
119//#define PXE_CMD /* PXE commands */
120#define ROUTE_CMD /* Routing table management commands */
121#define SANBOOT_CMD /* SAN boot commands */
122#define SHELL_CMD /* Shell command */
123#define SHIM_CMD /* EFI shim command (or dummy command) */
124#define SYNC_CMD /* Sync command */
125//#define TIME_CMD /* Time commands */
126#define USB_CMD /* USB commands */
127#define VLAN_CMD /* VLAN commands */
128
129/* Commands supported only on systems capable of rebooting */
130#if ! defined ( REBOOT_NULL )
131 #define POWEROFF_CMD /* Power off command */
132 #define REBOOT_CMD /* Reboot command */
133#endif
134
135/* Commands supported only on systems that may use FDTs */
136#if ! defined ( FDT_NULL )
137 #define FDT_CMD /* Flattened Device Tree commands */
138#endif
139
140/* Commands supported only on x86 CPUs */
141#if defined ( __i386__ ) || defined ( __x86_64__ )
142 #define CPUID_CMD /* x86 CPU feature detection command */
143#endif
144
145/* Disable commands not historically included in BIOS builds */
146#if defined ( PLATFORM_pcbios )
147 #undef CERT_CMD
148 #undef CONSOLE_CMD
149 #undef DIGEST_CMD
150 #undef NTP_CMD
151 #undef PARAM_CMD
152 #undef PCI_CMD
153 #undef USB_CMD
154 #undef VLAN_CMD
155#endif
156
157/*****************************************************************************
158 *
159 * Image types
160 *
161 */
162
163/* Image types supported on all platforms */
164#define IMAGE_DER /* ASN.1 DER-encoded image support */
165//#define IMAGE_GZIP /* GZIP compressed image support */
166#define IMAGE_PEM /* ASN.1 PEM-encoded image support */
167//#define IMAGE_PNM /* PNM graphical image support */
168#define IMAGE_PNG /* PNG graphical image support */
169#define IMAGE_SCRIPT /* iPXE script image support */
170//#define IMAGE_ZLIB /* ZLIB compressed image support */
171//#define IMAGE_MIME /* MIME image support */
172
173/* Image types supported only on BIOS platforms */
174#if defined ( PLATFORM_pcbios )
175 #define IMAGE_BZIMAGE /* Linux bzImage image support */
176 //#define IMAGE_COMBOOT /* SYSLINUX COMBOOT image support */
177 #define IMAGE_ELF /* ELF image support */
178 #define IMAGE_MULTIBOOT /* MultiBoot image support */
179 //#define IMAGE_NBI /* NBI image support */
180 #define IMAGE_PXE /* PXE image support */
181 //#define IMAGE_SDI /* SDI image support */
182#endif
183
184/* Image types supported only on EFI platforms */
185#if defined ( PLATFORM_efi )
186 #define IMAGE_EFI /* EFI image support */
187 #define IMAGE_EFISIG /* EFI signature list image support */
188#endif
189
190/* Image types supported only on RISC-V SBI platforms */
191#if defined ( PLATFORM_sbi )
192 #define IMAGE_LKRN /* Linux kernel image support */
193#endif
194
195/* Image types supported only on x86 CPUs */
196#if defined ( __i386__ ) || defined ( __x86_64__ )
197 //#define IMAGE_UCODE /* Microcode update image support */
198#endif
199
200/* Enable commonly encountered compressed versions of some image types */
201#if defined ( IMAGE_EFI ) && defined ( __aarch64__ )
202 #define IMAGE_GZIP
203#endif
204#if defined ( IMAGE_LKRN ) && defined ( __riscv )
205 #define IMAGE_GZIP
206#endif
207
208/*****************************************************************************
209 *
210 * Banner timeout configuration
211 *
212 * This controls the timeout for the "Press Ctrl-B for the iPXE
213 * command line" banner displayed when iPXE starts up. The value is
214 * specified in tenths of a second for which the banner should appear.
215 * A value of 0 disables the banner.
216 *
217 * ROM_BANNER_TIMEOUT controls the "Press Ctrl-B to configure iPXE"
218 * banner displayed only by ROM builds of iPXE during POST. This
219 * defaults to being twice the length of BANNER_TIMEOUT, to allow for
220 * BIOSes that switch video modes immediately before calling the
221 * initialisation vector, thus rendering the banner almost invisible
222 * to the user.
223 */
224
225#define BANNER_TIMEOUT 20
226#define ROM_BANNER_TIMEOUT ( 2 * BANNER_TIMEOUT )
227
228/*****************************************************************************
229 *
230 * ROM-specific options
231 *
232 */
233
234#define AUTOBOOT_ROM_FILTER /* Autoboot only devices matching our ROM */
235//#define NONPNP_HOOK_INT19 /* Hook INT19 on non-PnP BIOSes */
236
237/*****************************************************************************
238 *
239 * PXE support
240 *
241 */
242
243#if defined ( PLATFORM_pcbios )
244 #define PXE_MENU /* PXE menu booting */
245 #define PXE_STACK /* PXE stack in iPXE - you want this! */
246#endif
247
248/*****************************************************************************
249*
250 * Name resolution modules
251 *
252 */
253
254#define DNS_RESOLVER /* DNS resolver */
255
256/*****************************************************************************
257 *
258 * Certificate sources
259 *
260 */
261
262#if defined ( PLATFORM_efi )
263 #define CERTS_EFI /* EFI certificate sources */
264#endif
265
266/*****************************************************************************
267 *
268 * Virtual network devices
269 *
270 */
271
272#define VNIC_IPOIB /* Infiniband IPoIB virtual NICs */
273//#define VNIC_XSIGO /* Infiniband Xsigo virtual NICs */
274
275/*****************************************************************************
276 *
277 * 802.1x EAP authentication methods
278 *
279 */
280
281#define EAP_METHOD_MD5 /* MD5-Challenge port authentication */
282//#define EAP_METHOD_MSCHAPV2 /* MS-CHAPv2 port authentication */
283
284/*****************************************************************************
285 *
286 * 802.11 cryptosystems and handshaking protocols
287 *
288 */
289
290#define CRYPTO_80211_WEP /* WEP encryption (deprecated and insecure!) */
291#define CRYPTO_80211_WPA /* WPA Personal, with passphrase */
292#define CRYPTO_80211_WPA2 /* Add support for stronger WPA cryptography */
293
294/*****************************************************************************
295 *
296 * Very obscure configuration options
297 *
298 * You probably don't need to touch these.
299 *
300 */
301
302//#define NULL_TRAP /* Attempt to catch NULL function calls */
303//#define GDBSERIAL /* Remote GDB debugging over serial */
304//#define GDBUDP /* Remote GDB debugging over UDP */
305//#define EFI_DOWNGRADE_UX /* Downgrade UEFI user experience */
306#define TIVOLI_VMM_WORKAROUND /* Work around the Tivoli VMM's garbling of SSE
307 * registers when iPXE traps to it due to
308 * privileged instructions */
309//#define ERRMSG_80211 /* All 802.11 error descriptions (~3.3kb) */
310
311#include <config/named.h>
312#include NAMED_CONFIG(general.h)
313#include <config/local/general.h>
314#include LOCAL_NAMED_CONFIG(general.h)
315
316#endif /* CONFIG_GENERAL_H */
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:921
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Definition compiler.h:951
Named configurations.