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 
10 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
11 FILE_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 */
FILE_SECBOOT(PERMITTED)
Named configurations.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)