1 ##############################################################################
2 ##############################################################################
6 # This file is deprecated. All options are gradually being migrated
7 # to config.h. Only options that affect the entire build
8 # (e.g. overriding the $(CC) Makefile variable) should be placed in
11 ##############################################################################
12 ##############################################################################
16 # Config for Etherboot/32
19 # Do not delete the tag OptionDescription and /OptionDescription
20 # It is used to automatically generate the documentation.
23 # User interaction options:
26 # Ask "Boot from (N)etwork ... or (Q)uit? "
27 # at startup, timeout after n seconds (0 = no timeout).
28 # If unset or negative, don't ask and boot immediately
33 # On timeout or Return key from previous
34 # question, selects the order to try to boot from
36 # (alternatives: BOOT_NIC, BOOT_DISK,
37 # BOOT_FLOPPY, BOOT_NOTHING)
38 # See etherboot.h for prompt and answer strings.
39 # BOOT_DISK and BOOT_FLOPPY work only where a driver
40 # exists, e.g. in LinuxBIOS.
41 # They have no effect on PCBIOS.
42 # -DBOOT_INDEX The device to boot from 0 == any device.
43 # 1 == The first nic found.
44 # 2 == The second nic found
46 # BOOT_INDEX only applies to the BOOT_FIRST. BOOT_SECOND
47 # and BOOT_THIRD search through all of the boot devices.
49 # Use rotating bar instead of sequential dots
50 # to indicate an IP packet transmitted.
57 # Select the priority of the boot classes
62 # BOOT_DISK and BOOT_FLOPPY work only where a driver exists,
63 # e.g. in LinuxBIOS. They have no effect on PCBIOS.
65 # Boot autoconfiguration protocol options:
67 # -DALTERNATE_DHCP_PORTS_1067_1068
68 # Use ports 1067 and 1068 for DHCP instead of 67 and 68.
69 # As these ports are non-standard, you need to configure
70 # your DHCP server to use them. This option gets around
71 # existing DHCP servers which cannot be touched, for
72 # one reason or another, at the cost of non-standard
75 # Use BOOTP instead of DHCP.
77 # Use RARP instead of BOOTP/DHCP.
78 # -DREQUIRE_VCI_ETHERBOOT
79 # Require an encapsulated Vendor Class Identifier
80 # of "Etherboot" in the DHCP reply
81 # Requires DHCP support.
82 # -DDHCP_CLIENT_ID=\"Identifier\"
83 # -DDHCP_CLIENT_ID_LEN=<Client ID length in octets>
84 # -DDHCP_CLIENT_ID_TYPE=<Client ID type>
85 # Specify a RFC2132 Client Identifier option, length and type.
86 # Requires DHCP support.
87 # -DDHCP_USER_CLASS=\"UserClass\"
88 # -DDHCP_USER_CLASS_LEN=<User Class length in octets>
89 # Specify a RFC3004 User Class option and length. Use this
90 # option to set a UC (or multiple UCs) rather than munge the
91 # client Vendor Class ID.
92 # Requires DHCP support.
93 # -DALLOW_ONLY_ENCAPSULATED
94 # Ignore Etherboot-specific options that are not within
95 # the Etherboot encapsulated options field. This option
96 # should be enabled unless you have a legacy DHCP server
97 # configuration from the bad old days before the use of
98 # encapsulated Etherboot options.
99 # -DDEFAULT_BOOTFILE=\"default_bootfile_name\"
100 # Define a default bootfile for the case where your DHCP
101 # server does not provide the information. Example:
102 # -DDEFAULT_BOOTFILE="tftp:///tftpboot/kernel"
103 # If you do not specify this option, then DHCP offers that
104 # do not specify bootfiles will be ignored.
106 # NIC tuning parameters:
109 # Turns on multicast reception in the NICs.
111 # Boot tuning parameters:
114 # Turns on packet retransmission. Use it on a
115 # congested network, where the normal operation
116 # can't boot the image.
118 # Sets the maximum RFC951 backoff exponent to n.
119 # Do not set this unreasonably low, because on networks
120 # with many machines they can saturate the link
121 # (the delay corresponding to the exponent is a random
122 # time in the range 0..3.5*2^n seconds). Use 5 for a
123 # VERY small network (max. 2 minutes delay), 7 for a
124 # medium sized network (max. 7.5 minutes delay) or 10
125 # for a really huge network with many clients, frequent
126 # congestions (max. 1 hour delay). On average the
127 # delay time will be half the maximum value. If in
128 # doubt about the consequences, use a larger value.
129 # Also keep in mind that the number of retransmissions
130 # is not changed by this setting, so the default of 20
131 # may no longer be appropriate. You might need to set
132 # MAX_ARP_RETRIES, MAX_BOOTP_RETRIES, MAX_TFTP_RETRIES
133 # and MAX_RPC_RETRIES to a larger value.
135 # Use with care!! See above.
136 # Sets the base of RFC2131 sleep interval to n.
137 # This can be used with -DBACKOFF_LIMIT=0 to get a small
138 # and constant (predictable) retry interval for embedded
139 # devices. This is to achieve short boot delays if both
140 # the DHCP Server and the embedded device will be powered
141 # on the same time. Otherwise if the DHCP server is ready
142 # the client could sleep the next exponentially timeout,
143 # e.g. 70 seconds or more. This is not what you want.
144 # n should be a multiple of TICKS_PER_SEC (18).
146 # Boot device options:
149 # If > 0, tries that many times to read the boot
150 # sector from a floppy drive before booting from
151 # ROM. If successful, does a local boot.
152 # It assumes the floppy is bootable.
154 # If no IP offer is obtained, exit and
155 # let the BIOS continue.
156 # The accessibility of the TFTP server has no effect,
157 # so configure your DHCP/BOOTP server properly.
158 # You should probably reduce MAX_BOOTP_RETRIES
159 # to a small number like 3.
161 # Boot image options:
164 # Add tagged image kernel boot support (recommended).
166 # Add a.out kernel boot support (generic).
168 # Add generic ELF kernel boot support (recommended).
170 # Add generic ELF64 kernel boot support (useful for > 4GB disks).
172 # Add the ability to boot WINCE.... now only sis630 OK!
174 # Add the ability to boot PXE NBPs. Requires
175 # PXE_EXPORT. Currently not supported on
176 # anything other than i386
178 # Add the ability to boot PXE images... only FreeBSD supported
180 # Add Multiboot image support (currently only
182 # Without this, generic ELF support is selected.
184 # Add FreeBSD image loading support (requires at least
185 # -DAOUT_IMAGE and/or -DELF_IMAGE).
186 # -DFREEBSD_KERNEL_ENV
187 # Pass in FreeBSD kernel environment
189 # Add Lynx a.out KDI support
191 # Support for sending multicast packets
193 # Support for receiving multicast packets
195 # Support for resolving hostnames in bootfile name (experimental)
196 # -DDOWNLOAD_PROTO_TFTP
197 # If defined, includes TFTP support (recommended).
198 # -DDOWNLOAD_PROTO_NFS
199 # If defined, includes NFS support.
200 # -DDEFAULT_PROTO_NFS
201 # If defined, makes NFS the default protocol instead
202 # of TFTP. Requires DOWNLOAD_PROTO_NFS.
203 # -DDOWNLOAD_PROTO_SLAM
204 # If defined, includes Scalable Local Area Multicast
206 # -DDOWNLOAD_PROTO_TFTM
207 # If defined, includes TFTP Multicast mode support.
208 # -DDOWNLOAD_PROTO_HTTP
209 # If defined, includes HTTP support.
211 # Interface export options:
214 # Export a PXE API interface. This is work in
215 # progress. Note that you won't be able to load
216 # PXE NBPs unless you also use -DPXE_IMAGE.
218 # Strict(er) compliance with the PXE
219 # specification as published by Intel. This may
220 # or may not be a good thing depending on your
221 # view of the spec...
223 # Strict compliance of the DHCP request packets
224 # with the PXE specification as published by
225 # Intel. This may or may not be a good thing
226 # depending on your view of whether requesting
227 # vendor options which don't actually exist is
228 # pointless or not. You probably want this
229 # option if you intend to use Windows RIS or
232 # Obscure options you probably don't need to touch:
235 # Halt the processor when waiting for keyboard input
236 # which saves power while waiting for user interaction.
237 # Good for compute clusters and VMware emulation.
238 # But may not work for all CPUs.
240 # @/OptionDescription@
242 # These default settings compile Etherboot with a small number of options.
243 # You may wish to enable more of the features if the size of your ROM allows.
246 # For prompting and default on timeout
247 CFLAGS+= -DASK_BOOT=3 -DBOOT_FIRST=BOOT_NIC
248 # If you would like to attempt to boot from other devices as well as the network.
249 # CFLAGS+= -DBOOT_SECOND=BOOT_FLOPPY
250 # CFLAGS+= -DBOOT_THIRD=BOOT_DISK
251 # CFLAGS+= -DBOOT_INDEX=0
253 # If you prefer the old style rotating bar progress display
254 # CFLAGS+= -DBAR_PROGRESS
256 # Show size indicator
257 # CFLAGS+= -DSIZEINDICATOR
259 # Enabling this creates non-standard images which use ports 1067 and 1068
261 # CFLAGS+= -DALTERNATE_DHCP_PORTS_1067_1068
263 # Enabling this makes the boot ROM require a Vendor Class Identifier
264 # of "Etherboot" in the Vendor Encapsulated Options
265 # This can be used to reject replies from servers other than the one
266 # we want to give out addresses to us, but it will prevent Etherboot
267 # from getting an IP lease until you have configured DHCPD correctly
268 # CFLAGS+= -DREQUIRE_VCI_ETHERBOOT
270 # EXPERIMENTAL! Set DHCP_CLIENT_ID to create a Client Identifier (DHCP
271 # option 61, see RFC2132 section 9.14) when Etherboot sends the DHCP
272 # DISCOVER and REQUEST packets. This ID must UNIQUELY identify each
273 # client on your local network. Set DHCP_CLIENT_ID_TYPE to the
274 # appropriate hardware type as described in RFC2132 / RFC1700; this
275 # almost certainly means using '1' if the Client ID is an Ethernet MAC
276 # address and '0' otherwise. Set DHCP_CLIENT_ID_LEN to the length of
277 # the Client ID in octets (this is not a null terminated C string, do
278 # NOT add 1 for a terminator and do NOT add an extra 1 for the
279 # hardware type octet). Note that to identify your client using the
280 # normal default MAC address of your NIC, you do NOT need to set this
281 # option, as the MAC address is automatically used in the
282 # hwtype/chaddr field; note also that this field only sets the DHCP
283 # option: it does NOT change the MAC address used by the client.
285 # CFLAGS+= -DDHCP_CLIENT_ID="'C','L','I','E','N','T','0','0','1'" \
286 # -DDHCP_CLIENT_ID_LEN=9 -DDHCP_CLIENT_ID_TYPE=0
288 # CFLAGS+= -DDHCP_CLIENT_ID="0xDE,0xAD,0xBE,0xEF,0xDE,0xAD" \
289 # -DDHCP_CLIENT_ID_LEN=6 -DDHCP_CLIENT_ID_TYPE=1
291 # EXPERIMENTAL! Set DHCP_USER_CLASS to create a User Class option (see
292 # RFC3004) when Etherboot sends the DHCP DISCOVER and REQUEST packets.
293 # This can be used for classification of clients, typically so that a
294 # DHCP server can send an appropriately tailored reply. Normally, a
295 # string identifies a class of to which this client instance belongs
296 # which is useful in your network, such as a department ('FINANCE' or
297 # 'MARKETING') or hardware type ('THINCLIENT' or 'KIOSK'). Set
298 # DHCP_USER_CLASS_LEN to the length of DHCP_USER_CLASS in octets.
299 # This is NOT a null terminated C string, do NOT add 1 for a
300 # terminator. RFC3004 advises how to lay out multiple User Class
301 # options by using an octet for the length of each string, as in this
302 # example. It is, of course, up to the server to parse this.
304 # CFLAGS+= -DDHCP_USER_CLASS="'T','E','S','T','C','L','A','S','S'" \
305 # -DDHCP_USER_CLASS_LEN=9
307 # CFLAGS+= -DDHCP_USER_CLASS="5,'A','L','P','H','A',4,'B','E','T','A'" \
308 # -DDHCP_USER_CLASS_LEN=11
310 # Set to enable FILO support
311 # for FILO support it will make main call pci_init
314 CFLAGS+= -DCONFIG_FILO
317 # Enabling this causes Etherboot to ignore Etherboot-specific options
318 # that are not within an Etherboot encapsulated options field.
319 # This option should be enabled unless you have a legacy DHCP server
320 # configuration from the bad old days before the use of
321 # encapsulated Etherboot options.
322 CFLAGS+= -DALLOW_ONLY_ENCAPSULATED
324 # Disable DHCP support
325 # CFLAGS+= -DNO_DHCP_SUPPORT
327 # Specify a default bootfile to be used if the DHCP server does not
328 # provide the information. If you do not specify this option, then
329 # DHCP offers that do not contain bootfiles will be ignored.
330 # CFLAGS+= -DDEFAULT_BOOTFILE=\"tftp:///tftpboot/kernel\"
332 # Limit the delay on packet loss/congestion to a more bearable value. See
333 # description above. If unset, do not limit the delay between resend.
334 CFLAGS+= -DBACKOFF_LIMIT=7 -DCONGESTED
336 # More optional features
337 # CFLAGS+= -DTRY_FLOPPY_FIRST=4
338 # CFLAGS+= -DEXIT_IF_NO_OFFER
340 # Enable tagged image, generic ELF, Multiboot ELF
341 # or FreeBSD ELF/a.out boot image support
342 CFLAGS+= -DTAGGED_IMAGE -DELF_IMAGE
343 # CFLAGS+= -DAOUT_IMAGE -DIMAGE_MULTIBOOT -DIMAGE_FREEBSD
344 # CFLAGS+= -DAOUT_IMAGE -DAOUT_LYNX_KDI
345 # CFLAGS+= -DCOFF_IMAGE
346 # CFLAGS+= -DRAW_IMAGE
348 # Download files via TFTP
349 CFLAGS+= -DDOWNLOAD_PROTO_TFTP
350 # Change download protocol to NFS, default is TFTP
351 # CFLAGS+= -DDOWNLOAD_PROTO_NFS
352 # Change download protocol to HTTP, default is TFTP
353 # CFLAGS+= -DDOWNLOAD_PROTO_HTTP
354 # Change default protocol to NFS
355 # CFLAGS+= -DDEFAULT_PROTO_NFS
356 # Support to resolve hostnames in boot filename
357 # CFLAGS+= -DDNS_RESOLVER
360 # CFLAGS+= -DALLMULTI -DMULTICAST_LEVEL1 -DMULTICAST_LEVEL2 -DDOWNLOAD_PROTO_TFTM
362 # Etherboot as a PXE network protocol ROM
363 CFLAGS+= -DPXE_IMAGE -DPXE_EXPORT
364 # Etherboot stricter as a PXE network protocol ROM
365 # CFLAGS+= -DPXE_DHCP_STRICT
367 # Support for PXE emulation. Works only with FreeBSD to load the kernel
368 # via pxeboot, use only with DOWNLOAD_PROTO_NFS
369 # CFLAGS+= -DFREEBSD_PXEEMU
373 # Garbage from Makefile.main temporarily placed here until a home can
377 # -DINCLUDE_NE - Include NE1000/NE2000 support
378 # -DNE_SCAN=list - Probe for NE base address using list of
379 # comma separated hex addresses
380 # -DINCLUDE_3C503 - Include 3c503 support
381 # -DT503_SHMEM - Use 3c503 shared memory mode (off by default)
382 # -DINCLUDE_WD - Include Western Digital/SMC support
383 # -DWD_DEFAULT_MEM- Default memory location for WD/SMC cards
384 # -DWD_790_PIO - Read/write to WD/SMC 790 cards in PIO mode (default
385 # is to use shared memory) Try this if you get "Bogus
386 # packet, ignoring" messages, common on ISA/PCI hybrid
388 # -DCOMPEX_RL2000_FIX
390 # If you have a Compex RL2000 PCI 32-bit (11F6:1401),
391 # and the bootrom hangs in "Probing...[NE*000/PCI]",
392 # try enabling this fix... it worked for me :).
393 # In the first packet write somehow it somehow doesn't
394 # get back the expected data so it is stuck in a loop.
395 # I didn't bother to investigate what or why because it works
396 # when I interrupt the loop if it takes more then COMPEX_RL2000_TRIES.
397 # The code will notify if it does a abort.
398 # SomniOne - somnione@gmx.net
401 # Warning Warning Warning
402 # If you use any of the XCVR options below, please do not complain about
403 # the behaviour with Linux drivers to the kernel developers. You are
404 # on your own if you do this. Please read 3c90x.txt to understand
405 # what they do. If you don't understand them, ask for help on the
406 # Etherboot mailing list. And please document what you did to the NIC
407 # on the NIC so that people after you won't get nasty surprises.
409 # -DCFG_3C90X_PRESERVE_XCVR - Reset the transceiver type to the value it
410 # had initially just before the loaded code is started.
411 # -DCFG_3C90X_XCVR - Hardcode the tranceiver type Etherboot uses.
412 # -DCFG_3C90X_BOOTROM_FIX - If you have a 3c905B with buggy ROM
413 # interface, setting this option might "fix" it. Use
414 # with caution and read the docs in 3c90x.txt!
416 # See the documentation file 3c90x.txt for more details.
418 # CS89X0 (optional) options:
419 # -DISA_PROBE_ADDRS=list
420 # Probe for CS89x0 base address using list of
421 # comma separated hex addresses; increasing the
422 # address by one (0x300 -> 0x301) will force a
423 # more aggressive probing algorithm. This might
424 # be neccessary after a soft-reset of the NIC.
427 CFLAGS_3c503 = -DINCLUDE_3C503 # -DT503_SHMEM
428 CFLAGS_ne = -DINCLUDE_NE -DNE_SCAN=0x300,0x280,0x320,0x340,0x380
429 CFLAGS_ns8390 = -DINCLUDE_NS8390 # NE2000/PCI!
430 CFLAGS_wd = -DINCLUDE_WD -DWD_DEFAULT_MEM=0xCC000