2 # Config for Etherboot/32
4 # Do not delete the tag OptionDescription and /OptionDescription
5 # It is used to automatically generate the documentation.
8 # User interaction options:
11 # Ask "Boot from (N)etwork ... or (Q)uit? "
12 # at startup, timeout after n seconds (0 = no timeout).
13 # If unset or negative, don't ask and boot immediately
18 # On timeout or Return key from previous
19 # question, selects the order to try to boot from
21 # (alternatives: BOOT_NIC, BOOT_DISK,
22 # BOOT_FLOPPY, BOOT_NOTHING)
23 # See etherboot.h for prompt and answer strings.
24 # BOOT_DISK and BOOT_FLOPPY work only where a driver
25 # exists, e.g. in LinuxBIOS.
26 # They have no effect on PCBIOS.
27 # -DBOOT_INDEX The device to boot from 0 == any device.
28 # 1 == The first nic found.
29 # 2 == The second nic found
31 # BOOT_INDEX only applies to the BOOT_FIRST. BOOT_SECOND
32 # and BOOT_THIRD search through all of the boot devices.
34 # Use rotating bar instead of sequential dots
35 # to indicate an IP packet transmitted.
42 # Select the priority of the boot classes
47 # BOOT_DISK and BOOT_FLOPPY work only where a driver exists,
48 # e.g. in LinuxBIOS. They have no effect on PCBIOS.
50 # Boot autoconfiguration protocol options:
52 # -DALTERNATE_DHCP_PORTS_1067_1068
53 # Use ports 1067 and 1068 for DHCP instead of 67 and 68.
54 # As these ports are non-standard, you need to configure
55 # your DHCP server to use them. This option gets around
56 # existing DHCP servers which cannot be touched, for
57 # one reason or another, at the cost of non-standard
60 # Use BOOTP instead of DHCP.
62 # Use RARP instead of BOOTP/DHCP.
63 # -DREQUIRE_VCI_ETHERBOOT
64 # Require an encapsulated Vendor Class Identifier
65 # of "Etherboot" in the DHCP reply
66 # Requires DHCP support.
67 # -DDHCP_CLIENT_ID=\"Identifier\"
68 # -DDHCP_CLIENT_ID_LEN=<Client ID length in octets>
69 # -DDHCP_CLIENT_ID_TYPE=<Client ID type>
70 # Specify a RFC2132 Client Identifier option, length and type.
71 # Requires DHCP support.
72 # -DDHCP_USER_CLASS=\"UserClass\"
73 # -DDHCP_USER_CLASS_LEN=<User Class length in octets>
74 # Specify a RFC3004 User Class option and length. Use this
75 # option to set a UC (or multiple UCs) rather than munge the
76 # client Vendor Class ID.
77 # Requires DHCP support.
78 # -DALLOW_ONLY_ENCAPSULATED
79 # Ignore Etherboot-specific options that are not within
80 # the Etherboot encapsulated options field. This option
81 # should be enabled unless you have a legacy DHCP server
82 # configuration from the bad old days before the use of
83 # encapsulated Etherboot options.
84 # -DDEFAULT_BOOTFILE=\"default_bootfile_name\"
85 # Define a default bootfile for the case where your DHCP
86 # server does not provide the information. Example:
87 # -DDEFAULT_BOOTFILE="tftp:///tftpboot/kernel"
88 # If you do not specify this option, then DHCP offers that
89 # do not specify bootfiles will be ignored.
91 # NIC tuning parameters:
94 # Turns on multicast reception in the NICs.
96 # Boot tuning parameters:
99 # Turns on packet retransmission. Use it on a
100 # congested network, where the normal operation
101 # can't boot the image.
103 # Sets the maximum RFC951 backoff exponent to n.
104 # Do not set this unreasonably low, because on networks
105 # with many machines they can saturate the link
106 # (the delay corresponding to the exponent is a random
107 # time in the range 0..3.5*2^n seconds). Use 5 for a
108 # VERY small network (max. 2 minutes delay), 7 for a
109 # medium sized network (max. 7.5 minutes delay) or 10
110 # for a really huge network with many clients, frequent
111 # congestions (max. 1 hour delay). On average the
112 # delay time will be half the maximum value. If in
113 # doubt about the consequences, use a larger value.
114 # Also keep in mind that the number of retransmissions
115 # is not changed by this setting, so the default of 20
116 # may no longer be appropriate. You might need to set
117 # MAX_ARP_RETRIES, MAX_BOOTP_RETRIES, MAX_TFTP_RETRIES
118 # and MAX_RPC_RETRIES to a larger value.
120 # Use with care!! See above.
121 # Sets the base of RFC2131 sleep interval to n.
122 # This can be used with -DBACKOFF_LIMIT=0 to get a small
123 # and constant (predictable) retry interval for embedded
124 # devices. This is to achieve short boot delays if both
125 # the DHCP Server and the embedded device will be powered
126 # on the same time. Otherwise if the DHCP server is ready
127 # the client could sleep the next exponentially timeout,
128 # e.g. 70 seconds or more. This is not what you want.
129 # n should be a multiple of TICKS_PER_SEC (18).
131 # Boot device options:
134 # If > 0, tries that many times to read the boot
135 # sector from a floppy drive before booting from
136 # ROM. If successful, does a local boot.
137 # It assumes the floppy is bootable.
139 # If no IP offer is obtained, exit and
140 # let the BIOS continue.
141 # The accessibility of the TFTP server has no effect,
142 # so configure your DHCP/BOOTP server properly.
143 # You should probably reduce MAX_BOOTP_RETRIES
144 # to a small number like 3.
146 # Boot image options:
149 # Add tagged image kernel boot support (recommended).
151 # Add a.out kernel boot support (generic).
153 # Add generic ELF kernel boot support (recommended).
155 # Add generic ELF64 kernel boot support (useful for > 4GB disks).
157 # Add the ability to boot WINCE.... now only sis630 OK!
159 # Add the ability to boot PXE NBPs. Requires
160 # PXE_EXPORT. Currently not supported on
161 # anything other than i386
163 # Add the ability to boot PXE images... only FreeBSD supported
165 # Add Multiboot image support (currently only
167 # Without this, generic ELF support is selected.
169 # Add FreeBSD image loading support (requires at least
170 # -DAOUT_IMAGE and/or -DELF_IMAGE).
171 # -DFREEBSD_KERNEL_ENV
172 # Pass in FreeBSD kernel environment
174 # Add Lynx a.out KDI support
176 # Support for sending multicast packets
178 # Support for receiving multicast packets
180 # Support for resolving hostnames in bootfile name (experimental)
181 # -DDOWNLOAD_PROTO_TFTP
182 # If defined, includes TFTP support (recommended).
183 # -DDOWNLOAD_PROTO_NFS
184 # If defined, includes NFS support.
185 # -DDEFAULT_PROTO_NFS
186 # If defined, makes NFS the default protocol instead
187 # of TFTP. Requires DOWNLOAD_PROTO_NFS.
188 # -DDOWNLOAD_PROTO_SLAM
189 # If defined, includes Scalable Local Area Multicast
191 # -DDOWNLOAD_PROTO_TFTM
192 # If defined, includes TFTP Multicast mode support.
193 # -DDOWNLOAD_PROTO_HTTP
194 # If defined, includes HTTP support.
199 # Set for firmware/BIOS provided (default if nothing else is set).
200 # Normally this is shows up on your CRT.
202 # Set for serial console.
205 # -DCONSOLE_DIRECT_VGA
206 # Set for direct VGA console (only for x86).
208 # Interface export options:
211 # Export a PXE API interface. This is work in
212 # progress. Note that you won't be able to load
213 # PXE NBPs unless you also use -DPXE_IMAGE.
215 # Strict(er) compliance with the PXE
216 # specification as published by Intel. This may
217 # or may not be a good thing depending on your
218 # view of the spec...
220 # Strict compliance of the DHCP request packets
221 # with the PXE specification as published by
222 # Intel. This may or may not be a good thing
223 # depending on your view of whether requesting
224 # vendor options which don't actually exist is
225 # pointless or not. You probably want this
226 # option if you intend to use Windows RIS or
229 # Obscure options you probably don't need to touch:
232 # Halt the processor when waiting for keyboard input
233 # which saves power while waiting for user interaction.
234 # Good for compute clusters and VMware emulation.
235 # But may not work for all CPUs.
237 # Include an auto-incrementing build number in
238 # the Etherboot welcome message. Useful when
239 # developing, to be sure that the file you
240 # compiled is the one you're currently testing.
242 # Include a build ID string in the Etherboot
243 # welcome message. Useful when developing, if
244 # you have multiple builds with different
245 # configurations and want to check you're
246 # running the one you think you are. Requires
252 # Include support for devices using the pci bus.
254 # Include support for devices using isa bus.
256 # Include support for PCMCIA in general *development*
257 # @/OptionDescription@
259 # These default settings compile Etherboot with a small number of options.
260 # You may wish to enable more of the features if the size of your ROM allows.
263 # Select which buses etherboot should support
264 CFLAGS+= -DCONFIG_PCI -DCONFIG_ISA
265 # CFLAGS+= -DCONFIG_PCMCIA
267 # For prompting and default on timeout
268 CFLAGS+= -DASK_BOOT=3 -DBOOT_FIRST=BOOT_NIC
269 # If you would like to attempt to boot from other devices as well as the network.
270 # CFLAGS+= -DBOOT_SECOND=BOOT_FLOPPY
271 # CFLAGS+= -DBOOT_THIRD=BOOT_DISK
272 # CFLAGS+= -DBOOT_INDEX=0
274 # If you prefer the old style rotating bar progress display
275 # CFLAGS+= -DBAR_PROGRESS
277 # Show size indicator
278 # CFLAGS+= -DSIZEINDICATOR
280 # Enabling this creates non-standard images which use ports 1067 and 1068
282 # CFLAGS+= -DALTERNATE_DHCP_PORTS_1067_1068
284 # Enabling this makes the boot ROM require a Vendor Class Identifier
285 # of "Etherboot" in the Vendor Encapsulated Options
286 # This can be used to reject replies from servers other than the one
287 # we want to give out addresses to us, but it will prevent Etherboot
288 # from getting an IP lease until you have configured DHCPD correctly
289 # CFLAGS+= -DREQUIRE_VCI_ETHERBOOT
291 # EXPERIMENTAL! Set DHCP_CLIENT_ID to create a Client Identifier (DHCP
292 # option 61, see RFC2132 section 9.14) when Etherboot sends the DHCP
293 # DISCOVER and REQUEST packets. This ID must UNIQUELY identify each
294 # client on your local network. Set DHCP_CLIENT_ID_TYPE to the
295 # appropriate hardware type as described in RFC2132 / RFC1700; this
296 # almost certainly means using '1' if the Client ID is an Ethernet MAC
297 # address and '0' otherwise. Set DHCP_CLIENT_ID_LEN to the length of
298 # the Client ID in octets (this is not a null terminated C string, do
299 # NOT add 1 for a terminator and do NOT add an extra 1 for the
300 # hardware type octet). Note that to identify your client using the
301 # normal default MAC address of your NIC, you do NOT need to set this
302 # option, as the MAC address is automatically used in the
303 # hwtype/chaddr field; note also that this field only sets the DHCP
304 # option: it does NOT change the MAC address used by the client.
306 # CFLAGS+= -DDHCP_CLIENT_ID="'C','L','I','E','N','T','0','0','1'" \
307 # -DDHCP_CLIENT_ID_LEN=9 -DDHCP_CLIENT_ID_TYPE=0
309 # CFLAGS+= -DDHCP_CLIENT_ID="0xDE,0xAD,0xBE,0xEF,0xDE,0xAD" \
310 # -DDHCP_CLIENT_ID_LEN=6 -DDHCP_CLIENT_ID_TYPE=1
312 # EXPERIMENTAL! Set DHCP_USER_CLASS to create a User Class option (see
313 # RFC3004) when Etherboot sends the DHCP DISCOVER and REQUEST packets.
314 # This can be used for classification of clients, typically so that a
315 # DHCP server can send an appropriately tailored reply. Normally, a
316 # string identifies a class of to which this client instance belongs
317 # which is useful in your network, such as a department ('FINANCE' or
318 # 'MARKETING') or hardware type ('THINCLIENT' or 'KIOSK'). Set
319 # DHCP_USER_CLASS_LEN to the length of DHCP_USER_CLASS in octets.
320 # This is NOT a null terminated C string, do NOT add 1 for a
321 # terminator. RFC3004 advises how to lay out multiple User Class
322 # options by using an octet for the length of each string, as in this
323 # example. It is, of course, up to the server to parse this.
325 # CFLAGS+= -DDHCP_USER_CLASS="'T','E','S','T','C','L','A','S','S'" \
326 # -DDHCP_USER_CLASS_LEN=9
328 # CFLAGS+= -DDHCP_USER_CLASS="5,'A','L','P','H','A',4,'B','E','T','A'" \
329 # -DDHCP_USER_CLASS_LEN=11
331 # for btext console support
332 # CFLAGS+= -DCONSOLE_BTEXT
333 # for direct PC kbd support
334 # CFLAGS+= -DCONSOLE_PC_KBD
335 # Set to enable FILO support
336 # for FILO support it will make main call pci_init
339 CFLAGS+= -DCONFIG_FILO
342 # Enabling this causes Etherboot to ignore Etherboot-specific options
343 # that are not within an Etherboot encapsulated options field.
344 # This option should be enabled unless you have a legacy DHCP server
345 # configuration from the bad old days before the use of
346 # encapsulated Etherboot options.
347 CFLAGS+= -DALLOW_ONLY_ENCAPSULATED
349 # Disable DHCP support
350 # CFLAGS+= -DNO_DHCP_SUPPORT
352 # Specify a default bootfile to be used if the DHCP server does not
353 # provide the information. If you do not specify this option, then
354 # DHCP offers that do not contain bootfiles will be ignored.
355 # CFLAGS+= -DDEFAULT_BOOTFILE=\"tftp:///tftpboot/kernel\"
357 # Limit the delay on packet loss/congestion to a more bearable value. See
358 # description above. If unset, do not limit the delay between resend.
359 CFLAGS+= -DBACKOFF_LIMIT=7 -DCONGESTED
361 # More optional features
362 # CFLAGS+= -DTRY_FLOPPY_FIRST=4
363 # CFLAGS+= -DEXIT_IF_NO_OFFER
365 # Enable tagged image, generic ELF, Multiboot ELF
366 # or FreeBSD ELF/a.out boot image support
367 CFLAGS+= -DTAGGED_IMAGE -DELF_IMAGE
368 # CFLAGS+= -DAOUT_IMAGE -DIMAGE_MULTIBOOT -DIMAGE_FREEBSD
369 # CFLAGS+= -DAOUT_IMAGE -DAOUT_LYNX_KDI
370 # CFLAGS+= -DCOFF_IMAGE
371 # CFLAGS+= -DRAW_IMAGE
373 # Download files via TFTP
374 CFLAGS+= -DDOWNLOAD_PROTO_TFTP
375 # Change download protocol to NFS, default is TFTP
376 # CFLAGS+= -DDOWNLOAD_PROTO_NFS
377 # Change download protocol to HTTP, default is TFTP
378 # CFLAGS+= -DDOWNLOAD_PROTO_HTTP
379 # Change default protocol to NFS
380 # CFLAGS+= -DDEFAULT_PROTO_NFS
381 # Support to resolve hostnames in boot filename
382 # CFLAGS+= -DDNS_RESOLVER
385 # CFLAGS+= -DALLMULTI -DMULTICAST_LEVEL1 -DMULTICAST_LEVEL2 -DDOWNLOAD_PROTO_TFTM
387 # Etherboot as a PXE network protocol ROM
388 CFLAGS+= -DPXE_IMAGE -DPXE_EXPORT
389 # Etherboot stricter as a PXE network protocol ROM
390 # CFLAGS+= -DPXE_DHCP_STRICT
392 # Support for PXE emulation. Works only with FreeBSD to load the kernel
393 # via pxeboot, use only with DOWNLOAD_PROTO_NFS
394 # CFLAGS+= -DFREEBSD_PXEEMU
396 # Include an auto-incrementing build serial number and optional build
398 # CFLAGS+= -DBUILD_SERIAL
399 # CFLAGS+= -DBUILD_SERIAL -DBUILD_ID=\"testing\"
402 # core/relocate.c should really be moved to an arch specific directory
403 # but this is here for archs that don't support relocation
404 # CFLAGS+= -DNORELOCATE
409 # Garbage from Makefile.main temporarily placed here until a home can
413 # -DINCLUDE_NE - Include NE1000/NE2000 support
414 # -DNE_SCAN=list - Probe for NE base address using list of
415 # comma separated hex addresses
416 # -DINCLUDE_3C503 - Include 3c503 support
417 # -DT503_SHMEM - Use 3c503 shared memory mode (off by default)
418 # -DINCLUDE_WD - Include Western Digital/SMC support
419 # -DWD_DEFAULT_MEM- Default memory location for WD/SMC cards
420 # -DWD_790_PIO - Read/write to WD/SMC 790 cards in PIO mode (default
421 # is to use shared memory) Try this if you get "Bogus
422 # packet, ignoring" messages, common on ISA/PCI hybrid
424 # -DCOMPEX_RL2000_FIX
426 # If you have a Compex RL2000 PCI 32-bit (11F6:1401),
427 # and the bootrom hangs in "Probing...[NE*000/PCI]",
428 # try enabling this fix... it worked for me :).
429 # In the first packet write somehow it somehow doesn't
430 # get back the expected data so it is stuck in a loop.
431 # I didn't bother to investigate what or why because it works
432 # when I interrupt the loop if it takes more then COMPEX_RL2000_TRIES.
433 # The code will notify if it does a abort.
434 # SomniOne - somnione@gmx.net
437 # Warning Warning Warning
438 # If you use any of the XCVR options below, please do not complain about
439 # the behaviour with Linux drivers to the kernel developers. You are
440 # on your own if you do this. Please read 3c90x.txt to understand
441 # what they do. If you don't understand them, ask for help on the
442 # Etherboot mailing list. And please document what you did to the NIC
443 # on the NIC so that people after you won't get nasty surprises.
445 # -DCFG_3C90X_PRESERVE_XCVR - Reset the transceiver type to the value it
446 # had initially just before the loaded code is started.
447 # -DCFG_3C90X_XCVR - Hardcode the tranceiver type Etherboot uses.
448 # -DCFG_3C90X_BOOTROM_FIX - If you have a 3c905B with buggy ROM
449 # interface, setting this option might "fix" it. Use
450 # with caution and read the docs in 3c90x.txt!
452 # See the documentation file 3c90x.txt for more details.
454 # CS89X0 (optional) options:
455 # -DISA_PROBE_ADDRS=list
456 # Probe for CS89x0 base address using list of
457 # comma separated hex addresses; increasing the
458 # address by one (0x300 -> 0x301) will force a
459 # more aggressive probing algorithm. This might
460 # be neccessary after a soft-reset of the NIC.
463 CFLAGS_3c503 = -DINCLUDE_3C503 # -DT503_SHMEM
464 CFLAGS_ne = -DINCLUDE_NE -DNE_SCAN=0x300,0x280,0x320,0x340,0x380
465 CFLAGS_ns8390 = -DINCLUDE_NS8390 # NE2000/PCI!
466 CFLAGS_wd = -DINCLUDE_WD -DWD_DEFAULT_MEM=0xCC000