diff options
Diffstat (limited to 'gpxe/src/config')
-rw-r--r-- | gpxe/src/config/config.c | 262 | ||||
-rw-r--r-- | gpxe/src/config/config_net80211.c | 50 | ||||
-rw-r--r-- | gpxe/src/config/config_romprefix.c | 24 | ||||
-rw-r--r-- | gpxe/src/config/console.h | 2 | ||||
-rw-r--r-- | gpxe/src/config/defaults.h | 2 | ||||
-rw-r--r-- | gpxe/src/config/defaults/pcbios.h | 6 | ||||
-rw-r--r-- | gpxe/src/config/general.h | 31 | ||||
-rw-r--r-- | gpxe/src/config/ioapi.h | 2 | ||||
-rw-r--r-- | gpxe/src/config/nap.h | 2 | ||||
-rw-r--r-- | gpxe/src/config/serial.h | 9 | ||||
-rw-r--r-- | gpxe/src/config/timer.h | 2 | ||||
-rw-r--r-- | gpxe/src/config/umalloc.h | 2 |
12 files changed, 390 insertions, 4 deletions
diff --git a/gpxe/src/config/config.c b/gpxe/src/config/config.c new file mode 100644 index 00000000..a6e76220 --- /dev/null +++ b/gpxe/src/config/config.c @@ -0,0 +1,262 @@ +/* + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2, or (at + * your option) any later version. + */ + +FILE_LICENCE ( GPL2_OR_LATER ); + +#include <config/general.h> +#include <config/console.h> + +/** @file + * + * Configuration options + * + * This file contains macros that pull various objects into the link + * based on definitions in configuration header files. Ideally it + * should be the only place in gPXE where one might need to use #ifdef + * for compile-time options. + * + * In the fairly common case where an object should only be considered + * for inclusion if the subsystem it depends on is present, its + * configuration macros should be placed in a file named + * <tt>config_<i>subsystem</i>.c</tt>, where @e subsystem is the + * object basename of the main source file for that subsystem. The + * build system will pull in that file if @c subsystem.c is included + * in the final gPXE executable built. + */ + +/* + * Build ID string calculations + * + */ +#undef XSTR +#undef STR +#define XSTR(s) STR(s) +#define STR(s) #s + +#ifdef BUILD_SERIAL +#include "config/.buildserial.h" +#define BUILD_SERIAL_STR " #" XSTR(BUILD_SERIAL_NUM) +#else +#define BUILD_SERIAL_STR "" +#endif + +#ifdef BUILD_ID +#define BUILD_ID_STR " " BUILD_ID +#else +#define BUILD_ID_STR "" +#endif + +#if defined(BUILD_ID) || defined(BUILD_SERIAL) +#define BUILD_STRING " [build" BUILD_ID_STR BUILD_SERIAL_STR "]" +#else +#define BUILD_STRING "" +#endif + +/* + * Drag in all requested console types + * + */ + +#ifdef CONSOLE_PCBIOS +REQUIRE_OBJECT ( bios_console ); +#endif +#ifdef CONSOLE_SERIAL +REQUIRE_OBJECT ( serial_console ); +#endif +#ifdef CONSOLE_DIRECT_VGA +REQUIRE_OBJECT ( video_subr ); +#endif +#ifdef CONSOLE_BTEXT +REQUIRE_OBJECT ( btext ); +#endif +#ifdef CONSOLE_PC_KBD +REQUIRE_OBJECT ( pc_kbd ); +#endif +#ifdef CONSOLE_SYSLOG +REQUIRE_OBJECT ( syslog ); +#endif +#ifdef CONSOLE_EFI +REQUIRE_OBJECT ( efi_console ); +#endif + +/* + * Drag in all requested network protocols + * + */ +#ifdef NET_PROTO_IPV4 +REQUIRE_OBJECT ( ipv4 ); +#endif + +/* + * Drag in all requested PXE support + * + */ +#ifdef PXE_MENU +REQUIRE_OBJECT ( pxemenu ); +#endif +#ifdef PXE_STACK +REQUIRE_OBJECT ( pxe_call ); +#endif + +/* + * Drag in all requested download protocols + * + */ +#ifdef DOWNLOAD_PROTO_TFTP +REQUIRE_OBJECT ( tftp ); +#endif +#ifdef DOWNLOAD_PROTO_HTTP +REQUIRE_OBJECT ( http ); +#endif +#ifdef DOWNLOAD_PROTO_HTTPS +REQUIRE_OBJECT ( https ); +#endif +#ifdef DOWNLOAD_PROTO_FTP +REQUIRE_OBJECT ( ftp ); +#endif +#ifdef DOWNLOAD_PROTO_TFTM +REQUIRE_OBJECT ( tftm ); +#endif +#ifdef DOWNLOAD_PROTO_SLAM +REQUIRE_OBJECT ( slam ); +#endif + +/* + * Drag in all requested SAN boot protocols + * + */ +#ifdef SANBOOT_PROTO_ISCSI +REQUIRE_OBJECT ( iscsiboot ); +#endif +#ifdef SANBOOT_PROTO_AOE +REQUIRE_OBJECT ( aoeboot ); +#endif +#ifdef SANBOOT_PROTO_IB_SRP +REQUIRE_OBJECT ( ib_srpboot ); +#endif + +/* + * Drag in all requested resolvers + * + */ +#ifdef DNS_RESOLVER +REQUIRE_OBJECT ( dns ); +#endif + +/* + * Drag in all requested image formats + * + */ +#ifdef IMAGE_NBI +REQUIRE_OBJECT ( nbi ); +#endif +#ifdef IMAGE_ELF +REQUIRE_OBJECT ( elfboot ); +#endif +#ifdef IMAGE_FREEBSD +REQUIRE_OBJECT ( freebsd ); +#endif +#ifdef IMAGE_MULTIBOOT +REQUIRE_OBJECT ( multiboot ); +#endif +#ifdef IMAGE_AOUT +REQUIRE_OBJECT ( aout ); +#endif +#ifdef IMAGE_WINCE +REQUIRE_OBJECT ( wince ); +#endif +#ifdef IMAGE_PXE +REQUIRE_OBJECT ( pxe_image ); +#endif +#ifdef IMAGE_SCRIPT +REQUIRE_OBJECT ( script ); +#endif +#ifdef IMAGE_BZIMAGE +REQUIRE_OBJECT ( bzimage ); +#endif +#ifdef IMAGE_ELTORITO +REQUIRE_OBJECT ( eltorito ); +#endif +#ifdef IMAGE_COMBOOT +REQUIRE_OBJECT ( comboot ); +REQUIRE_OBJECT ( com32 ); +REQUIRE_OBJECT ( comboot_call ); +REQUIRE_OBJECT ( com32_call ); +REQUIRE_OBJECT ( com32_wrapper ); +REQUIRE_OBJECT ( comboot_resolv ); +#endif +#ifdef IMAGE_EFI +REQUIRE_OBJECT ( efi_image ); +#endif + +/* + * Drag in all requested commands + * + */ +#ifdef AUTOBOOT_CMD +REQUIRE_OBJECT ( autoboot_cmd ); +#endif +#ifdef NVO_CMD +REQUIRE_OBJECT ( nvo_cmd ); +#endif +#ifdef CONFIG_CMD +REQUIRE_OBJECT ( config_cmd ); +#endif +#ifdef IFMGMT_CMD +REQUIRE_OBJECT ( ifmgmt_cmd ); +#endif +/* IWMGMT_CMD is brought in by net80211.c if requested */ +#ifdef ROUTE_CMD +REQUIRE_OBJECT ( route_cmd ); +#endif +#ifdef IMAGE_CMD +REQUIRE_OBJECT ( image_cmd ); +#endif +#ifdef DHCP_CMD +REQUIRE_OBJECT ( dhcp_cmd ); +#endif +#ifdef SANBOOT_CMD +REQUIRE_OBJECT ( sanboot_cmd ); +#endif +#ifdef LOGIN_CMD +REQUIRE_OBJECT ( login_cmd ); +#endif +#ifdef TIME_CMD +REQUIRE_OBJECT ( time_cmd ); +#endif +#ifdef DIGEST_CMD +REQUIRE_OBJECT ( digest_cmd ); +#endif +#ifdef PXE_CMD +REQUIRE_OBJECT ( pxe_cmd ); +#endif + +/* + * Drag in miscellaneous objects + * + */ +#ifdef NULL_TRAP +REQUIRE_OBJECT ( nulltrap ); +#endif +#ifdef GDBSERIAL +REQUIRE_OBJECT ( gdbidt ); +REQUIRE_OBJECT ( gdbserial ); +REQUIRE_OBJECT ( gdbstub_cmd ); +#endif +#ifdef GDBUDP +REQUIRE_OBJECT ( gdbidt ); +REQUIRE_OBJECT ( gdbudp ); +REQUIRE_OBJECT ( gdbstub_cmd ); +#endif + +/* + * Drag in objects that are always required, but not dragged in via + * symbol dependencies. + * + */ +REQUIRE_OBJECT ( device ); +REQUIRE_OBJECT ( embedded ); diff --git a/gpxe/src/config/config_net80211.c b/gpxe/src/config/config_net80211.c new file mode 100644 index 00000000..b33c363b --- /dev/null +++ b/gpxe/src/config/config_net80211.c @@ -0,0 +1,50 @@ +/* + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2, or (at + * your option) any later version. + */ + +FILE_LICENCE ( GPL2_OR_LATER ); + +#include <config/general.h> + +/** @file + * + * 802.11 configuration options + * + */ + +/* + * Drag in 802.11-specific commands + * + */ +#ifdef IWMGMT_CMD +REQUIRE_OBJECT ( iwmgmt_cmd ); +#endif + +/* + * Drag in 802.11 error message tables + * + */ +#ifdef ERRMSG_80211 +REQUIRE_OBJECT ( wireless_errors ); +#endif + +/* + * Drag in 802.11 cryptosystems and handshaking protocols + * + */ +#ifdef CRYPTO_80211_WEP +REQUIRE_OBJECT ( wep ); +#endif + +#ifdef CRYPTO_80211_WPA2 +#define CRYPTO_80211_WPA +REQUIRE_OBJECT ( wpa_ccmp ); +#endif + +#ifdef CRYPTO_80211_WPA +REQUIRE_OBJECT ( wpa_psk ); +REQUIRE_OBJECT ( wpa_tkip ); +#endif diff --git a/gpxe/src/config/config_romprefix.c b/gpxe/src/config/config_romprefix.c new file mode 100644 index 00000000..85f1e78a --- /dev/null +++ b/gpxe/src/config/config_romprefix.c @@ -0,0 +1,24 @@ +/* + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2, or (at + * your option) any later version. + */ + +FILE_LICENCE ( GPL2_OR_LATER ); + +#include <config/general.h> + +/** @file + * + * ROM prefix configuration options + * + */ + +/* + * Provide UNDI loader if PXE stack is requested + * + */ +#ifdef PXE_STACK +REQUIRE_OBJECT ( undiloader ); +#endif diff --git a/gpxe/src/config/console.h b/gpxe/src/config/console.h index b4ea1dda..be3242dd 100644 --- a/gpxe/src/config/console.h +++ b/gpxe/src/config/console.h @@ -10,6 +10,8 @@ * */ +FILE_LICENCE ( GPL2_OR_LATER ); + #include <config/defaults.h> //#define CONSOLE_PCBIOS /* Default BIOS console */ diff --git a/gpxe/src/config/defaults.h b/gpxe/src/config/defaults.h index 1f55ef3c..389c0b07 100644 --- a/gpxe/src/config/defaults.h +++ b/gpxe/src/config/defaults.h @@ -1,6 +1,8 @@ #ifndef CONFIG_DEFAULTS_H #define CONFIG_DEFAULTS_H +FILE_LICENCE ( GPL2_OR_LATER ); + #define CONFIG_DEFAULTS(_platform) <config/defaults/_platform.h> #include CONFIG_DEFAULTS(PLATFORM) diff --git a/gpxe/src/config/defaults/pcbios.h b/gpxe/src/config/defaults/pcbios.h index 4359e1a4..c09105cc 100644 --- a/gpxe/src/config/defaults/pcbios.h +++ b/gpxe/src/config/defaults/pcbios.h @@ -7,6 +7,8 @@ * */ +FILE_LICENCE ( GPL2_OR_LATER ); + #define UACCESS_LIBRM #define IOAPI_X86 #define PCIAPI_PCBIOS @@ -23,6 +25,10 @@ #define IMAGE_BZIMAGE /* Linux bzImage image support */ #define IMAGE_COMBOOT /* SYSLINUX COMBOOT image support */ +#define PXE_STACK /* PXE stack in gPXE - required for PXELINUX */ +#define PXE_MENU /* PXE menu booting */ +#define PXE_CMD /* PXE commands */ + #define SANBOOT_PROTO_ISCSI /* iSCSI protocol */ #define SANBOOT_PROTO_AOE /* AoE protocol */ diff --git a/gpxe/src/config/general.h b/gpxe/src/config/general.h index a3d563c2..de51f9f8 100644 --- a/gpxe/src/config/general.h +++ b/gpxe/src/config/general.h @@ -7,6 +7,8 @@ * */ +FILE_LICENCE ( GPL2_OR_LATER ); + #include <config/defaults.h> /* @@ -40,18 +42,23 @@ #define NET_PROTO_IPV4 /* IPv4 protocol */ /* + * PXE support + * + */ +//#undef PXE_STACK /* PXE stack in gPXE - you want this! */ +//#undef PXE_MENU /* PXE menu booting */ + +/* * Download protocols * */ #define DOWNLOAD_PROTO_TFTP /* Trivial File Transfer Protocol */ -#define DOWNLOAD_PROTO_NFS /* Network File System */ #define DOWNLOAD_PROTO_HTTP /* Hypertext Transfer Protocol */ #define DOWNLOAD_PROTO_HTTPS /* Secure Hypertext Transfer Protocol */ #define DOWNLOAD_PROTO_FTP /* File Transfer Protocol */ #undef DOWNLOAD_PROTO_TFTM /* Multicast Trivial File Transfer Protocol */ #undef DOWNLOAD_PROTO_SLAM /* Scalable Local Area Multicast */ -#undef DOWNLOAD_PROTO_FSP /* FSP? */ /* * SAN boot protocols @@ -60,6 +67,15 @@ //#undef SANBOOT_PROTO_ISCSI /* iSCSI protocol */ //#undef SANBOOT_PROTO_AOE /* AoE protocol */ +//#undef SANBOOT_PROTO_IB_SRP /* Infiniband SCSI RDMA protocol */ + +/* + * 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 */ /* * Name resolution modules @@ -67,7 +83,6 @@ */ #define DNS_RESOLVER /* DNS resolver */ -#undef NMB_RESOLVER /* NMB resolver */ /* * Image types @@ -96,11 +111,21 @@ #define NVO_CMD /* Non-volatile option storage commands */ #define CONFIG_CMD /* Option configuration console */ #define IFMGMT_CMD /* Interface management commands */ +#define IWMGMT_CMD /* Wireless interface management commands */ #define ROUTE_CMD /* Routing table management commands */ #define IMAGE_CMD /* Image management commands */ #define DHCP_CMD /* DHCP management commands */ #define SANBOOT_CMD /* SAN boot commands */ #define LOGIN_CMD /* Login command */ +#undef TIME_CMD /* Time commands */ +#undef DIGEST_CMD /* Image crypto digest commands */ +//#undef PXE_CMD /* PXE commands */ + +/* + * Error message tables to include + * + */ +#undef ERRMSG_80211 /* All 802.11 error descriptions (~3.3kb) */ /* * Obscure configuration options diff --git a/gpxe/src/config/ioapi.h b/gpxe/src/config/ioapi.h index 7726a0f0..8ddd557b 100644 --- a/gpxe/src/config/ioapi.h +++ b/gpxe/src/config/ioapi.h @@ -7,6 +7,8 @@ * */ +FILE_LICENCE ( GPL2_OR_LATER ); + #include <config/defaults.h> //#undef PCIAPI_PCBIOS /* Access via PCI BIOS */ diff --git a/gpxe/src/config/nap.h b/gpxe/src/config/nap.h index 8648d925..1b981355 100644 --- a/gpxe/src/config/nap.h +++ b/gpxe/src/config/nap.h @@ -7,6 +7,8 @@ * */ +FILE_LICENCE ( GPL2_OR_LATER ); + #include <config/defaults.h> //#undef NAP_PCBIOS diff --git a/gpxe/src/config/serial.h b/gpxe/src/config/serial.h index 984a7a9c..44272d1f 100644 --- a/gpxe/src/config/serial.h +++ b/gpxe/src/config/serial.h @@ -11,7 +11,14 @@ * */ -#define COMCONSOLE 0x3f8 /* I/O port address */ +FILE_LICENCE ( GPL2_OR_LATER ); + +#define COM1 0x3f8 +#define COM2 0x2f8 +#define COM3 0x3e8 +#define COM4 0x2e8 + +#define COMCONSOLE COM1 /* I/O port address */ /* Keep settings from a previous user of the serial port (e.g. lilo or * LinuxBIOS), ignoring COMSPEED, COMDATA, COMPARITY and COMSTOP. diff --git a/gpxe/src/config/timer.h b/gpxe/src/config/timer.h index 7c3f3521..cc6a93d1 100644 --- a/gpxe/src/config/timer.h +++ b/gpxe/src/config/timer.h @@ -7,6 +7,8 @@ * */ +FILE_LICENCE ( GPL2_OR_LATER ); + #include <config/defaults.h> //#undef TIMER_PCBIOS diff --git a/gpxe/src/config/umalloc.h b/gpxe/src/config/umalloc.h index de4019e5..65febf1f 100644 --- a/gpxe/src/config/umalloc.h +++ b/gpxe/src/config/umalloc.h @@ -7,6 +7,8 @@ * */ +FILE_LICENCE ( GPL2_OR_LATER ); + #include <config/defaults.h> #endif /* CONFIG_UMALLOC_H */ |