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