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
50/* Protocols supported only on platforms with filesystem abstractions */
51#if defined ( PLATFORM_efi )
52 #define DOWNLOAD_PROTO_FILE /* Local filesystem access */
53#endif
54
55/* HTTP(S) protocol extensions */
56#define HTTP_AUTH_BASIC /* Basic authentication */
57#define HTTP_AUTH_DIGEST /* Digest authentication */
58#define HTTP_AUTH_NTLM /* NTLM authentication */
59//#define HTTP_ENC_PEERDIST /* PeerDist content encoding */
60//#define HTTP_HACK_GCE /* Google Compute Engine hacks */
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_TRUST_CMD /* Image trust management commands */
105//#define IPSTAT_CMD /* IP statistics commands */
106#define IWMGMT_CMD /* Wireless interface management commands */
107#define LOGIN_CMD /* Login command */
108//#define LOTEST_CMD /* Loopback testing commands */
109#define MENU_CMD /* Menu commands */
110//#define NEIGHBOUR_CMD /* Neighbour management commands */
111//#define NSLOOKUP_CMD /* DNS resolving command */
112#define NTP_CMD /* NTP commands */
113#define NVO_CMD /* Non-volatile option storage commands */
114#define PARAM_CMD /* Request parameter commands */
115#define PCI_CMD /* PCI commands */
116//#define PING_CMD /* Ping command */
117//#define PROFSTAT_CMD /* Profiling commands */
118//#define PXE_CMD /* PXE commands */
119#define ROUTE_CMD /* Routing table management commands */
120#define SANBOOT_CMD /* SAN boot commands */
121#define SHELL_CMD /* Shell command */
122#define SHIM_CMD /* EFI shim command (or dummy command) */
123#define SYNC_CMD /* Sync command */
124//#define TIME_CMD /* Time commands */
125#define USB_CMD /* USB commands */
126#define VLAN_CMD /* VLAN commands */
127
128/* Commands supported only on systems capable of rebooting */
129#if ! defined ( REBOOT_NULL )
130 #define POWEROFF_CMD /* Power off command */
131 #define REBOOT_CMD /* Reboot command */
132#endif
133
134/* Commands supported only on systems that may use FDTs */
135#if ! defined ( FDT_NULL )
136 #define FDT_CMD /* Flattened Device Tree commands */
137#endif
138
139/* Commands supported only on x86 CPUs */
140#if defined ( __i386__ ) || defined ( __x86_64__ )
141 #define CPUID_CMD /* x86 CPU feature detection command */
142#endif
143
144/* Disable commands not historically included in BIOS builds */
145#if defined ( PLATFORM_pcbios )
146 #undef CERT_CMD
147 #undef CONSOLE_CMD
148 #undef DIGEST_CMD
149 #undef NTP_CMD
150 #undef PARAM_CMD
151 #undef PCI_CMD
152 #undef USB_CMD
153 #undef VLAN_CMD
154#endif
155
156/*****************************************************************************
157 *
158 * Image types
159 *
160 */
161
162/* Image types supported on all platforms */
163#define IMAGE_DER /* ASN.1 DER-encoded image support */
164//#define IMAGE_GZIP /* GZIP compressed image support */
165#define IMAGE_PEM /* ASN.1 PEM-encoded image support */
166//#define IMAGE_PNM /* PNM graphical image support */
167#define IMAGE_PNG /* PNG graphical image support */
168#define IMAGE_SCRIPT /* iPXE script image support */
169//#define IMAGE_ZLIB /* ZLIB compressed image support */
170
171/* Image types supported only on BIOS platforms */
172#if defined ( PLATFORM_pcbios )
173 #define IMAGE_BZIMAGE /* Linux bzImage image support */
174 //#define IMAGE_COMBOOT /* SYSLINUX COMBOOT image support */
175 #define IMAGE_ELF /* ELF image support */
176 #define IMAGE_MULTIBOOT /* MultiBoot image support */
177 //#define IMAGE_NBI /* NBI image support */
178 #define IMAGE_PXE /* PXE image support */
179 //#define IMAGE_SDI /* SDI image support */
180#endif
181
182/* Image types supported only on EFI platforms */
183#if defined ( PLATFORM_efi )
184 #define IMAGE_EFI /* EFI image support */
185 #define IMAGE_EFISIG /* EFI signature list image support */
186#endif
187
188/* Image types supported only on RISC-V SBI platforms */
189#if defined ( PLATFORM_sbi )
190 #define IMAGE_LKRN /* Linux kernel image support */
191#endif
192
193/* Image types supported only on x86 CPUs */
194#if defined ( __i386__ ) || defined ( __x86_64__ )
195 //#define IMAGE_UCODE /* Microcode update image support */
196#endif
197
198/* Enable commonly encountered compressed versions of some image types */
199#if defined ( IMAGE_EFI ) && defined ( __aarch64__ )
200 #define IMAGE_GZIP
201#endif
202#if defined ( IMAGE_LKRN ) && defined ( __riscv )
203 #define IMAGE_GZIP
204#endif
205
206/*****************************************************************************
207 *
208 * Banner timeout configuration
209 *
210 * This controls the timeout for the "Press Ctrl-B for the iPXE
211 * command line" banner displayed when iPXE starts up. The value is
212 * specified in tenths of a second for which the banner should appear.
213 * A value of 0 disables the banner.
214 *
215 * ROM_BANNER_TIMEOUT controls the "Press Ctrl-B to configure iPXE"
216 * banner displayed only by ROM builds of iPXE during POST. This
217 * defaults to being twice the length of BANNER_TIMEOUT, to allow for
218 * BIOSes that switch video modes immediately before calling the
219 * initialisation vector, thus rendering the banner almost invisible
220 * to the user.
221 */
222
223#define BANNER_TIMEOUT 20
224#define ROM_BANNER_TIMEOUT ( 2 * BANNER_TIMEOUT )
225
226/*****************************************************************************
227 *
228 * ROM-specific options
229 *
230 */
231
232#define AUTOBOOT_ROM_FILTER /* Autoboot only devices matching our ROM */
233//#define NONPNP_HOOK_INT19 /* Hook INT19 on non-PnP BIOSes */
234
235/*****************************************************************************
236 *
237 * PXE support
238 *
239 */
240
241#if defined ( PLATFORM_pcbios )
242 #define PXE_MENU /* PXE menu booting */
243 #define PXE_STACK /* PXE stack in iPXE - you want this! */
244#endif
245
246/*****************************************************************************
247*
248 * Name resolution modules
249 *
250 */
251
252#define DNS_RESOLVER /* DNS resolver */
253
254/*****************************************************************************
255 *
256 * Certificate sources
257 *
258 */
259
260#if defined ( PLATFORM_efi )
261 #define CERTS_EFI /* EFI certificate sources */
262#endif
263
264/*****************************************************************************
265 *
266 * Virtual network devices
267 *
268 */
269
270#define VNIC_IPOIB /* Infiniband IPoIB virtual NICs */
271//#define VNIC_XSIGO /* Infiniband Xsigo virtual NICs */
272
273/*****************************************************************************
274 *
275 * 802.1x EAP authentication methods
276 *
277 */
278
279#define EAP_METHOD_MD5 /* MD5-Challenge port authentication */
280//#define EAP_METHOD_MSCHAPV2 /* MS-CHAPv2 port authentication */
281
282/*****************************************************************************
283 *
284 * 802.11 cryptosystems and handshaking protocols
285 *
286 */
287
288#define CRYPTO_80211_WEP /* WEP encryption (deprecated and insecure!) */
289#define CRYPTO_80211_WPA /* WPA Personal, with passphrase */
290#define CRYPTO_80211_WPA2 /* Add support for stronger WPA cryptography */
291
292/*****************************************************************************
293 *
294 * Very obscure configuration options
295 *
296 * You probably don't need to touch these.
297 *
298 */
299
300//#define NULL_TRAP /* Attempt to catch NULL function calls */
301//#define GDBSERIAL /* Remote GDB debugging over serial */
302//#define GDBUDP /* Remote GDB debugging over UDP */
303//#define EFI_DOWNGRADE_UX /* Downgrade UEFI user experience */
304#define TIVOLI_VMM_WORKAROUND /* Work around the Tivoli VMM's garbling of SSE
305 * registers when iPXE traps to it due to
306 * privileged instructions */
307//#define ERRMSG_80211 /* All 802.11 error descriptions (~3.3kb) */
308
309#include <config/named.h>
310#include NAMED_CONFIG(general.h)
311#include <config/local/general.h>
312#include LOCAL_NAMED_CONFIG(general.h)
313
314#endif /* CONFIG_GENERAL_H */
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:896
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Definition compiler.h:926
Named configurations.