123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381 |
- ##############################################################################
- ##############################################################################
- #
- # 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
|