diff options
Diffstat (limited to 'gpxe/src/Config')
-rw-r--r-- | gpxe/src/Config | 386 |
1 files changed, 386 insertions, 0 deletions
diff --git a/gpxe/src/Config b/gpxe/src/Config new file mode 100644 index 00000000..210718d4 --- /dev/null +++ b/gpxe/src/Config @@ -0,0 +1,386 @@ +############################################################################## +############################################################################## +# +# IMPORTANT! +# +# The use of this file to set options that affect only single object +# files is deprecated, because changing anything in this file results +# in a complete rebuild, which is slow. All options are gradually +# being migrated to config.h, which does not suffer from this problem. +# +# Only options that affect the entire build (e.g. overriding the $(CC) +# Makefile variable) should be placed in here. +# +############################################################################## +############################################################################## + + +# +# Config for Etherboot/32 +# +# +# Do not delete the tag OptionDescription and /OptionDescription +# It is used to automatically generate the documentation. +# +# @OptionDescription@ +# User interaction options: +# +# -DASK_BOOT=n +# Ask "Boot from (N)etwork ... or (Q)uit? " +# at startup, timeout after n seconds (0 = no timeout). +# If unset or negative, don't ask and boot immediately +# using the default. +# -DBOOT_FIRST +# -DBOOT_SECOND +# -DBOOT_THIRD +# On timeout or Return key from previous +# question, selects the order to try to boot from +# various devices. +# (alternatives: BOOT_NIC, BOOT_DISK, +# BOOT_FLOPPY, BOOT_NOTHING) +# See etherboot.h for prompt and answer strings. +# BOOT_DISK and BOOT_FLOPPY work only where a driver +# exists, e.g. in LinuxBIOS. +# They have no effect on PCBIOS. +# -DBOOT_INDEX The device to boot from 0 == any device. +# 1 == The first nic found. +# 2 == The second nic found +# ... +# BOOT_INDEX only applies to the BOOT_FIRST. BOOT_SECOND +# and BOOT_THIRD search through all of the boot devices. +# -DBAR_PROGRESS +# Use rotating bar instead of sequential dots +# to indicate an IP packet transmitted. +# +# Boot order options: +# +# -DBOOT_CLASS_FIRST +# -DBOOT_CLASS_SECOND +# -DBOOT_CLASS_THIRD +# Select the priority of the boot classes +# Valid values are: +# BOOT_NIC +# BOOT_DISK +# BOOT_FLOPPY +# BOOT_DISK and BOOT_FLOPPY work only where a driver exists, +# e.g. in LinuxBIOS. They have no effect on PCBIOS. +# +# Boot autoconfiguration protocol options: +# +# -DALTERNATE_DHCP_PORTS_1067_1068 +# Use ports 1067 and 1068 for DHCP instead of 67 and 68. +# As these ports are non-standard, you need to configure +# your DHCP server to use them. This option gets around +# existing DHCP servers which cannot be touched, for +# one reason or another, at the cost of non-standard +# boot images. +# -DNO_DHCP_SUPPORT +# Use BOOTP instead of DHCP. +# -DRARP_NOT_BOOTP +# Use RARP instead of BOOTP/DHCP. +# -DREQUIRE_VCI_ETHERBOOT +# Require an encapsulated Vendor Class Identifier +# of "Etherboot" in the DHCP reply +# Requires DHCP support. +# -DDHCP_CLIENT_ID=\"Identifier\" +# -DDHCP_CLIENT_ID_LEN=<Client ID length in octets> +# -DDHCP_CLIENT_ID_TYPE=<Client ID type> +# Specify a RFC2132 Client Identifier option, length and type. +# Requires DHCP support. +# -DDHCP_USER_CLASS=\"UserClass\" +# -DDHCP_USER_CLASS_LEN=<User Class length in octets> +# Specify a RFC3004 User Class option and length. Use this +# option to set a UC (or multiple UCs) rather than munge the +# client Vendor Class ID. +# Requires DHCP support. +# -DALLOW_ONLY_ENCAPSULATED +# Ignore Etherboot-specific options that are not within +# the Etherboot encapsulated options field. This option +# should be enabled unless you have a legacy DHCP server +# configuration from the bad old days before the use of +# encapsulated Etherboot options. +# -DDEFAULT_BOOTFILE=\"default_bootfile_name\" +# Define a default bootfile for the case where your DHCP +# server does not provide the information. Example: +# -DDEFAULT_BOOTFILE="tftp:///tftpboot/kernel" +# If you do not specify this option, then DHCP offers that +# do not specify bootfiles will be ignored. +# +# NIC tuning parameters: +# +# -DALLMULTI +# Turns on multicast reception in the NICs. +# +# Boot tuning parameters: +# +# -DCONGESTED +# Turns on packet retransmission. Use it on a +# congested network, where the normal operation +# can't boot the image. +# -DBACKOFF_LIMIT +# Sets the maximum RFC951 backoff exponent to n. +# Do not set this unreasonably low, because on networks +# with many machines they can saturate the link +# (the delay corresponding to the exponent is a random +# time in the range 0..3.5*2^n seconds). Use 5 for a +# VERY small network (max. 2 minutes delay), 7 for a +# medium sized network (max. 7.5 minutes delay) or 10 +# for a really huge network with many clients, frequent +# congestions (max. 1 hour delay). On average the +# delay time will be half the maximum value. If in +# doubt about the consequences, use a larger value. +# Also keep in mind that the number of retransmissions +# is not changed by this setting, so the default of 20 +# may no longer be appropriate. You might need to set +# MAX_ARP_RETRIES, MAX_BOOTP_RETRIES, MAX_TFTP_RETRIES +# and MAX_RPC_RETRIES to a larger value. +# -DTIMEOUT=n +# Use with care!! See above. +# Sets the base of RFC2131 sleep interval to n. +# This can be used with -DBACKOFF_LIMIT=0 to get a small +# and constant (predictable) retry interval for embedded +# devices. This is to achieve short boot delays if both +# the DHCP Server and the embedded device will be powered +# on the same time. Otherwise if the DHCP server is ready +# the client could sleep the next exponentially timeout, +# e.g. 70 seconds or more. This is not what you want. +# n should be a multiple of TICKS_PER_SEC (18). +# +# Boot device options: +# +# -DTRY_FLOPPY_FIRST +# If > 0, tries that many times to read the boot +# sector from a floppy drive before booting from +# ROM. If successful, does a local boot. +# It assumes the floppy is bootable. +# -DEXIT_IF_NO_OFFER +# If no IP offer is obtained, exit and +# let the BIOS continue. +# The accessibility of the TFTP server has no effect, +# so configure your DHCP/BOOTP server properly. +# You should probably reduce MAX_BOOTP_RETRIES +# to a small number like 3. +# +# Boot image options: +# +# -DFREEBSD_KERNEL_ENV +# Pass in FreeBSD kernel environment +# -DAOUT_LYNX_KDI +# Add Lynx a.out KDI support +# -DMULTICAST_LEVEL1 +# Support for sending multicast packets +# -DMULTICAST_LEVEL2 +# Support for receiving multicast packets +# +# Interface export options: +# +# -DPXE_EXPORT +# Export a PXE API interface. This is work in +# progress. Note that you won't be able to load +# PXE NBPs unless you also use -DPXE_IMAGE. +# -DPXE_STRICT +# Strict(er) compliance with the PXE +# specification as published by Intel. This may +# or may not be a good thing depending on your +# view of the spec... +# -DPXE_DHCP_STRICT +# Strict compliance of the DHCP request packets +# with the PXE specification as published by +# Intel. This may or may not be a good thing +# depending on your view of whether requesting +# vendor options which don't actually exist is +# pointless or not. You probably want this +# option if you intend to use Windows RIS or +# similar. +# +# Obscure options you probably don't need to touch: +# +# -DZPXE_SUFFIX_STRIP +# If the last 5 characters of the filename passed to Etherboot is +# ".zpxe" then strip it off. This is useful in cases where a DHCP server +# is not able to be configured to support conditionals. The way it works +# is that the DHCP server is configured with a filename like +# "foo.nbi.zpxe" so that when PXE asks for a filename it gets that, and +# loads Etherboot from that file. Etherboot then starts up and once +# again asks the DHCP server for a filename and once again gets +# foo.nbi.zpxe, but with this option turned on loads "foo.nbi" instead. +# This allows people to use Etherboot who might not otherwise be able to +# because their DHCP servers won't let them. +# +# -DPOWERSAVE +# Halt the processor when waiting for keyboard input +# which saves power while waiting for user interaction. +# Good for compute clusters and VMware emulation. +# But may not work for all CPUs. +# +# @/OptionDescription@ + +# These default settings compile Etherboot with a small number of options. +# You may wish to enable more of the features if the size of your ROM allows. + + +# For prompting and default on timeout +# CFLAGS+= -DASK_BOOT=3 -DBOOT_FIRST=BOOT_NIC +# If you would like to attempt to boot from other devices as well as the network. +# CFLAGS+= -DBOOT_SECOND=BOOT_FLOPPY +# CFLAGS+= -DBOOT_THIRD=BOOT_DISK +# CFLAGS+= -DBOOT_INDEX=0 + +# If you prefer the old style rotating bar progress display +# CFLAGS+= -DBAR_PROGRESS + +# Show size indicator +# CFLAGS+= -DSIZEINDICATOR + +# Enabling this creates non-standard images which use ports 1067 and 1068 +# for DHCP/BOOTP +# CFLAGS+= -DALTERNATE_DHCP_PORTS_1067_1068 + +# Enabling this makes the boot ROM require a Vendor Class Identifier +# of "Etherboot" in the Vendor Encapsulated Options +# This can be used to reject replies from servers other than the one +# we want to give out addresses to us, but it will prevent Etherboot +# from getting an IP lease until you have configured DHCPD correctly +# CFLAGS+= -DREQUIRE_VCI_ETHERBOOT + +# EXPERIMENTAL! Set DHCP_CLIENT_ID to create a Client Identifier (DHCP +# option 61, see RFC2132 section 9.14) when Etherboot sends the DHCP +# DISCOVER and REQUEST packets. This ID must UNIQUELY identify each +# client on your local network. Set DHCP_CLIENT_ID_TYPE to the +# appropriate hardware type as described in RFC2132 / RFC1700; this +# almost certainly means using '1' if the Client ID is an Ethernet MAC +# address and '0' otherwise. Set DHCP_CLIENT_ID_LEN to the length of +# the Client ID in octets (this is not a null terminated C string, do +# NOT add 1 for a terminator and do NOT add an extra 1 for the +# hardware type octet). Note that to identify your client using the +# normal default MAC address of your NIC, you do NOT need to set this +# option, as the MAC address is automatically used in the +# hwtype/chaddr field; note also that this field only sets the DHCP +# option: it does NOT change the MAC address used by the client. + +# CFLAGS+= -DDHCP_CLIENT_ID="'C','L','I','E','N','T','0','0','1'" \ +# -DDHCP_CLIENT_ID_LEN=9 -DDHCP_CLIENT_ID_TYPE=0 + +# CFLAGS+= -DDHCP_CLIENT_ID="0xDE,0xAD,0xBE,0xEF,0xDE,0xAD" \ +# -DDHCP_CLIENT_ID_LEN=6 -DDHCP_CLIENT_ID_TYPE=1 + +# EXPERIMENTAL! Set DHCP_USER_CLASS to create a User Class option (see +# RFC3004) when Etherboot sends the DHCP DISCOVER and REQUEST packets. +# This can be used for classification of clients, typically so that a +# DHCP server can send an appropriately tailored reply. Normally, a +# string identifies a class of to which this client instance belongs +# which is useful in your network, such as a department ('FINANCE' or +# 'MARKETING') or hardware type ('THINCLIENT' or 'KIOSK'). Set +# DHCP_USER_CLASS_LEN to the length of DHCP_USER_CLASS in octets. +# This is NOT a null terminated C string, do NOT add 1 for a +# terminator. RFC3004 advises how to lay out multiple User Class +# options by using an octet for the length of each string, as in this +# example. It is, of course, up to the server to parse this. + +# CFLAGS+= -DDHCP_USER_CLASS="'T','E','S','T','C','L','A','S','S'" \ +# -DDHCP_USER_CLASS_LEN=9 + +# CFLAGS+= -DDHCP_USER_CLASS="5,'A','L','P','H','A',4,'B','E','T','A'" \ +# -DDHCP_USER_CLASS_LEN=11 + +# Enabling this causes Etherboot to ignore Etherboot-specific options +# that are not within an Etherboot encapsulated options field. +# This option should be enabled unless you have a legacy DHCP server +# configuration from the bad old days before the use of +# encapsulated Etherboot options. +# CFLAGS+= -DALLOW_ONLY_ENCAPSULATED + +# Disable DHCP support +# CFLAGS+= -DNO_DHCP_SUPPORT + +# Specify a default bootfile to be used if the DHCP server does not +# provide the information. If you do not specify this option, then +# DHCP offers that do not contain bootfiles will be ignored. +# CFLAGS+= -DDEFAULT_BOOTFILE=\"tftp:///tftpboot/kernel\" + +# Limit the delay on packet loss/congestion to a more bearable value. See +# description above. If unset, do not limit the delay between resend. +# CFLAGS+= -DBACKOFF_LIMIT=5 -DCONGESTED + +# More optional features +# CFLAGS+= -DTRY_FLOPPY_FIRST=4 +# CFLAGS+= -DEXIT_IF_NO_OFFER + + +# Multicast Support +# CFLAGS+= -DALLMULTI -DMULTICAST_LEVEL1 -DMULTICAST_LEVEL2 + +# Etherboot as a PXE network protocol ROM +# CFLAGS+= -DPXE_IMAGE -DPXE_EXPORT +# Etherboot stricter as a PXE network protocol ROM +# CFLAGS+= -DPXE_DHCP_STRICT + +# Support for PXE emulation. Works only with FreeBSD to load the kernel +# via pxeboot, use only with DOWNLOAD_PROTO_NFS +# CFLAGS+= -DFREEBSD_PXEEMU + + + +# Garbage from Makefile.main temporarily placed here until a home can +# be found for it. + +# NS8390 options: +# -DINCLUDE_NE - Include NE1000/NE2000 support +# -DNE_SCAN=list - Probe for NE base address using list of +# comma separated hex addresses +# -DINCLUDE_3C503 - Include 3c503 support +# -DT503_SHMEM - Use 3c503 shared memory mode (off by default) +# -DINCLUDE_WD - Include Western Digital/SMC support +# -DWD_DEFAULT_MEM- Default memory location for WD/SMC cards +# -DWD_790_PIO - Read/write to WD/SMC 790 cards in PIO mode (default +# is to use shared memory) Try this if you get "Bogus +# packet, ignoring" messages, common on ISA/PCI hybrid +# systems. +# -DCOMPEX_RL2000_FIX +# +# If you have a Compex RL2000 PCI 32-bit (11F6:1401), +# and the bootrom hangs in "Probing...[NE*000/PCI]", +# try enabling this fix... it worked for me :). +# In the first packet write somehow it somehow doesn't +# get back the expected data so it is stuck in a loop. +# I didn't bother to investigate what or why because it works +# when I interrupt the loop if it takes more then COMPEX_RL2000_TRIES. +# The code will notify if it does a abort. +# SomniOne - somnione@gmx.net +# +# 3C90X options: +# Warning Warning Warning +# If you use any of the XCVR options below, please do not complain about +# the behaviour with Linux drivers to the kernel developers. You are +# on your own if you do this. Please read 3c90x.txt to understand +# what they do. If you don't understand them, ask for help on the +# Etherboot mailing list. And please document what you did to the NIC +# on the NIC so that people after you won't get nasty surprises. +# +# -DCFG_3C90X_PRESERVE_XCVR - Reset the transceiver type to the value it +# had initially just before the loaded code is started. +# -DCFG_3C90X_XCVR - Hardcode the tranceiver type Etherboot uses. +# -DCFG_3C90X_BOOTROM_FIX - If you have a 3c905B with buggy ROM +# interface, setting this option might "fix" it. Use +# with caution and read the docs in 3c90x.txt! +# +# See the documentation file 3c90x.txt for more details. +# +# CS89X0 (optional) options: +# -DISA_PROBE_ADDRS=list +# Probe for CS89x0 base address using list of +# comma separated hex addresses; increasing the +# address by one (0x300 -> 0x301) will force a +# more aggressive probing algorithm. This might +# be neccessary after a soft-reset of the NIC. + + +CFLAGS_3c503 = -DINCLUDE_3C503 # -DT503_SHMEM +CFLAGS_ne = -DINCLUDE_NE -DNE_SCAN=0x300,0x280,0x320,0x340,0x380 +CFLAGS_ns8390 = -DINCLUDE_NS8390 # NE2000/PCI! +CFLAGS_wd = -DINCLUDE_WD -DWD_DEFAULT_MEM=0xCC000 + +# +# SYSLINUX: Local addition to build PXELINUX combined image +# +EMBEDDED_IMAGE = ../../pxelinux.0 |