iPXE - Open Source Boot Firmware

[shell] Enable "shell" command even when BANNER_TIMEOUT is zero
[ipxe.git] / src / config / general.h
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
12 #include <config/defaults.h>
13
14 /*
15  * Banner timeout configuration
16  *
17  * This controls the timeout for the "Press Ctrl-B for the iPXE
18  * command line" banner displayed when iPXE starts up.  The value is
19  * specified in tenths of a second for which the banner should appear.
20  * A value of 0 disables the banner.
21  *
22  * ROM_BANNER_TIMEOUT controls the "Press Ctrl-B to configure iPXE"
23  * banner displayed only by ROM builds of iPXE during POST.  This
24  * defaults to being twice the length of BANNER_TIMEOUT, to allow for
25  * BIOSes that switch video modes immediately before calling the
26  * initialisation vector, thus rendering the banner almost invisible
27  * to the user.
28  */
29 #define BANNER_TIMEOUT          20
30 #define ROM_BANNER_TIMEOUT      ( 2 * BANNER_TIMEOUT )
31
32 /*
33  * Network protocols
34  *
35  */
36
37 #define NET_PROTO_IPV4          /* IPv4 protocol */
38 #undef  NET_PROTO_IPV6          /* IPv6 protocol */
39 #undef  NET_PROTO_FCOE          /* Fibre Channel over Ethernet protocol */
40 #define NET_PROTO_STP           /* Spanning Tree protocol */
41 #define NET_PROTO_LACP          /* Link Aggregation control protocol */
42
43 /*
44  * PXE support
45  *
46  */
47 //#undef        PXE_STACK               /* PXE stack in iPXE - you want this! */
48 //#undef        PXE_MENU                /* PXE menu booting */
49
50 /*
51  * Download protocols
52  *
53  */
54
55 #define DOWNLOAD_PROTO_TFTP     /* Trivial File Transfer Protocol */
56 #define DOWNLOAD_PROTO_HTTP     /* Hypertext Transfer Protocol */
57 #undef  DOWNLOAD_PROTO_HTTPS    /* Secure Hypertext Transfer Protocol */
58 #undef  DOWNLOAD_PROTO_FTP      /* File Transfer Protocol */
59 #undef  DOWNLOAD_PROTO_SLAM     /* Scalable Local Area Multicast */
60 #undef  DOWNLOAD_PROTO_NFS      /* Network File System Protocol */
61 //#undef DOWNLOAD_PROTO_FILE    /* Local filesystem access */
62
63 /*
64  * SAN boot protocols
65  *
66  */
67
68 //#undef        SANBOOT_PROTO_ISCSI     /* iSCSI protocol */
69 //#undef        SANBOOT_PROTO_AOE       /* AoE protocol */
70 //#undef        SANBOOT_PROTO_IB_SRP    /* Infiniband SCSI RDMA protocol */
71 //#undef        SANBOOT_PROTO_FCP       /* Fibre Channel protocol */
72 //#undef        SANBOOT_PROTO_HTTP      /* HTTP SAN protocol */
73
74 /*
75  * HTTP extensions
76  *
77  */
78 #define HTTP_AUTH_BASIC         /* Basic authentication */
79 #define HTTP_AUTH_DIGEST        /* Digest authentication */
80 //#define HTTP_ENC_PEERDIST     /* PeerDist content encoding */
81 //#define HTTP_HACK_GCE         /* Google Compute Engine hacks */
82
83 /*
84  * 802.11 cryptosystems and handshaking protocols
85  *
86  */
87 #define CRYPTO_80211_WEP        /* WEP encryption (deprecated and insecure!) */
88 #define CRYPTO_80211_WPA        /* WPA Personal, authenticating with passphrase */
89 #define CRYPTO_80211_WPA2       /* Add support for stronger WPA cryptography */
90
91 /*
92  * Name resolution modules
93  *
94  */
95
96 #define DNS_RESOLVER            /* DNS resolver */
97
98 /*
99  * Image types
100  *
101  * Etherboot supports various image formats.  Select whichever ones
102  * you want to use.
103  *
104  */
105 //#define       IMAGE_NBI               /* NBI image support */
106 //#define       IMAGE_ELF               /* ELF image support */
107 //#define       IMAGE_MULTIBOOT         /* MultiBoot image support */
108 //#define       IMAGE_PXE               /* PXE image support */
109 //#define       IMAGE_SCRIPT            /* iPXE script image support */
110 //#define       IMAGE_BZIMAGE           /* Linux bzImage image support */
111 //#define       IMAGE_COMBOOT           /* SYSLINUX COMBOOT image support */
112 //#define       IMAGE_EFI               /* EFI image support */
113 //#define       IMAGE_SDI               /* SDI image support */
114 //#define       IMAGE_PNM               /* PNM image support */
115 #define IMAGE_PNG               /* PNG image support */
116 #define IMAGE_DER               /* DER image support */
117 #define IMAGE_PEM               /* PEM image support */
118
119 /*
120  * Command-line commands to include
121  *
122  */
123 #define AUTOBOOT_CMD            /* Automatic booting */
124 #define NVO_CMD                 /* Non-volatile option storage commands */
125 #define CONFIG_CMD              /* Option configuration console */
126 #define IFMGMT_CMD              /* Interface management commands */
127 #define IWMGMT_CMD              /* Wireless interface management commands */
128 #define IBMGMT_CMD              /* Infiniband management commands */
129 #define FCMGMT_CMD              /* Fibre Channel management commands */
130 #define ROUTE_CMD               /* Routing table management commands */
131 #define IMAGE_CMD               /* Image management commands */
132 #define DHCP_CMD                /* DHCP management commands */
133 #define SANBOOT_CMD             /* SAN boot commands */
134 #define MENU_CMD                /* Menu commands */
135 #define LOGIN_CMD               /* Login command */
136 #define SYNC_CMD                /* Sync command */
137 #define SHELL_CMD               /* Shell command */
138 //#define NSLOOKUP_CMD          /* DNS resolving command */
139 //#define TIME_CMD              /* Time commands */
140 //#define DIGEST_CMD            /* Image crypto digest commands */
141 //#define LOTEST_CMD            /* Loopback testing commands */
142 //#define VLAN_CMD              /* VLAN commands */
143 //#define PXE_CMD               /* PXE commands */
144 //#define REBOOT_CMD            /* Reboot command */
145 //#define POWEROFF_CMD          /* Power off command */
146 //#define IMAGE_TRUST_CMD       /* Image trust management commands */
147 //#define PCI_CMD               /* PCI commands */
148 //#define PARAM_CMD             /* Form parameter commands */
149 //#define NEIGHBOUR_CMD         /* Neighbour management commands */
150 //#define PING_CMD              /* Ping command */
151 //#define CONSOLE_CMD           /* Console command */
152 //#define IPSTAT_CMD            /* IP statistics commands */
153 //#define PROFSTAT_CMD          /* Profiling commands */
154 //#define NTP_CMD               /* NTP commands */
155 //#define CERT_CMD              /* Certificate management commands */
156
157 /*
158  * ROM-specific options
159  *
160  */
161 #undef  NONPNP_HOOK_INT19       /* Hook INT19 on non-PnP BIOSes */
162 #define AUTOBOOT_ROM_FILTER     /* Autoboot only devices matching our ROM */
163
164 /*
165  * Virtual network devices
166  *
167  */
168 #define VNIC_IPOIB              /* Infiniband IPoIB virtual NICs */
169 //#define VNIC_XSIGO            /* Infiniband Xsigo virtual NICs */
170
171 /*
172  * Error message tables to include
173  *
174  */
175 #undef  ERRMSG_80211            /* All 802.11 error descriptions (~3.3kb) */
176
177 /*
178  * Obscure configuration options
179  *
180  * You probably don't need to touch these.
181  *
182  */
183
184 #undef  BUILD_SERIAL            /* Include an automatic build serial
185                                  * number.  Add "bs" to the list of
186                                  * make targets.  For example:
187                                  * "make bin/rtl8139.dsk bs" */
188 #undef  BUILD_ID                /* Include a custom build ID string,
189                                  * e.g "test-foo" */
190 #undef  NULL_TRAP               /* Attempt to catch NULL function calls */
191 #undef  GDBSERIAL               /* Remote GDB debugging over serial */
192 #undef  GDBUDP                  /* Remote GDB debugging over UDP
193                                  * (both may be set) */
194 //#define EFI_DOWNGRADE_UX      /* Downgrade UEFI user experience */
195 #define TIVOLI_VMM_WORKAROUND   /* Work around the Tivoli VMM's garbling of SSE
196                                  * registers when iPXE traps to it due to
197                                  * privileged instructions */
198
199 #include <config/named.h>
200 #include NAMED_CONFIG(general.h)
201 #include <config/local/general.h>
202 #include LOCAL_NAMED_CONFIG(general.h)
203
204 #endif /* CONFIG_GENERAL_H */