464916f99d
Move all download protocol selection from config/defaults/<platform>.h to the top-level config/general.h, using indented conditional blocks to clarify which protocols are supported and enabled on each platform. Signed-off-by: Michael Brown <mcb30@ipxe.org>
291 lines
9.2 KiB
C
291 lines
9.2 KiB
C
#ifndef CONFIG_GENERAL_H
|
|
#define CONFIG_GENERAL_H
|
|
|
|
/** @file
|
|
*
|
|
* General configuration
|
|
*
|
|
*/
|
|
|
|
FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
|
FILE_SECBOOT ( PERMITTED );
|
|
|
|
#include <config/defaults.h>
|
|
|
|
/*
|
|
* Banner timeout configuration
|
|
*
|
|
* This controls the timeout for the "Press Ctrl-B for the iPXE
|
|
* command line" banner displayed when iPXE starts up. The value is
|
|
* specified in tenths of a second for which the banner should appear.
|
|
* A value of 0 disables the banner.
|
|
*
|
|
* ROM_BANNER_TIMEOUT controls the "Press Ctrl-B to configure iPXE"
|
|
* banner displayed only by ROM builds of iPXE during POST. This
|
|
* defaults to being twice the length of BANNER_TIMEOUT, to allow for
|
|
* BIOSes that switch video modes immediately before calling the
|
|
* initialisation vector, thus rendering the banner almost invisible
|
|
* to the user.
|
|
*/
|
|
#define BANNER_TIMEOUT 20
|
|
#define ROM_BANNER_TIMEOUT ( 2 * BANNER_TIMEOUT )
|
|
|
|
/*****************************************************************************
|
|
*
|
|
* Network protocols
|
|
*
|
|
*/
|
|
|
|
/* Protocols supported on all platforms */
|
|
#define NET_PROTO_EAPOL /* EAP over LAN protocol */
|
|
//#define NET_PROTO_FCOE /* Fibre Channel over Ethernet protocol */
|
|
#define NET_PROTO_IPV4 /* IPv4 protocol */
|
|
#define NET_PROTO_IPV6 /* IPv6 protocol */
|
|
#define NET_PROTO_LACP /* Link Aggregation control protocol */
|
|
#define NET_PROTO_LLDP /* Link Layer Discovery protocol */
|
|
#define NET_PROTO_STP /* Spanning Tree protocol */
|
|
|
|
/* Disable protocols not historically included in 32-bit BIOS builds */
|
|
#if defined ( PLATFORM_pcbios ) && ! defined ( __x86_64__ )
|
|
#undef NET_PROTO_IPV6
|
|
#undef NET_PROTO_LLDP
|
|
#endif
|
|
|
|
/*
|
|
* PXE support
|
|
*
|
|
*/
|
|
//#undef PXE_STACK /* PXE stack in iPXE - you want this! */
|
|
//#undef PXE_MENU /* PXE menu booting */
|
|
|
|
/*****************************************************************************
|
|
*
|
|
* Download protocols
|
|
*
|
|
*/
|
|
|
|
/* Protocols supported on all platforms */
|
|
#define DOWNLOAD_PROTO_TFTP /* Trivial File Transfer Protocol */
|
|
#define DOWNLOAD_PROTO_HTTP /* Hypertext Transfer Protocol */
|
|
//#define DOWNLOAD_PROTO_HTTPS /* Secure Hypertext Transfer Protocol */
|
|
//#define DOWNLOAD_PROTO_FTP /* File Transfer Protocol */
|
|
//#define DOWNLOAD_PROTO_SLAM /* Scalable Local Area Multicast */
|
|
//#define DOWNLOAD_PROTO_NFS /* Network File System Protocol */
|
|
|
|
/* Protocols supported only on platforms with filesystem abstractions */
|
|
#if defined ( PLATFORM_efi )
|
|
#define DOWNLOAD_PROTO_FILE /* Local filesystem access */
|
|
#endif
|
|
|
|
/*
|
|
* SAN boot protocols
|
|
*
|
|
*/
|
|
|
|
//#undef SANBOOT_PROTO_ISCSI /* iSCSI protocol */
|
|
//#undef SANBOOT_PROTO_AOE /* AoE protocol */
|
|
//#undef SANBOOT_PROTO_IB_SRP /* Infiniband SCSI RDMA protocol */
|
|
//#undef SANBOOT_PROTO_FCP /* Fibre Channel protocol */
|
|
//#undef SANBOOT_PROTO_HTTP /* HTTP SAN protocol */
|
|
|
|
/*
|
|
* HTTP extensions
|
|
*
|
|
*/
|
|
#define HTTP_AUTH_BASIC /* Basic authentication */
|
|
#define HTTP_AUTH_DIGEST /* Digest authentication */
|
|
//#define HTTP_AUTH_NTLM /* NTLM authentication */
|
|
//#define HTTP_ENC_PEERDIST /* PeerDist content encoding */
|
|
//#define HTTP_HACK_GCE /* Google Compute Engine hacks */
|
|
|
|
/*
|
|
* 802.11 cryptosystems and handshaking protocols
|
|
*
|
|
*/
|
|
#define CRYPTO_80211_WEP /* WEP encryption (deprecated and insecure!) */
|
|
#define CRYPTO_80211_WPA /* WPA Personal, authenticating with passphrase */
|
|
#define CRYPTO_80211_WPA2 /* Add support for stronger WPA cryptography */
|
|
|
|
/*
|
|
* 802.1x EAP authentication methods
|
|
*
|
|
*/
|
|
#define EAP_METHOD_MD5 /* MD5-Challenge port authentication */
|
|
//#define EAP_METHOD_MSCHAPV2 /* MS-CHAPv2 port authentication */
|
|
|
|
/*
|
|
* Name resolution modules
|
|
*
|
|
*/
|
|
|
|
#define DNS_RESOLVER /* DNS resolver */
|
|
|
|
/*****************************************************************************
|
|
*
|
|
* Image types
|
|
*
|
|
* iPXE supports various image formats. Select whichever ones you
|
|
* want to use.
|
|
*
|
|
*/
|
|
|
|
/* Image types supported on all platforms */
|
|
#define IMAGE_DER /* ASN.1 DER-encoded image support */
|
|
//#define IMAGE_GZIP /* GZIP compressed image support */
|
|
#define IMAGE_PEM /* ASN.1 PEM-encoded image support */
|
|
//#define IMAGE_PNM /* PNM graphical image support */
|
|
#define IMAGE_PNG /* PNG graphical image support */
|
|
#define IMAGE_SCRIPT /* iPXE script image support */
|
|
//#define IMAGE_ZLIB /* ZLIB compressed image support */
|
|
|
|
/* Image types supported only on BIOS platforms */
|
|
#if defined ( PLATFORM_pcbios )
|
|
#define IMAGE_BZIMAGE /* Linux bzImage image support */
|
|
//#define IMAGE_COMBOOT /* SYSLINUX COMBOOT image support */
|
|
#define IMAGE_ELF /* ELF image support */
|
|
#define IMAGE_MULTIBOOT /* MultiBoot image support */
|
|
//#define IMAGE_NBI /* NBI image support */
|
|
#define IMAGE_PXE /* PXE image support */
|
|
//#define IMAGE_SDI /* SDI image support */
|
|
#endif
|
|
|
|
/* Image types supported only on EFI platforms */
|
|
#if defined ( PLATFORM_efi )
|
|
#define IMAGE_EFI /* EFI image support */
|
|
#define IMAGE_EFISIG /* EFI signature list image support */
|
|
#endif
|
|
|
|
/* Image types supported only on RISC-V SBI platforms */
|
|
#if defined ( PLATFORM_sbi )
|
|
#define IMAGE_LKRN /* Linux kernel image support */
|
|
#endif
|
|
|
|
/* Image types supported only on x86 CPUs */
|
|
#if defined ( __i386__ ) || defined ( __x86_64__ )
|
|
//#define IMAGE_UCODE /* Microcode update image support */
|
|
#endif
|
|
|
|
/* Enable commonly encountered compressed versions of some image types */
|
|
#if defined ( IMAGE_EFI ) && defined ( __aarch64__ )
|
|
#define IMAGE_GZIP
|
|
#endif
|
|
#if defined ( IMAGE_LKRN ) && defined ( __riscv )
|
|
#define IMAGE_GZIP
|
|
#endif
|
|
|
|
/*****************************************************************************
|
|
*
|
|
* Command-line and script commands to include
|
|
*
|
|
*/
|
|
|
|
/* Commands supported on all platforms */
|
|
#define AUTOBOOT_CMD /* Automatic booting */
|
|
//#define CERT_CMD /* Certificate management commands */
|
|
#define CONFIG_CMD /* Option configuration console */
|
|
//#define CONSOLE_CMD /* Console command */
|
|
//#define DIGEST_CMD /* Image crypto digest commands */
|
|
#define DHCP_CMD /* DHCP management commands */
|
|
#define FCMGMT_CMD /* Fibre Channel management commands */
|
|
#define FORM_CMD /* Form commands */
|
|
#define IBMGMT_CMD /* Infiniband management commands */
|
|
#define IFMGMT_CMD /* Interface management commands */
|
|
#define IMAGE_CMD /* Image management commands */
|
|
#define IMAGE_ARCHIVE_CMD /* Archive image management commands */
|
|
//#define IMAGE_CRYPT_CMD /* Image encryption management commands */
|
|
//#define IMAGE_MEM_CMD /* Read memory command */
|
|
//#define IMAGE_TRUST_CMD /* Image trust management commands */
|
|
//#define IPSTAT_CMD /* IP statistics commands */
|
|
#define IWMGMT_CMD /* Wireless interface management commands */
|
|
#define LOGIN_CMD /* Login command */
|
|
//#define LOTEST_CMD /* Loopback testing commands */
|
|
#define MENU_CMD /* Menu commands */
|
|
//#define NEIGHBOUR_CMD /* Neighbour management commands */
|
|
//#define NSLOOKUP_CMD /* DNS resolving command */
|
|
//#define NTP_CMD /* NTP commands */
|
|
#define NVO_CMD /* Non-volatile option storage commands */
|
|
//#define PARAM_CMD /* Request parameter commands */
|
|
//#define PCI_CMD /* PCI commands */
|
|
//#define PING_CMD /* Ping command */
|
|
//#define PROFSTAT_CMD /* Profiling commands */
|
|
//#define PXE_CMD /* PXE commands */
|
|
#define ROUTE_CMD /* Routing table management commands */
|
|
#define SANBOOT_CMD /* SAN boot commands */
|
|
#define SHELL_CMD /* Shell command */
|
|
#define SHIM_CMD /* EFI shim command (or dummy command) */
|
|
#define SYNC_CMD /* Sync command */
|
|
//#define TIME_CMD /* Time commands */
|
|
//#define USB_CMD /* USB commands */
|
|
//#define VLAN_CMD /* VLAN commands */
|
|
|
|
/* Commands supported only on systems capable of rebooting */
|
|
#if ! defined ( REBOOT_NULL )
|
|
#define POWEROFF_CMD /* Power off command */
|
|
#define REBOOT_CMD /* Reboot command */
|
|
#endif
|
|
|
|
/* Commands supported only on systems that may use FDTs */
|
|
#if ! defined ( FDT_NULL )
|
|
#define FDT_CMD /* Flattened Device Tree commands */
|
|
#endif
|
|
|
|
/* Commands supported only on x86 CPUs */
|
|
#if defined ( __i386__ ) || defined ( __x86_64__ )
|
|
#define CPUID_CMD /* x86 CPU feature detection command */
|
|
#endif
|
|
|
|
/*
|
|
* Certificate sources
|
|
*
|
|
*/
|
|
//#undef CERTS_EFI /* EFI certificate sources */
|
|
|
|
/*
|
|
* ROM-specific options
|
|
*
|
|
*/
|
|
#undef NONPNP_HOOK_INT19 /* Hook INT19 on non-PnP BIOSes */
|
|
#define AUTOBOOT_ROM_FILTER /* Autoboot only devices matching our ROM */
|
|
|
|
/*
|
|
* Virtual network devices
|
|
*
|
|
*/
|
|
#define VNIC_IPOIB /* Infiniband IPoIB virtual NICs */
|
|
//#define VNIC_XSIGO /* Infiniband Xsigo virtual NICs */
|
|
|
|
/*
|
|
* Error message tables to include
|
|
*
|
|
*/
|
|
#undef ERRMSG_80211 /* All 802.11 error descriptions (~3.3kb) */
|
|
|
|
/*
|
|
* Obscure configuration options
|
|
*
|
|
* You probably don't need to touch these.
|
|
*
|
|
*/
|
|
|
|
#undef BUILD_SERIAL /* Include an automatic build serial
|
|
* number. Add "bs" to the list of
|
|
* make targets. For example:
|
|
* "make bin/rtl8139.dsk bs" */
|
|
#undef BUILD_ID /* Include a custom build ID string,
|
|
* e.g "test-foo" */
|
|
#undef NULL_TRAP /* Attempt to catch NULL function calls */
|
|
#undef GDBSERIAL /* Remote GDB debugging over serial */
|
|
#undef GDBUDP /* Remote GDB debugging over UDP
|
|
* (both may be set) */
|
|
//#define EFI_DOWNGRADE_UX /* Downgrade UEFI user experience */
|
|
#define TIVOLI_VMM_WORKAROUND /* Work around the Tivoli VMM's garbling of SSE
|
|
* registers when iPXE traps to it due to
|
|
* privileged instructions */
|
|
|
|
#include <config/named.h>
|
|
#include NAMED_CONFIG(general.h)
|
|
#include <config/local/general.h>
|
|
#include LOCAL_NAMED_CONFIG(general.h)
|
|
|
|
#endif /* CONFIG_GENERAL_H */
|