You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381
  1. ##############################################################################
  2. ##############################################################################
  3. #
  4. # IMPORTANT!
  5. #
  6. # The use of this file to set options that affect only single object
  7. # files is deprecated, because changing anything in this file results
  8. # in a complete rebuild, which is slow. All options are gradually
  9. # being migrated to config.h, which does not suffer from this problem.
  10. #
  11. # Only options that affect the entire build (e.g. overriding the $(CC)
  12. # Makefile variable) should be placed in here.
  13. #
  14. ##############################################################################
  15. ##############################################################################
  16. #
  17. # Config for Etherboot/32
  18. #
  19. #
  20. # Do not delete the tag OptionDescription and /OptionDescription
  21. # It is used to automatically generate the documentation.
  22. #
  23. # @OptionDescription@
  24. # User interaction options:
  25. #
  26. # -DASK_BOOT=n
  27. # Ask "Boot from (N)etwork ... or (Q)uit? "
  28. # at startup, timeout after n seconds (0 = no timeout).
  29. # If unset or negative, don't ask and boot immediately
  30. # using the default.
  31. # -DBOOT_FIRST
  32. # -DBOOT_SECOND
  33. # -DBOOT_THIRD
  34. # On timeout or Return key from previous
  35. # question, selects the order to try to boot from
  36. # various devices.
  37. # (alternatives: BOOT_NIC, BOOT_DISK,
  38. # BOOT_FLOPPY, BOOT_NOTHING)
  39. # See etherboot.h for prompt and answer strings.
  40. # BOOT_DISK and BOOT_FLOPPY work only where a driver
  41. # exists, e.g. in LinuxBIOS.
  42. # They have no effect on PCBIOS.
  43. # -DBOOT_INDEX The device to boot from 0 == any device.
  44. # 1 == The first nic found.
  45. # 2 == The second nic found
  46. # ...
  47. # BOOT_INDEX only applies to the BOOT_FIRST. BOOT_SECOND
  48. # and BOOT_THIRD search through all of the boot devices.
  49. # -DBAR_PROGRESS
  50. # Use rotating bar instead of sequential dots
  51. # to indicate an IP packet transmitted.
  52. #
  53. # Boot order options:
  54. #
  55. # -DBOOT_CLASS_FIRST
  56. # -DBOOT_CLASS_SECOND
  57. # -DBOOT_CLASS_THIRD
  58. # Select the priority of the boot classes
  59. # Valid values are:
  60. # BOOT_NIC
  61. # BOOT_DISK
  62. # BOOT_FLOPPY
  63. # BOOT_DISK and BOOT_FLOPPY work only where a driver exists,
  64. # e.g. in LinuxBIOS. They have no effect on PCBIOS.
  65. #
  66. # Boot autoconfiguration protocol options:
  67. #
  68. # -DALTERNATE_DHCP_PORTS_1067_1068
  69. # Use ports 1067 and 1068 for DHCP instead of 67 and 68.
  70. # As these ports are non-standard, you need to configure
  71. # your DHCP server to use them. This option gets around
  72. # existing DHCP servers which cannot be touched, for
  73. # one reason or another, at the cost of non-standard
  74. # boot images.
  75. # -DNO_DHCP_SUPPORT
  76. # Use BOOTP instead of DHCP.
  77. # -DRARP_NOT_BOOTP
  78. # Use RARP instead of BOOTP/DHCP.
  79. # -DREQUIRE_VCI_ETHERBOOT
  80. # Require an encapsulated Vendor Class Identifier
  81. # of "Etherboot" in the DHCP reply
  82. # Requires DHCP support.
  83. # -DDHCP_CLIENT_ID=\"Identifier\"
  84. # -DDHCP_CLIENT_ID_LEN=<Client ID length in octets>
  85. # -DDHCP_CLIENT_ID_TYPE=<Client ID type>
  86. # Specify a RFC2132 Client Identifier option, length and type.
  87. # Requires DHCP support.
  88. # -DDHCP_USER_CLASS=\"UserClass\"
  89. # -DDHCP_USER_CLASS_LEN=<User Class length in octets>
  90. # Specify a RFC3004 User Class option and length. Use this
  91. # option to set a UC (or multiple UCs) rather than munge the
  92. # client Vendor Class ID.
  93. # Requires DHCP support.
  94. # -DALLOW_ONLY_ENCAPSULATED
  95. # Ignore Etherboot-specific options that are not within
  96. # the Etherboot encapsulated options field. This option
  97. # should be enabled unless you have a legacy DHCP server
  98. # configuration from the bad old days before the use of
  99. # encapsulated Etherboot options.
  100. # -DDEFAULT_BOOTFILE=\"default_bootfile_name\"
  101. # Define a default bootfile for the case where your DHCP
  102. # server does not provide the information. Example:
  103. # -DDEFAULT_BOOTFILE="tftp:///tftpboot/kernel"
  104. # If you do not specify this option, then DHCP offers that
  105. # do not specify bootfiles will be ignored.
  106. #
  107. # NIC tuning parameters:
  108. #
  109. # -DALLMULTI
  110. # Turns on multicast reception in the NICs.
  111. #
  112. # Boot tuning parameters:
  113. #
  114. # -DCONGESTED
  115. # Turns on packet retransmission. Use it on a
  116. # congested network, where the normal operation
  117. # can't boot the image.
  118. # -DBACKOFF_LIMIT
  119. # Sets the maximum RFC951 backoff exponent to n.
  120. # Do not set this unreasonably low, because on networks
  121. # with many machines they can saturate the link
  122. # (the delay corresponding to the exponent is a random
  123. # time in the range 0..3.5*2^n seconds). Use 5 for a
  124. # VERY small network (max. 2 minutes delay), 7 for a
  125. # medium sized network (max. 7.5 minutes delay) or 10
  126. # for a really huge network with many clients, frequent
  127. # congestions (max. 1 hour delay). On average the
  128. # delay time will be half the maximum value. If in
  129. # doubt about the consequences, use a larger value.
  130. # Also keep in mind that the number of retransmissions
  131. # is not changed by this setting, so the default of 20
  132. # may no longer be appropriate. You might need to set
  133. # MAX_ARP_RETRIES, MAX_BOOTP_RETRIES, MAX_TFTP_RETRIES
  134. # and MAX_RPC_RETRIES to a larger value.
  135. # -DTIMEOUT=n
  136. # Use with care!! See above.
  137. # Sets the base of RFC2131 sleep interval to n.
  138. # This can be used with -DBACKOFF_LIMIT=0 to get a small
  139. # and constant (predictable) retry interval for embedded
  140. # devices. This is to achieve short boot delays if both
  141. # the DHCP Server and the embedded device will be powered
  142. # on the same time. Otherwise if the DHCP server is ready
  143. # the client could sleep the next exponentially timeout,
  144. # e.g. 70 seconds or more. This is not what you want.
  145. # n should be a multiple of TICKS_PER_SEC (18).
  146. #
  147. # Boot device options:
  148. #
  149. # -DTRY_FLOPPY_FIRST
  150. # If > 0, tries that many times to read the boot
  151. # sector from a floppy drive before booting from
  152. # ROM. If successful, does a local boot.
  153. # It assumes the floppy is bootable.
  154. # -DEXIT_IF_NO_OFFER
  155. # If no IP offer is obtained, exit and
  156. # let the BIOS continue.
  157. # The accessibility of the TFTP server has no effect,
  158. # so configure your DHCP/BOOTP server properly.
  159. # You should probably reduce MAX_BOOTP_RETRIES
  160. # to a small number like 3.
  161. #
  162. # Boot image options:
  163. #
  164. # -DFREEBSD_KERNEL_ENV
  165. # Pass in FreeBSD kernel environment
  166. # -DAOUT_LYNX_KDI
  167. # Add Lynx a.out KDI support
  168. # -DMULTICAST_LEVEL1
  169. # Support for sending multicast packets
  170. # -DMULTICAST_LEVEL2
  171. # Support for receiving multicast packets
  172. #
  173. # Interface export options:
  174. #
  175. # -DPXE_EXPORT
  176. # Export a PXE API interface. This is work in
  177. # progress. Note that you won't be able to load
  178. # PXE NBPs unless you also use -DPXE_IMAGE.
  179. # -DPXE_STRICT
  180. # Strict(er) compliance with the PXE
  181. # specification as published by Intel. This may
  182. # or may not be a good thing depending on your
  183. # view of the spec...
  184. # -DPXE_DHCP_STRICT
  185. # Strict compliance of the DHCP request packets
  186. # with the PXE specification as published by
  187. # Intel. This may or may not be a good thing
  188. # depending on your view of whether requesting
  189. # vendor options which don't actually exist is
  190. # pointless or not. You probably want this
  191. # option if you intend to use Windows RIS or
  192. # similar.
  193. #
  194. # Obscure options you probably don't need to touch:
  195. #
  196. # -DZPXE_SUFFIX_STRIP
  197. # If the last 5 characters of the filename passed to Etherboot is
  198. # ".zpxe" then strip it off. This is useful in cases where a DHCP server
  199. # is not able to be configured to support conditionals. The way it works
  200. # is that the DHCP server is configured with a filename like
  201. # "foo.nbi.zpxe" so that when PXE asks for a filename it gets that, and
  202. # loads Etherboot from that file. Etherboot then starts up and once
  203. # again asks the DHCP server for a filename and once again gets
  204. # foo.nbi.zpxe, but with this option turned on loads "foo.nbi" instead.
  205. # This allows people to use Etherboot who might not otherwise be able to
  206. # because their DHCP servers won't let them.
  207. #
  208. # -DPOWERSAVE
  209. # Halt the processor when waiting for keyboard input
  210. # which saves power while waiting for user interaction.
  211. # Good for compute clusters and VMware emulation.
  212. # But may not work for all CPUs.
  213. #
  214. # @/OptionDescription@
  215. # These default settings compile Etherboot with a small number of options.
  216. # You may wish to enable more of the features if the size of your ROM allows.
  217. # For prompting and default on timeout
  218. # CFLAGS+= -DASK_BOOT=3 -DBOOT_FIRST=BOOT_NIC
  219. # If you would like to attempt to boot from other devices as well as the network.
  220. # CFLAGS+= -DBOOT_SECOND=BOOT_FLOPPY
  221. # CFLAGS+= -DBOOT_THIRD=BOOT_DISK
  222. # CFLAGS+= -DBOOT_INDEX=0
  223. # If you prefer the old style rotating bar progress display
  224. # CFLAGS+= -DBAR_PROGRESS
  225. # Show size indicator
  226. # CFLAGS+= -DSIZEINDICATOR
  227. # Enabling this creates non-standard images which use ports 1067 and 1068
  228. # for DHCP/BOOTP
  229. # CFLAGS+= -DALTERNATE_DHCP_PORTS_1067_1068
  230. # Enabling this makes the boot ROM require a Vendor Class Identifier
  231. # of "Etherboot" in the Vendor Encapsulated Options
  232. # This can be used to reject replies from servers other than the one
  233. # we want to give out addresses to us, but it will prevent Etherboot
  234. # from getting an IP lease until you have configured DHCPD correctly
  235. # CFLAGS+= -DREQUIRE_VCI_ETHERBOOT
  236. # EXPERIMENTAL! Set DHCP_CLIENT_ID to create a Client Identifier (DHCP
  237. # option 61, see RFC2132 section 9.14) when Etherboot sends the DHCP
  238. # DISCOVER and REQUEST packets. This ID must UNIQUELY identify each
  239. # client on your local network. Set DHCP_CLIENT_ID_TYPE to the
  240. # appropriate hardware type as described in RFC2132 / RFC1700; this
  241. # almost certainly means using '1' if the Client ID is an Ethernet MAC
  242. # address and '0' otherwise. Set DHCP_CLIENT_ID_LEN to the length of
  243. # the Client ID in octets (this is not a null terminated C string, do
  244. # NOT add 1 for a terminator and do NOT add an extra 1 for the
  245. # hardware type octet). Note that to identify your client using the
  246. # normal default MAC address of your NIC, you do NOT need to set this
  247. # option, as the MAC address is automatically used in the
  248. # hwtype/chaddr field; note also that this field only sets the DHCP
  249. # option: it does NOT change the MAC address used by the client.
  250. # CFLAGS+= -DDHCP_CLIENT_ID="'C','L','I','E','N','T','0','0','1'" \
  251. # -DDHCP_CLIENT_ID_LEN=9 -DDHCP_CLIENT_ID_TYPE=0
  252. # CFLAGS+= -DDHCP_CLIENT_ID="0xDE,0xAD,0xBE,0xEF,0xDE,0xAD" \
  253. # -DDHCP_CLIENT_ID_LEN=6 -DDHCP_CLIENT_ID_TYPE=1
  254. # EXPERIMENTAL! Set DHCP_USER_CLASS to create a User Class option (see
  255. # RFC3004) when Etherboot sends the DHCP DISCOVER and REQUEST packets.
  256. # This can be used for classification of clients, typically so that a
  257. # DHCP server can send an appropriately tailored reply. Normally, a
  258. # string identifies a class of to which this client instance belongs
  259. # which is useful in your network, such as a department ('FINANCE' or
  260. # 'MARKETING') or hardware type ('THINCLIENT' or 'KIOSK'). Set
  261. # DHCP_USER_CLASS_LEN to the length of DHCP_USER_CLASS in octets.
  262. # This is NOT a null terminated C string, do NOT add 1 for a
  263. # terminator. RFC3004 advises how to lay out multiple User Class
  264. # options by using an octet for the length of each string, as in this
  265. # example. It is, of course, up to the server to parse this.
  266. # CFLAGS+= -DDHCP_USER_CLASS="'T','E','S','T','C','L','A','S','S'" \
  267. # -DDHCP_USER_CLASS_LEN=9
  268. # CFLAGS+= -DDHCP_USER_CLASS="5,'A','L','P','H','A',4,'B','E','T','A'" \
  269. # -DDHCP_USER_CLASS_LEN=11
  270. # Enabling this causes Etherboot to ignore Etherboot-specific options
  271. # that are not within an Etherboot encapsulated options field.
  272. # This option should be enabled unless you have a legacy DHCP server
  273. # configuration from the bad old days before the use of
  274. # encapsulated Etherboot options.
  275. # CFLAGS+= -DALLOW_ONLY_ENCAPSULATED
  276. # Disable DHCP support
  277. # CFLAGS+= -DNO_DHCP_SUPPORT
  278. # Specify a default bootfile to be used if the DHCP server does not
  279. # provide the information. If you do not specify this option, then
  280. # DHCP offers that do not contain bootfiles will be ignored.
  281. # CFLAGS+= -DDEFAULT_BOOTFILE=\"tftp:///tftpboot/kernel\"
  282. # Limit the delay on packet loss/congestion to a more bearable value. See
  283. # description above. If unset, do not limit the delay between resend.
  284. # CFLAGS+= -DBACKOFF_LIMIT=5 -DCONGESTED
  285. # More optional features
  286. # CFLAGS+= -DTRY_FLOPPY_FIRST=4
  287. # CFLAGS+= -DEXIT_IF_NO_OFFER
  288. # Multicast Support
  289. # CFLAGS+= -DALLMULTI -DMULTICAST_LEVEL1 -DMULTICAST_LEVEL2
  290. # Etherboot as a PXE network protocol ROM
  291. # CFLAGS+= -DPXE_IMAGE -DPXE_EXPORT
  292. # Etherboot stricter as a PXE network protocol ROM
  293. # CFLAGS+= -DPXE_DHCP_STRICT
  294. # Support for PXE emulation. Works only with FreeBSD to load the kernel
  295. # via pxeboot, use only with DOWNLOAD_PROTO_NFS
  296. # CFLAGS+= -DFREEBSD_PXEEMU
  297. # Garbage from Makefile.main temporarily placed here until a home can
  298. # be found for it.
  299. # NS8390 options:
  300. # -DINCLUDE_NE - Include NE1000/NE2000 support
  301. # -DNE_SCAN=list - Probe for NE base address using list of
  302. # comma separated hex addresses
  303. # -DINCLUDE_3C503 - Include 3c503 support
  304. # -DT503_SHMEM - Use 3c503 shared memory mode (off by default)
  305. # -DINCLUDE_WD - Include Western Digital/SMC support
  306. # -DWD_DEFAULT_MEM- Default memory location for WD/SMC cards
  307. # -DWD_790_PIO - Read/write to WD/SMC 790 cards in PIO mode (default
  308. # is to use shared memory) Try this if you get "Bogus
  309. # packet, ignoring" messages, common on ISA/PCI hybrid
  310. # systems.
  311. # -DCOMPEX_RL2000_FIX
  312. #
  313. # If you have a Compex RL2000 PCI 32-bit (11F6:1401),
  314. # and the bootrom hangs in "Probing...[NE*000/PCI]",
  315. # try enabling this fix... it worked for me :).
  316. # In the first packet write somehow it somehow doesn't
  317. # get back the expected data so it is stuck in a loop.
  318. # I didn't bother to investigate what or why because it works
  319. # when I interrupt the loop if it takes more then COMPEX_RL2000_TRIES.
  320. # The code will notify if it does a abort.
  321. # SomniOne - somnione@gmx.net
  322. #
  323. # 3C90X options:
  324. # Warning Warning Warning
  325. # If you use any of the XCVR options below, please do not complain about
  326. # the behaviour with Linux drivers to the kernel developers. You are
  327. # on your own if you do this. Please read 3c90x.txt to understand
  328. # what they do. If you don't understand them, ask for help on the
  329. # Etherboot mailing list. And please document what you did to the NIC
  330. # on the NIC so that people after you won't get nasty surprises.
  331. #
  332. # -DCFG_3C90X_PRESERVE_XCVR - Reset the transceiver type to the value it
  333. # had initially just before the loaded code is started.
  334. # -DCFG_3C90X_XCVR - Hardcode the tranceiver type Etherboot uses.
  335. # -DCFG_3C90X_BOOTROM_FIX - If you have a 3c905B with buggy ROM
  336. # interface, setting this option might "fix" it. Use
  337. # with caution and read the docs in 3c90x.txt!
  338. #
  339. # See the documentation file 3c90x.txt for more details.
  340. #
  341. # CS89X0 (optional) options:
  342. # -DISA_PROBE_ADDRS=list
  343. # Probe for CS89x0 base address using list of
  344. # comma separated hex addresses; increasing the
  345. # address by one (0x300 -> 0x301) will force a
  346. # more aggressive probing algorithm. This might
  347. # be neccessary after a soft-reset of the NIC.
  348. CFLAGS_3c503 = -DINCLUDE_3C503 # -DT503_SHMEM
  349. CFLAGS_ne = -DINCLUDE_NE -DNE_SCAN=0x300,0x280,0x320,0x340,0x380
  350. CFLAGS_ns8390 = -DINCLUDE_NS8390 # NE2000/PCI!
  351. CFLAGS_wd = -DINCLUDE_WD -DWD_DEFAULT_MEM=0xCC000