您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870
  1. Major changes from 1.0 to 1.1
  2. + Everywhere: Can compile two versions of the code, under gcc or bcc
  3. (Bruce Evan's cc), so that 16-bit boot PROMs can be made. See
  4. netboot-16/README.16 for more details.
  5. + Everywhere: Removed duplicate defines, e.g. everybody defined their
  6. own ID for ethernet address size (6). Put IDs for magic numbers in
  7. various places. Still some inconsistency, ETH_ and ETHER_ are used.
  8. + Everywhere: Added prototypes of functions to netboot.h. Removed
  9. unused variables.
  10. + Makefiles: Rewritten.
  11. + netboot.h: Added define for TFTP_MAX_PACKET = 512. Increased TIMEOUT
  12. for tftp packets to 180 (about 10 seconds) so that tftp servers would
  13. be able to retransmit blocks.
  14. + main.c: Rewrote tftp(). Original was intended to get only one block
  15. and the strain on the structure due to modifications was showing.
  16. Increased config_buffer size to TFTP_MAX_PACKET+1 to avoid special
  17. casing data length=512.
  18. + linuxloader.c: Cleaned up the code in some places, especially
  19. linux_tftp. Moved the bootp reply block into bss space instead of a
  20. fixed location such as 0x90000.
  21. + ns8390.c: Removed one bug regarding packet length. packetlen was
  22. wrongly shortened when packets wraparound the ring buffer.
  23. + 3c509.c: Changed some of the gotos to returns. Removed ARP code since
  24. that's already done elsewhere. Removed interrupt enable and Rx early
  25. notification (we can't do anything with the packet until it's complete
  26. anyway).
  27. Major changes from 1.1 to 1.2
  28. + Small bug in makerom.c. Extra semicolon shortened for loop and made
  29. double checking code invalid.
  30. + Added version identification to startup string.
  31. + Gathered external declarations into netboot.h.
  32. + New compile time option for netboot-32. If INT19H is not defined,
  33. then boot ROM takes control as soon as BIOS scans it. This may solve
  34. the problem of some BIOSes not calling the boot ROM at INT19H. This
  35. may be when disks are detected by the BIOS, i.e. the machine is not
  36. truly diskless.
  37. + Added a new program, test.c, for making test ROMs to verify that
  38. the BIOS recognises the ROM.
  39. + New directory contrib contains contributed code. Currently contains
  40. masq by Gerd Knorr: make a boot floppy without DOS
  41. comboot-1.0 by Adam J. Richter: also make a boot floppy without DOS.
  42. + New mknbi-1.4 from Gero Kuhlmann and Markus Gutschke. This one handles
  43. the new bzImage format.
  44. Bumped up version to 2.0 because we are so listed in the Linux 2.0
  45. distribution and this would avoid confusion.
  46. Major changes from 2.0 to 2.1
  47. + Added LSM for transname-patch to contrib.
  48. + Added patch for serial console from Claus Heine
  49. <claus AT momo PERIOD math PERIOD rwth-aachen PERIOD de>.
  50. + Claus Heine contributed patches to the 2.0.21/22 kernel sources to
  51. allow NFS swap.
  52. + Markus Gutschke provided fixes to start2.S so that main can return to
  53. the ROM code if user doesn't want to ROM boot.
  54. + Added code to main.c to timeout on the prompt and assume Y or N
  55. for the answer. Timeout and answer configurable.
  56. + Made NE1/2000 probe addresses configurable from Makefile. Fixed up
  57. autoscan code.
  58. + Made NFS_BOOT a configurable option. By undefining it, only tagged
  59. file load is supported but ROMs are under 8k.
  60. + ROMSIZE is not used by makerom now. -s flag controls size of ROM
  61. at runtime. So don't need to recompile makerom if ROMSIZE changes.
  62. + Updated netboot-16 for the latest dev tools from the Linux-MT
  63. project. Use the size.c from there.
  64. + Got rid of _main() in main.c, instead using #ifdef ELF in start2.S.
  65. ELF is preferred now anyway.
  66. + Changed bcompare to standard bcmp and reversed sense of result.
  67. Reason: to use standard library if available, e.g. Netboot-16.
  68. + Common Makefile for 32 bit and 16 versions, with differences in
  69. Config files.
  70. Major changes from 2.1 to 2.2
  71. + New device driver for the Crystal Semiconductor CS89x0 chipset family.
  72. (because of legal problems, this code is currently in the "contrib"
  73. directory.)
  74. + Added support for loading BOOTP extension files (c.f. RFC1533).
  75. + If we have to go thru a gateway, then use the one that has been used for
  76. the BOOTP daemon. If the BOOTP daemon is directly accessible, then use
  77. the first entry in the "gw" gateway list instead.
  78. + For all retries, back off according to RFC951 by randomizing the timeouts
  79. and exponentially increasing them until an average of one minute is
  80. reached.
  81. + Warn if code will not fit into chosen ROM size. Happens only if the
  82. autosizing in the Makefile somehow fails.
  83. + Modified the code for enabling the A20 gate; this could increase
  84. compatibility, but I still have to hear from users.
  85. + The copyright message will now reflect, which features have been
  86. enabled at compile time.
  87. + Added support for selecting different boot images from a menu. As a side
  88. effect, this can be used to upgrade the ROM without having to burn a new
  89. image (c.f. README.VendorTags).
  90. + Display a "message of the day" that is provided by the BOOTP daemon.
  91. + The sanity check for detecting a Linux kernel was too strong to properly
  92. recognize a 2.1.x kernel; this has been fixed.
  93. + Trys to negotiate for 1432 octect blocks, if the TFTP daemon knows
  94. about RFC1783.
  95. + We can optionally boot from local disk, if the BOOTP server cannot
  96. be contacted.
  97. + Restructured directories: got rid of netboot-freebsd to reduce confusion
  98. with Gero Kuhlmann's netboot, moved documentation to doc and renamed
  99. directories to be more in line with Unix conventions. Edited documentation.
  100. + Created a dispatch table for NIC routines so that we can include one
  101. or more drivers in one binary. Renamed all entry points in the driver
  102. sources. Created two new files, config.c, which holds the dispatch
  103. table and can be conditionally compiled; and nic.c which contains the
  104. extern variables referenced by the drivers.
  105. + Automatically decide what size ROM is needed by doing a size and then
  106. choosing the correct startup object. Currently caters for 8k, 16k and
  107. 32k ROMs.
  108. + Optionally include a simple interpreter for ANSI escape sequences. This
  109. allows for fancier boot menus.
  110. + Remove patches directory which is mostly relevant to 1.x kernels only.
  111. Everybody should use 2.x kernels now. If for some reason you need those
  112. patches, get an older release of etherboot.
  113. + Fix Makefile to work even if . not on PATH.
  114. + Sadly, 32 bit ROMs are now > 8kb. We will try to reduce the size by
  115. conditionals in a later release. For now, use version 2.1 if your NIC
  116. won't take > 8kb ROMs.
  117. + Release as 3.0b1 because of the large amount of changes.
  118. + Fixed a few problems with the code for ANSI escape sequences and
  119. added optional support for displaying graphics.
  120. + Optional support for password protected boot images.
  121. + Optional support for booting from block devices (floppy, hd).
  122. + The bootp server can pass additional parameters to the loaded kernel
  123. image (currently, this only applies to Linux) and the user can be
  124. allowed to edit a commandline; the latter is optionally protected by
  125. a password scheme.
  126. + Set the warm-boot flag when the main routine is entered.
  127. + Release as 3.0b2
  128. + Added code for updating the FlashCard EPROM over the network
  129. (contrib/flashimg).
  130. + Added very simple code for turning a ROM image into a network loadable image.
  131. This is useful for debugging, but some users without flash EPROMs might
  132. appreciate the possibility to load a fully fledged image from a very basic
  133. configuration.
  134. + Optional support for compressing the ROM images. Please read
  135. doc/COPYING.compressor before using this feature.
  136. + Sync'd our source tree with Gero's netboot-0.5; this means that you now need
  137. the as86 from the ELKs project in order to recompile all of the files. This
  138. should not affect normal usage, though.
  139. + Added "mknbi-blkdev" for booting from local block devices.
  140. + Fixed some bugs in ppmtoansi.c and bootmenu.c
  141. + Renamed reference compressor implementation to compressor.exp otherwise
  142. make tries to use it and it should not be turned on by default.
  143. + Zero'ing BSS in 16-bit version has to be done to _end, not to A0000
  144. because it's executing in a segment, not in flat address space in 16
  145. bit mode.
  146. + Ken Yap contributed a quick and dirty Perl script for people who use
  147. netboot to test ELKS. So far I'm the only one I know of; maybe the
  148. others are silent. :-(
  149. + Release as 3.0
  150. Major changes from 3.0 to 3.1
  151. + 4 versions of etherboot can be built for a NIC: .com for testing and
  152. .rom for burning into EPROM, and corresponding compressed versions:
  153. .lzcom and .lzrom.
  154. + The loaders are now separate programs which are prepended to the
  155. etherboot binary. This allows them (plain and uncompressing versions) to
  156. be maintained separately and gives a bit more RAM to the etherboot code.
  157. + No need to define ROMSIZE in the build. makerom automatically discovers
  158. the ROM size needed and fills in the size field in the ROM. This
  159. simplifies the build procedure.
  160. + 16 bit versions use the same loaders as the 32 bit version. Also fixed
  161. two bugs in the 16 bit versions: (1) a non-8086 instruction in zloader,
  162. (2) setting warm-boot flag in main which zapped some code.
  163. + Fixed a documentation bug on the ANSI escape sequences.
  164. + Include netboot-0.5.3 distribution from Gero Kuhlmann.
  165. + Included some contributions from Dickon.Reed AT cl PERIOD cam PERIOD
  166. ac PERIOD uk: Running display of Kbytes loaded, line of delimiters after
  167. loading complete, a temporary hack to address timing problems with the
  168. 3C509, and some Makefile cleanup. The first two changes need to be
  169. enabled in Config with defines.
  170. + mknbi-blkdev seems to have been left out by Gero Kuhlmann. Add to
  171. contrib directory. You probably have to make a symlink to it from
  172. the netboot-0.5.2 directory.
  173. + Release as 3.1
  174. Major changes from 3.1 to 3.2
  175. + 16 bit version now can load to extended memory, if it exists. On
  176. a 8086/8 this will silently fail.
  177. + Cleaned up interface between main body of code and NIC drivers. No
  178. global variables referenced in NIC driver, everything is passed
  179. through a structure. Only the probe function is visible outside,
  180. pointers to the others are returned in the structure.
  181. + Implemented autoprobe for 3c503. Also simplifies code at same time.
  182. + Removed ARP response code in ns8390.c. Don't think we need to respond
  183. to ARP requests because other machines will do gratuituous ARP when
  184. boot code sends out bootp request. Are there cases where this is not
  185. true? Gateways?
  186. + Added 1 second timeout to routine that clears the keyboard buffer
  187. in case there is no keyboard.
  188. + Added a skeleton driver that can be used as a template for new NIC
  189. drivers.
  190. + ./lzhuf in Makefile so that it will run even if . is not on path.
  191. + Fixed comboot to work on 286s also. Won't work yet on 8086/8.
  192. + Fixed mknbi-blkdev to configure properly under netboot-0.7.
  193. + Added David Munro's PCI code adapted from Linux. Currently has entries
  194. for PCI NE2000 clones. Generalised it to probe other PCI cards later on.
  195. + Moved twiddle() outside NIC driver except where used to provide a delay.
  196. + Fixed bug in Makefile spotted by Ton Biegstraaten. Should prepend
  197. ZLOADER to make all.lzcom, not LOADER.
  198. + Charlie Brady donated a NE2100 (LANCE) card, so Ken Yap wrote a driver
  199. for it. Should work for other LANCE (7990, etc) based cards with some
  200. modifications.
  201. + Markus Gutschke wrote rom-scan, and it is in contrib/.
  202. + Hack rom-scan.c so that a DOS version can be compiled.
  203. + Removed all.* targets from Makefile. The NIC specific loaders should be
  204. used in preference as the all.* loaders can run out of memory.
  205. + Added a disable routine to dispatch table so that cards can be turned
  206. off before the loaded code is executed.
  207. + Make INT19H the default.
  208. + Rogier Wolff persuaded AW computer systems to contribute the Intel
  209. EtherExpressPro 100 driver. The binary to hex converter in contrib/
  210. is also from Rogier Wolff. Part of the work is sponsored by BitWizard
  211. NL (www.bitwizard.nl).
  212. + Distribute with a subset of netboot-0.7.2 that doesn't have the bootrom
  213. portion.
  214. + Release as 3.2.
  215. Major changes from 3.2 to 4.0
  216. + Merged in Vlad Lungu's patches for DHCP support, ifdef'ed by DHCP_SUPPORT.
  217. + XID matching fix also provided by Vlad Lungu.
  218. + Merged in William Arbaugh's patches to make eepro driver work properly.
  219. + Add to contrib/ better bin2intelhex from Jean Marc Lacroix.
  220. + Patches from Jim Hague (thanks!) for the following:
  221. * Added PIO mode for 3c503 to ns8390.c. Changed the card detection to
  222. detect shared memory or PIO and use the selected one, and removed
  223. a jumper check that failed on the Bull (no jumpers).
  224. * Added more #ifdefs to ns8390.c to include only code relevant to the
  225. card being compiled, and removed unnecessary run-time card vendor
  226. behaviour branches - it's all now #ifdefd.
  227. * Added a -3 parameter to makerom to set the last two bytes to 0x80.
  228. These are the values they have in the 3Com Etherboot image that was
  229. in the Bull. (Also on the 3c503 card I have - Ken.) Also altered the
  230. Makefile to add this parameter when building a 3c503 image.
  231. * Modifies lzhuf.c, objdump86.c & size86.c to work on either-endian systems.
  232. * Adds a -DT503_AUI config paramter to let you choose AUI or BNC on
  233. 3c503s. Previously it defaulted to AUI, and you had to change the
  234. code to alter it.
  235. * Changed the BCC include directory to /usr/bcc/include. If you use the
  236. BCC include files they don't define u_char, u_short etc. I've added
  237. these into linuxdef.h, ifdef'd on BCC.
  238. * Adds a trivial Linux 3c503 driver patch to the contrib directory
  239. to let it spot these 'ere Bull things.
  240. + Charlie Brady confirmed that the Lance driver works with PCI so there
  241. is a new lancepci driver now.
  242. + Removed support for NFS_BOOT; only TFTP booting supported now.
  243. + Removed support for linear images; only tagged images supported now.
  244. + Removed PRIORIZEBOOTPKERNEL and BOOTPKERNELONLY. Bootp reply must
  245. specify kernel name.
  246. + Bug fix for 16 bit version of 3c509 driver: sign bit propagation bug.
  247. + Revert to non-pausing versions of out[bw] and inb for NEx000 driver
  248. because of reports of timimg problems on some cards.
  249. + New driver for NI6510. Just a simple tweak of the lance driver for
  250. different ID bytes and different register offsets. According to the
  251. NI6510 driver in Linux, the NI6510 Etherblaster is more like the NE2100
  252. and would be detected by the NE2100 driver. So use that one instead.
  253. + New drivers for 3c507 and NI5210, both of which use the i82586 chip. It
  254. works properly for both now. I needed to have enough receive buffers to
  255. make sure i82586 never goes into an out of resources state. 3c507 driver
  256. has one quirk, it only responds after second bootp request. I seem to
  257. remember something about this problem of losing the first packet after
  258. initialisation in early Linux discussions. I am also now convinced
  259. that Intel designers have weird minds. BTW, NI5210 driver assumes 8k
  260. RAM because if you put the ROM on the NIC you can only have 8k RAM. If
  261. you are putting the ROM off-board and you want 16k, well, talk to me.
  262. + Call nic_disable routine just before jumping to loaded image. This
  263. does nothing in most drivers, but may have side effects as the nic_reset
  264. routine used to be called instead.
  265. + One of those "why I didn't think of it before" ideas: A modified version
  266. of comboot, called floppyload, that is prepended to the .rom image rather
  267. than the .com image and then both written raw to a floppy for testing the
  268. bootrom. All we have to do is jump to an entry point in (z)loader that
  269. skips the INT19H stuff. Relocation will happen automatically. Now the
  270. .com images and comboot are superfluous, unless one is masochistic enough
  271. to want to try to test under DOS.
  272. Added .fd0 targets to Makefile. Saying make <card>.fd0 will make
  273. floppyload.bin and <card>.rom, and cat both to /dev/fd0. Naturally the
  274. drive must be writable and you must have a floppy in the drive.
  275. + New driver for Tiara (Fujitsu EtherStar). This was one of the easiest
  276. drivers to write. But the chip apparently has some quirks; there is no
  277. Linux driver for it in the standard distribution and the email address
  278. of someone who wrote an alpha driver is invalid. Perhaps I'll bump into
  279. an AT1700 (which has a similar chip) one day and be able to reuse a lot
  280. of the code.
  281. + Updated contrib/mkelksnbi for ELKS 0.0.68.
  282. + Confirmed that the SMC8216 driver works. 8416 not tested, it's a PnP
  283. card. Can anybody confirm this?
  284. + New contributed software: p910nd, a tiny printer daemon suitable for
  285. diskless hosts.
  286. + Made ANSIESC work for Etherboot/16.
  287. + Fixed Makefile and Config.* so that it works with old binutils.
  288. + Included a subset of netboot-0.7.3.
  289. + Released as version 4.0.
  290. Changes between 4.0 and 4.1
  291. + Patches by Andrew Coulthurst for eepro100b.
  292. + Patches by Doug Ambrisko for booting Windows95 after answering N to
  293. the boot from network question. Added conditional code to cope with
  294. broken DHCP server and TAG 128.
  295. + Put version and driver identifier at end of ROM image if it fits,
  296. to help identify ROMs in future.
  297. + Capture ROM segment address and length to help choose between multiple
  298. NICs later.
  299. + Don't clear all of memory because it will destroy return address
  300. on stack.
  301. + Changes to comboot-1.2 (although obsolete) to run on 8088s.
  302. + New version 0.2 of p910nd, a non-spooling printer daemon.
  303. + Patches by Alex Harin to prepended loaders and makerom to generate PnP
  304. ready ROMs. Modified makerom to automatically detect PnP and PCI headers
  305. and do the right thing. Added option to change the vendor and device IDs.
  306. + Augmented documentation for 2.1 and above kernels. Kernel now wants to
  307. mount /tftpboot/<hostname in bootptab> rather than /tftpboot/<ip address>
  308. as the root FS.
  309. + Changed all the outb* and outw calls in drivers (except eepro) to be
  310. OUTB* and OUTW, then defined macros to translate to out[bp]* for both
  311. Etherboot/32 and Etherboot/16, instead of pasting macros from Linux
  312. include files because apparently they've changed in 2.1. At the same
  313. time reversed the arguments in start16.S for outb and outw to match the
  314. Linux convention. Unfortunately the out[bw] usage came that way from
  315. FreeBSD. Someday I'll reverse the arguments in the C files properly.
  316. For any new driver writers, you should use the Linux order now.
  317. + New contributed utility, disnbi for decoding and extracting network
  318. boot images.
  319. + Martin Atkins contributed mntnbi for mounting DOS NBIs.
  320. + Peter Dobcsanyi contributed vendor and device IDs for the Netvin
  321. NE2000/PCI clone.
  322. + adam AT mudlist PERIOD eorbit PERIOD net contributed RARP code as
  323. alternative to BOOTP/DHCP. Activated by RARP_NOT_BOOTP define.
  324. + Added link to Claus-Justus Heine's NFS swap Web page and updated the
  325. contrib directory.
  326. + Disabled max packet length check in ns8390.c. Caused spurious Bogus
  327. packet messages in some cases and doesn't seem that useful a sanity
  328. check anyway.
  329. + Daniel Engstrom contributed a SMC9000 driver.
  330. + Didier Poirot contributed an Etherpower II (EPIC 100) driver.
  331. + Added bug fix by Attila Bogár for bootmenu.c and patch to main.c to
  332. remove looping menus on failure. Also code for ARP replies and TFTP
  333. block retransmit (#ifdefed because controversial).
  334. + Code cleanup of tftp and tftpd also by Attila Bogár.
  335. + Nathan R. Neulinger fixed a bug with block being declared short instead
  336. of u_short in tftpd.c, which limited transfers to 32k blocks. Fixed
  337. problem with field tu_block being declared as signed short in many
  338. platforms by including fixed version of tftp.h. Fixed tftp also for
  339. good measure.
  340. + New mini-HOWTO on a "ssh terminal".
  341. + Andreas Mack pointed out that eepro100 doesn't compile on 2.1 and
  342. 2.2 kernels. Removed unnecessary include of bios32.h and reliance on
  343. definition of virt_to_bus in kernel headers in eepro100.c, epic100.c
  344. and lance.c.
  345. + David Sharp contributed a Tulip driver written for FreeBSD netboot.
  346. Ken Yap ported to Etherboot. Not tested yet because no hardware.
  347. + Replaced references to arptable[ARP_CLIENT].node to nic->node_addr in
  348. eepro100.c and epic100.c as they should be.
  349. + Greg Beeley of LightSys Technology Services contributed a 3c905b
  350. driver. Be sure to read the release notes in 3c905b.txt.
  351. + Günter Knauf suggested making the prompt strings more generic and to
  352. put a newline after the answer. Beware, N now means Network boot and
  353. not No to network boot.
  354. + Alex Nemirovsky contributed some patches for BIOSes that use an extended
  355. space at the top of 640k. Also some code for BIOSes that don't implement
  356. BIOS32 correctly or at all.
  357. + Use PCI extension BIOS header only for PCI cards, all others use legacy
  358. extension BIOS header.
  359. + Klaus Espenlaub contributed various cleanup patches to the code. Also
  360. introduced Rainer Bawidamann's code, see next paragraph.
  361. + Rainer Bawidamann contributed a Realtek 8139 driver.
  362. + Simplified rules for building .bin files, use -b of as86 so we
  363. don't need ld86 or objdump86 now. But later found that a fixed as86 is
  364. required. So supply preassembled binaries. The keen hackers can get the
  365. fixed tools.
  366. + Georg Baum contributed a Schneider & Koch G16 driver. Only the
  367. 32 bit version works at the moment; even though the 16 bit version
  368. compiles, it won't work because the current code assumes flat memory
  369. addressing. Anybody who needs the 16 bit version should feel free to
  370. fix it.
  371. + Reduce size of ROM image loaded by floppyboot.bin from 64kB to 32kB
  372. for a slight speedup in loading. None of the images are even 32kB anyway.
  373. + Updated some of the documents in doc/sgml.
  374. + Klaus Espenlaub sent in a totally revamped start32.S, using the code16
  375. and code32 directives in recent GNU as (so if this file won't assemble
  376. maybe your as version is not recent enough). Also patches to the menu
  377. handling code.
  378. + jluke AT deakin PERIOD edu PERIOD au sent in a fix for the WD/SMC8013
  379. long ago which I finally got around to verifying.
  380. + start16.o and start32.o are supplied for those people who have problems
  381. compiling start*.S with as/as86.
  382. Released as Etherboot-4.2.0
  383. + One line fix to 3c509b by Greg Beeley for Wake-On-LAN support.
  384. + Added patches by Klaus Espenlaub that I forgot.
  385. + Made AS_PSEUDOS not the default, assume that people have sufficiently
  386. up-to-date GNU as. If not they can uncomment that line.
  387. Released as Etherboot-4.2.1
  388. + Disable 3c509 after loading finished or port may be unusable.
  389. + Woops, forgot to up the version's last digit in the last release.
  390. + Stephan Bauer sent in a device ID for config.c for 21142 chip Tulips.
  391. + Ifdef out input overrun recovery code (it's really only needed for
  392. NE2000s) and use SHMEM by default for 3c503s to bring the ROM size down
  393. below 8kB.
  394. + Added code to start32.S to detect < 386 and exit so it doesn't hang
  395. the computer. Doesn't print a message yet.
  396. + Changed README.sgml to recommend that TFTP use a separate directory
  397. from NFS, /tftpdir. Added sample configuration file for DHCPD and caveat
  398. about the name of the root directory when using DHCPD.
  399. + Revamped atnetboot.sgml: use mtools most of the time, write about a
  400. few example applications.
  401. + Quick Perl script for converting bootptab to dhcpd.conf.
  402. Released as Etherboot-4.2.2
  403. + Forgot to put new version of src/start32.o. Not urgent though, the
  404. extra code only guards against Etherboot/32 being executed on < 386.
  405. + Supply version preassembled start32.o with ANSIESC and FLOPPY defined
  406. for those with a deficient as. Define dummy handleansi routine in
  407. ansiesc.c so that it will still link even if this start32.o is used.
  408. + Edited *.asm so that they can be assembled by either as86 (ELKS version)
  409. or nasm.
  410. + Changed Makefile so that one can choose between no as86, as86 or nasm.
  411. + Added Mark Burazin's conditional code for Compex RL2000 PCI NIC.
  412. + Increase delay during probe phase to 10ms as 1ms is too low for some
  413. 3c509 boards. Donald Becker's Linux driver hints that > 2ms is needed
  414. to be safe. Also call t509_disable in case board was active.
  415. + Update README.sgml date and version.
  416. Released as Etherboot 4.2.3.
  417. + rtl8139.c: Reduce the number of transmit buffers to reduce footprint.
  418. Remove polling loop in *_loop(), caller already does the looping.
  419. + main.c: Fix code indentation in bootp().
  420. + Small corrections to documentation.
  421. Released as Etherboot 4.2.4.
  422. + Matthias Meixner found a longstanding bug in rtl8139.c where it was
  423. testing the wrong bit for the existence of a packet in the buffer.
  424. + Added paragraph to documentation about caveats for hosting NFS root
  425. on a different architecture.
  426. Released as Etherboot 4.2.5.
  427. + Updated mklnim for RH6.0 which uses a different floppy image and
  428. requires 'network' to be appended to kernel parameters.
  429. + Reversed sense of #ifdef DHCP_SUPPORT to #ifndef NO_DHCP_SUPPORT and
  430. so forth, i.e. the default is with DHCP support.
  431. + Suggest reducing options for rtl8139 driver to minimise footprint in
  432. release notes.
  433. + Jim McQuillan provided changes to support the SMC1211, which uses the
  434. RTL8139 chip.
  435. + Changed lret in start32.S to int $0x19 so that it doesn't depend on
  436. the return location being there.
  437. Released as Etherboot 4.2.6
  438. + Succeeded in booting FreeDOS with the kernel in the tagged image rather
  439. than on the ramdisk, i.e. the boot process jumps directly to the kernel
  440. in memory. The utility is mkfreedosnbi in contrib/.
  441. + Additions to the documentation.
  442. Released as Etherboot 4.2.7
  443. + Matt Hortman pointed out that the BIOS clock value returned by INT1AH
  444. rolls over at midnight, causing delay loops that cross midnight to
  445. fail. Fix was to keep track of midnight crossings in currticks so that
  446. currticks' return value is monotonically increasing.
  447. + Added paragraph to documentation about editing PCI vendor and device
  448. IDs in Makefile if needed.
  449. + Merged in FreeBSD support code supplied by Doug Ambrisko. Thanks!
  450. Released as Etherboot 4.2.8
  451. + Cleaned up the FreeBSD support in osloader.c. Symbols to use in Config
  452. are to select image type, not FreeBSD specific now.
  453. + Added simple signature checking code in floppyload.asm in case somebody
  454. forgets to append a ROM image or tries to load a non-ROM image.
  455. + Merged in 3c90x and multiple PCI bus support by Steve Smith. Thanks!
  456. + Included NT-Diskless-Terminal HOWTO by Pavel Tkatchouk.
  457. + Included snapshot of H. Peter Anvin's rewrite of tftp.
  458. + Combined tftp and tftpd directories, and touched up Makefile to reflect
  459. normal Linux install directories.
  460. Released as Etherboot 4.2.9
  461. + NT-Diskless-Terminal HOWTO renamed to Diskless-From-NT.
  462. + One line fix to mknbi-dos to recognise FAT16 filesystems as legal.
  463. Updated first.S in mknbi-dos so that it can be assembled by nasm and is
  464. also suitable for FreeDOS with the right define. Still backward compatible
  465. with as86. Bug fix at line starting getnm3:.
  466. + Updated first.S in mknbi-linux so that it can be assembled by nasm also.
  467. + Locate bootp data block at 0x93C00-0x93FFF to free up 1024+ bytes in
  468. [0x98000-0x9FFFF]. Etherboot/32 only, business as usual for Etherboot/16.
  469. + Patch from Attila Bogár to make CONGESTED a compile option for
  470. TFTP_TIMEOUT. Also corrected spelling of his name in README.
  471. + Fixed start32.S to assemble correctly with gas version 2.95. Must
  472. define GAS295 in CFLAGS.
  473. + Add contrib/3c90xutil containing a utility for handling 3c90x EEPROMs
  474. in situ.
  475. + Update p910nd to 0.3. client.pl now checks if hostname is known and
  476. uses more convenient routines from Socket module.
  477. + Moved the Flashcard directory into a separate package as it's of
  478. limited interest.
  479. Released as Etherboot 4.2.10
  480. + Fixed bug introduced in 4.2.10 in code for handling bootp extension
  481. files.
  482. + Change in 3c90x.c so that it can compile under FreeBSD.
  483. + Patch to tulip.c from Nick Lopez to handle Macronix 98715 (Tulip clone).
  484. Released as Etherboot 4.2.11
  485. + Prefer RFC1533_GATEWAY to giaddr for routing tftp packets.
  486. + Print out both relay address and gateway address.
  487. + Stored arptable ipaddrs in network byte order. Makes everything simpler
  488. and we can get rid of convert_ipaddr. Now %I in printf and inet_ntoa
  489. have to deal with NBO. We reduce the footprint by ~100 bytes.
  490. + Renamed setip to more standard inet_ntoa and change argument type to
  491. suit, using in_addr.
  492. + Replaced bcmp by memcmp, bzero by memset, and bcopy by memcpy. Allows
  493. us to use optimised versions in inline assembler.
  494. + Replaced OUTB and OUTW by outb and outw with arguments reversed.
  495. Finally all the out macros are the same form as for Linux.
  496. + Replaced \r\n and \n\r in output strings with \n since putchar
  497. now prints \r before \n. Then changed printf("\n") to putchar('\n').
  498. Like Unix convention for strings now.
  499. + Got rid of test.c and Makefile rules connected with it.
  500. + Added patch to eepro100.c by Matt Hortman to correct PCI latency.
  501. + Merged in Marty Connor's ntulip.c. Now supports Macronix 98715 and
  502. Linksys LNE100TX.
  503. Released as Etherboot 4.2.12
  504. + Anders Larsen contributed mkQNXnbi, for generating tagged images from
  505. QNX kernels.
  506. + Bernd Wiebelt contributed code to request vendor tags in DHCP.
  507. + Fixed more bugs introduced in 4.2.10 in code for handling bootp
  508. extension files.
  509. Released as Etherboot 4.2.13
  510. + Marty Connor reduced RTL8139 footprint by using only one transmit
  511. buffer instead of 4. Now RTL8139 is reliable.
  512. + Moved initialised data declaration from ns8390.h to ns8390.c.
  513. + Contributed utilities for wake-on-LAN: wol.c (Bob Edwards) and wake.pl.
  514. + Makefile for 3c90xutil/romutil.c. -O is essential when compiling.
  515. + Happy year 2000!
  516. Released as Etherboot 4.4.0
  517. + VIA-Rhine driver contributed by Paolo Marini. Footprint reduced by
  518. Marty Connor.
  519. + Netgear FA310TX (Tulip clone, LC82C168 chip) support added by Marty
  520. Connor.
  521. + Support for 3C905C added by Marty Connor.
  522. + mklnim updated to support SuSE 6.x also.
  523. Released as Etherboot 4.4.1
  524. + New configuration file scheme to specify what ROMs are built.
  525. + Adam Fritzler contributed 3c529 (MCA version of 3c509) support in
  526. driver.
  527. + Marty Connor wrote a version of 3c90xutil/romutil for 905C NICs.
  528. + Günter Knauf contributed a wake on LAN CGI script.
  529. + Notes in contrib/eepro100notes on how to flash the EEPROM.
  530. + Happy Australia Day, 2000-01-26.
  531. Released as Etherboot 4.4.2
  532. + hwilmer AT gmx PERIOD de found a probe error in 3c507.c, shouldn't
  533. mask memory size with 0xffffL, this fails with 64kB memory. Also
  534. changed to use real-time-clock to timeout on initialisation of i82586
  535. rather than relying on decrementing a variable (which is CPU speed
  536. dependent).
  537. + James Pearson pointed out that ~ should be escaped as &tilde; in
  538. vendortags.sgml. Also cleaned up the 8-bit characters while I was at it.
  539. + Günter Knauf pointed out that if ASK_BOOT is defined, then key input
  540. echos twice. Also, CR doesn't select the default. Problem was that getchar
  541. converts all \r to \n then main.c was testing against \r instead of \n,
  542. and also that getchar() was echoing when it should leave it to the caller.
  543. Deleted code from getchar() and made it a function with no arguments.
  544. Also sent me a new version of mp-form.pl with mp-form.txt. Also suggested
  545. the good idea that the gateway and relay fields not be displayed if they
  546. are not used.
  547. + Bob Edwards sent in patches to ntulip.c to autodetect 100 Mb media
  548. for 21142/3 NICs.
  549. + Okuji Yoshinori found a small bug in main.c: for (retry1 = 0; retry < ..
  550. Don't know what effect it had.
  551. + Klaus Espenlaub sent patches which make the RTL8139 driver more
  552. reliable, see notes in rtl8139.c.
  553. + Russ Nelson gave permission to release cs89x0 driver with Etherboot.
  554. It's normally under GPL. Moved cs89x0 driver to src directory, removed
  555. cs89x0.sgml.
  556. + Clarified copyrights of files in distribution.
  557. Released as Etherboot 4.4.3
  558. + Klaus Espenlaub sent in some patches to overcome the 64K block rollover
  559. problem in tftp.
  560. + Bob Edwards, Paul Mackerras and Marty Connor worked out fixes to
  561. ntulip.c to handle 21142/3 Tulips properly.
  562. + Karsten Tinnefeld sent in a Makefile fragment for doc/sgml/Makefile
  563. to generate DVI and PS files using sgml2latex.
  564. + tulip.* renamed to otulip.*, ntulip.* renamed to tulip.*
  565. + Added FAQ and Writing an Etherboot Driver sections to README.
  566. + Woops, if and of swapped in dd command in atnetboot.sgml.
  567. Released as Etherboot 4.4.4
  568. + FUKUHARA Makoto supplied a patch for 4.4.4 for FreeBSD ELF booting
  569. with large tftp blocks which I missed putting in.
  570. + Small patch by Marty Connor to tulip.c to handle fast Tulips better.
  571. + Wrote small loader to load images from .com files.
  572. + Shusuke Nisiyama contributed a 3c595 (and may work for 3c590) driver.
  573. Released as Etherboot 4.4.5
  574. A major reorganisation by Klaus Espenlaub. Here are his notes, verbatim:
  575. The biggest change is the almost rewritten Makefiles (both in src and in
  576. doc - the one in doc is still reasonably simple). If you want to get
  577. an overview - basically one Makefile now builds both /16 and /32 ROMs.
  578. This involves quite a few make variables (similarly in Config), but it
  579. should be mostly self-explaining. I also converted the suffix rules to
  580. pattern rules, because it is the only way to keep the build directories
  581. for /16 and /32 apart.
  582. Generally all /32 code is compiled in bin32, all /16 code is compiled
  583. in bin16, and the code that works for both is in bin.
  584. The names (object files, images, but NOT the final ROMs) used during
  585. the build process for some PCI cards have changed (especially lancepci
  586. and nepci).
  587. I eliminated the driver.a file by adding yet more ugly code to genrules.pl
  588. (no, I'm not very proud of the code I added there - I hate perl, but
  589. at least it works), which now generates all sorts of make rules and
  590. dependency information. This eliminates the redundant recompile of all
  591. other drivers if you specified a specific target at the make command line.
  592. There are now automatic checks for the generated ROM size (3K safety
  593. margin are used to allow for 1K BIOS EBDA and 2K stack). This should
  594. avoid most of the cases in which the stack overwrites code and/or data,
  595. causing strange crashes.
  596. On to the real code - I rewrote both the ELF and a.out loading (the
  597. blocksize is now properly handled for all formats), and now most of the
  598. code is identical. Someone might want to merge the two. I verified that
  599. both a.out and ELF FreeBSD loading still works by booting the FreeBSD
  600. 2.2.8 and 3.4 install kernels (the ELF kernel you gave me didn't work
  601. for whatever reason). Actually I tested everything except NBI, but that
  602. code is completely unchanged.
  603. I eliminated config.h and created cards.h - just have a look and you
  604. should get the idea. The PCI/ISA prototype matching hack is now buried
  605. in there. All PCI drivers (and skel.c) have been converted to the new
  606. include file.
  607. The only file that is really new is nfs.c, which contains the code where
  608. I started my journey.
  609. The loader code is now merged into one file for both the normal and
  610. compressed case. Some bugs have been fixed along the way (the normal
  611. loader copied too much data, potentially crashing the machine). BTW: I
  612. removed the block copy from comboot, because the first thing the loader
  613. code does is - to copy the code to the right place. Also copying it to
  614. 0x80000 prevents compressed ROMs (though there is no way in the Makefile
  615. to create such a beast). Also the stack changing code was wrong -
  616. the overflow handling is missing: 0x9fxxxx-0x800000 is truncated to
  617. fit in the 16 bit register, which is not quite what one would expect.
  618. The stack pointer must be in the same segment, so for overflows just
  619. load 0. Anyway, we don't need a new stack for 4 bytes (the return
  620. address). Also the shifts won't work on an 8086/8088. The ROM segment
  621. and length code is also done once more in loader.S. Finally the org
  622. 0x100 didn't work with my version of as86 - it prepended 256 null bytes.
  623. Don't get me wrong - I see that comboot was just a quick and dirty hack.
  624. It's now working...
  625. I also fixed floppyload to read exactly the right amount of data (not
  626. up to 65520 bytes more like the Linux code did) and ripped out some
  627. unused code.
  628. 3c509.c: includes fixed, const added, static added, removed redundant code
  629. 3c90x.c: includes fixed, const added, shortened messages to save space,
  630. made the transceiver selection bootrom fix optional (default: off),
  631. updated 3c90x.txt
  632. ansiesc.c: de-tftpified (now uses "download")
  633. config.c: moved the driver prototypes to separate file, added a few const
  634. cs89x0.c: ansified, const added, fixed timeout handling
  635. eepro100.c: includes fixed, const added, static added, USE_INTERNAL_BUFFER
  636. hack, passing globals as a parameter removed, timeout handling fixed,
  637. comments fixed
  638. epic100.c: comments fixed, const added, static added, USE_INTERNAL_BUFFER
  639. hack, removed unused variables, changed debug code to use macro instead
  640. of variable, allow broadcasts to be received (after all how did it
  641. work before???)
  642. etherboot.h: dual/serial console "cleanups", added NFS support, fixed
  643. INTERNAL_BOOTP_DATA for pathologic cases, removed prototype within comment
  644. (how did that end up there?), moved prototypes for config.c code here,
  645. added consts all over the place
  646. floppy.c: added static, changed cleanup code
  647. floppyload.S: renamed from .asm
  648. genrules.pl: I didn't write this :)
  649. i82586.c: fixed includes, added const
  650. lance.c: fixed DMA for PCI cards, removed leftovers from Linux driver,
  651. USE_INTERNAL_BUFFER hack
  652. linux-asm-io.h: added prototypes
  653. linux-asm-string.h: added prototypes
  654. loader.S: renamed from loader.asm, more comments see elsewhere in
  655. this mail
  656. loader.inc: removed
  657. main.c: includes fixed, static and const added, Etherboot/32 now prints
  658. relocaddr, hooks for NFS support, drain the Rx queue in some strategic
  659. places (after sleep), changed interface to await_reply: timeout handling,
  660. new cleanup code
  661. misc.c: ansified, twiddle code changed, strcasecmp enabled for
  662. Etherboot/16 (smaller than the 16 bit libc version), clear A20 before
  663. kernel is started (only for NBI), dual console fixes, removed bogus
  664. comment about interrupt enabling using iskey()
  665. nic.h: include guard added, added const
  666. ns8390.c: fixed includes for PCI version, added const, ansified, renamed
  667. internal functions
  668. osdep.h: removed #include <asm/byteorder.h> - probably all #ifdef
  669. __linux__ and __FreeBSD__ may be removed now.
  670. osloader.c: see elsewhere in this mail. removed loads of debugging code.
  671. otulip.c: removed unused variables, USE_INTERNAL_BUFFER hack, ansified,
  672. added const
  673. otultip.h: added const
  674. pci.c: fixed signed comparison
  675. pci.h: include guard added, const added
  676. rtl8139.c: static added, const added, globals are no longer passes as
  677. parameters, fixed probe loop
  678. serial.S: removed the Makefile hack to calculate the divisor and replace
  679. it by a CPP hack
  680. sk_g16.c: added static/const
  681. skel.c: updated
  682. smc9000.c: fixed includes, added const, fixed timeout, removed unused
  683. variables
  684. start16.S: changed stack pointer reloading
  685. start32.S: cleaned up GAS295 support, fixed CPU detection, fixed memsize
  686. for > 64MB, added basememsize()
  687. tiara.c: fixed includes, added const, removed unused variable
  688. tulip.c: fixed includes, added const, decreased oversized frame tolerance,
  689. USE_INTERNAL_BUFFER hack, converted to C comments, fixed prototypes,
  690. removed unused variable
  691. via-rhine.c: fixed includes, converted to C comments, removed unused
  692. functions, fixed timeout, USE_INTERNAL_BUFFER hack, removed unused
  693. variable, const added
  694. lzhuf.c was modified not to output ':' characters, because I find it
  695. useful to search for them in a make log to spot all error messages.
  696. Finally all symlinks have gone
  697. I fixed sgml/vendortags.sgml (maybe it's more a workaround): sgml2txt
  698. didn't like the ~~' sequence and ignored a whole line, making the .txt
  699. file incomplete. Also freebsd.txt was converted to sgml.
  700. My standard patch to netboot-0.8.1/configure (to remove the "unknown") is
  701. again in place - how is this file created? By hand? I added serial/dual
  702. console support to mknbi-linux.
  703. Oh, and something I almost forgot: Etherboot now works under VMware.
  704. VMware has a rather large EBDA (3K instead of 1K like most other
  705. BIOS versions), so one might have to sacrifice a few nifty options.
  706. Note that the Makefile check cannot detect this - maybe we should add a
  707. runtime check, too? One thing that doesn't work with VMware is the "Boot
  708. Local" stuff - it's not terribly useful if you have to boot from disk,
  709. but it shouldn't crash the machine (I've seen several triple faults,
  710. depending on RELOCADDR and the stack usage). I tracked it down to the
  711. fact that VMware crashes on int 0x19 if the memory area 0x98000-0x9f3ff
  712. is overwritten. If one changes RELOCADDR to 0x8f000, everything works
  713. nicely. Someone should report the bug to VMware. Also proper boot ROM
  714. support should be added to VMware and they should upgrade the virtual
  715. card to 100Mbps (don't laugh - they limit the bandwidth to 10Mbps even
  716. if you have a real 100Mbps card!). Maybe one could even use the flash
  717. utility for the recent AMD PCnet cards...
  718. Released as Etherboot 4.5.5
  719. + More fixes from Klaus Espenlaub, based on bug reports by Doug Ambrisko
  720. and others. Small cleanups in tulip.c. He also added a BACKOFF_LIMIT
  721. parameter to the exponential backoff for retry intervals.
  722. + Christoph Willing sent in a fix for PCI NE2000s which forces 16-bit
  723. transfer mode for PCI. This might make it work on some PCI NE2000s that
  724. failed before, please test if you can.
  725. + Moved commercial links off main web page into web page of its own.
  726. + Merged in TRY_FLOPPY_FIRST code from <as AT bart PERIOD nl>.
  727. Released as Etherboot 4.5.6
  728. + Frank Mehnert spotted a bug in tulip.c where the sole transmit buffer
  729. was not tagged as the last one in the chain.
  730. + Hacked serial.S to check if a serial interface is present and to disable
  731. the routines if not, so that Etherboot does not hang on a machine without
  732. a serial interface, even if the option has been compiled in.
  733. + Wrote mkromnbi for making a network bootable image from a ROM image
  734. (for using Etherboot to test another Etherboot driver).
  735. + Krzysztof Halasa found a small bug in nfs.c in the handling of BOOTP
  736. extension files.
  737. + Some instructions on adding Etherboot to a main BIOS were contributed
  738. by Dirk von Suchodoletz.
  739. + Some commentary on cbrom.exe versions posted by Rapp Informatik Systeme
  740. GmbH to the Netboot mailing list included.
  741. Released as Etherboot 4.5.7
  742. + Patrick Auge pointed out that -DT503_SHMEM option should be not used
  743. by default, as the comments say.
  744. + Heinrich Rebehn pointed out that the documentation needed to be updated
  745. for the new bin32 and bin16 prefixes for targets.
  746. + Christoph Plattner found that node_addr in struct nic should be unsigned
  747. char * or problems occur in the handling of the MAC address in cs89x0.c.
  748. + Greg Hudson pointed out that inet_ntoa is misnamed, it should be
  749. inet_aton.
  750. + Vsevolod Sipakoff suggested that the probe address list for NE2000
  751. should match that of Linux. Done, with the deletion of 0x360 which often
  752. conflicts with the parallel port at 0x378.
  753. + Created mknbi, a Perl utility that replaces mknbi-dos, mknbi-linux,
  754. mkfreedosnbi, and mkromnbi. Removed mk{freedos,rom,elks}nbi/ from
  755. contrib/. (ELKS has its own tagged image creation method now.)
  756. + Removed obsolete/ from contrib/.
  757. Released as Etherboot 4.5.8
  758. + Some small enhancements to mknbi. Merged in disnbi and mklnim. Changed
  759. version to 1.0.
  760. + netboot-0.8.1 directories distributed separately now.
  761. Released as Etherboot 4.6.0
  762. + Nick Lopez discovered that the Davicom 9102 is Yet Another Tulip Clone
  763. and a few appropriate initialisations will make it work.
  764. + Matthew Reimer sent in patches for contrib/3c90xutil.c/bromutil.c to
  765. compile and run under FreeBSD.
  766. + Krzysztof Halasa found that the number of buffers in epic100.c needed
  767. to be raised to 2 each for operation at 10 Mb for the PCI EtherPower
  768. 9432B-TX using the SMC 83C171.
  769. + Klaus Espenlaub fixed the root path handling in main.c, it wasn't
  770. requesting option 17 in DHCP. Also removed one prototype warning in
  771. tftp().
  772. + Daniel Shane sent in code for for adding identifiers to a DHCP request,
  773. using a user specified DHCP option. The patch is in contrib/dhcpid.
  774. + Bug fix in mknbi-1.0 for the ipaddrs=rom option, warnings about badly
  775. formed specification to ipaddrs= or unresolvable names.
  776. Released as Etherboot 4.6.1
  777. + Stuart Lynne sent in patches to allow - to mean reuse kernel filename
  778. in menu specifications. Also fixed DHCP request to ask for tags 129 and
  779. 130 (Ken added this), as the mknbi man page promised.
  780. + Fixed URL for Richard Ferri's LUI.
  781. + Added URL for Gregory R. Warnes' ClusterNFS.
  782. + Changed RFC2132_MAX_SIZE option in main.c to allow maximum size DHCP
  783. replies.
  784. + Matthias Schniedermeyer submitted an optional feature to use numbers
  785. instead of letters for bootmenu entries.
  786. + Brought some FAQs up to date with mknbi-1.0.
  787. + Wrote perl script mklrpnb for making netboot image from Linux Router
  788. Project floppy. Tested on Coyote Linux (based on LRP).
  789. Released as Etherboot 4.6.2
  790. + Re-enabled tulip.c:tulip_disable() code.
  791. + Minor fix to SHOW_NUMERIC code in bootmenu.c.
  792. + Minor spelling corrections to vendortags.sgml.
  793. + andreas.kabel AT slac PERIOD stanford PERIOD edu pointed out that to
  794. be RFC951 compliant, the broadcast BOOTP request near line 705 of main.c
  795. should use port BOOTP_CLIENT and thus stand a better chance of going
  796. through firewalls.
  797. + Christoph Plattner found that the 16 bit bus width fix for NEPCI cards
  798. introduced in 4.5.6 breaks operation for other NEPCI cards. So now the
  799. #define symbol is NS8390_FORCE_16BIT, to be used when the NIC requires
  800. 16 bit bus width but Etherboot guesses wrong. This needs to be fixed
  801. later to autodetect adapter bus width.
  802. + Shusuke Nisiyama sent me the PCI IDs for 3C595 NICs so that ROM images
  803. could be generated for them.
  804. + Jim McQuillan sent in modifications to tulip.c to reject bad packets.
  805. + Klaus Espenlaub suggested changing the filename substition macro in the
  806. IDENT16 and IDENT32 strings to $(@F) so that only the filename portion of
  807. the pathname is inserted. Otherwise the contributed romid program breaks.
  808. + Added author ident and copyright status to contrib/bin2intelhex.c.simple
  809. at Rogier Wolff's request.
  810. + Günter Knauff sent updates to romid and mp-form.
  811. Released as Etherboot 4.6.3
  812. + Marty Connor contributed patches to tulip.c to support the LinkSys
  813. LNE100TX v4 NICs.
  814. + Added rmrd.com to mknbi-1.0 directory.
  815. + Added experimental changes to allow RELOCADDR to be changed to 0x88000
  816. to avoid Disk On Chip drivers. See RELNOTES and Makefile for details.
  817. Released as Etherboot 4.6.4
  818. + Chris Johns found a long-standing bug in first-linux.S. ES would
  819. sometimes != CS, making the ramdisk moving fail.
  820. + Made --harddisk work for mknbi-fdos.
  821. Released as Etherboot 4.6.5
  822. + Bug in mknbi-dos, last sector omitted in ramdisk image.
  823. + Use ceil() for computing number of rootdir sectors.
  824. + --harddisk now works for mknbi-dos also.
  825. + Should work on FAT16 partitions now.
  826. + New driver for Winbond W89C840 by Igor V. Kovalenko.
  827. + Modification to loader.S by Steve Smith for some PCI BIOSes that don't
  828. handle INT19H well.
  829. + Small bug in osloader.c, j not defined in two places if DELIMITERLINES
  830. defined.
  831. Released as Etherboot 4.7.6 (developmental)
  832. + All the changes from 4.6.5 to 4.6.6 back propagated except for the
  833. loader.S change.
  834. + Removed -nostdlib from ld flags. Seems to be a vestige from when we
  835. were calling gcc as it's not an ld option.
  836. Released as Etherboot 4.6.6
  837. + Contributed one-line patch to allow booting from SCSI disks also (sd).
  838. + Grzegorz Jablonski sent in a fix for long-standing bug in loader.S that
  839. prevented booting on some BIOSes.
  840. + More updates to documentation.
  841. Released as Etherboot 4.6.7
  842. + Rick Kennell pointed out that there is another place in main.c where
  843. the DHCP request is sent with a source port of 0, which may not elicit
  844. replies from some DHCP servers or pass gateways. Changed to
  845. BOOTP_CLIENT.
  846. + Depca driver finally works.
  847. + Changed unsigned int len; to int len; in 3c595.c transmit routine
  848. which was generating a warning from gcc.
  849. + Removed warning about ljmp indirect without * in start32.S by putting
  850. in the *. Checked that generated code has not changed by comparing
  851. binaries. Later: But only for gas 2.9.5 and above, gas 2.9.1 doesn't
  852. like *.
  853. + Wanted to do the same for the lcall's in pci.c but discovered that
  854. gas 2.9.1 chokes on *, and as I don't want to introduce more #ifdefs
  855. into pci.c, we'll just live with the warnings until gas 2.9.1 is dead
  856. or the incorrect syntax is rejected by a current gas release.
  857. + Reversed #define so that GAS291 indicates gas 2.9.1. Rationale: gas
  858. 2.10 probably behaves like gas 2.9.5 so the default should be the new
  859. behaviour.
  860. + NI5010 driver finally works. Weird NIC, has only 2kB memory on board
  861. so if you don't switch to the receiver immediately after transmitting
  862. you will lose the reply packet. (This is a very ancient board, I was
  863. doing the driver for kicks.)
  864. + Implemented a low-overhead timer routine for implementing timeouts in
  865. drivers. This timer should be used instead of hacks with integer loops
  866. (which are CPU speed dependent) or calling currticks(), which has
  867. relatively high overhead because it reads the BIOS timer, and has a
  868. resolution of only 1/18th of a second. Timer 2 of the 8254 timer chip
  869. can be loaded with an unsigned 16-bit value that will be decremented at
  870. about 1193 counts per ms (constant TICKS_PER_MS in timer.h). So the
  871. maximum timeout that can be implemented with a single call is about 54
  872. ms. Call load_timer(u16) to load and start the timer (0 == 65536). Call
  873. int timer2_running() to check if it is still active. timer2_running can
  874. be interleaved with other tests, e.g. on the NIC hardware registers.
  875. When the timer runs down to 0, it will return 0. If you just need to
  876. delay a short time, call waiton_timer2(u16) to load and delay that many
  877. ticks.
  878. + Removed slowdownio() from sources. It's called in only one place and
  879. is followed by a call to currticks() which will result in a large delay
  880. anyway. It's also not clear if the strategy in slowdownio (a couple of
  881. local jumps) will even work on fast CPUs with instruction caches.
  882. + Removed support for %i (alias for %d) in printf. Nobody uses it, if
  883. they do they should just edit the format string to use %d, and removing
  884. it means one less non-standard format in printf; we have %X, %b and %I
  885. as it is.
  886. + Simplified currticks() by accessing BIOS variables directly instead of
  887. calling timeofday BIOS interrupt.
  888. Released as Etherboot 4.6.8
  889. + I'm pissed off with the inconsistency between gas 2.9.1 and gas 2.9.5
  890. re ljmp * (indirect jump). Some assemblers claiming to be 2.9.5 dislike
  891. the * (RH6.2's is one). I'm going to just make it ljmp and live with the
  892. warning message until the gas 2.9.1 syntax is totally dead.
  893. + Various fixes from Klaus Espenlaub: Fix for NFS booting from *BSD
  894. platforms, fix for Lance driver, interrupt was being turned on, fix for
  895. serial.S and code cleanups.
  896. + Paul Robertson of Locsoft found that if the top half of %esp contains
  897. garbage just before the first call to real_to_prot in start32.S, it can
  898. affect booting on some BIOSes. Inserted andl to clear top half.
  899. + Sleep for 2 seconds after failure to load file to avoid pounding the
  900. server if the file does not exist and thus shutting down the tftp
  901. service (inetd has rather poor rate controls).
  902. + Shredda of gmx.de reported a discrepancy between the Macronix MX98715
  903. device IDs used in pci.h and NIC. Marty Connor has ruled that the id in
  904. NIC is a typo. If booting works from floppy but not from ROM, this may
  905. be the reason.
  906. Released as Etherboot 4.6.9
  907. + Oops, a brown paper bag bug in start32.S. Forgot that the currticks()
  908. needs interrupts enabled to work. Calling the BIOS allowed interrupts to
  909. happen by going into real mode (interrupts are disabled in protected
  910. mode). So inserted prot_to_real and real_to_prot pair inside
  911. currticks().
  912. Released as Etherboot 4.6.10
  913. + Marty Connor and Gary Byers of thinguin.org contributed a LILO prefix
  914. file that makes the Etherboot image look like a Linux kernel to LILO and
  915. thus bootable from the LILO prompt.
  916. + Ifdefed out code in mknbi that falls back to the tftp directory for
  917. root-path. The result is that the options passed to the kernel specifies
  918. the tftp directory as nfsroot even if there is no root-path option in
  919. the DHCP or BOOT server configuration. This interacts badly with recent
  920. Linux kernels which actually pay attention to the root-path handed down
  921. and use that as nfsroot. People who were expecting the diskless kernel
  922. to use the default /tftpboot/<name of client> as nfsroot would have been
  923. surprised to find it trying to use the tftp directory (which often
  924. happens to be /tftpboot, although I recommend that it be different, to
  925. improve security).
  926. + Eric Biederman found an off-by-one bug in the ELF loader.
  927. + Christoph Plattner pointed out that the comments for COMCONSOLE in
  928. Config are wrong, the serial port is at 3F8, not 378.
  929. + A couple of updates to wol.c and wake.pl by Günter Knauff.
  930. + The Davicom 9009 and 9102 driver was contributed by Sten Wang of
  931. Davicom. It will be merged into tulip.c later.
  932. + Implement eepro100_disable. There have been reports of memory
  933. corruption after Etherboot has handed over to the booted image due to
  934. the live controller.
  935. + Matt Hortman reported a new Intel NIC, 82559ER, with different IDs.
  936. Added to file NIC.
  937. + Ranjan Parthasarathy reported another Tulip clone from ST Micro with
  938. different IDs. Added to file NIC.
  939. Released as Etherboot 4.6.11
  940. + Stefan Lesicnik sent in a report from Intel which explains what is
  941. probably wrong with the PnP header. BEV should point to the mainline
  942. vector, not to the part that installs the INT19H vector.
  943. + Hopefully finally fixed DHCP option limit problem. It was requesting
  944. large packets but not parsing them fully due to the length limit passed
  945. into decode_rfc1533(). Thanks to shredda for testing this.
  946. + Added the # modifier to printf, it prefixes 0x to %x and %X making
  947. printf formats shorter throughout. 0x%[xX] changed to %#[xX] in lots of
  948. files. Now if only I could make b,x,X the standard hhx,hx,x and get rid
  949. of I.
  950. + Andreas Neuhaus provided patches for multiple rx buffers for lance.c
  951. which made it work again with VMware.
  952. + Perl script to convert floppyfw floppies to netbootable images.
  953. + Marty Connor made some small changes to liloprefix and Makefile to
  954. make the LILO images SYSLINUX bootable also.
  955. + Make the default return value for _poll in skel.c 0 so that when
  956. driver writers implement _transmit first, it will not hang on garbage
  957. return values from _poll when it's called to flush the input queue
  958. before the first transmit.
  959. + EEPRO/10 driver now works. µs timer routines came in useful.
  960. + Anders Larsen sent in a patch to 3c90x.txt which makes it clearer.
  961. + Added more stuff to the documentation.
  962. + Fixed bug in mknbi that always did the equivalent of --ipaddrs=rom
  963. no matter what. Also removed undef from my variable list in TruncFD.pm
  964. so that it won't have problems with Perl interpreters.
  965. Released as Etherboot 4.6.12
  966. + Jim McQuillan sent in a patch for first-linux.S where it was assuming
  967. the argument in tag 129 (additional parameters) is a null terminated
  968. string, when it's a length counted string. A new routine, addkarg was
  969. created to handle this.
  970. + eepro100 should handle newer NICs with 256 byte EEPROMs now. This
  971. includes the onboard NICs on some motherboards, see file NIC. Thanks to
  972. Stephan Lauffer for helping with the fixes. WARNING: This code may have
  973. a bug that causes the onboard EEPROM to be corrupted. We believe we have
  974. found and removed the bug but please proceed with care.
  975. + DHCPDISCOVER was sending out one byte too many for PARAM_LIST.
  976. + In DHCPDISCOVER send "Etherboot" in VENDOR_CLASS_ID option (60). Will
  977. add code later to check for "Etherboot" in vendor encapsulated options.
  978. + Used µs timer routines in 3c509 for more accurate timing and hence
  979. better hardware detection. Use COMMAND_IN_PROGRESS bit to detect
  980. transmit complete instead of waiting for a fixed amount of time. Get rid
  981. of eth_vendor and associated tests, it doesn't serve any useful purpose
  982. since the driver was modularised long ago and the 3c509 detection status
  983. is stored outside of the driver now. Got rid of some unused global
  984. statics in 3c509.c, leftovers when the drivers were monolithic. Wait 2
  985. seconds after enabling TP interface to give it time to come up. This
  986. allows us to get rid of T509HACK in main.c.
  987. + Get rid of eth_vendor and associated tests in cs89x0.c, same reasons
  988. as for 3c509.c.
  989. + Moved the rest of the VENDOR_ and FLAG_ defines into ns8390.h, as
  990. ns8390.c is the only file that uses them now.
  991. + Use lower 32 bits of node address + current time for xid (network byte
  992. order). More likely to be distinct from other clients than just the
  993. current time, which is similar for all clients booted at about the same
  994. time.
  995. + Support for 16-bit code has been removed. XTs and ATs are pretty much
  996. dead now and in fact many Etherboot/16 drivers have been broken for a
  997. while but nobody noticed. This should make some of the code easier to
  998. maintain. If you really wanted 16 bit support, use an older version of
  999. Etherboot, maybe 4.4 or something like that, not sure when things
  1000. started breaking for 16 bit mode.
  1001. + Should not store IP and UDP headers at BOOTP_DATA_ADDRESS. Redefined
  1002. bootp_t without IP and UDP headers. Now requested size of bootp packet
  1003. matches storage available. Do not add sizeof(iphdr) + sizeof(udphdr) to
  1004. bootp pointer in start32.S:xstart now. start16.S:xstart was broken
  1005. because it did not do this addition but nobody noticed.
  1006. + Removed array kernel_buf, saving 128 bytes and replaced with
  1007. KERNEL_BUF, a pointer into the bp_file of the bootp_reply structure at
  1008. BOOTP_DATA_ADDR. Note: this depends on the server not sending Option
  1009. Overload which would use the sname and file fields for options, but we
  1010. don't request this option so it shouldn't. Removed char *kernel,
  1011. instead check KERNEL_BUF[0] just before booting and if null, use
  1012. fallback filename. (This is needed for future extensions to booting
  1013. protocol.)
  1014. + Define a shorter tftpreq_t type for making requests instead of using a
  1015. full sized tftp_t packet to reduce stack usage.
  1016. + Defined macros for htonl/htons/ntohl/ntohs for cases where the operand
  1017. is a constant, saving a function call.
  1018. + Started on first32.c, a protected mode 32-bit version of
  1019. first-linux.S, which should be far easier to read and maintain. Will
  1020. boot basic Linux kernels correctly but doesn't handle ramdisk or
  1021. kernel arguments yet.
  1022. + Updated nfs-swap documentation in contrib/nfs-swap to point to
  1023. Claus-Justus Heine's new web page.
  1024. Released as Etherboot 4.7.13 (development)
  1025. + Added more IDs for eepro100 variants taken from the Linux 2.2.18
  1026. source. Should handle the EEPROM properly now, a few defines were wrong
  1027. in 4.7.13. Loop counter timeouts in eepro100.c replaced with hardware
  1028. timeouts. Don't loop waiting for packet in _poll, return 0 immediately.
  1029. + first32.linux works. Does kernel arguments and ramdisk but doesn't do
  1030. appended parameters from menu selections, which should be replaced by a
  1031. more elegant menu scheme anyway. Needed gateA20 routines in
  1032. mknbi-1.1/first32.c otherwise cannot access extended memory.
  1033. first32.linux should be able to handle memory > 64 MB, which the old one
  1034. couldn't. Support for first32pm call protocol added.
  1035. + 3c595.c changed to use hardware timer for delays. Transmit routine
  1036. waits for a fixed period after transmitting. Changed to check
  1037. S_COMMAND_IN_PROGRESS bit. It also contains some of the same unused
  1038. variables as 3c509.c and mentions 3c509 in some comments. Cleaned up.
  1039. + Hmm, how come this wasn't fixed long ago? Should discard BOOTP/DHCP
  1040. replies that are not to broadcast or own MAC address. I guess xid caught
  1041. practically all of the non-matching packets. (Later: Actually the NIC
  1042. should filter out packets we don't want, but leave test in anyway, it's
  1043. the last test.)
  1044. + Removed last vestiges of ETHERBOOT32 and ETHERBOOT16.
  1045. + ETHER_ADDR_SIZE => ETH_ALEN, ETHER_HDR_SIZE => ETH_HLEN,
  1046. ETHER_MIN_PACKET => ETH_ZLEN, ETHER_MAX_PACKET => ETH_FRAME_LEN. More
  1047. Linuxy and therefore more familiar to programmers.
  1048. + Cleared up confusion with 60/64 and 1514/1518 for minimum and maximum
  1049. frame sizes. Practically always the right numbers are 60/1514, except
  1050. that some chips count the FCS in the receive length, then we have to use
  1051. 64/1518.
  1052. + Make __swap32 and __swap16 inline routines available globally as
  1053. swap32 and swap16. eepro.c can use swap16 instead of making up one.
  1054. + Make aui field in nic.h an int since it will be padded to a longword
  1055. boundary anyway and call it flags so that other drivers can use it for
  1056. their own purposes. Currently only 3c503 uses it to indicate AUI xcvr.
  1057. + Make sprintf return number of characters written instead of a pointer
  1058. to the last char written to be more consistent with standard C.
  1059. Released as Etherboot 4.7.14 (development)
  1060. + Thanks to Mark VandeWettering for the start of HomePNA (networking
  1061. over phone lines) support for the AMD 79C978.
  1062. + Bug fixed in first32.c handling of (ip|nfsroot)=X where X is not rom.
  1063. + first32pm.linux works. No need to go into real mode to call first32pm
  1064. and then it goes back to protected mode. Paves the way for extension
  1065. routines to Etherboot. Implement program returns to loader flag in
  1066. header field. Added option to mknbi to specify this.
  1067. + first32*.linux: Check tag 128 present and correct before appending tag
  1068. 129. Also tag 129 should be appended to parameters before substitutions.
  1069. + Merged cleanup_net into cleanup since they are always called together.
  1070. + Floppy booting doesn't need to be passed BOOTP_DATA_ADDR.
  1071. + Clean up variables associated with tagged image loading in osloader.c.
  1072. Released as Etherboot 4.7.15 (development)
  1073. + Duplicated 3c900 PCI IDs under 3c595 as some NICs apparently detect
  1074. and work with the 3c595 driver but not the 3c90x driver, according to a
  1075. report from Dirk Pfau. (The 3c90x series has two modes of operation,
  1076. programmed I/O mode descended from the 3c509, good only for 10 Mb
  1077. operation, and bus mastering mode, essential for 100 Mb operation. For
  1078. network booting, either mode is acceptable.)
  1079. + Removed auto from kernel parameters; it's the default already.
  1080. + Use hardware timer instead of loop counter for transmit timeout in
  1081. 3c90x.c.
  1082. + Define a jmpbuf type for setjmp and longjmp. Trim size to 7 longs,
  1083. that's all that's needed. Standardise the return values from longjmp:
  1084. -2: loader error, -1: timeout or ESC, 0...: various meanings to
  1085. Etherboot main loader.
  1086. + Ansify function headers in bootmenu.c.
  1087. + Make _int10 return ax | (bx << 16) as result so that these can be
  1088. accessed more efficiently in the following statements.
  1089. + Make handleansi take unsigned int instead of unsigned char as
  1090. argument, otherwise extra code will be generated to handle this
  1091. according to ANSI rules. (Quite significant saving of 55 bytes.) Rename
  1092. it ansi_putc for clarity.
  1093. + Prefix getc, putc and ischar with console_ to make things clearer and
  1094. to avoid confusion with the Unix getc, putc.
  1095. + Add menu as a target to mknbi. Started source code for menu extension.
  1096. Successfully transferred control to menu at 0x10000 and back. ANSI
  1097. colour controls work, at least. Return end needs more work.
  1098. + Started on ELF support in mknbi.
  1099. Released as Etherboot 4.7.16 (development)
  1100. + Added atftp 0.2 (ftp://ftp.mamalinux.com/pub/atftp/) to contrib/.
  1101. Supposedly contains a tftpd that runs multithreaded, which may help
  1102. people having problems with *inetd shutting down tftpds that spawn too
  1103. fast.
  1104. + Added a few more Tulip entries to config.c and NIC, not all of them
  1105. have been confirmed working.
  1106. + Got ELF format creation in mkelf-linux working now. At least one empty
  1107. section header is required to make a valid ELF file.
  1108. + Added code to support non-MULTIBOOT ELF when IMAGE_ELF is selected but
  1109. IMAGE_MULTIBOOT is not. Booting from images created by mkelf-linux
  1110. now works!
  1111. + TAGGED_IMAGE is now not always selected. It's just the fallback if
  1112. none of TAGGED_IMAGE, AOUT_IMAGE or ELF_IMAGE is selected. Therefore you
  1113. must explicitly select TAGGED_IMAGE if you want it, and you have
  1114. selected AOUT_IMAGE or ELF_IMAGE. Startup banner line displays all
  1115. image formats accepted.
  1116. + exit() in mknbi/start32.S should copy argument to %eax first.
  1117. + Images with 0xAA55 in bytes 510-511 are no longer accepted, which
  1118. should reject invalid formats now, e.g. Linux kernel images, which have
  1119. a boot sector in the first block. Strictly this does not conform to the
  1120. original netboot spec by Jamie Honan, which specifies that non-tagged,
  1121. linear images starting from 0x10000 are allowed, but that format is
  1122. pretty useless now. Any decent loading scheme needs a roadmap to the
  1123. blocks in the downloaded file, which is what tagged, a.out, or ELF
  1124. images provide in the header. Q: What is config_buffer in main.c for?
  1125. Nothing else seems to use it. Is it a relic of non-tagged images?
  1126. + Clean up lots of obsolete prototypes in etherboot.h. Ansify lots of
  1127. function headers in main.c. Make lots of functions and variables in
  1128. main.c static. Make bootmenu.c:getoptvalue() static.
  1129. + Simple external menu program works!
  1130. + More documentation cleanup, notably editing the compile options to
  1131. match what has been done.
  1132. Released as Etherboot 4.7.17 (development)
  1133. + Marty Connor did it again! He found a long standing bug in the PnP ROM
  1134. header which caused it not to be recognised by BIOSes. Now Etherboot ROM
  1135. images are PnP compliant. I hacked makerom.c to fill in the offset of
  1136. the ident string for the device string so that the BIOS can even print
  1137. out "Etherboot" and the device ident on boot up.
  1138. + Made demo menu program a bit more elaborate with timeout.
  1139. + Igor V. Kovalenko fixed the Winbond W89C840 driver to use the hardware
  1140. timer instead of CPU counter loops. Now none of the Etherboot drivers
  1141. rely on CPU speed dependent loops.
  1142. + Small fix to contrib/p910nd.c to not use getprotobyname which requires
  1143. libnss_files.so, which may not be installed in all environments.
  1144. + Small change to contrib/mkffwnb to allow the user to choose ELF format
  1145. (by editing one line) instead of tagged format.
  1146. + Patch to atftp-0.2 to make it accept a filename if the directory is a
  1147. prefix of the filename. This is needed so that valid absolute pathnames
  1148. will work. Patch sent to atftp authors.
  1149. + Added support for filtering out replies which do not include a Vendor
  1150. Class Identifier of "Etherboot" in the Vendor Encapsulated Options. This
  1151. can be used to select only the DHCP servers which we want to get
  1152. addresses from and reject the rest. Select the compile option
  1153. -DREQUIRE_VCI_ETHERBOOT. This requires ISC DHCPD 2 or 3 AFAIK. (It's
  1154. not documented in DHCPD 2, but it works.) Other DHCP servers may support
  1155. VEO. (It's a RFC2132 option.)
  1156. + Jim Thomas suggested a way, other than creating /fastboot, of
  1157. preventing fsck from running on NFS root, ln -s /bin/true
  1158. /sbin/fsck.nfs. Not verified but should work. Added to documentation.
  1159. Released as Etherboot 4.7.18 (development)
  1160. + Pavel Tkatchouk verifies that lance.c can handle PCnet-FAST III
  1161. 79c973. Added a new entry to lance.c and NIC. NIC entry not verified
  1162. yet.
  1163. + Enhanced disnbi to decode ELF images too.
  1164. + Arrgh! There are old BIOSes that rely on the wrong order of the bytes
  1165. in the device identifier in the PCIR and PnP structures. Wrote a Perl
  1166. program swapdevids.pl to swap these bytes. Apply this to image file just
  1167. before programming the EPROM.
  1168. + Marty Connor suggested that the specs state that for PnP ROMs the
  1169. unsuccessful return from boot should be int 0x18 rather than int 0x19.
  1170. Using int 0x19, selecting L for local device doesn't work. Fixes needed
  1171. in both loader.S and start32.S (get lret to work properly, instead of
  1172. doing an int 0x19 directly, involved saving ss and sp in real mode
  1173. instead of in protected mode).
  1174. + Wrote a Perl program disrom.pl to display key structures of a ROM
  1175. image.
  1176. + Added call to binmode() in various Perl utilities so they should work
  1177. under other OSes.
  1178. + Added check in makerom.c to warn if 55 AA not found at start of image.
  1179. It seems some people don't read the warning not to use the Linux
  1180. supplied as86.
  1181. + It seems Z is a recent addition to pack/unpack formats in Perl and
  1182. even a Perl as recent as 5.004 doesn't implement it. Change Z5 in
  1183. mknbi.pl and TruncFD.pm to a5 since we only need to compare it against
  1184. 'FAT12' and 'FAT16'.
  1185. + Some errors found in osloader.c in the #ifdef IMAGE_MULTIBOOT
  1186. sections. kernel should be KERNEL_BUF and union info should have
  1187. unsigned short s[256];. Also kernel -> KERNEL_BUF for IMAGE_FREEBSD,
  1188. obviously few FREEBSD users have tried compiling it.
  1189. + Explain in docs that .com and .(lz)lilo images can be generated and
  1190. touch briefly on how to use them.
  1191. + Donald Christensen contributed translations of floppyload.S and
  1192. loader.S to gas syntax. Currently they are in contrib/gassyntax/. They
  1193. potentially allow us to throw away as86 and/or nasm and use GNU tools
  1194. throughout, but I have to do some work on them: 1. I have to check what
  1195. versions of gas accept the syntax, the 16-bit mode in gas was a recent
  1196. enhancement; 2. I have to put back the #ifdef PCI_PNP_HEADER into
  1197. loader.S and also bring it up to date to the recent patches.
  1198. floppyload.S should be usable as is.
  1199. Released as Etherboot 4.7.19 (development)
  1200. + Donald Christensen completed the translation of loader.S and all the
  1201. other .S files in the src directory that previously required as86 or
  1202. nasm. No more futzing around with precompiled versions. Yipee!
  1203. + Luigi Rizzo contributed a slightly hacked FreeBSD loader that works on
  1204. floppy or hard disk. See boot1a.s for details. Makefile rules edited.
  1205. Targets renamed .dsk and .lzdsk to indicate they're not floppy specific
  1206. now. Documentation updated. I note that the loader is smart enough to
  1207. figure out exactly how many sectors have to be read.
  1208. + Renamed comload.S to comprefix.S which describes it better.
  1209. + mknbi tools split out into separate package for independent
  1210. development.
  1211. + Use A32 instead of Z32 in unpack format in disrom.pl in case we
  1212. encounter old Perl versions (< 5.005).
  1213. + Vendor Class Identifier string that's sent out is now of the form
  1214. Etherboot-x.y (13 bytes long).
  1215. + Reduced size of ee_data in davicom.c to 32 bytes because we only need
  1216. to access the MAC address in bytes 20:25.
  1217. + Changed type of formal arguments to pci.[ch] routines to unsigned int
  1218. except for the last argument, because in ANSI C parameter passing is
  1219. like assignment and extra dummy variables and code may need to be
  1220. generated if the formal argument type is not the the same size as the
  1221. actual argument that gets pushed on the stack. Not insignificant
  1222. overhead, reduction from 1853 to 1727 bytes due to change. Changed devfn
  1223. and bus members of struct pci_device to unsigned char to enforce limit
  1224. on type. Surprisingly this reduced the size further to 1667 bytes.
  1225. Probably the compilier could do more optimisations after the last
  1226. change.
  1227. + Some drivers hardwired 0 for bus number in calls to pcibios_*
  1228. functions. Changed to pci->bus, which is set in scan_bus. Only
  1229. people with NICs not on bus 0 would have noticed.
  1230. + Found a couple more old-style pre-ANSI C function declarations. Turned
  1231. on -ansi and -pedantic for kicks and fixed some non-ANSIness, e.g.
  1232. // comment in #define, text after #endif, casting memcpy arguments to
  1233. void *, using void * instead of char *. Some char declarations changed
  1234. to unsigned char.
  1235. Released as Etherboot 4.7.20 (development)
  1236. + I changed my mind. I think the format in disrom.pl should be Z32,
  1237. otherwise it displays binary characters after the valid part of the
  1238. string. For people with Perl < 5.005, please upgrade.
  1239. + Moved RELOC down to 0x94000. Turned on USE_INTERNAL_BUFFER by default.
  1240. Unless BOOTP_DATA_AT_0x93C00 is defined, use internal bootp strucutre.
  1241. This gets Etherboot out of the area just below 0x10000 and the area from
  1242. 0x93C00-0x93FFF. DHCP packets can now be as large as the Ethernet
  1243. payload. Later on, first32.c and the parameter area could expand a bit.
  1244. In lance.c had to reduce RX_RING_SIZE (by reducing LANCE_LOG_RX_BUFFERS)
  1245. from 16 to 4 to fit the driver. I'd like to hear feedback from lance
  1246. users. Is 24kB of receive buffers really needed given that Etherboot
  1247. uses stop-wait protocols?
  1248. + Doug Ambrisko sent in some patches for FreeBSD: a correction for one
  1249. typo I missed and changes to make compilation under FreeBSD easier.
  1250. + Michael Sinz contributed patches to allow the FreeBSD loading code to
  1251. load debugging symbols also.
  1252. + Marty Connor contributed a SiS900 driver. Also pointed out that if
  1253. ASK_BOOT <= 0, the prompt and read shouldn't even happen. Conditional
  1254. code reworked.
  1255. + Split documentation into user manual and developer manual. Added
  1256. material.
  1257. Released as Etherboot 4.7.21 (development)
  1258. + Preston Wilson pointed out that ds.internic.net should be replaced by
  1259. www.ietf.org in documentation URLs. Also RFC1090 should be RFC1094
  1260. (NFS).
  1261. + Marty Connor pointed out some broken links due to the split in
  1262. documentation. Also comments don't match code in lance.c for change just
  1263. above. Also passed on a bug found by a user of rom-o-matic.net where
  1264. tftp was not defined when ANSIESC was defined. My mistake, I made it a
  1265. static function when it needs to be exported to ansiesc.c.
  1266. + Christoph Plattner found that the Etherboot startup messes up the
  1267. flags while testing for a 386+. This doesn't affect Etherboot but it can
  1268. cause the loaded operating system to crash. Fix: pushf before and popf
  1269. after the CPU model testing.
  1270. + Jean-Jacques Michel contributed patches to the via-rhine.c driver to
  1271. make it work for the VT6102 model as used on some DFE530-TX Rev.A3 NICs.
  1272. + Luigi Rizzo sent in a fixed boot1a.s that actually works on HDs now.
  1273. + Stefan Furtmayr sent in a list of URLs to TFTP servers for NT. Added
  1274. to directory contrib/Diskless-From-NT.
  1275. + Paul Whittaker contributed a HOWTO in HTML format on booting with NT
  1276. as the server. Added to directory contrib/Diskless-From-NT.
  1277. + CJ pointed out that the advertised message size is > 1500 bytes.
  1278. Define MAX_BOOTP_EXTLEN so that the size of the structure matches the
  1279. Ethernet payload size.
  1280. Released as Etherboot 4.7.22 (development)
  1281. + Reintroduce the old Via-Rhine PCI IDs into file NIC and give the
  1282. corresponding ROM images -old suffixes, in case some people are using
  1283. the old chips.
  1284. + Peter Kögel contributed patches to the SiS900 driver to make it work
  1285. for the SiS630e and SiS730s.
  1286. + Charles Dobson pointed out that when booting from a PnP BIOS, the code
  1287. should not hook or restore the INT19H entry point. Put hooking code
  1288. inside #ifndef PCI_PNP_HEADER and changed entry point in PnP structure
  1289. from start19h to blockmove.
  1290. + I have one report that gas 2.91 doesn't assemble loader.S because it
  1291. can't handle all the 16-bit code. Since the benefits of using gas for
  1292. all assembly code are great, and gas 2.95 has been out there for a long
  1293. time, I regretfully say to affected users: upgrade your tools. Otherwise
  1294. there may be a workaround by specifying the opcodes literally. I leave
  1295. it to interested parties to try. If you do this, put in an #ifdef
  1296. GAS291, naturally.
  1297. + Updated contrib/tftp-hpa to 0.16 from ftp.kernel.org.
  1298. Released as Etherboot 4.7.23 (development)
  1299. + Rename nepci entry in file NIC to rtl8029 to avoid giving the
  1300. impression that nepci will work for all PCI NE2000 clones. Make the
  1301. issue of PCI IDs in ROMs clearer in documentation, both in the
  1302. configuration and troubleshooting sections.
  1303. + Tania Oka and Hyun-Joon Cha at about the same time found that
  1304. implementing the rtl_disable() routine in rtl8139.c stopped random
  1305. crashes in Linux later. It is important to disable the NIC after network
  1306. loading.
  1307. + Implemented _disable() routine in w89c840, 3c90x and via-rhine drivers
  1308. too. Don't know how to do it for epic100.
  1309. + p910nd-0.4 in contrib/ has -f device option now to specify other
  1310. printer ports, e.g. USB.
  1311. + Robb Main found a bug with the #ifdef logic in loader.S. This may fix
  1312. problems with BIOS detection.
  1313. Released as Etherboot 4.7.24 (development)
  1314. + Paolo Marini sent in some code to make it work on his bare metal (no
  1315. standard BIOS or peripherals) platform. This may be a useful starting
  1316. point for some applications. See contrib/baremetal/.
  1317. + Eric W. Biederman contributed a Perl script in
  1318. contrib/award_plugin_roms/ to list flash BIOS plugin components.
  1319. + Marty Connor rewrote the Tulip driver to handle many more variants.
  1320. + For PCI ROMs loader.S can now detect if it's being called from a PnP
  1321. BIOS and choose to hook INT19H if not.
  1322. + Pass struct *rom_info in priv_data to probe routine. This is to allow
  1323. drivers to decide, based on the ROM address, which one of multiple
  1324. instances of identical network adaptors to activate. Started on 3c509
  1325. code to use this but need to understand 3c509 contention resolution
  1326. mechanism first.
  1327. + Link src/lzhuf.c to contrib/compressor/lzhuf.c so that we don't need
  1328. to refer to contrib/compressor/lzhuf.c anymore in Makefile.
  1329. Released as Etherboot 4.7.25 (development)
  1330. + Minor documentation edits, merged in NIC entries for newly supported
  1331. Tulip variants from Marty Connor.
  1332. + One last minute change, Robb Main suggested calling cs89x0_reset()
  1333. from cs89x0_disable() to shutdown the hardware cleanly.
  1334. + Updated tftp-hpa to 0.17.
  1335. + Slight mod to lzhuf.c to make compression statistics report shorter.
  1336. Released as Etherboot 5.0.0 (production)
  1337. + Donald Christensen found a small bug in osloader.c. Not all context
  1338. was cleared on tftp restart which caused restarted tftp loads to fail.
  1339. + Correct a small error in setting %sp when not running at 0x9xxxx.
  1340. Now relocation to 0x84000 works.
  1341. + Marty Connor added a generic Tulip entry and renamed the Macronix
  1342. entries because PHP doesn't like strings starting with digits (for
  1343. rom-o-matic.net).
  1344. + In loader.S, move code to save ROM segment and length to before jump
  1345. to new segment, otherwise if MOVEROM is defined, then the ROM segment is
  1346. always 0x8000. In etherboot.h, define an inline function to say if a ROM
  1347. address is ok to boot from. Allow if < 0xC0000 or matches assigned ROM
  1348. address of NIC.
  1349. + Thomas Kessler found a bug in vendortags.sgml re option-NNN tags in
  1350. dhcpd.conf, the wrong syntax was presented. However on trying the
  1351. option-NNN syntax documented in the dhcp-options man page, it was
  1352. discovered that option option-NNN is no longer supported in the old way
  1353. in recent versions of ISC dhcpd v3; a new syntax should be used. Added
  1354. note to vendortags.sgml to warn users.
  1355. + Incorporated changes suggested by Hannu Martikka to #define
  1356. DEFAULT_KERNELPATH in etherboot.h for rarp(), and display the TFTP
  1357. server address before filename in Loading: message.
  1358. + Split off documentation into separate package in anticipation of
  1359. production/development series split. Moved previous LOG to top level.
  1360. Moved distribution section of index.html into separate web page so that
  1361. index.html will be less ephemeral.
  1362. Released as Etherboot 5.0.1 (production)
  1363. + Arkadiusz Miskiewicz pointed out that --oformat should be used instead
  1364. of -oformat as old ld accepts both while new ld requires --oformat.
  1365. + contrib/{tftp-hpa,atftp} are distributed separately from the
  1366. distribution page to make them easy to update.
  1367. + Eric Biederman contributed many small changes in the code to improve
  1368. the behaviour in exceptions and generally improve the code structure:
  1369. 1) Cleanup etherboot restarting. There is now only one place that needs
  1370. to test for EMERGENCYBOOTDISK.
  1371. 2) Change pci.c as I have suggested. It is setup to scan every possible
  1372. pci bus until it finds an etherboot card.
  1373. 3) Change osloader.c so that if an image that can return, but isn't
  1374. supposed to it restarts etherboot with -2 instead of the returned value.
  1375. 4) Rewrites the delay logic so that we compute how long we should sleep,
  1376. and then sleep the whole time in await_reply so in a congested networks
  1377. we don't miss slow packets.
  1378. 5) divides load into load & load_configuration. This removes the need
  1379. for the weird bootp_completed variable. And makes it a little more
  1380. explicit what we are doing.
  1381. 6) add an interruptible_sleep function so that we can sleep and still
  1382. process keystrokes.
  1383. 7) rewrites the restart logic:
  1384. - renames jmp_bootmenu to restart_etherboot.
  1385. - removes bootmenu (The function isn't)
  1386. - It explicitly does an eth_reset & eth_probe pair to reinitialize
  1387. the interface. This should help if someone has plugged the
  1388. interface into a different switch since booting started.
  1389. - moves ASK_BOOT and TRY_FLOPPY_FIRST into their own functions.
  1390. - On every restart calls ask_boot and try_floppy_first. Allowing you
  1391. to change your mind on how you want to boot after network booting
  1392. starts.
  1393. 8) In cleanup calls both eth_disable (to disable the interface) &
  1394. eth_reset to make certain the interface can be initialized from linux.
  1395. (If nothing else this should cause more hidden bugs to show up).
  1396. 9) Restart etherboot when downloading a bootfile fails, instead of just
  1397. looping trying to get that file. Allowing typos in dhcpd.conf to be
  1398. corrected without having to reboot the client machine running etherboot.
  1399. Released as Etherboot 5.1.0 (development)
  1400. + All the changes from 5.1.0 carried over except calling eth_reset()
  1401. from cleanup().
  1402. + Marty Connor, funded by Sicom System (http://www.sicompos.com/), wrote
  1403. a driver for NICs based on the National Semiconductor DP83815, e.g.
  1404. Netgear FA311/FA312. Also independently created by Jason McMullan just
  1405. at the time Marty released his driver. Thanks for the effort Jason;
  1406. great minds think alike. Both are based on Donald Becker's Linux driver,
  1407. of course.
  1408. + Doug Ambrisko contributed a patch to take environment bindings for
  1409. FreeBSD kernels from a BOOTP/DHCP option or config variable.
  1410. + Dax Kelson contributed an example of an ISC DHCP config file that uses
  1411. Vendor Class Identifier to tailor the response to Etherboot clients.
  1412. Also discovered that the Etherboot VCI should also be sent in the
  1413. DHCPREQUEST message, in addition to the DHCPDISCOVER message. Note that
  1414. the DHCP server must be set to non authorititative if you have an
  1415. authoritative server running already or it will interfere with that
  1416. one's operation.
  1417. + Peter Lister and Vasil Vasilev contributed changes to generate .pxe
  1418. images bootable via PXE.
  1419. + Eric Biederman added code to 3c90x.c to enable the NIC: set up
  1420. busmastering and set the latency timer in case the NIC is not already
  1421. set correctly, and fixed a couple of related bugs in eepro100.c.
  1422. Verified that the 3c90x driver works for the 3c980.
  1423. + Moved strncmp from osdep.h to linux-asm-string.h. Use the general
  1424. version using string ops, not the deprecated 486 version (what was I
  1425. thinking). Also added strlen, needed for FreeBSD patch above.
  1426. + Thanks to gcc 3.0, found and corrected a couple of C constructs of
  1427. undefined semantics in rtl8139.c and lance.c of the form: i = ++i &
  1428. MASK;
  1429. + In Config/CFLAGS32: changed -m386 to prefered form, -mcpu=i386,
  1430. changed -O2 to -Os, and added -ffreestanding. These changes allow
  1431. warning-free compilation under gcc 3.0. Only mimimal testing has been
  1432. done with gcc 3.0 compiled binaries, we hope there are no problems but
  1433. don't throw away your gcc 2.9.5 yet.
  1434. + Added an .org 0 to loader.S just before _start. May or may not fix
  1435. alleged assembly problem with gas 2.11.
  1436. + Cosmetic change: in boot1a.s replaced "loaded" with "done\r\n" so that
  1437. Etherboot messages start at beginning of line.
  1438. + More improvements to contrib/mkffwnb.
  1439. Released as Etherboot 5.0.2 (production)
  1440. + Added missing rules in genrules.pl for .pxe and .lzpxe images.
  1441. + Peter Lister unified pxeloader.S into loader.S. pxeloader.S not
  1442. required now. Also fixed .lzpxe.
  1443. + Added missing int i; declaration in try_floppy_first().
  1444. + Load %edx with dev just before calling xstart in floppy.c:bootdisk()
  1445. so that %dl will have device number, just like entry from BIOS.
  1446. + Merged in Eric Biederman's patches to build .ebi images that run under
  1447. LinuxBIOS. To make an image, edit Config to enable the EBI options (and
  1448. disable TAGGED_IMAGE), then make bin32/driver.ebi, where driver is the
  1449. name of a supported PCI NIC.
  1450. Released as Etherboot 5.1.1 (development)
  1451. + The rotating bar progress display has been replaced by a sequence of
  1452. dots, one for each transmitted packet. This is kinder to dumb displays,
  1453. e.g. serial terminals, and gives a better feel for how the loading is
  1454. going. If you want the rotating bar, use -DBAR_PROGRESS.
  1455. + In loader.S change .fill 0x18-(.-_start) to .org 0x18. Might help
  1456. people having errors assembling it.
  1457. + Do Jong Gwan found a 3Com 980 with PCI ID 0x9805. Added to config.c
  1458. and NIC. Added for good measure 0x7646 which is listed as 3CSOHO100-TX
  1459. in Linux kernel 3c59x.c.
  1460. + Add a rule to the Makefile to check for gcc 2.96, which is buggy, and
  1461. tell the user to use kgcc instead if found.
  1462. + Till Straumann added long-needed code to warn when fragmented packets
  1463. seen (encountered on a wireless link) and to do UDP packet checksumming.
  1464. + A trio of patches from Klaus Espenlaub, to fix a lance ring pointer
  1465. error in lance.c, to fix a format error in the multiboot call in
  1466. osloader.c and a patch to enable powersaving while waiting (good for
  1467. compute clusters and VMware), this one requiring the new option
  1468. -DPOWERSAVE in compiles.
  1469. + While we are adding compile options, -DFLOPPY has been renamed to
  1470. -DCAN_BOOT_DISK as FLOPPY has been a misnomer ever since the ability to
  1471. boot /dev/hdX and /dev/sdX was added.
  1472. + Spurred by correspondence from Till Straumann and Klaus Espenlaub,
  1473. hacked printf to not require a buffer. Now printf output can be
  1474. arbitrarily long as it no longer needs a buffer to assemble the
  1475. characters before sending to putchar; it outputs on the spot for
  1476. non-format chars and %s items, and at the end of the item for non-%s
  1477. items.
  1478. + DRIVER AND EXTENSION WRITERS NOTE! (s)printf formats have been changed
  1479. to be a subset of those in glibc to reduce confusion. The changes are %x
  1480. -> %hX, %b -> %hhX, and %I -> %@. Lower case x formats are also
  1481. available now. The only variances from glibc are %@ for dotted quad IP
  1482. addresses (formerly %I; %I is now used), %! for 6 byte Ethernet
  1483. addresses, and that printf returns void. Thanks to Klaus Espenlaub for
  1484. assistance on this, after adding the %! format, he cleaned up all of the
  1485. Ethernet address display code in the drivers.
  1486. + More cleanup patches from Klaus Espenlaub (he's better than lint;
  1487. people who have used Bell Labs Unix will know what lint is). Changes
  1488. noted here for posterity.
  1489. 3c509.c: consistent non-use of # modifier for debugging output
  1490. 3c595.c: consistent non-use of # modifier for debugging output
  1491. 3c90x.c: use optimal %x variant, PCI bus/function numbers are always small
  1492. Config: Replace a TAB by two spaces inside the descriptions
  1493. eepro100.c: 6->ETH_ALEN, PCI bus/function numbers are always small
  1494. floppy.c: optimal %x variant
  1495. genrules.pl: consistent use of TAB characters
  1496. i82586.c: the ENET address printing patch for the EXOS205 got lost somehow....
  1497. main.c: cleanup of the UDP_CHECKSUM comment some editor messed up, make the
  1498. assembly fragment use the normal formatting, fix the register assignment
  1499. specification for the %bx register to use the "b" constraint instead of
  1500. "bx" - the x makes no sense...
  1501. natsemi.c: %X case fix...
  1502. ns8390.c: optimal %x variant
  1503. pci.c: fix bad Linux port (most messages truncated the hex values)
  1504. sis900.c: a value read with inl() should probably(!) be printed with %X
  1505. start32.S: move around the #endifs a little
  1506. timer.c: fix space/tab characters
  1507. via-rhine.c: all values "printed" inside the comments are 32 bit integers
  1508. wd89c840.c: PCI bus/function numbers are always small
  1509. Released as Etherboot 5.0.3 (production)
  1510. + New version of contrib/Diskless-From-NT/furtmayer.html. I mangled the
  1511. previous version by forgetting to extract with metamail so it was still
  1512. quotable-printable encoded.
  1513. + Renamed do_printf to vsprintf because that's the standard function it
  1514. has the same signature as.
  1515. + More patches from Klaus Espenlaub. In his own words:
  1516. The patch to add UDP checksums for transmitted packets is attached.
  1517. Just don't be surprised if some packet sniffer tells you that the
  1518. checksum for the NFS_LOOKUP packets are wrong and that the filename is
  1519. truncated. It's a bug in the sniffer, not in Etherboot.
  1520. Oh, and the small change in udpchksum() almost makes up for the
  1521. increased code size.
  1522. I also rewrote the NFS code to use pointers instead of array accesses.
  1523. This reduced the code size by 124 bytes. Patch attached.
  1524. The last patch in this mail fixes misc things: a typo in misc.c
  1525. (DOT_PROGRESS instead of BAR_PROGRESS), and twiddle() is only called if
  1526. the packet type is IP. This makes the output nicer - the dots are also
  1527. printed in some non-approriate places for ARP reply packets. The
  1528. important packets are IP anyway.
  1529. + The option BOOTP_DATA_AT_0x93C00 is deprecated, in preparation for
  1530. expanding the parameter area and the first32.c area.
  1531. + Marty Connor found a typo in index.html, should be: Etherboot can work
  1532. with..., not Ethernet can work with... Ooops.
  1533. + Eric Biederman tried a patch of Preston Wilson's and discovered that
  1534. DI should be prefixed by ES in the test for a PnP BIOS in loader.S to be
  1535. sure. Furthermore some BIOSes are not fully compliant and we need an
  1536. #ifndef PNP_BUT_NOT_BBS_COMPLIANT to work around that.
  1537. + Oops, there's no entry in config.c for the DFE530TX+ even though
  1538. there's one in NIC.
  1539. Released as Etherboot 5.0.4 (production)
  1540. + Fixed a struct alignment (8-byte constraint) problem in lance.c caused
  1541. by the introduction of the rx_idx field by moving rx_idx to the end of
  1542. the struct. Found by Rizsanyi Zsolt. Klaus Espenlaub also suggested
  1543. increasing all the Rx buffers by 4 bytes because of the checksum stored
  1544. at the end.
  1545. + Fred Gray contributed changes in tulip.c to check for a duplex
  1546. connection and to modify the controller register if so. Marty fixed an
  1547. unassigned to "negotiated" variable.
  1548. + Mark G of Inprimis Technologies contributed another FA311 (National
  1549. Semiconductor DP83815) driver, also based on the Donald Becker Linux
  1550. driver.
  1551. + Armin Schindler contributed a patch to allow booting LynxOS KDI
  1552. images.
  1553. + Moved code to set PCI busmastering and reasonable latency to a routine
  1554. in pci.c and added calls to this routine from all PCI drivers.
  1555. + New files for contrib/mkffwnb for version 1.9.11 and 1.9.16.
  1556. + Removed BOOTP_DATA_AT_0x93Cxx option.
  1557. + Convert epic100 driver to use hardware timer for transmit timeout and
  1558. remove polling loop from receive routine.
  1559. + Steve Tilden pointed out that BOOT_INT18H is a LCONFIG option, not a
  1560. CFLAGS32 option. Put note under option documentation and also added a
  1561. commented-out example in Config. Steve also contributed a patch¸ in
  1562. contrib/auto-default, which autoboots from the next device if a disk is
  1563. detected.
  1564. + PNP_BUT_NOT_BBS_COMPLIANT option renamed to BBS_BUT_NOT_PNP_COMPLIANT.
  1565. + Merged in Vasil Vasilev's changes to loader.S to release memory taken
  1566. by PXE properly.
  1567. + E820 memory detection routines added by Eric Biederman. May increase
  1568. size of bss segment and push large drivers, e.g. Tulip, nearer to limit,
  1569. please report.
  1570. + Default to -DCONGESTED in Config, may help on busy networks.
  1571. + Add Holtek HT80232 to list of NE2000 PCI clones.
  1572. + Remove prohibition on loading < 0x10000 in ELF images since by default
  1573. drivers don't use memory < 0x10000 any more, with 48kB to run in.
  1574. + Put define of ETH_MAX_MTU in etherboot.h inside #ifndef so that it can
  1575. be overriden from Makefile.
  1576. + Gustavo Junior Alves added .cvsignore files for src/bin and src/bin32.
  1577. + Short note on how to make tomsrtbt netbootable in contrib/tomsrtbt.
  1578. This release is dedicated to the memory of my mother (July 1917 -
  1579. November 2001) [Ken Yap].
  1580. Released as Etherboot 5.0.5 (production)
  1581. + Changes to enable fa311too driver which were overlooked in 5.0.5.
  1582. + Chien-Yu Chen sent in patches to support the SiS630ET. Independently,
  1583. Doug Ambrisko made the same changes. Marty Connor tidied the patches.
  1584. + In misc.c, when enabling/disabling Gate A20, call int 0x15 with
  1585. ax=0x240x to do handling first, and if that is not supported, fall back
  1586. to using the keyboard controller. Hopefully this will solve Gate A20
  1587. problems for recent BIOSes.
  1588. + Add missing entry to config.c for the Macronix 98713 (device ID
  1589. 0x512). But latest report is that it doesn't transmit. Anybody wanna
  1590. debug?
  1591. + Omit test for pointer to $PnP string for ISA NIC images, it may
  1592. trigger false recognition of a PnP ROM. Just use legacy mode.
  1593. + Merged in Christopher Li's Intel E1000 gigabit Ethernet driver.
  1594. + RISKO Gergely found that the ADMTek Comet 983 works with the tulip
  1595. driver if you provide the right PCI IDs.
  1596. + Rohit Jalan contributed patches to support FreeBSD booting via PXE.
  1597. (genrules.pl needed hacking to make it ignore the system includes in
  1598. osdep.h.) Anybody want to see if it can be made to support pxelinux?
  1599. [Glanced at it and I think general PXE support may be hard, you may need
  1600. an Etherboot specific secondary loader. - Ken]
  1601. + Merged in Eric Biederman's patches to allow trying all PCI devices.
  1602. + From Eric Biederman: A small patch to allow the serial port parameters
  1603. to be unchanged at activation. Major changes to start32.S to merge
  1604. LinuxBIOS support. New files for LinuxBIOS support. PCBIOS specific
  1605. functions split out into pcbios.S. Massive clean up of PCI subsystem
  1606. logic.
  1607. + Jean-Jacques Michel sent in a fix for via-rhine.c to make sure the
  1608. transmit is finished before returning from the _transmit routine.
  1609. Also found a bug in gcc 3.0.3 that affected rtl8139.c. Moving the
  1610. assignment to nstype in _transmit two lines up avoids it.
  1611. + Based on the experience of Yedidyah Bar-David, in eepro100.c,
  1612. increased udelay around line 533 after getting MAC address to
  1613. udelay(10000).
  1614. + Added PCI IDs for RTL8129, which can use the rtl8139 driver.
  1615. + Added PCI IDs for 3Com905 with device ID 0x9058. Confirmed working by
  1616. Fabio Papa.
  1617. + Added PCI IDs for D-Link 528, which is a PCI NE2000 clone.
  1618. + Philip R. Auld found a block number rollover bug due to promotion to
  1619. signed in main.c.
  1620. + Luigi Rizzo sent in a patch to nfs.c to implement an adaptive timeout.
  1621. + New config files for floppyfw-1.9.19 in contrib/mkffwnb/.
  1622. + Glenn McKechnie contributed a Perl script for making a netbootable
  1623. image from the Dachstein LRP firewall distribution floppy. It's in
  1624. contrib/mklrpnb/
  1625. + At the request of Greg Beeley, who got irate mail from kernel NIC
  1626. developers, put in a warning in the Makefile about the 3c90x XCVR
  1627. options which may affect later operation with the Linux driver. For you
  1628. tinkerers out there, if you don't know what you're doing, please read
  1629. 3c90x.txt over and over again until you understand what those options
  1630. do. If you don't understand, please ask on the Etherboot mailing list.
  1631. And don't complain to the kernel developers, it's nothing to do with
  1632. them. If you must change the XCVR options on a board, please document it
  1633. prominently on the board so that those who come after you won't
  1634. encounter strange behaviour and complain to the kernel developers.
  1635. Greg also supplied a patch to 3c90x.c to print a warning message.
  1636. Released as Etherboot 5.0.6 (production)
  1637. + Andrew Bettison sent in a patch and the explanation: Here's a patch
  1638. for some changes I made to Etherboot-5.0.6 because it didn't work with a
  1639. SMC EtherEZ in an old PCI/ISA bybrid bus system. The ISA shared memory
  1640. isn't accessible on many such systems, so the only way to do I/O to the
  1641. card is in Programmed I/O mode. I studied the Linux 2.2.19 driver
  1642. (drivers/net/smc-ultra.c) and hacked what I figured was equivalent code
  1643. into src/ns8390.c, and it eventually worked. All my new code is enabled
  1644. with -DWD-790_PIO.
  1645. + Small error in the ADMTEK Comet 983 IDs fixed.
  1646. + Michael Rendell sent in patches for 3c90x.c to get the MAC address
  1647. from location 10 of the EEPROM onwards, like the Linux driver does. Some
  1648. 905s have the MAC address at both 0 and 10 which is why it worked for
  1649. some boards.
  1650. + Michael Brown sent in drivers for 3 wireless NICs based in the prism2
  1651. chipset, and a small patch to rtl8139.c to abort detection on no link.
  1652. + Rewrote makerom.c in Perl to give makerom.pl.
  1653. + Rewrite genrules.pl to parse a new NIC format.
  1654. + Timothy Legge contributed a 3c515 driver. Requires a ISA PnP BIOS.
  1655. + Modified call to int15h/e801 in pcbios.S to check for return values in
  1656. CX, DX in case BIOS doesn't return them in AX, BX.
  1657. + Richard Chan sent in PCI IDs for another Intel EEPRO100 product.
  1658. Omigawd will they ever run out of EEPRO100 model numbers. :-)
  1659. + Changed location of setup header from 0x97e000 to 0x93e000 in
  1660. mkQNXnbi.c for recent Etherboot versions.
  1661. + Renamed membase to addr1 to reflect its lack of predefined meaning in
  1662. PCI config space. Should do similar to ioaddr, but too much work.
  1663. + Samuel Clememts found another Intel EEPRO100 device ID, 0x1039.
  1664. + Updated instructions in contrib/tomsrtbt for latest 2.0.103 release.
  1665. + Folded in changes by Michael Brown to send PCI and ISA IDs to the
  1666. server and to encapsulate Etherboot specific options. Changed scheme to
  1667. send fixed binary structure instead of variable length string.
  1668. + Bug in sis900.c, wrongly classifies revisions 0x81 and 0x82 because
  1669. first test catches too many revisions. Changed to match the Linux
  1670. driver.
  1671. + Fotis Andritsopoulos found a small bug in cs89x0.h, TX_AFTER_ALL
  1672. should be 0x0C0.
  1673. + Great idea by Eric Biederman. Ignore DHCP offers with zero server
  1674. IP, or null filename unless DEFAULT_BOOTFILE is defined. This will
  1675. ignore most Windows DHCP servers.
  1676. + Patrik Weiskircher sent in a patch for rtl8139.c to bring it up to
  1677. date with the Linux driver.
  1678. Released as Etherboot 5.0.7 (production)
  1679. + Multicast support and LOTS of other changes by Eric Biederman.
  1680. + Builtin menuing has been removed.
  1681. + Patches for FreeBSD by Doug Ambrisko.
  1682. Released as Etherboot 5.1.2 (development)
  1683. + Fix syntax errors in nfs.c.
  1684. + Patch for tagged image loading by Miles Nordin.
  1685. + Patches for new eepr100 variant by Georg Baum.
  1686. + Fixes for typos by Adam Sulmicki.
  1687. + Fixes by Eric.
  1688. Released as Etherboot 5.1.3 (development)
  1689. + Eric rearranged files for multiple platforms, including Itanium.
  1690. Released as Etherboot 5.1.4 (development)
  1691. + Lots of fixes to drivers, see CVS for details.
  1692. Released as Etherboot 5.1.5 (development)
  1693. + Eric added support for the AMD Hammer.
  1694. + Geert Stappers found a VIA6105 (via-rhine.c) with id 0x3106.
  1695. Released as Etherboot 5.1.6 (development)
  1696. + Broadcomm TG3 support by Eric Biederman.
  1697. + Georg Baum found that the start16.S prefix was missing from the LILO
  1698. and PXE images, those formats were broken. He also migrated the PCI IDs
  1699. into the driver files. Those formats should work again.
  1700. + Reworked genrules.pl. Family declarations now in here document inside
  1701. genrules.pl. NIC is now an output file, for use by rom-o-matic.
  1702. Released as Etherboot 5.1.7 (development)
  1703. + Fixed various syntax errors that made the source not compile with some
  1704. configurations.
  1705. + Hacked boot1a.s to take count of number of blocks to boot from book
  1706. block itself in new scheme.
  1707. + Dave Airlie found a patch for an old bug in eepro100 driver on Linux
  1708. that applies to Etherboot driver too.
  1709. + Add use bytes; pragma to Perl scripts to avoid problems with UTF-8
  1710. handling of input data.
  1711. + Replace boot1a.s with floppyload.S which has no problems loading large
  1712. binaries. Lose the ability to boot from disk partition. Use LILO or
  1713. something similar.
  1714. + Morten Kristiansen sent in a patch to handle another variant of the
  1715. SiS 900.
  1716. + Fix for eepro100 timing problem by Georg Baum.
  1717. + Add use bytes; to Eric's Perl scripts too.
  1718. + Additional fix to mask interrupts after PortPartialReset by Georg
  1719. Baum that might help with booting DOS.
  1720. + Sundance driver contributed by Timothy Legge.
  1721. Released as Etherboot 5.1.8 (development)
  1722. + Fix for correct SMC8416 detection.
  1723. + Alignment bug fix for the 3c90x driver contributed by Neil Newell.
  1724. + Robb Main found a bug in appending the MACHINE_INFO to the DHCP request.
  1725. + SONE Takeshi fixed the Multiboot structure.
  1726. + Patch from Axel Dittrich to allow timeout to be changed to a fixed
  1727. value for peer-to-peer setups where the exponential backoff is not
  1728. suitable.
  1729. + Tlan driver contributed by Timothy Legge.
  1730. + Support for symlinks on NFS mounts by Anselm Martin Hoffmeister.
  1731. + Experimental safe booting code by Anselm Martin Hoffmeister.
  1732. + Run Etherboot in an even megabyte so that unsetting A20 won't kill it.
  1733. Experimental UNDI driver by Michael Brown.
  1734. Released as Etherboot 5.1.9 (5.2 release candidate 1)
  1735. + 82562EZ ID provided by Samuel Clements.
  1736. + Rename Local option as Quit, because that's what it really is.
  1737. + Should prepend start16.bin to .com images, they didn't work and nobody
  1738. noticed.
  1739. + PM stack was getting clobbered by zeroing of BSS, move to own segment
  1740. in etherboot.lds. Move %ss out of the way of Etherboot in comprefix.S.
  1741. Now Q works from .zrom and sort of from .com (DOS is odd after return).
  1742. + Make ASK_PROMPT reflect the device options available.
  1743. + Removed many outdated comments and updated others.
  1744. Released as Etherboot 5.1.10 (5.2 release candidate 2)
  1745. + Make floppyload.S and liloprefix.S call instead of jmp to the image so
  1746. that the return calls int 0x19, which is somewhat better than
  1747. hyperspace.
  1748. + Put http://etherboot.org in prompt and ID string.
  1749. Released as Etherboot 5.2.0 (production)
  1750. + Print F? if no filename in DHCP offer.
  1751. + Make lance.c throw a compile error if -DRELOCATE is used.
  1752. + pcnet32 driver ported by Timothy Legge.
  1753. + Reinstate boot1a.s in arch/i386/prefix. The binary may have some uses;
  1754. it boots with vmware although the image fails later in the emulation.
  1755. Released as Etherboot 5.2.1 (production)
  1756. CVSed as Etherboot 5.3 (development)
  1757. + Break out etherboot.h into multiple files along protocol lines.
  1758. + Georg Baum's conversion of a more recent version of the Linux e1000
  1759. driver.
  1760. + Add mini-slamd to contrib/, it was missed during 5.2 release.
  1761. + Timothy Legge enabled multicast for a bunch of drivers. Tested with
  1762. mini-slamd.
  1763. Released as Etherboot 5.3.0 (development)
  1764. + Timothy Legge rewrite proto_tftm.c, got multicast working with atftp
  1765. and enabled multicast for the Tulip.
  1766. Released as Etherboot 5.3.1 (development)
  1767. + Günter Knauf sent in a new version of romid that handles the new
  1768. and old IDENT format.
  1769. + Cai Qiang fixed the WINCE loader. It needs to handle > 512 byte packets
  1770. and also the buffer has to be static. Also submitted a driver for VGA
  1771. which can be activated by CONSOLE_DIRECT_VGA.
  1772. + Improved tg3 driver by Eric Biederman. New define in etherboot.h:
  1773. VALID_LINK_TIMEOUT.
  1774. + Timothy Legge and I fixed up various ISA drivers to be less noisy
  1775. when probing, from information provided by Paolo Salvan, so that the
  1776. super etherboot image is more useful.
  1777. + Proof of concept of a TFTP to HTTP proxy in contrib/t2hproxy/.
  1778. Released as Etherboot 5.3.2 (development)
  1779. + Multicast support for the ns8390 (NE, WD, etc) added by Timothy Legge.
  1780. + Provide config access to alternate DHCP/BOOTP ports. The macro
  1781. ALTERNATE_DHCP_PORTS_1067_1068 switches to ports 1067 and 1068.
  1782. + UNDI driver by Michael Brown.
  1783. Released as Etherboot 5.3.3 (development)
  1784. + More UNDI improvements by Michael Brown.
  1785. + Michael Brown pointed out error in ASK_BOOT behaviour. Make it match
  1786. documentation. < 0 or undefined means no prompt, = 0 means wait
  1787. forever, > 0 means wait that many seconds.
  1788. + Start of PCMCIA subsystem by Anselm Martin Hoffmeister.
  1789. + Port to Hyperstone architecture (big-endian) by Yannis Mitsos and
  1790. George Thanos at NTUA, Greece.
  1791. + Timothy Legge got the epic100 driver working again, was not working
  1792. when 5.2 released. Also implemented multicasting. Also tentatively
  1793. fixed the tg3 driver.
  1794. + Use Perl script to make .z?lilo images.
  1795. + Added an .iso Makefile rule. This requires newer BIOSes as it
  1796. uses no floppy emulation mode.
  1797. + Guard Kuo sent in a patch for the via-rhine driver not being
  1798. reset properly, Timothy Legge improved it based in the Linux driver.
  1799. Released as Etherboot 5.3.4 (development)
  1800. + David D. Smith, with help from Georg Baum, sent in a patch for the
  1801. eepro100 driver which might help unjam the NIC when the receiver has
  1802. suspended reception.
  1803. + Timothy Legge and Eric Biederman fixed a bug in the tg3 driver which
  1804. caused some models to not receive DHCP replies.
  1805. Released as Etherboot 5.3.5 (development)
  1806. + Timothy Legge ported the Linux Realtek 8169 driver.
  1807. + Michael Brown removed irritating A20 status change messages.
  1808. + Sis900, w89c840 and tg3 drivers fixed by Timothy Legge. R8169 driver
  1809. needs family entry in genrules.pl.
  1810. + Revert to normal way of assigning string to DEFAULT_BOOTFILE as
  1811. tricky stringify macro falls foul of C++ // comments in gcc 3.x.
  1812. Released as Etherboot 5.3.6 (development)
  1813. + Don't include ISA .o files for etherboot-pci.
  1814. + Doug Ambrisko fixed bugs in the FreeBSD loader.
  1815. + Anders Nystrom provided a tiny via-rhine patch
  1816. + Introduce new define DEFAULT_PROTO_NFS for those who were used to
  1817. using DOWNLOAD_PROTO_NFS in 5.0 for NFS booting.
  1818. + Reverse sort PCI drivers so that 3c90x is tried ahead of 3c595.
  1819. + Updated e1000 driver by Georg Baum.
  1820. + New PCI IDs for 3c90x and tulip drivers. Typos in 3c90x and tg3
  1821. drivers corrected.
  1822. + Georg Baum fixed the 3c503
  1823. + Fixed Typos which caused compiling with RARP_NOT_BOOTP to fail
  1824. + Fixed IMAGE_FREEBSD bugs
  1825. + Cleanup of driver output (pcnet32, r8169, sundance, tlan)
  1826. + Minor updates to the Config file comments
  1827. + arch/i386/prefix/boot1a.S is no longer maintained
  1828. + Added make rule for a floppy emulation ISO boot image
  1829. + Timothy Legge updated proto_tftm to make it easier to maintain and
  1830. fix some issues
  1831. + Timothy Legge contributed a forcedeth driver for the NVidia Force
  1832. NIC.
  1833. + Timothy Legge contributed a ns83820 driver for National
  1834. Semiconductor 83820 based NICS
  1835. + Ken Yap added support for creating .liso output type which is an iso
  1836. image with legacy floppy support
  1837. + Michael Brown improved memory allocation, 16/32 mode swapping, and
  1838. did various code cleanups
  1839. + Michael Brown added High-Level PXE API support (pxelinux) to Etherboot
  1840. Released as Etherboot 5.3.7 (development)
  1841. + Timothy Legge Fixed an issue in the e1000 driver with 82544 and
  1842. newer devices that support port I/O. Enabled port io for the reset.
  1843. Without the patch the e1000 could not reliably boot Linux on some
  1844. cards. Thanks to James Pearson, Georg Baum and Marty Connor for
  1845. help resolving this issue.
  1846. + Michael Brown added lots of PXE code to complete implementation. He
  1847. also did a warnings purge of the core.
  1848. + Marty Connor did warnings purge of the network drivers.
  1849. + Anselm Martin Hoffmeister contributed DNS resolution code.
  1850. + Lots of driver PXEifications and cleanups from Timothy Legge and
  1851. Marty Connor
  1852. + Makefile and genrules fixes from Michael Brown and Marty Connor
  1853. + BPBATCH workaround from Timothy Legge and Michael Brown
  1854. + Timothy Legge improved image format detection logic.
  1855. Released as Etherboot 5.3.8 (development)
  1856. + Update to lance.c chip_table from Helge Wagner
  1857. + Fixes to attributes to prevent gcc from optimising away seemingly
  1858. unused functions and variables that are actually referenced from asm
  1859. or in the linking stage. (Ken Yap)
  1860. + Removed non-relocation support, relocation is now always active.
  1861. Removed lance.c driver as this will not work with relocation. 32-bit
  1862. Lance NIC users should use pcnet32. (Ken Yap)
  1863. + Migrated SAFEBOOT to a patch set. This proof-of-concept code is
  1864. incomplete and needs more work before becoming mainstream. (Ken Yap)
  1865. Released as Etherboot 5.3.9 (development)
  1866. + Patch from Tim Fletcher for another eepro100 model.
  1867. + Patch from Jeremy Jackson to make DNS query recursive and fix sign and
  1868. casting issues in dns_resover.c.
  1869. + Paolo Salvan experimented with using isolinux for non-emulation
  1870. images and contributed the first cut at the code for geniso.
  1871. + Fix for relocation issue with prism2_pci driver
  1872. + Small patch to support 3Com tulip version from Jacek Kalinski
  1873. + Dag Lem provided a new pci_id for the eepro100 Intel "82801EB/ER
  1874. (ICH5/ICH5R)"
  1875. + Small patch to support 3Com tulip version from Jacek Kalinski
  1876. + Yinghai Lu contributed a large patch to add filo, bText and usb
  1877. support:
  1878. btext console: In LinuxBIOS, for the VGA, we only can
  1879. enable display chipframe buffer and write char to framebuffer
  1880. to get output in CRT.
  1881. FILO: originally it is standalone boot program and
  1882. author is TakeshiSone.
  1883. Boot from SATA disk.
  1884. Boot from USB disk (OHCI and UHCI). USB boot is from Steven
  1885. James 's baremetal in LinuxBIOS, moved to FILO and added the
  1886. OHCI support to it
  1887. + armnommu arch support by Tobias Lorenz.
  1888. + Driver updates/cleanup: rtl8139, sis900, tlan
  1889. + Updates to via-rhine based on input from Guard Kuo from Via Networking
  1890. Technologies, Inc
  1891. + Update p910nd (port 9100+n printer daemon) to latest version
  1892. + Fixed some bugs to enable compilation for gcc 3.4.x.
  1893. Released as Etherboot 5.3.10 aka 5.4RC1 (development)
  1894. + Changes to segment scheme to make large compressed images work.
  1895. + .zelf images can be built now but still don't run properly. .zrom
  1896. images may be broken.
  1897. + Start of a .exe prefix which should allow payloads > 64kB.
  1898. Released as Etherboot 5.3.11 aka 5.4RC2 (development)
  1899. + Left out in last release's LOG: accepted patch from Jan Kiszka
  1900. fixing default TFTP blocksize.
  1901. + Fixed .z?rom image generation, they work now.
  1902. + Patch from Jan Kiszka for for multiple receive buffers in eepro100
  1903. driver.
  1904. + Fixed 961507 Not so nice 'F?' message when no file name received
  1905. + Small fixes to e1000 and via-rhine drivers.
  1906. + New mtd80x.c driver contributed by Erdem Guven
  1907. + New dmfe.c driver for Davicom based cards contributed by Timothy Legge
  1908. + Added new definitions of site DHCP options in preparation for 5.4.
  1909. + Removed etherboot(-pci)?.* rule because there are too many drivers and
  1910. the image will no longer fit in memory. I don't want to choose a subset
  1911. of drivers as everybody will have different preferences. So I'm going to
  1912. piss off everybody equally by deleting the rule. Use the multiple driver
  1913. rule (driver1--driver2--...) and select your own subset of drivers.
  1914. Released as Etherboot 5.3.12 aka 5.4RC3 (development)
  1915. + Changes to Makefile.main and Config to collect FILO objects in
  1916. filolib.a. This allows FILO to be excluded from compilation and linking
  1917. with one Makefile define.
  1918. + Reverse site DHCP option changes, should apply for official
  1919. assignment.
  1920. + RIS filename patch which seems to work for many people.
  1921. + Thanks to the help of Daniel Nilsson, tracked down and fixed a bug
  1922. where the tftp code did not fall back to 512 byte blocks when an OACK
  1923. was NOT received.
  1924. + Removed dead code related to CAN_BOOT_DISK.
  1925. + Clarified that BOOT_DISK and BOOT_FLOPPY options only work with
  1926. LinuxBIOS and are not replacements for PCBIOS functions.
  1927. + Renamed EMERGENCYDISKBOOT to EXIT_IF_NO_OFFER.
  1928. + Builtin menuing DHCP options are gone.
  1929. + Paolo Salvan submitted changes to arch/i386/Makefile to make .com
  1930. images compressed.
  1931. + Eric Biedermann made .*elf images work again and cleaned up the build
  1932. procedure in the process. The hardwired virtual RELOCADDR is no more,
  1933. the virtual base is 0. He also added code to display which protocols are
  1934. compiled into the image.
  1935. Released as Etherboot 5.3.13 aka 5.4RC4 (development)
  1936. + Lots of fixes by Eric Biederman. Symbols for protected mode segment
  1937. and prefix segments separated. Multiple ASM statements combined to
  1938. ensure compiler keeps them intact. Allocate real mode stack if none in
  1939. use. Protect low memory interrupt vectors. Makefile rules for various
  1940. prefixes factored. Dynamic relocatable image support.
  1941. + Fixes by Michael Brown. Cleanup of PXE and UNDI code.
  1942. + Patch to Tulip driver for missing PCI ID.
  1943. + Fixes to genrules.pl by Kenneth Sumrall.
  1944. Released as Etherboot 5.3.14 aka 5.4RC5 (development)
  1945. + Small ARMNOMMU architecture fixes by Toby Lorenz.
  1946. + Patch to Tulip driver for additional PCI ID by Ramesh Chander.
  1947. + Proxy DHCP support, catrom.pl script, flat real mode support, and
  1948. e1000 fixes by Michael Brown.
  1949. + New PHY support for tg3.c by Timothy Legge.
  1950. + FS Protocol support by Radim Kolar.
  1951. + FILO config changes by YHLu.
  1952. + Support for compilation on AMD64 for i386. makerom.pl fixed not to
  1953. change product string pointer if one already exists.
  1954. Released as Etherboot 5.3.15 aka 5.4RC6 (development)
  1955. + Minor additions and amendments to acknowledgements.
  1956. + Added Doug Ambrisko's FreeBSD patch to freebsd_loader.c. Doesn't
  1957. hurt FreeBSD 4 and seems to help FreeBSD 5 get further in booting.
  1958. Should not affect other image types since it modifies only one file.
  1959. The part of the patch relating to osloader.c was already present.
  1960. Released as Etherboot 5.4.0 (production)
  1961. + Added PCI ID for Fujistu Siemens Futro C200 by Martin Vogt
  1962. + Liu Tao contributed a driver for the AMD8111 based on the Linux
  1963. driver
  1964. + Till Straumann patch for Sporadic eepro(10) RX problems after reboot
  1965. + Hermann Gausterer sent a patch to support additional Broadcom PHYs
  1966. + Timothy Legge updated the forcedeth driver to the latest Linux version
  1967. 2.6.10 (untested and broken)
  1968. + YhLu fixed the updated forcedeth driver so that it worked and confirmed
  1969. that it supports the Gigabit nVidia NICs
  1970. + Timothy Legge fixed relocation issues with the eepro driver