david/ipxe
david
/
ipxe
Archived
1
0
Fork 0
This repository has been archived on 2020-12-06. You can view files and clone it, but cannot push or open issues or pull requests.
ipxe/src/Config

558 lines
20 KiB
Plaintext

#
# 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:
#
# -DTAGGED_IMAGE
# Add tagged image kernel boot support (recommended).
# -DAOUT_IMAGE
# Add a.out kernel boot support (generic).
# -DELF_IMAGE
# Add generic ELF kernel boot support (recommended).
# -DEL64F_IMAGE
# Add generic ELF64 kernel boot support (useful for > 4GB disks).
# -DWINCE_IMAGE
# Add the ability to boot WINCE.... now only sis630 OK!
# -DPXE_IMAGE
# Add the ability to boot PXE NBPs. Requires
# PXE_EXPORT. Currently not supported on
# anything other than i386
# -DFREEBSD_PXEEMU
# Add the ability to boot PXE images... only FreeBSD supported
# -DIMAGE_MULTIBOOT
# Add Multiboot image support (currently only
# for ELF images).
# Without this, generic ELF support is selected.
# -DIMAGE_FREEBSD
# Add FreeBSD image loading support (requires at least
# -DAOUT_IMAGE and/or -DELF_IMAGE).
# -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
# -DDNS_RESOLVER
# Support for resolving hostnames in bootfile name (experimental)
# -DDOWNLOAD_PROTO_TFTP
# If defined, includes TFTP support (recommended).
# -DDOWNLOAD_PROTO_NFS
# If defined, includes NFS support.
# -DDEFAULT_PROTO_NFS
# If defined, makes NFS the default protocol instead
# of TFTP. Requires DOWNLOAD_PROTO_NFS.
# -DDOWNLOAD_PROTO_SLAM
# If defined, includes Scalable Local Area Multicast
# support.
# -DDOWNLOAD_PROTO_TFTM
# If defined, includes TFTP Multicast mode support.
# -DDOWNLOAD_PROTO_HTTP
# If defined, includes HTTP support.
#
# Console options:
#
# -DCONSOLE_FIRMWARE
# Set for firmware/BIOS provided (default if nothing else is set).
# Normally this is shows up on your CRT.
# -DCONSOLE_SERIAL
# Set for serial console.
# -DCONSOLE_DUAL
# Both of the above
# -DCONSOLE_DIRECT_VGA
# Set for direct VGA console (only for x86).
# -DCOMCONSOLE
# Set port, e.g. 0x3F8.
# -DCONSPEED
# Set speed, e.g. 57600.
# -DCOMPARM
# Set Line Control Register value for data bits, stop
# bits and parity. See a National Semiconditor 8250/
# 16450/16550 data sheet for bit meanings.
# If undefined, defaults to 0x03 = 8N1.
# -DCOMPRESERVE
# Ignore COMSPEED and COMPARAM and instead preserve
# the com port parameters from the previous user
# of the com port. Examples of previous user are a BIOS
# that implements console redirection, lilo and LinuxBIOS.
# This makes it trivial to keep the serial port
# speed setting in sync between multiple users.
# You set the speed in the first user and the
# rest follow along.
#
# 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:
#
# -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.
# -DBUILD_SERIAL
# Include an auto-incrementing build number in
# the Etherboot welcome message. Useful when
# developing, to be sure that the file you
# compiled is the one you're currently testing.
# -DBUILD_ID
# Include a build ID string in the Etherboot
# welcome message. Useful when developing, if
# you have multiple builds with different
# configurations and want to check you're
# running the one you think you are. Requires
# -DBUILD_SERIAL.
#
# BUS options:
#
# -DCONFIG_PCI
# Include support for devices using the pci bus.
# -DCONFIG_ISA
# Include support for devices using isa bus.
# -DCONFIG_PCMCIA
# Include support for PCMCIA in general *development*
# @/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.
# Select which buses etherboot should support
CFLAGS+= -DCONFIG_PCI -DCONFIG_ISA
# CFLAGS+= -DCONFIG_PCMCIA
# 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
# for btext console support
# CFLAGS+= -DCONSOLE_BTEXT
# for direct PC kbd support
# CFLAGS+= -DCONSOLE_PC_KBD
# Set to enable FILO support
# for FILO support it will make main call pci_init
# INCLUDE_FILO=y
ifdef INCLUDE_FILO
CFLAGS+= -DCONFIG_FILO
endif
# 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=7 -DCONGESTED
# More optional features
# CFLAGS+= -DTRY_FLOPPY_FIRST=4
# CFLAGS+= -DEXIT_IF_NO_OFFER
# For a serial console, which can run in parallel with FIRMWARE console
# CFLAGS+= -DCONSOLE_DUAL -DCOMCONSOLE=0x3F8 -DCONSPEED=9600
# Enable tagged image, generic ELF, Multiboot ELF
# or FreeBSD ELF/a.out boot image support
CFLAGS+= -DTAGGED_IMAGE -DELF_IMAGE
# CFLAGS+= -DAOUT_IMAGE -DIMAGE_MULTIBOOT -DIMAGE_FREEBSD
# CFLAGS+= -DAOUT_IMAGE -DAOUT_LYNX_KDI
# CFLAGS+= -DCOFF_IMAGE
# CFLAGS+= -DRAW_IMAGE
# Download files via TFTP
CFLAGS+= -DDOWNLOAD_PROTO_TFTP
# Change download protocol to NFS, default is TFTP
# CFLAGS+= -DDOWNLOAD_PROTO_NFS
# Change download protocol to HTTP, default is TFTP
# CFLAGS+= -DDOWNLOAD_PROTO_HTTP
# Change default protocol to NFS
# CFLAGS+= -DDEFAULT_PROTO_NFS
# Support to resolve hostnames in boot filename
# CFLAGS+= -DDNS_RESOLVER
# Multicast Support
# CFLAGS+= -DALLMULTI -DMULTICAST_LEVEL1 -DMULTICAST_LEVEL2 -DDOWNLOAD_PROTO_TFTM
# 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
# Include an auto-incrementing build serial number and optional build
# ID string
# CFLAGS+= -DBUILD_SERIAL
# CFLAGS+= -DBUILD_SERIAL -DBUILD_ID=\"testing\"
# Do not relocate
# core/relocate.c should really be moved to an arch specific directory
# but this is here for archs that don't support relocation
# CFLAGS+= -DNORELOCATE
# 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
#
# 3C509 option:
# -DINCLUDE_3C509 - Include 3c509 support
#
# 3C90X options:
# -DINCLUDE_3C90X - Include 3c90x support
#
# 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:
# -DINCLUDE_CS89X0- Include CS89x0 support
# -DCS_SCAN=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.
#
# LANCE options:
# -DINCLUDE_NE2100- Include NE2100 support
# -DINCLUDE_NI6510- Include NI6510 support
#
# SK_G16 options:
# -DINCLUDE_SK_G16- Include SK_G16 support
#
# I82586 options:
# -DINCLUDE_3C507 - Include 3c507 support
# -DINCLUDE_NI5210- Include NI5210 support
# -DINCLUDE_EXOS205-Include EXOS205 support
#
# SMC9000 options:
# -DINCLUDE_SMC9000 - Include SMC9000 driver
# -DSMC9000_SCAN=list - List of I/O addresses to probe
#
# TIARA (Fujitsu Etherstar) options:
# -DINCLUDE_TIARA - Include Tiara support
#
# NI5010 options:
# -DINCLUDE_NI5010 - Include NI5010 support
#
# TULIP options:
# -DINCLUDE_TULIP - Include Tulip support
#
# RTL8139 options:
# -DINCLUDE_RTL8139 - Include RTL8139 support
#
# SIS900 options:
# -DINCLUDE_SIS900 - Include SIS900 support
#
# NATSEMI options:
# -DINCLUDE_NATSEMI - Include NATSEMI support
#
CFLAGS_3c503 = -DINCLUDE_3C503 # -DT503_SHMEM
MAKEROM_FLAGS_3c503= -3
CFLAGS_3c507 = -DINCLUDE_3C507
CFLAGS_3c509 = -DINCLUDE_3C509
CFLAGS_3c529 = -DINCLUDE_3C529
CFLAGS_3c595 = -DINCLUDE_3C595
CFLAGS_3c90x = -DINCLUDE_3C90X
CFLAGS_cs89x0 = -DINCLUDE_CS89X0
CFLAGS_eepro = -DINCLUDE_EEPRO
CFLAGS_eepro100 = -DINCLUDE_EEPRO100
CFLAGS_e1000 = -DINCLUDE_E1000
CFLAGS_epic100 = -DINCLUDE_EPIC100
CFLAGS_exos205 = -DINCLUDE_EXOS205
CFLAGS_lance = -DINCLUDE_LANCE # Lance/PCI!
CFLAGS_ne2100 = -DINCLUDE_NE2100
CFLAGS_ne = -DINCLUDE_NE -DNE_SCAN=0x300,0x280,0x320,0x340,0x380
CFLAGS_ns8390 = -DINCLUDE_NS8390 # NE2000/PCI!
CFLAGS_ni5010 = -DINCLUDE_NI5010
CFLAGS_ni5210 = -DINCLUDE_NI5210
CFLAGS_ni6510 = -DINCLUDE_NI6510
CFLAGS_rtl8139 = -DINCLUDE_RTL8139
CFLAGS_sk_g16 = -DINCLUDE_SK_G16
CFLAGS_sis900 = -DINCLUDE_SIS900
CFLAGS_natsemi = -DINCLUDE_NATSEMI
CFLAGS_smc9000 = -DINCLUDE_SMC9000
CFLAGS_sundance = -DINCLUDE_SUNDANCE
CFLAGS_tlan = -DINCLUDE_TLAN
CFLAGS_tiara = -DINCLUDE_TIARA
CFLAGS_depca = -DINCLUDE_DEPCA
# CFLAGS_depca += -DDEPCA_MODEL=DEPCA -DDEPCA_RAM_BASE=0xd0000
CFLAGS_tulip = -DINCLUDE_TULIP
CFLAGS_otulip = -DINCLUDE_OTULIP
CFLAGS_via_rhine = -DINCLUDE_VIA_RHINE
CFLAGS_wd = -DINCLUDE_WD -DWD_DEFAULT_MEM=0xCC000
CFLAGS_w89c840 = -DINCLUDE_W89C840