| Major changes from 1.0 to 1.1 |
| |
| + Everywhere: Can compile two versions of the code, under gcc or bcc |
| (Bruce Evan's cc), so that 16-bit boot PROMs can be made. See |
| netboot-16/README.16 for more details. |
| |
| + Everywhere: Removed duplicate defines, e.g. everybody defined their |
| own ID for ethernet address size (6). Put IDs for magic numbers in |
| various places. Still some inconsistency, ETH_ and ETHER_ are used. |
| |
| + Everywhere: Added prototypes of functions to netboot.h. Removed |
| unused variables. |
| |
| + Makefiles: Rewritten. |
| |
| + netboot.h: Added define for TFTP_MAX_PACKET = 512. Increased TIMEOUT |
| for tftp packets to 180 (about 10 seconds) so that tftp servers would |
| be able to retransmit blocks. |
| |
| + main.c: Rewrote tftp(). Original was intended to get only one block |
| and the strain on the structure due to modifications was showing. |
| Increased config_buffer size to TFTP_MAX_PACKET+1 to avoid special |
| casing data length=512. |
| |
| + linuxloader.c: Cleaned up the code in some places, especially |
| linux_tftp. Moved the bootp reply block into bss space instead of a |
| fixed location such as 0x90000. |
| |
| + ns8390.c: Removed one bug regarding packet length. packetlen was |
| wrongly shortened when packets wraparound the ring buffer. |
| |
| + 3c509.c: Changed some of the gotos to returns. Removed ARP code since |
| that's already done elsewhere. Removed interrupt enable and Rx early |
| notification (we can't do anything with the packet until it's complete |
| anyway). |
| |
| Major changes from 1.1 to 1.2 |
| |
| + Small bug in makerom.c. Extra semicolon shortened for loop and made |
| double checking code invalid. |
| |
| + Added version identification to startup string. |
| |
| + Gathered external declarations into netboot.h. |
| |
| + New compile time option for netboot-32. If INT19H is not defined, |
| then boot ROM takes control as soon as BIOS scans it. This may solve |
| the problem of some BIOSes not calling the boot ROM at INT19H. This |
| may be when disks are detected by the BIOS, i.e. the machine is not |
| truly diskless. |
| |
| + Added a new program, test.c, for making test ROMs to verify that |
| the BIOS recognises the ROM. |
| |
| + New directory contrib contains contributed code. Currently contains |
| masq by Gerd Knorr: make a boot floppy without DOS |
| comboot-1.0 by Adam J. Richter: also make a boot floppy without DOS. |
| |
| + New mknbi-1.4 from Gero Kuhlmann and Markus Gutschke. This one handles |
| the new bzImage format. |
| |
| Bumped up version to 2.0 because we are so listed in the Linux 2.0 |
| distribution and this would avoid confusion. |
| |
| Major changes from 2.0 to 2.1 |
| |
| + Added LSM for transname-patch to contrib. |
| |
| + Added patch for serial console from Claus Heine |
| <claus AT momo PERIOD math PERIOD rwth-aachen PERIOD de>. |
| |
| + Claus Heine contributed patches to the 2.0.21/22 kernel sources to |
| allow NFS swap. |
| |
| + Markus Gutschke provided fixes to start2.S so that main can return to |
| the ROM code if user doesn't want to ROM boot. |
| |
| + Added code to main.c to timeout on the prompt and assume Y or N |
| for the answer. Timeout and answer configurable. |
| |
| + Made NE1/2000 probe addresses configurable from Makefile. Fixed up |
| autoscan code. |
| |
| + Made NFS_BOOT a configurable option. By undefining it, only tagged |
| file load is supported but ROMs are under 8k. |
| |
| + ROMSIZE is not used by makerom now. -s flag controls size of ROM |
| at runtime. So don't need to recompile makerom if ROMSIZE changes. |
| |
| + Updated netboot-16 for the latest dev tools from the Linux-MT |
| project. Use the size.c from there. |
| |
| + Got rid of _main() in main.c, instead using #ifdef ELF in start2.S. |
| ELF is preferred now anyway. |
| |
| + Changed bcompare to standard bcmp and reversed sense of result. |
| Reason: to use standard library if available, e.g. Netboot-16. |
| |
| + Common Makefile for 32 bit and 16 versions, with differences in |
| Config files. |
| |
| Major changes from 2.1 to 2.2 |
| |
| + New device driver for the Crystal Semiconductor CS89x0 chipset family. |
| (because of legal problems, this code is currently in the "contrib" |
| directory.) |
| |
| + Added support for loading BOOTP extension files (c.f. RFC1533). |
| |
| + If we have to go thru a gateway, then use the one that has been used for |
| the BOOTP daemon. If the BOOTP daemon is directly accessible, then use |
| the first entry in the "gw" gateway list instead. |
| |
| + For all retries, back off according to RFC951 by randomizing the timeouts |
| and exponentially increasing them until an average of one minute is |
| reached. |
| |
| + Warn if code will not fit into chosen ROM size. Happens only if the |
| autosizing in the Makefile somehow fails. |
| |
| + Modified the code for enabling the A20 gate; this could increase |
| compatibility, but I still have to hear from users. |
| |
| + The copyright message will now reflect, which features have been |
| enabled at compile time. |
| |
| + Added support for selecting different boot images from a menu. As a side |
| effect, this can be used to upgrade the ROM without having to burn a new |
| image (c.f. README.VendorTags). |
| |
| + Display a "message of the day" that is provided by the BOOTP daemon. |
| |
| + The sanity check for detecting a Linux kernel was too strong to properly |
| recognize a 2.1.x kernel; this has been fixed. |
| |
| + Trys to negotiate for 1432 octect blocks, if the TFTP daemon knows |
| about RFC1783. |
| |
| + We can optionally boot from local disk, if the BOOTP server cannot |
| be contacted. |
| |
| + Restructured directories: got rid of netboot-freebsd to reduce confusion |
| with Gero Kuhlmann's netboot, moved documentation to doc and renamed |
| directories to be more in line with Unix conventions. Edited documentation. |
| |
| + Created a dispatch table for NIC routines so that we can include one |
| or more drivers in one binary. Renamed all entry points in the driver |
| sources. Created two new files, config.c, which holds the dispatch |
| table and can be conditionally compiled; and nic.c which contains the |
| extern variables referenced by the drivers. |
| |
| + Automatically decide what size ROM is needed by doing a size and then |
| choosing the correct startup object. Currently caters for 8k, 16k and |
| 32k ROMs. |
| |
| + Optionally include a simple interpreter for ANSI escape sequences. This |
| allows for fancier boot menus. |
| |
| + Remove patches directory which is mostly relevant to 1.x kernels only. |
| Everybody should use 2.x kernels now. If for some reason you need those |
| patches, get an older release of etherboot. |
| |
| + Fix Makefile to work even if . not on PATH. |
| |
| + Sadly, 32 bit ROMs are now > 8kb. We will try to reduce the size by |
| conditionals in a later release. For now, use version 2.1 if your NIC |
| won't take > 8kb ROMs. |
| |
| + Release as 3.0b1 because of the large amount of changes. |
| |
| + Fixed a few problems with the code for ANSI escape sequences and |
| added optional support for displaying graphics. |
| |
| + Optional support for password protected boot images. |
| |
| + Optional support for booting from block devices (floppy, hd). |
| |
| + The bootp server can pass additional parameters to the loaded kernel |
| image (currently, this only applies to Linux) and the user can be |
| allowed to edit a commandline; the latter is optionally protected by |
| a password scheme. |
| |
| + Set the warm-boot flag when the main routine is entered. |
| |
| + Release as 3.0b2 |
| |
| + Added code for updating the FlashCard EPROM over the network |
| (contrib/flashimg). |
| |
| + Added very simple code for turning a ROM image into a network loadable image. |
| This is useful for debugging, but some users without flash EPROMs might |
| appreciate the possibility to load a fully fledged image from a very basic |
| configuration. |
| |
| + Optional support for compressing the ROM images. Please read |
| doc/COPYING.compressor before using this feature. |
| |
| + Sync'd our source tree with Gero's netboot-0.5; this means that you now need |
| the as86 from the ELKs project in order to recompile all of the files. This |
| should not affect normal usage, though. |
| |
| + Added "mknbi-blkdev" for booting from local block devices. |
| |
| + Fixed some bugs in ppmtoansi.c and bootmenu.c |
| |
| + Renamed reference compressor implementation to compressor.exp otherwise |
| make tries to use it and it should not be turned on by default. |
| |
| + Zero'ing BSS in 16-bit version has to be done to _end, not to A0000 |
| because it's executing in a segment, not in flat address space in 16 |
| bit mode. |
| |
| + Ken Yap contributed a quick and dirty Perl script for people who use |
| netboot to test ELKS. So far I'm the only one I know of; maybe the |
| others are silent. :-( |
| |
| + Release as 3.0 |
| |
| Major changes from 3.0 to 3.1 |
| |
| + 4 versions of etherboot can be built for a NIC: .com for testing and |
| .rom for burning into EPROM, and corresponding compressed versions: |
| .lzcom and .lzrom. |
| |
| + The loaders are now separate programs which are prepended to the |
| etherboot binary. This allows them (plain and uncompressing versions) to |
| be maintained separately and gives a bit more RAM to the etherboot code. |
| |
| + No need to define ROMSIZE in the build. makerom automatically discovers |
| the ROM size needed and fills in the size field in the ROM. This |
| simplifies the build procedure. |
| |
| + 16 bit versions use the same loaders as the 32 bit version. Also fixed |
| two bugs in the 16 bit versions: (1) a non-8086 instruction in zloader, |
| (2) setting warm-boot flag in main which zapped some code. |
| |
| + Fixed a documentation bug on the ANSI escape sequences. |
| |
| + Include netboot-0.5.3 distribution from Gero Kuhlmann. |
| |
| + Included some contributions from Dickon.Reed AT cl PERIOD cam PERIOD |
| ac PERIOD uk: Running display of Kbytes loaded, line of delimiters after |
| loading complete, a temporary hack to address timing problems with the |
| 3C509, and some Makefile cleanup. The first two changes need to be |
| enabled in Config with defines. |
| |
| + mknbi-blkdev seems to have been left out by Gero Kuhlmann. Add to |
| contrib directory. You probably have to make a symlink to it from |
| the netboot-0.5.2 directory. |
| |
| + Release as 3.1 |
| |
| Major changes from 3.1 to 3.2 |
| |
| + 16 bit version now can load to extended memory, if it exists. On |
| a 8086/8 this will silently fail. |
| |
| + Cleaned up interface between main body of code and NIC drivers. No |
| global variables referenced in NIC driver, everything is passed |
| through a structure. Only the probe function is visible outside, |
| pointers to the others are returned in the structure. |
| |
| + Implemented autoprobe for 3c503. Also simplifies code at same time. |
| |
| + Removed ARP response code in ns8390.c. Don't think we need to respond |
| to ARP requests because other machines will do gratuituous ARP when |
| boot code sends out bootp request. Are there cases where this is not |
| true? Gateways? |
| |
| + Added 1 second timeout to routine that clears the keyboard buffer |
| in case there is no keyboard. |
| |
| + Added a skeleton driver that can be used as a template for new NIC |
| drivers. |
| |
| + ./lzhuf in Makefile so that it will run even if . is not on path. |
| |
| + Fixed comboot to work on 286s also. Won't work yet on 8086/8. |
| |
| + Fixed mknbi-blkdev to configure properly under netboot-0.7. |
| |
| + Added David Munro's PCI code adapted from Linux. Currently has entries |
| for PCI NE2000 clones. Generalised it to probe other PCI cards later on. |
| |
| + Moved twiddle() outside NIC driver except where used to provide a delay. |
| |
| + Fixed bug in Makefile spotted by Ton Biegstraaten. Should prepend |
| ZLOADER to make all.lzcom, not LOADER. |
| |
| + Charlie Brady donated a NE2100 (LANCE) card, so Ken Yap wrote a driver |
| for it. Should work for other LANCE (7990, etc) based cards with some |
| modifications. |
| |
| + Markus Gutschke wrote rom-scan, and it is in contrib/. |
| |
| + Hack rom-scan.c so that a DOS version can be compiled. |
| |
| + Removed all.* targets from Makefile. The NIC specific loaders should be |
| used in preference as the all.* loaders can run out of memory. |
| |
| + Added a disable routine to dispatch table so that cards can be turned |
| off before the loaded code is executed. |
| |
| + Make INT19H the default. |
| |
| + Rogier Wolff persuaded AW computer systems to contribute the Intel |
| EtherExpressPro 100 driver. The binary to hex converter in contrib/ |
| is also from Rogier Wolff. Part of the work is sponsored by BitWizard |
| NL (www.bitwizard.nl). |
| |
| + Distribute with a subset of netboot-0.7.2 that doesn't have the bootrom |
| portion. |
| |
| + Release as 3.2. |
| |
| Major changes from 3.2 to 4.0 |
| |
| + Merged in Vlad Lungu's patches for DHCP support, ifdef'ed by DHCP_SUPPORT. |
| |
| + XID matching fix also provided by Vlad Lungu. |
| |
| + Merged in William Arbaugh's patches to make eepro driver work properly. |
| |
| + Add to contrib/ better bin2intelhex from Jean Marc Lacroix. |
| |
| + Patches from Jim Hague (thanks!) for the following: |
| |
| * Added PIO mode for 3c503 to ns8390.c. Changed the card detection to |
| detect shared memory or PIO and use the selected one, and removed |
| a jumper check that failed on the Bull (no jumpers). |
| |
| * Added more #ifdefs to ns8390.c to include only code relevant to the |
| card being compiled, and removed unnecessary run-time card vendor |
| behaviour branches - it's all now #ifdefd. |
| |
| * Added a -3 parameter to makerom to set the last two bytes to 0x80. |
| These are the values they have in the 3Com Etherboot image that was |
| in the Bull. (Also on the 3c503 card I have - Ken.) Also altered the |
| Makefile to add this parameter when building a 3c503 image. |
| |
| * Modifies lzhuf.c, objdump86.c & size86.c to work on either-endian systems. |
| |
| * Adds a -DT503_AUI config paramter to let you choose AUI or BNC on |
| 3c503s. Previously it defaulted to AUI, and you had to change the |
| code to alter it. |
| |
| * Changed the BCC include directory to /usr/bcc/include. If you use the |
| BCC include files they don't define u_char, u_short etc. I've added |
| these into linuxdef.h, ifdef'd on BCC. |
| |
| * Adds a trivial Linux 3c503 driver patch to the contrib directory |
| to let it spot these 'ere Bull things. |
| |
| + Charlie Brady confirmed that the Lance driver works with PCI so there |
| is a new lancepci driver now. |
| |
| + Removed support for NFS_BOOT; only TFTP booting supported now. |
| |
| + Removed support for linear images; only tagged images supported now. |
| |
| + Removed PRIORIZEBOOTPKERNEL and BOOTPKERNELONLY. Bootp reply must |
| specify kernel name. |
| |
| + Bug fix for 16 bit version of 3c509 driver: sign bit propagation bug. |
| |
| + Revert to non-pausing versions of out[bw] and inb for NEx000 driver |
| because of reports of timimg problems on some cards. |
| |
| + New driver for NI6510. Just a simple tweak of the lance driver for |
| different ID bytes and different register offsets. According to the |
| NI6510 driver in Linux, the NI6510 Etherblaster is more like the NE2100 |
| and would be detected by the NE2100 driver. So use that one instead. |
| |
| + New drivers for 3c507 and NI5210, both of which use the i82586 chip. It |
| works properly for both now. I needed to have enough receive buffers to |
| make sure i82586 never goes into an out of resources state. 3c507 driver |
| has one quirk, it only responds after second bootp request. I seem to |
| remember something about this problem of losing the first packet after |
| initialisation in early Linux discussions. I am also now convinced |
| that Intel designers have weird minds. BTW, NI5210 driver assumes 8k |
| RAM because if you put the ROM on the NIC you can only have 8k RAM. If |
| you are putting the ROM off-board and you want 16k, well, talk to me. |
| |
| + Call nic_disable routine just before jumping to loaded image. This |
| does nothing in most drivers, but may have side effects as the nic_reset |
| routine used to be called instead. |
| |
| + One of those "why I didn't think of it before" ideas: A modified version |
| of comboot, called floppyload, that is prepended to the .rom image rather |
| than the .com image and then both written raw to a floppy for testing the |
| bootrom. All we have to do is jump to an entry point in (z)loader that |
| skips the INT19H stuff. Relocation will happen automatically. Now the |
| .com images and comboot are superfluous, unless one is masochistic enough |
| to want to try to test under DOS. |
| |
| Added .fd0 targets to Makefile. Saying make <card>.fd0 will make |
| floppyload.bin and <card>.rom, and cat both to /dev/fd0. Naturally the |
| drive must be writable and you must have a floppy in the drive. |
| |
| + New driver for Tiara (Fujitsu EtherStar). This was one of the easiest |
| drivers to write. But the chip apparently has some quirks; there is no |
| Linux driver for it in the standard distribution and the email address |
| of someone who wrote an alpha driver is invalid. Perhaps I'll bump into |
| an AT1700 (which has a similar chip) one day and be able to reuse a lot |
| of the code. |
| |
| + Updated contrib/mkelksnbi for ELKS 0.0.68. |
| |
| + Confirmed that the SMC8216 driver works. 8416 not tested, it's a PnP |
| card. Can anybody confirm this? |
| |
| + New contributed software: p910nd, a tiny printer daemon suitable for |
| diskless hosts. |
| |
| + Made ANSIESC work for Etherboot/16. |
| |
| + Fixed Makefile and Config.* so that it works with old binutils. |
| |
| + Included a subset of netboot-0.7.3. |
| |
| + Released as version 4.0. |
| |
| Changes between 4.0 and 4.1 |
| |
| + Patches by Andrew Coulthurst for eepro100b. |
| |
| + Patches by Doug Ambrisko for booting Windows95 after answering N to |
| the boot from network question. Added conditional code to cope with |
| broken DHCP server and TAG 128. |
| |
| + Put version and driver identifier at end of ROM image if it fits, |
| to help identify ROMs in future. |
| |
| + Capture ROM segment address and length to help choose between multiple |
| NICs later. |
| |
| + Don't clear all of memory because it will destroy return address |
| on stack. |
| |
| + Changes to comboot-1.2 (although obsolete) to run on 8088s. |
| |
| + New version 0.2 of p910nd, a non-spooling printer daemon. |
| |
| + Patches by Alex Harin to prepended loaders and makerom to generate PnP |
| ready ROMs. Modified makerom to automatically detect PnP and PCI headers |
| and do the right thing. Added option to change the vendor and device IDs. |
| |
| + Augmented documentation for 2.1 and above kernels. Kernel now wants to |
| mount /tftpboot/<hostname in bootptab> rather than /tftpboot/<ip address> |
| as the root FS. |
| |
| + Changed all the outb* and outw calls in drivers (except eepro) to be |
| OUTB* and OUTW, then defined macros to translate to out[bp]* for both |
| Etherboot/32 and Etherboot/16, instead of pasting macros from Linux |
| include files because apparently they've changed in 2.1. At the same |
| time reversed the arguments in start16.S for outb and outw to match the |
| Linux convention. Unfortunately the out[bw] usage came that way from |
| FreeBSD. Someday I'll reverse the arguments in the C files properly. |
| For any new driver writers, you should use the Linux order now. |
| |
| + New contributed utility, disnbi for decoding and extracting network |
| boot images. |
| |
| + Martin Atkins contributed mntnbi for mounting DOS NBIs. |
| |
| + Peter Dobcsanyi contributed vendor and device IDs for the Netvin |
| NE2000/PCI clone. |
| |
| + adam AT mudlist PERIOD eorbit PERIOD net contributed RARP code as |
| alternative to BOOTP/DHCP. Activated by RARP_NOT_BOOTP define. |
| |
| + Added link to Claus-Justus Heine's NFS swap Web page and updated the |
| contrib directory. |
| |
| + Disabled max packet length check in ns8390.c. Caused spurious Bogus |
| packet messages in some cases and doesn't seem that useful a sanity |
| check anyway. |
| |
| + Daniel Engstrom contributed a SMC9000 driver. |
| |
| + Didier Poirot contributed an Etherpower II (EPIC 100) driver. |
| |
| + Added bug fix by Attila Bogár for bootmenu.c and patch to main.c to |
| remove looping menus on failure. Also code for ARP replies and TFTP |
| block retransmit (#ifdefed because controversial). |
| |
| + Code cleanup of tftp and tftpd also by Attila Bogár. |
| |
| + Nathan R. Neulinger fixed a bug with block being declared short instead |
| of u_short in tftpd.c, which limited transfers to 32k blocks. Fixed |
| problem with field tu_block being declared as signed short in many |
| platforms by including fixed version of tftp.h. Fixed tftp also for |
| good measure. |
| |
| + New mini-HOWTO on a "ssh terminal". |
| |
| + Andreas Mack pointed out that eepro100 doesn't compile on 2.1 and |
| 2.2 kernels. Removed unnecessary include of bios32.h and reliance on |
| definition of virt_to_bus in kernel headers in eepro100.c, epic100.c |
| and lance.c. |
| |
| + David Sharp contributed a Tulip driver written for FreeBSD netboot. |
| Ken Yap ported to Etherboot. Not tested yet because no hardware. |
| |
| + Replaced references to arptable[ARP_CLIENT].node to nic->node_addr in |
| eepro100.c and epic100.c as they should be. |
| |
| + Greg Beeley of LightSys Technology Services contributed a 3c905b |
| driver. Be sure to read the release notes in 3c905b.txt. |
| |
| + Günter Knauf suggested making the prompt strings more generic and to |
| put a newline after the answer. Beware, N now means Network boot and |
| not No to network boot. |
| |
| + Alex Nemirovsky contributed some patches for BIOSes that use an extended |
| space at the top of 640k. Also some code for BIOSes that don't implement |
| BIOS32 correctly or at all. |
| |
| + Use PCI extension BIOS header only for PCI cards, all others use legacy |
| extension BIOS header. |
| |
| + Klaus Espenlaub contributed various cleanup patches to the code. Also |
| introduced Rainer Bawidamann's code, see next paragraph. |
| |
| + Rainer Bawidamann contributed a Realtek 8139 driver. |
| |
| + Simplified rules for building .bin files, use -b of as86 so we |
| don't need ld86 or objdump86 now. But later found that a fixed as86 is |
| required. So supply preassembled binaries. The keen hackers can get the |
| fixed tools. |
| |
| + Georg Baum contributed a Schneider & Koch G16 driver. Only the |
| 32 bit version works at the moment; even though the 16 bit version |
| compiles, it won't work because the current code assumes flat memory |
| addressing. Anybody who needs the 16 bit version should feel free to |
| fix it. |
| |
| + Reduce size of ROM image loaded by floppyboot.bin from 64kB to 32kB |
| for a slight speedup in loading. None of the images are even 32kB anyway. |
| |
| + Updated some of the documents in doc/sgml. |
| |
| + Klaus Espenlaub sent in a totally revamped start32.S, using the code16 |
| and code32 directives in recent GNU as (so if this file won't assemble |
| maybe your as version is not recent enough). Also patches to the menu |
| handling code. |
| |
| + jluke AT deakin PERIOD edu PERIOD au sent in a fix for the WD/SMC8013 |
| long ago which I finally got around to verifying. |
| |
| + start16.o and start32.o are supplied for those people who have problems |
| compiling start*.S with as/as86. |
| |
| Released as Etherboot-4.2.0 |
| |
| + One line fix to 3c509b by Greg Beeley for Wake-On-LAN support. |
| |
| + Added patches by Klaus Espenlaub that I forgot. |
| |
| + Made AS_PSEUDOS not the default, assume that people have sufficiently |
| up-to-date GNU as. If not they can uncomment that line. |
| |
| Released as Etherboot-4.2.1 |
| |
| + Disable 3c509 after loading finished or port may be unusable. |
| |
| + Woops, forgot to up the version's last digit in the last release. |
| |
| + Stephan Bauer sent in a device ID for config.c for 21142 chip Tulips. |
| |
| + Ifdef out input overrun recovery code (it's really only needed for |
| NE2000s) and use SHMEM by default for 3c503s to bring the ROM size down |
| below 8kB. |
| |
| + Added code to start32.S to detect < 386 and exit so it doesn't hang |
| the computer. Doesn't print a message yet. |
| |
| + Changed README.sgml to recommend that TFTP use a separate directory |
| from NFS, /tftpdir. Added sample configuration file for DHCPD and caveat |
| about the name of the root directory when using DHCPD. |
| |
| + Revamped atnetboot.sgml: use mtools most of the time, write about a |
| few example applications. |
| |
| + Quick Perl script for converting bootptab to dhcpd.conf. |
| |
| Released as Etherboot-4.2.2 |
| |
| + Forgot to put new version of src/start32.o. Not urgent though, the |
| extra code only guards against Etherboot/32 being executed on < 386. |
| |
| + Supply version preassembled start32.o with ANSIESC and FLOPPY defined |
| for those with a deficient as. Define dummy handleansi routine in |
| ansiesc.c so that it will still link even if this start32.o is used. |
| |
| + Edited *.asm so that they can be assembled by either as86 (ELKS version) |
| or nasm. |
| |
| + Changed Makefile so that one can choose between no as86, as86 or nasm. |
| |
| + Added Mark Burazin's conditional code for Compex RL2000 PCI NIC. |
| |
| + Increase delay during probe phase to 10ms as 1ms is too low for some |
| 3c509 boards. Donald Becker's Linux driver hints that > 2ms is needed |
| to be safe. Also call t509_disable in case board was active. |
| |
| + Update README.sgml date and version. |
| |
| Released as Etherboot 4.2.3. |
| |
| + rtl8139.c: Reduce the number of transmit buffers to reduce footprint. |
| Remove polling loop in *_loop(), caller already does the looping. |
| |
| + main.c: Fix code indentation in bootp(). |
| |
| + Small corrections to documentation. |
| |
| Released as Etherboot 4.2.4. |
| |
| + Matthias Meixner found a longstanding bug in rtl8139.c where it was |
| testing the wrong bit for the existence of a packet in the buffer. |
| |
| + Added paragraph to documentation about caveats for hosting NFS root |
| on a different architecture. |
| |
| Released as Etherboot 4.2.5. |
| |
| + Updated mklnim for RH6.0 which uses a different floppy image and |
| requires 'network' to be appended to kernel parameters. |
| |
| + Reversed sense of #ifdef DHCP_SUPPORT to #ifndef NO_DHCP_SUPPORT and |
| so forth, i.e. the default is with DHCP support. |
| |
| + Suggest reducing options for rtl8139 driver to minimise footprint in |
| release notes. |
| |
| + Jim McQuillan provided changes to support the SMC1211, which uses the |
| RTL8139 chip. |
| |
| + Changed lret in start32.S to int $0x19 so that it doesn't depend on |
| the return location being there. |
| |
| Released as Etherboot 4.2.6 |
| |
| + Succeeded in booting FreeDOS with the kernel in the tagged image rather |
| than on the ramdisk, i.e. the boot process jumps directly to the kernel |
| in memory. The utility is mkfreedosnbi in contrib/. |
| |
| + Additions to the documentation. |
| |
| Released as Etherboot 4.2.7 |
| |
| + Matt Hortman pointed out that the BIOS clock value returned by INT1AH |
| rolls over at midnight, causing delay loops that cross midnight to |
| fail. Fix was to keep track of midnight crossings in currticks so that |
| currticks' return value is monotonically increasing. |
| |
| + Added paragraph to documentation about editing PCI vendor and device |
| IDs in Makefile if needed. |
| |
| + Merged in FreeBSD support code supplied by Doug Ambrisko. Thanks! |
| |
| Released as Etherboot 4.2.8 |
| |
| + Cleaned up the FreeBSD support in osloader.c. Symbols to use in Config |
| are to select image type, not FreeBSD specific now. |
| |
| + Added simple signature checking code in floppyload.asm in case somebody |
| forgets to append a ROM image or tries to load a non-ROM image. |
| |
| + Merged in 3c90x and multiple PCI bus support by Steve Smith. Thanks! |
| |
| + Included NT-Diskless-Terminal HOWTO by Pavel Tkatchouk. |
| |
| + Included snapshot of H. Peter Anvin's rewrite of tftp. |
| |
| + Combined tftp and tftpd directories, and touched up Makefile to reflect |
| normal Linux install directories. |
| |
| Released as Etherboot 4.2.9 |
| |
| + NT-Diskless-Terminal HOWTO renamed to Diskless-From-NT. |
| |
| + One line fix to mknbi-dos to recognise FAT16 filesystems as legal. |
| Updated first.S in mknbi-dos so that it can be assembled by nasm and is |
| also suitable for FreeDOS with the right define. Still backward compatible |
| with as86. Bug fix at line starting getnm3:. |
| |
| + Updated first.S in mknbi-linux so that it can be assembled by nasm also. |
| |
| + Locate bootp data block at 0x93C00-0x93FFF to free up 1024+ bytes in |
| [0x98000-0x9FFFF]. Etherboot/32 only, business as usual for Etherboot/16. |
| |
| + Patch from Attila Bogár to make CONGESTED a compile option for |
| TFTP_TIMEOUT. Also corrected spelling of his name in README. |
| |
| + Fixed start32.S to assemble correctly with gas version 2.95. Must |
| define GAS295 in CFLAGS. |
| |
| + Add contrib/3c90xutil containing a utility for handling 3c90x EEPROMs |
| in situ. |
| |
| + Update p910nd to 0.3. client.pl now checks if hostname is known and |
| uses more convenient routines from Socket module. |
| |
| + Moved the Flashcard directory into a separate package as it's of |
| limited interest. |
| |
| Released as Etherboot 4.2.10 |
| |
| + Fixed bug introduced in 4.2.10 in code for handling bootp extension |
| files. |
| |
| + Change in 3c90x.c so that it can compile under FreeBSD. |
| |
| + Patch to tulip.c from Nick Lopez to handle Macronix 98715 (Tulip clone). |
| |
| Released as Etherboot 4.2.11 |
| |
| + Prefer RFC1533_GATEWAY to giaddr for routing tftp packets. |
| |
| + Print out both relay address and gateway address. |
| |
| + Stored arptable ipaddrs in network byte order. Makes everything simpler |
| and we can get rid of convert_ipaddr. Now %I in printf and inet_ntoa |
| have to deal with NBO. We reduce the footprint by ~100 bytes. |
| |
| + Renamed setip to more standard inet_ntoa and change argument type to |
| suit, using in_addr. |
| |
| + Replaced bcmp by memcmp, bzero by memset, and bcopy by memcpy. Allows |
| us to use optimised versions in inline assembler. |
| |
| + Replaced OUTB and OUTW by outb and outw with arguments reversed. |
| Finally all the out macros are the same form as for Linux. |
| |
| + Replaced \r\n and \n\r in output strings with \n since putchar |
| now prints \r before \n. Then changed printf("\n") to putchar('\n'). |
| Like Unix convention for strings now. |
| |
| + Got rid of test.c and Makefile rules connected with it. |
| |
| + Added patch to eepro100.c by Matt Hortman to correct PCI latency. |
| |
| + Merged in Marty Connor's ntulip.c. Now supports Macronix 98715 and |
| Linksys LNE100TX. |
| |
| Released as Etherboot 4.2.12 |
| |
| + Anders Larsen contributed mkQNXnbi, for generating tagged images from |
| QNX kernels. |
| |
| + Bernd Wiebelt contributed code to request vendor tags in DHCP. |
| |
| + Fixed more bugs introduced in 4.2.10 in code for handling bootp |
| extension files. |
| |
| Released as Etherboot 4.2.13 |
| |
| + Marty Connor reduced RTL8139 footprint by using only one transmit |
| buffer instead of 4. Now RTL8139 is reliable. |
| |
| + Moved initialised data declaration from ns8390.h to ns8390.c. |
| |
| + Contributed utilities for wake-on-LAN: wol.c (Bob Edwards) and wake.pl. |
| |
| + Makefile for 3c90xutil/romutil.c. -O is essential when compiling. |
| |
| + Happy year 2000! |
| |
| Released as Etherboot 4.4.0 |
| |
| + VIA-Rhine driver contributed by Paolo Marini. Footprint reduced by |
| Marty Connor. |
| |
| + Netgear FA310TX (Tulip clone, LC82C168 chip) support added by Marty |
| Connor. |
| |
| + Support for 3C905C added by Marty Connor. |
| |
| + mklnim updated to support SuSE 6.x also. |
| |
| Released as Etherboot 4.4.1 |
| |
| + New configuration file scheme to specify what ROMs are built. |
| |
| + Adam Fritzler contributed 3c529 (MCA version of 3c509) support in |
| driver. |
| |
| + Marty Connor wrote a version of 3c90xutil/romutil for 905C NICs. |
| |
| + Günter Knauf contributed a wake on LAN CGI script. |
| |
| + Notes in contrib/eepro100notes on how to flash the EEPROM. |
| |
| + Happy Australia Day, 2000-01-26. |
| |
| Released as Etherboot 4.4.2 |
| |
| + hwilmer AT gmx PERIOD de found a probe error in 3c507.c, shouldn't |
| mask memory size with 0xffffL, this fails with 64kB memory. Also |
| changed to use real-time-clock to timeout on initialisation of i82586 |
| rather than relying on decrementing a variable (which is CPU speed |
| dependent). |
| |
| + James Pearson pointed out that ~ should be escaped as ˜ in |
| vendortags.sgml. Also cleaned up the 8-bit characters while I was at it. |
| |
| + Günter Knauf pointed out that if ASK_BOOT is defined, then key input |
| echos twice. Also, CR doesn't select the default. Problem was that getchar |
| converts all \r to \n then main.c was testing against \r instead of \n, |
| and also that getchar() was echoing when it should leave it to the caller. |
| Deleted code from getchar() and made it a function with no arguments. |
| Also sent me a new version of mp-form.pl with mp-form.txt. Also suggested |
| the good idea that the gateway and relay fields not be displayed if they |
| are not used. |
| |
| + Bob Edwards sent in patches to ntulip.c to autodetect 100 Mb media |
| for 21142/3 NICs. |
| |
| + Okuji Yoshinori found a small bug in main.c: for (retry1 = 0; retry < .. |
| Don't know what effect it had. |
| |
| + Klaus Espenlaub sent patches which make the RTL8139 driver more |
| reliable, see notes in rtl8139.c. |
| |
| + Russ Nelson gave permission to release cs89x0 driver with Etherboot. |
| It's normally under GPL. Moved cs89x0 driver to src directory, removed |
| cs89x0.sgml. |
| |
| + Clarified copyrights of files in distribution. |
| |
| Released as Etherboot 4.4.3 |
| |
| + Klaus Espenlaub sent in some patches to overcome the 64K block rollover |
| problem in tftp. |
| |
| + Bob Edwards, Paul Mackerras and Marty Connor worked out fixes to |
| ntulip.c to handle 21142/3 Tulips properly. |
| |
| + Karsten Tinnefeld sent in a Makefile fragment for doc/sgml/Makefile |
| to generate DVI and PS files using sgml2latex. |
| |
| + tulip.* renamed to otulip.*, ntulip.* renamed to tulip.* |
| |
| + Added FAQ and Writing an Etherboot Driver sections to README. |
| |
| + Woops, if and of swapped in dd command in atnetboot.sgml. |
| |
| Released as Etherboot 4.4.4 |
| |
| + FUKUHARA Makoto supplied a patch for 4.4.4 for FreeBSD ELF booting |
| with large tftp blocks which I missed putting in. |
| |
| + Small patch by Marty Connor to tulip.c to handle fast Tulips better. |
| |
| + Wrote small loader to load images from .com files. |
| |
| + Shusuke Nisiyama contributed a 3c595 (and may work for 3c590) driver. |
| |
| Released as Etherboot 4.4.5 |
| |
| A major reorganisation by Klaus Espenlaub. Here are his notes, verbatim: |
| |
| The biggest change is the almost rewritten Makefiles (both in src and in |
| doc - the one in doc is still reasonably simple). If you want to get |
| an overview - basically one Makefile now builds both /16 and /32 ROMs. |
| This involves quite a few make variables (similarly in Config), but it |
| should be mostly self-explaining. I also converted the suffix rules to |
| pattern rules, because it is the only way to keep the build directories |
| for /16 and /32 apart. |
| |
| Generally all /32 code is compiled in bin32, all /16 code is compiled |
| in bin16, and the code that works for both is in bin. |
| |
| The names (object files, images, but NOT the final ROMs) used during |
| the build process for some PCI cards have changed (especially lancepci |
| and nepci). |
| |
| I eliminated the driver.a file by adding yet more ugly code to genrules.pl |
| (no, I'm not very proud of the code I added there - I hate perl, but |
| at least it works), which now generates all sorts of make rules and |
| dependency information. This eliminates the redundant recompile of all |
| other drivers if you specified a specific target at the make command line. |
| |
| There are now automatic checks for the generated ROM size (3K safety |
| margin are used to allow for 1K BIOS EBDA and 2K stack). This should |
| avoid most of the cases in which the stack overwrites code and/or data, |
| causing strange crashes. |
| |
| On to the real code - I rewrote both the ELF and a.out loading (the |
| blocksize is now properly handled for all formats), and now most of the |
| code is identical. Someone might want to merge the two. I verified that |
| both a.out and ELF FreeBSD loading still works by booting the FreeBSD |
| 2.2.8 and 3.4 install kernels (the ELF kernel you gave me didn't work |
| for whatever reason). Actually I tested everything except NBI, but that |
| code is completely unchanged. |
| |
| I eliminated config.h and created cards.h - just have a look and you |
| should get the idea. The PCI/ISA prototype matching hack is now buried |
| in there. All PCI drivers (and skel.c) have been converted to the new |
| include file. |
| |
| The only file that is really new is nfs.c, which contains the code where |
| I started my journey. |
| |
| The loader code is now merged into one file for both the normal and |
| compressed case. Some bugs have been fixed along the way (the normal |
| loader copied too much data, potentially crashing the machine). BTW: I |
| removed the block copy from comboot, because the first thing the loader |
| code does is - to copy the code to the right place. Also copying it to |
| 0x80000 prevents compressed ROMs (though there is no way in the Makefile |
| to create such a beast). Also the stack changing code was wrong - |
| the overflow handling is missing: 0x9fxxxx-0x800000 is truncated to |
| fit in the 16 bit register, which is not quite what one would expect. |
| The stack pointer must be in the same segment, so for overflows just |
| load 0. Anyway, we don't need a new stack for 4 bytes (the return |
| address). Also the shifts won't work on an 8086/8088. The ROM segment |
| and length code is also done once more in loader.S. Finally the org |
| 0x100 didn't work with my version of as86 - it prepended 256 null bytes. |
| Don't get me wrong - I see that comboot was just a quick and dirty hack. |
| It's now working... |
| |
| I also fixed floppyload to read exactly the right amount of data (not |
| up to 65520 bytes more like the Linux code did) and ripped out some |
| unused code. |
| |
| 3c509.c: includes fixed, const added, static added, removed redundant code |
| |
| 3c90x.c: includes fixed, const added, shortened messages to save space, |
| made the transceiver selection bootrom fix optional (default: off), |
| updated 3c90x.txt |
| |
| ansiesc.c: de-tftpified (now uses "download") |
| |
| config.c: moved the driver prototypes to separate file, added a few const |
| |
| cs89x0.c: ansified, const added, fixed timeout handling |
| |
| eepro100.c: includes fixed, const added, static added, USE_INTERNAL_BUFFER |
| hack, passing globals as a parameter removed, timeout handling fixed, |
| comments fixed |
| |
| epic100.c: comments fixed, const added, static added, USE_INTERNAL_BUFFER |
| hack, removed unused variables, changed debug code to use macro instead |
| of variable, allow broadcasts to be received (after all how did it |
| work before???) |
| |
| etherboot.h: dual/serial console "cleanups", added NFS support, fixed |
| INTERNAL_BOOTP_DATA for pathologic cases, removed prototype within comment |
| (how did that end up there?), moved prototypes for config.c code here, |
| added consts all over the place |
| |
| floppy.c: added static, changed cleanup code |
| |
| floppyload.S: renamed from .asm |
| |
| genrules.pl: I didn't write this :) |
| |
| i82586.c: fixed includes, added const |
| |
| lance.c: fixed DMA for PCI cards, removed leftovers from Linux driver, |
| USE_INTERNAL_BUFFER hack |
| |
| linux-asm-io.h: added prototypes |
| |
| linux-asm-string.h: added prototypes |
| |
| loader.S: renamed from loader.asm, more comments see elsewhere in |
| this mail |
| |
| loader.inc: removed |
| |
| main.c: includes fixed, static and const added, Etherboot/32 now prints |
| relocaddr, hooks for NFS support, drain the Rx queue in some strategic |
| places (after sleep), changed interface to await_reply: timeout handling, |
| new cleanup code |
| |
| misc.c: ansified, twiddle code changed, strcasecmp enabled for |
| Etherboot/16 (smaller than the 16 bit libc version), clear A20 before |
| kernel is started (only for NBI), dual console fixes, removed bogus |
| comment about interrupt enabling using iskey() |
| |
| nic.h: include guard added, added const |
| |
| ns8390.c: fixed includes for PCI version, added const, ansified, renamed |
| internal functions |
| |
| osdep.h: removed #include <asm/byteorder.h> - probably all #ifdef |
| __linux__ and __FreeBSD__ may be removed now. |
| |
| osloader.c: see elsewhere in this mail. removed loads of debugging code. |
| |
| otulip.c: removed unused variables, USE_INTERNAL_BUFFER hack, ansified, |
| added const |
| |
| otultip.h: added const |
| |
| pci.c: fixed signed comparison |
| |
| pci.h: include guard added, const added |
| |
| rtl8139.c: static added, const added, globals are no longer passes as |
| parameters, fixed probe loop |
| |
| serial.S: removed the Makefile hack to calculate the divisor and replace |
| it by a CPP hack |
| |
| sk_g16.c: added static/const |
| |
| skel.c: updated |
| |
| smc9000.c: fixed includes, added const, fixed timeout, removed unused |
| variables |
| |
| start16.S: changed stack pointer reloading |
| |
| start32.S: cleaned up GAS295 support, fixed CPU detection, fixed memsize |
| for > 64MB, added basememsize() |
| |
| tiara.c: fixed includes, added const, removed unused variable |
| |
| tulip.c: fixed includes, added const, decreased oversized frame tolerance, |
| USE_INTERNAL_BUFFER hack, converted to C comments, fixed prototypes, |
| removed unused variable |
| |
| via-rhine.c: fixed includes, converted to C comments, removed unused |
| functions, fixed timeout, USE_INTERNAL_BUFFER hack, removed unused |
| variable, const added |
| |
| lzhuf.c was modified not to output ':' characters, because I find it |
| useful to search for them in a make log to spot all error messages. |
| |
| Finally all symlinks have gone |
| |
| I fixed sgml/vendortags.sgml (maybe it's more a workaround): sgml2txt |
| didn't like the ~~' sequence and ignored a whole line, making the .txt |
| file incomplete. Also freebsd.txt was converted to sgml. |
| |
| My standard patch to netboot-0.8.1/configure (to remove the "unknown") is |
| again in place - how is this file created? By hand? I added serial/dual |
| console support to mknbi-linux. |
| |
| Oh, and something I almost forgot: Etherboot now works under VMware. |
| VMware has a rather large EBDA (3K instead of 1K like most other |
| BIOS versions), so one might have to sacrifice a few nifty options. |
| Note that the Makefile check cannot detect this - maybe we should add a |
| runtime check, too? One thing that doesn't work with VMware is the "Boot |
| Local" stuff - it's not terribly useful if you have to boot from disk, |
| but it shouldn't crash the machine (I've seen several triple faults, |
| depending on RELOCADDR and the stack usage). I tracked it down to the |
| fact that VMware crashes on int 0x19 if the memory area 0x98000-0x9f3ff |
| is overwritten. If one changes RELOCADDR to 0x8f000, everything works |
| nicely. Someone should report the bug to VMware. Also proper boot ROM |
| support should be added to VMware and they should upgrade the virtual |
| card to 100Mbps (don't laugh - they limit the bandwidth to 10Mbps even |
| if you have a real 100Mbps card!). Maybe one could even use the flash |
| utility for the recent AMD PCnet cards... |
| |
| Released as Etherboot 4.5.5 |
| |
| + More fixes from Klaus Espenlaub, based on bug reports by Doug Ambrisko |
| and others. Small cleanups in tulip.c. He also added a BACKOFF_LIMIT |
| parameter to the exponential backoff for retry intervals. |
| |
| + Christoph Willing sent in a fix for PCI NE2000s which forces 16-bit |
| transfer mode for PCI. This might make it work on some PCI NE2000s that |
| failed before, please test if you can. |
| |
| + Moved commercial links off main web page into web page of its own. |
| |
| + Merged in TRY_FLOPPY_FIRST code from <as AT bart PERIOD nl>. |
| |
| Released as Etherboot 4.5.6 |
| |
| + Frank Mehnert spotted a bug in tulip.c where the sole transmit buffer |
| was not tagged as the last one in the chain. |
| |
| + Hacked serial.S to check if a serial interface is present and to disable |
| the routines if not, so that Etherboot does not hang on a machine without |
| a serial interface, even if the option has been compiled in. |
| |
| + Wrote mkromnbi for making a network bootable image from a ROM image |
| (for using Etherboot to test another Etherboot driver). |
| |
| + Krzysztof Halasa found a small bug in nfs.c in the handling of BOOTP |
| extension files. |
| |
| + Some instructions on adding Etherboot to a main BIOS were contributed |
| by Dirk von Suchodoletz. |
| |
| + Some commentary on cbrom.exe versions posted by Rapp Informatik Systeme |
| GmbH to the Netboot mailing list included. |
| |
| Released as Etherboot 4.5.7 |
| |
| + Patrick Auge pointed out that -DT503_SHMEM option should be not used |
| by default, as the comments say. |
| |
| + Heinrich Rebehn pointed out that the documentation needed to be updated |
| for the new bin32 and bin16 prefixes for targets. |
| |
| + Christoph Plattner found that node_addr in struct nic should be unsigned |
| char * or problems occur in the handling of the MAC address in cs89x0.c. |
| |
| + Greg Hudson pointed out that inet_ntoa is misnamed, it should be |
| inet_aton. |
| |
| + Vsevolod Sipakoff suggested that the probe address list for NE2000 |
| should match that of Linux. Done, with the deletion of 0x360 which often |
| conflicts with the parallel port at 0x378. |
| |
| + Created mknbi, a Perl utility that replaces mknbi-dos, mknbi-linux, |
| mkfreedosnbi, and mkromnbi. Removed mk{freedos,rom,elks}nbi/ from |
| contrib/. (ELKS has its own tagged image creation method now.) |
| |
| + Removed obsolete/ from contrib/. |
| |
| Released as Etherboot 4.5.8 |
| |
| + Some small enhancements to mknbi. Merged in disnbi and mklnim. Changed |
| version to 1.0. |
| |
| + netboot-0.8.1 directories distributed separately now. |
| |
| Released as Etherboot 4.6.0 |
| |
| + Nick Lopez discovered that the Davicom 9102 is Yet Another Tulip Clone |
| and a few appropriate initialisations will make it work. |
| |
| + Matthew Reimer sent in patches for contrib/3c90xutil.c/bromutil.c to |
| compile and run under FreeBSD. |
| |
| + Krzysztof Halasa found that the number of buffers in epic100.c needed |
| to be raised to 2 each for operation at 10 Mb for the PCI EtherPower |
| 9432B-TX using the SMC 83C171. |
| |
| + Klaus Espenlaub fixed the root path handling in main.c, it wasn't |
| requesting option 17 in DHCP. Also removed one prototype warning in |
| tftp(). |
| |
| + Daniel Shane sent in code for for adding identifiers to a DHCP request, |
| using a user specified DHCP option. The patch is in contrib/dhcpid. |
| |
| + Bug fix in mknbi-1.0 for the ipaddrs=rom option, warnings about badly |
| formed specification to ipaddrs= or unresolvable names. |
| |
| Released as Etherboot 4.6.1 |
| |
| + Stuart Lynne sent in patches to allow - to mean reuse kernel filename |
| in menu specifications. Also fixed DHCP request to ask for tags 129 and |
| 130 (Ken added this), as the mknbi man page promised. |
| |
| + Fixed URL for Richard Ferri's LUI. |
| |
| + Added URL for Gregory R. Warnes' ClusterNFS. |
| |
| + Changed RFC2132_MAX_SIZE option in main.c to allow maximum size DHCP |
| replies. |
| |
| + Matthias Schniedermeyer submitted an optional feature to use numbers |
| instead of letters for bootmenu entries. |
| |
| + Brought some FAQs up to date with mknbi-1.0. |
| |
| + Wrote perl script mklrpnb for making netboot image from Linux Router |
| Project floppy. Tested on Coyote Linux (based on LRP). |
| |
| Released as Etherboot 4.6.2 |
| |
| + Re-enabled tulip.c:tulip_disable() code. |
| |
| + Minor fix to SHOW_NUMERIC code in bootmenu.c. |
| |
| + Minor spelling corrections to vendortags.sgml. |
| |
| + andreas.kabel AT slac PERIOD stanford PERIOD edu pointed out that to |
| be RFC951 compliant, the broadcast BOOTP request near line 705 of main.c |
| should use port BOOTP_CLIENT and thus stand a better chance of going |
| through firewalls. |
| |
| + Christoph Plattner found that the 16 bit bus width fix for NEPCI cards |
| introduced in 4.5.6 breaks operation for other NEPCI cards. So now the |
| #define symbol is NS8390_FORCE_16BIT, to be used when the NIC requires |
| 16 bit bus width but Etherboot guesses wrong. This needs to be fixed |
| later to autodetect adapter bus width. |
| |
| + Shusuke Nisiyama sent me the PCI IDs for 3C595 NICs so that ROM images |
| could be generated for them. |
| |
| + Jim McQuillan sent in modifications to tulip.c to reject bad packets. |
| |
| + Klaus Espenlaub suggested changing the filename substition macro in the |
| IDENT16 and IDENT32 strings to $(@F) so that only the filename portion of |
| the pathname is inserted. Otherwise the contributed romid program breaks. |
| |
| + Added author ident and copyright status to contrib/bin2intelhex.c.simple |
| at Rogier Wolff's request. |
| |
| + Günter Knauff sent updates to romid and mp-form. |
| |
| Released as Etherboot 4.6.3 |
| |
| + Marty Connor contributed patches to tulip.c to support the LinkSys |
| LNE100TX v4 NICs. |
| |
| + Added rmrd.com to mknbi-1.0 directory. |
| |
| + Added experimental changes to allow RELOCADDR to be changed to 0x88000 |
| to avoid Disk On Chip drivers. See RELNOTES and Makefile for details. |
| |
| Released as Etherboot 4.6.4 |
| |
| + Chris Johns found a long-standing bug in first-linux.S. ES would |
| sometimes != CS, making the ramdisk moving fail. |
| |
| + Made --harddisk work for mknbi-fdos. |
| |
| Released as Etherboot 4.6.5 |
| |
| + Bug in mknbi-dos, last sector omitted in ramdisk image. |
| |
| + Use ceil() for computing number of rootdir sectors. |
| |
| + --harddisk now works for mknbi-dos also. |
| |
| + Should work on FAT16 partitions now. |
| |
| + New driver for Winbond W89C840 by Igor V. Kovalenko. |
| |
| + Modification to loader.S by Steve Smith for some PCI BIOSes that don't |
| handle INT19H well. |
| |
| + Small bug in osloader.c, j not defined in two places if DELIMITERLINES |
| defined. |
| |
| Released as Etherboot 4.7.6 (developmental) |
| |
| + All the changes from 4.6.5 to 4.6.6 back propagated except for the |
| loader.S change. |
| |
| + Removed -nostdlib from ld flags. Seems to be a vestige from when we |
| were calling gcc as it's not an ld option. |
| |
| Released as Etherboot 4.6.6 |
| |
| + Contributed one-line patch to allow booting from SCSI disks also (sd). |
| |
| + Grzegorz Jablonski sent in a fix for long-standing bug in loader.S that |
| prevented booting on some BIOSes. |
| |
| + More updates to documentation. |
| |
| Released as Etherboot 4.6.7 |
| |
| + Rick Kennell pointed out that there is another place in main.c where |
| the DHCP request is sent with a source port of 0, which may not elicit |
| replies from some DHCP servers or pass gateways. Changed to |
| BOOTP_CLIENT. |
| |
| + Depca driver finally works. |
| |
| + Changed unsigned int len; to int len; in 3c595.c transmit routine |
| which was generating a warning from gcc. |
| |
| + Removed warning about ljmp indirect without * in start32.S by putting |
| in the *. Checked that generated code has not changed by comparing |
| binaries. Later: But only for gas 2.9.5 and above, gas 2.9.1 doesn't |
| like *. |
| |
| + Wanted to do the same for the lcall's in pci.c but discovered that |
| gas 2.9.1 chokes on *, and as I don't want to introduce more #ifdefs |
| into pci.c, we'll just live with the warnings until gas 2.9.1 is dead |
| or the incorrect syntax is rejected by a current gas release. |
| |
| + Reversed #define so that GAS291 indicates gas 2.9.1. Rationale: gas |
| 2.10 probably behaves like gas 2.9.5 so the default should be the new |
| behaviour. |
| |
| + NI5010 driver finally works. Weird NIC, has only 2kB memory on board |
| so if you don't switch to the receiver immediately after transmitting |
| you will lose the reply packet. (This is a very ancient board, I was |
| doing the driver for kicks.) |
| |
| + Implemented a low-overhead timer routine for implementing timeouts in |
| drivers. This timer should be used instead of hacks with integer loops |
| (which are CPU speed dependent) or calling currticks(), which has |
| relatively high overhead because it reads the BIOS timer, and has a |
| resolution of only 1/18th of a second. Timer 2 of the 8254 timer chip |
| can be loaded with an unsigned 16-bit value that will be decremented at |
| about 1193 counts per ms (constant TICKS_PER_MS in timer.h). So the |
| maximum timeout that can be implemented with a single call is about 54 |
| ms. Call load_timer(u16) to load and start the timer (0 == 65536). Call |
| int timer2_running() to check if it is still active. timer2_running can |
| be interleaved with other tests, e.g. on the NIC hardware registers. |
| When the timer runs down to 0, it will return 0. If you just need to |
| delay a short time, call waiton_timer2(u16) to load and delay that many |
| ticks. |
| |
| + Removed slowdownio() from sources. It's called in only one place and |
| is followed by a call to currticks() which will result in a large delay |
| anyway. It's also not clear if the strategy in slowdownio (a couple of |
| local jumps) will even work on fast CPUs with instruction caches. |
| |
| + Removed support for %i (alias for %d) in printf. Nobody uses it, if |
| they do they should just edit the format string to use %d, and removing |
| it means one less non-standard format in printf; we have %X, %b and %I |
| as it is. |
| |
| + Simplified currticks() by accessing BIOS variables directly instead of |
| calling timeofday BIOS interrupt. |
| |
| Released as Etherboot 4.6.8 |
| |
| + I'm pissed off with the inconsistency between gas 2.9.1 and gas 2.9.5 |
| re ljmp * (indirect jump). Some assemblers claiming to be 2.9.5 dislike |
| the * (RH6.2's is one). I'm going to just make it ljmp and live with the |
| warning message until the gas 2.9.1 syntax is totally dead. |
| |
| + Various fixes from Klaus Espenlaub: Fix for NFS booting from *BSD |
| platforms, fix for Lance driver, interrupt was being turned on, fix for |
| serial.S and code cleanups. |
| |
| + Paul Robertson of Locsoft found that if the top half of %esp contains |
| garbage just before the first call to real_to_prot in start32.S, it can |
| affect booting on some BIOSes. Inserted andl to clear top half. |
| |
| + Sleep for 2 seconds after failure to load file to avoid pounding the |
| server if the file does not exist and thus shutting down the tftp |
| service (inetd has rather poor rate controls). |
| |
| + Shredda of gmx.de reported a discrepancy between the Macronix MX98715 |
| device IDs used in pci.h and NIC. Marty Connor has ruled that the id in |
| NIC is a typo. If booting works from floppy but not from ROM, this may |
| be the reason. |
| |
| Released as Etherboot 4.6.9 |
| |
| + Oops, a brown paper bag bug in start32.S. Forgot that the currticks() |
| needs interrupts enabled to work. Calling the BIOS allowed interrupts to |
| happen by going into real mode (interrupts are disabled in protected |
| mode). So inserted prot_to_real and real_to_prot pair inside |
| currticks(). |
| |
| Released as Etherboot 4.6.10 |
| |
| + Marty Connor and Gary Byers of thinguin.org contributed a LILO prefix |
| file that makes the Etherboot image look like a Linux kernel to LILO and |
| thus bootable from the LILO prompt. |
| |
| + Ifdefed out code in mknbi that falls back to the tftp directory for |
| root-path. The result is that the options passed to the kernel specifies |
| the tftp directory as nfsroot even if there is no root-path option in |
| the DHCP or BOOT server configuration. This interacts badly with recent |
| Linux kernels which actually pay attention to the root-path handed down |
| and use that as nfsroot. People who were expecting the diskless kernel |
| to use the default /tftpboot/<name of client> as nfsroot would have been |
| surprised to find it trying to use the tftp directory (which often |
| happens to be /tftpboot, although I recommend that it be different, to |
| improve security). |
| |
| + Eric Biederman found an off-by-one bug in the ELF loader. |
| |
| + Christoph Plattner pointed out that the comments for COMCONSOLE in |
| Config are wrong, the serial port is at 3F8, not 378. |
| |
| + A couple of updates to wol.c and wake.pl by Günter Knauff. |
| |
| + The Davicom 9009 and 9102 driver was contributed by Sten Wang of |
| Davicom. It will be merged into tulip.c later. |
| |
| + Implement eepro100_disable. There have been reports of memory |
| corruption after Etherboot has handed over to the booted image due to |
| the live controller. |
| |
| + Matt Hortman reported a new Intel NIC, 82559ER, with different IDs. |
| Added to file NIC. |
| |
| + Ranjan Parthasarathy reported another Tulip clone from ST Micro with |
| different IDs. Added to file NIC. |
| |
| Released as Etherboot 4.6.11 |
| |
| + Stefan Lesicnik sent in a report from Intel which explains what is |
| probably wrong with the PnP header. BEV should point to the mainline |
| vector, not to the part that installs the INT19H vector. |
| |
| + Hopefully finally fixed DHCP option limit problem. It was requesting |
| large packets but not parsing them fully due to the length limit passed |
| into decode_rfc1533(). Thanks to shredda for testing this. |
| |
| + Added the # modifier to printf, it prefixes 0x to %x and %X making |
| printf formats shorter throughout. 0x%[xX] changed to %#[xX] in lots of |
| files. Now if only I could make b,x,X the standard hhx,hx,x and get rid |
| of I. |
| |
| + Andreas Neuhaus provided patches for multiple rx buffers for lance.c |
| which made it work again with VMware. |
| |
| + Perl script to convert floppyfw floppies to netbootable images. |
| |
| + Marty Connor made some small changes to liloprefix and Makefile to |
| make the LILO images SYSLINUX bootable also. |
| |
| + Make the default return value for _poll in skel.c 0 so that when |
| driver writers implement _transmit first, it will not hang on garbage |
| return values from _poll when it's called to flush the input queue |
| before the first transmit. |
| |
| + EEPRO/10 driver now works. µs timer routines came in useful. |
| |
| + Anders Larsen sent in a patch to 3c90x.txt which makes it clearer. |
| |
| + Added more stuff to the documentation. |
| |
| + Fixed bug in mknbi that always did the equivalent of --ipaddrs=rom |
| no matter what. Also removed undef from my variable list in TruncFD.pm |
| so that it won't have problems with Perl interpreters. |
| |
| Released as Etherboot 4.6.12 |
| |
| + Jim McQuillan sent in a patch for first-linux.S where it was assuming |
| the argument in tag 129 (additional parameters) is a null terminated |
| string, when it's a length counted string. A new routine, addkarg was |
| created to handle this. |
| |
| + eepro100 should handle newer NICs with 256 byte EEPROMs now. This |
| includes the onboard NICs on some motherboards, see file NIC. Thanks to |
| Stephan Lauffer for helping with the fixes. WARNING: This code may have |
| a bug that causes the onboard EEPROM to be corrupted. We believe we have |
| found and removed the bug but please proceed with care. |
| |
| + DHCPDISCOVER was sending out one byte too many for PARAM_LIST. |
| |
| + In DHCPDISCOVER send "Etherboot" in VENDOR_CLASS_ID option (60). Will |
| add code later to check for "Etherboot" in vendor encapsulated options. |
| |
| + Used µs timer routines in 3c509 for more accurate timing and hence |
| better hardware detection. Use COMMAND_IN_PROGRESS bit to detect |
| transmit complete instead of waiting for a fixed amount of time. Get rid |
| of eth_vendor and associated tests, it doesn't serve any useful purpose |
| since the driver was modularised long ago and the 3c509 detection status |
| is stored outside of the driver now. Got rid of some unused global |
| statics in 3c509.c, leftovers when the drivers were monolithic. Wait 2 |
| seconds after enabling TP interface to give it time to come up. This |
| allows us to get rid of T509HACK in main.c. |
| |
| + Get rid of eth_vendor and associated tests in cs89x0.c, same reasons |
| as for 3c509.c. |
| |
| + Moved the rest of the VENDOR_ and FLAG_ defines into ns8390.h, as |
| ns8390.c is the only file that uses them now. |
| |
| + Use lower 32 bits of node address + current time for xid (network byte |
| order). More likely to be distinct from other clients than just the |
| current time, which is similar for all clients booted at about the same |
| time. |
| |
| + Support for 16-bit code has been removed. XTs and ATs are pretty much |
| dead now and in fact many Etherboot/16 drivers have been broken for a |
| while but nobody noticed. This should make some of the code easier to |
| maintain. If you really wanted 16 bit support, use an older version of |
| Etherboot, maybe 4.4 or something like that, not sure when things |
| started breaking for 16 bit mode. |
| |
| + Should not store IP and UDP headers at BOOTP_DATA_ADDRESS. Redefined |
| bootp_t without IP and UDP headers. Now requested size of bootp packet |
| matches storage available. Do not add sizeof(iphdr) + sizeof(udphdr) to |
| bootp pointer in start32.S:xstart now. start16.S:xstart was broken |
| because it did not do this addition but nobody noticed. |
| |
| + Removed array kernel_buf, saving 128 bytes and replaced with |
| KERNEL_BUF, a pointer into the bp_file of the bootp_reply structure at |
| BOOTP_DATA_ADDR. Note: this depends on the server not sending Option |
| Overload which would use the sname and file fields for options, but we |
| don't request this option so it shouldn't. Removed char *kernel, |
| instead check KERNEL_BUF[0] just before booting and if null, use |
| fallback filename. (This is needed for future extensions to booting |
| protocol.) |
| |
| + Define a shorter tftpreq_t type for making requests instead of using a |
| full sized tftp_t packet to reduce stack usage. |
| |
| + Defined macros for htonl/htons/ntohl/ntohs for cases where the operand |
| is a constant, saving a function call. |
| |
| + Started on first32.c, a protected mode 32-bit version of |
| first-linux.S, which should be far easier to read and maintain. Will |
| boot basic Linux kernels correctly but doesn't handle ramdisk or |
| kernel arguments yet. |
| |
| + Updated nfs-swap documentation in contrib/nfs-swap to point to |
| Claus-Justus Heine's new web page. |
| |
| Released as Etherboot 4.7.13 (development) |
| |
| + Added more IDs for eepro100 variants taken from the Linux 2.2.18 |
| source. Should handle the EEPROM properly now, a few defines were wrong |
| in 4.7.13. Loop counter timeouts in eepro100.c replaced with hardware |
| timeouts. Don't loop waiting for packet in _poll, return 0 immediately. |
| |
| + first32.linux works. Does kernel arguments and ramdisk but doesn't do |
| appended parameters from menu selections, which should be replaced by a |
| more elegant menu scheme anyway. Needed gateA20 routines in |
| mknbi-1.1/first32.c otherwise cannot access extended memory. |
| first32.linux should be able to handle memory > 64 MB, which the old one |
| couldn't. Support for first32pm call protocol added. |
| |
| + 3c595.c changed to use hardware timer for delays. Transmit routine |
| waits for a fixed period after transmitting. Changed to check |
| S_COMMAND_IN_PROGRESS bit. It also contains some of the same unused |
| variables as 3c509.c and mentions 3c509 in some comments. Cleaned up. |
| |
| + Hmm, how come this wasn't fixed long ago? Should discard BOOTP/DHCP |
| replies that are not to broadcast or own MAC address. I guess xid caught |
| practically all of the non-matching packets. (Later: Actually the NIC |
| should filter out packets we don't want, but leave test in anyway, it's |
| the last test.) |
| |
| + Removed last vestiges of ETHERBOOT32 and ETHERBOOT16. |
| |
| + ETHER_ADDR_SIZE => ETH_ALEN, ETHER_HDR_SIZE => ETH_HLEN, |
| ETHER_MIN_PACKET => ETH_ZLEN, ETHER_MAX_PACKET => ETH_FRAME_LEN. More |
| Linuxy and therefore more familiar to programmers. |
| |
| + Cleared up confusion with 60/64 and 1514/1518 for minimum and maximum |
| frame sizes. Practically always the right numbers are 60/1514, except |
| that some chips count the FCS in the receive length, then we have to use |
| 64/1518. |
| |
| + Make __swap32 and __swap16 inline routines available globally as |
| swap32 and swap16. eepro.c can use swap16 instead of making up one. |
| |
| + Make aui field in nic.h an int since it will be padded to a longword |
| boundary anyway and call it flags so that other drivers can use it for |
| their own purposes. Currently only 3c503 uses it to indicate AUI xcvr. |
| |
| + Make sprintf return number of characters written instead of a pointer |
| to the last char written to be more consistent with standard C. |
| |
| Released as Etherboot 4.7.14 (development) |
| |
| + Thanks to Mark VandeWettering for the start of HomePNA (networking |
| over phone lines) support for the AMD 79C978. |
| |
| + Bug fixed in first32.c handling of (ip|nfsroot)=X where X is not rom. |
| |
| + first32pm.linux works. No need to go into real mode to call first32pm |
| and then it goes back to protected mode. Paves the way for extension |
| routines to Etherboot. Implement program returns to loader flag in |
| header field. Added option to mknbi to specify this. |
| |
| + first32*.linux: Check tag 128 present and correct before appending tag |
| 129. Also tag 129 should be appended to parameters before substitutions. |
| |
| + Merged cleanup_net into cleanup since they are always called together. |
| |
| + Floppy booting doesn't need to be passed BOOTP_DATA_ADDR. |
| |
| + Clean up variables associated with tagged image loading in osloader.c. |
| |
| Released as Etherboot 4.7.15 (development) |
| |
| + Duplicated 3c900 PCI IDs under 3c595 as some NICs apparently detect |
| and work with the 3c595 driver but not the 3c90x driver, according to a |
| report from Dirk Pfau. (The 3c90x series has two modes of operation, |
| programmed I/O mode descended from the 3c509, good only for 10 Mb |
| operation, and bus mastering mode, essential for 100 Mb operation. For |
| network booting, either mode is acceptable.) |
| |
| + Removed auto from kernel parameters; it's the default already. |
| |
| + Use hardware timer instead of loop counter for transmit timeout in |
| 3c90x.c. |
| |
| + Define a jmpbuf type for setjmp and longjmp. Trim size to 7 longs, |
| that's all that's needed. Standardise the return values from longjmp: |
| -2: loader error, -1: timeout or ESC, 0...: various meanings to |
| Etherboot main loader. |
| |
| + Ansify function headers in bootmenu.c. |
| |
| + Make _int10 return ax | (bx << 16) as result so that these can be |
| accessed more efficiently in the following statements. |
| |
| + Make handleansi take unsigned int instead of unsigned char as |
| argument, otherwise extra code will be generated to handle this |
| according to ANSI rules. (Quite significant saving of 55 bytes.) Rename |
| it ansi_putc for clarity. |
| |
| + Prefix getc, putc and ischar with console_ to make things clearer and |
| to avoid confusion with the Unix getc, putc. |
| |
| + Add menu as a target to mknbi. Started source code for menu extension. |
| Successfully transferred control to menu at 0x10000 and back. ANSI |
| colour controls work, at least. Return end needs more work. |
| |
| + Started on ELF support in mknbi. |
| |
| Released as Etherboot 4.7.16 (development) |
| |
| + Added atftp 0.2 (ftp://ftp.mamalinux.com/pub/atftp/) to contrib/. |
| Supposedly contains a tftpd that runs multithreaded, which may help |
| people having problems with *inetd shutting down tftpds that spawn too |
| fast. |
| |
| + Added a few more Tulip entries to config.c and NIC, not all of them |
| have been confirmed working. |
| |
| + Got ELF format creation in mkelf-linux working now. At least one empty |
| section header is required to make a valid ELF file. |
| |
| + Added code to support non-MULTIBOOT ELF when IMAGE_ELF is selected but |
| IMAGE_MULTIBOOT is not. Booting from images created by mkelf-linux |
| now works! |
| |
| + TAGGED_IMAGE is now not always selected. It's just the fallback if |
| none of TAGGED_IMAGE, AOUT_IMAGE or ELF_IMAGE is selected. Therefore you |
| must explicitly select TAGGED_IMAGE if you want it, and you have |
| selected AOUT_IMAGE or ELF_IMAGE. Startup banner line displays all |
| image formats accepted. |
| |
| + exit() in mknbi/start32.S should copy argument to %eax first. |
| |
| + Images with 0xAA55 in bytes 510-511 are no longer accepted, which |
| should reject invalid formats now, e.g. Linux kernel images, which have |
| a boot sector in the first block. Strictly this does not conform to the |
| original netboot spec by Jamie Honan, which specifies that non-tagged, |
| linear images starting from 0x10000 are allowed, but that format is |
| pretty useless now. Any decent loading scheme needs a roadmap to the |
| blocks in the downloaded file, which is what tagged, a.out, or ELF |
| images provide in the header. Q: What is config_buffer in main.c for? |
| Nothing else seems to use it. Is it a relic of non-tagged images? |
| |
| + Clean up lots of obsolete prototypes in etherboot.h. Ansify lots of |
| function headers in main.c. Make lots of functions and variables in |
| main.c static. Make bootmenu.c:getoptvalue() static. |
| |
| + Simple external menu program works! |
| |
| + More documentation cleanup, notably editing the compile options to |
| match what has been done. |
| |
| Released as Etherboot 4.7.17 (development) |
| |
| + Marty Connor did it again! He found a long standing bug in the PnP ROM |
| header which caused it not to be recognised by BIOSes. Now Etherboot ROM |
| images are PnP compliant. I hacked makerom.c to fill in the offset of |
| the ident string for the device string so that the BIOS can even print |
| out "Etherboot" and the device ident on boot up. |
| |
| + Made demo menu program a bit more elaborate with timeout. |
| |
| + Igor V. Kovalenko fixed the Winbond W89C840 driver to use the hardware |
| timer instead of CPU counter loops. Now none of the Etherboot drivers |
| rely on CPU speed dependent loops. |
| |
| + Small fix to contrib/p910nd.c to not use getprotobyname which requires |
| libnss_files.so, which may not be installed in all environments. |
| |
| + Small change to contrib/mkffwnb to allow the user to choose ELF format |
| (by editing one line) instead of tagged format. |
| |
| + Patch to atftp-0.2 to make it accept a filename if the directory is a |
| prefix of the filename. This is needed so that valid absolute pathnames |
| will work. Patch sent to atftp authors. |
| |
| + Added support for filtering out replies which do not include a Vendor |
| Class Identifier of "Etherboot" in the Vendor Encapsulated Options. This |
| can be used to select only the DHCP servers which we want to get |
| addresses from and reject the rest. Select the compile option |
| -DREQUIRE_VCI_ETHERBOOT. This requires ISC DHCPD 2 or 3 AFAIK. (It's |
| not documented in DHCPD 2, but it works.) Other DHCP servers may support |
| VEO. (It's a RFC2132 option.) |
| |
| + Jim Thomas suggested a way, other than creating /fastboot, of |
| preventing fsck from running on NFS root, ln -s /bin/true |
| /sbin/fsck.nfs. Not verified but should work. Added to documentation. |
| |
| Released as Etherboot 4.7.18 (development) |
| |
| + Pavel Tkatchouk verifies that lance.c can handle PCnet-FAST III |
| 79c973. Added a new entry to lance.c and NIC. NIC entry not verified |
| yet. |
| |
| + Enhanced disnbi to decode ELF images too. |
| |
| + Arrgh! There are old BIOSes that rely on the wrong order of the bytes |
| in the device identifier in the PCIR and PnP structures. Wrote a Perl |
| program swapdevids.pl to swap these bytes. Apply this to image file just |
| before programming the EPROM. |
| |
| + Marty Connor suggested that the specs state that for PnP ROMs the |
| unsuccessful return from boot should be int 0x18 rather than int 0x19. |
| Using int 0x19, selecting L for local device doesn't work. Fixes needed |
| in both loader.S and start32.S (get lret to work properly, instead of |
| doing an int 0x19 directly, involved saving ss and sp in real mode |
| instead of in protected mode). |
| |
| + Wrote a Perl program disrom.pl to display key structures of a ROM |
| image. |
| |
| + Added call to binmode() in various Perl utilities so they should work |
| under other OSes. |
| |
| + Added check in makerom.c to warn if 55 AA not found at start of image. |
| It seems some people don't read the warning not to use the Linux |
| supplied as86. |
| |
| + It seems Z is a recent addition to pack/unpack formats in Perl and |
| even a Perl as recent as 5.004 doesn't implement it. Change Z5 in |
| mknbi.pl and TruncFD.pm to a5 since we only need to compare it against |
| 'FAT12' and 'FAT16'. |
| |
| + Some errors found in osloader.c in the #ifdef IMAGE_MULTIBOOT |
| sections. kernel should be KERNEL_BUF and union info should have |
| unsigned short s[256];. Also kernel -> KERNEL_BUF for IMAGE_FREEBSD, |
| obviously few FREEBSD users have tried compiling it. |
| |
| + Explain in docs that .com and .(lz)lilo images can be generated and |
| touch briefly on how to use them. |
| |
| + Donald Christensen contributed translations of floppyload.S and |
| loader.S to gas syntax. Currently they are in contrib/gassyntax/. They |
| potentially allow us to throw away as86 and/or nasm and use GNU tools |
| throughout, but I have to do some work on them: 1. I have to check what |
| versions of gas accept the syntax, the 16-bit mode in gas was a recent |
| enhancement; 2. I have to put back the #ifdef PCI_PNP_HEADER into |
| loader.S and also bring it up to date to the recent patches. |
| floppyload.S should be usable as is. |
| |
| Released as Etherboot 4.7.19 (development) |
| |
| + Donald Christensen completed the translation of loader.S and all the |
| other .S files in the src directory that previously required as86 or |
| nasm. No more futzing around with precompiled versions. Yipee! |
| |
| + Luigi Rizzo contributed a slightly hacked FreeBSD loader that works on |
| floppy or hard disk. See boot1a.s for details. Makefile rules edited. |
| Targets renamed .dsk and .lzdsk to indicate they're not floppy specific |
| now. Documentation updated. I note that the loader is smart enough to |
| figure out exactly how many sectors have to be read. |
| |
| + Renamed comload.S to comprefix.S which describes it better. |
| |
| + mknbi tools split out into separate package for independent |
| development. |
| |
| + Use A32 instead of Z32 in unpack format in disrom.pl in case we |
| encounter old Perl versions (< 5.005). |
| |
| + Vendor Class Identifier string that's sent out is now of the form |
| Etherboot-x.y (13 bytes long). |
| |
| + Reduced size of ee_data in davicom.c to 32 bytes because we only need |
| to access the MAC address in bytes 20:25. |
| |
| + Changed type of formal arguments to pci.[ch] routines to unsigned int |
| except for the last argument, because in ANSI C parameter passing is |
| like assignment and extra dummy variables and code may need to be |
| generated if the formal argument type is not the the same size as the |
| actual argument that gets pushed on the stack. Not insignificant |
| overhead, reduction from 1853 to 1727 bytes due to change. Changed devfn |
| and bus members of struct pci_device to unsigned char to enforce limit |
| on type. Surprisingly this reduced the size further to 1667 bytes. |
| Probably the compilier could do more optimisations after the last |
| change. |
| |
| + Some drivers hardwired 0 for bus number in calls to pcibios_* |
| functions. Changed to pci->bus, which is set in scan_bus. Only |
| people with NICs not on bus 0 would have noticed. |
| |
| + Found a couple more old-style pre-ANSI C function declarations. Turned |
| on -ansi and -pedantic for kicks and fixed some non-ANSIness, e.g. |
| // comment in #define, text after #endif, casting memcpy arguments to |
| void *, using void * instead of char *. Some char declarations changed |
| to unsigned char. |
| |
| Released as Etherboot 4.7.20 (development) |
| |
| + I changed my mind. I think the format in disrom.pl should be Z32, |
| otherwise it displays binary characters after the valid part of the |
| string. For people with Perl < 5.005, please upgrade. |
| |
| + Moved RELOC down to 0x94000. Turned on USE_INTERNAL_BUFFER by default. |
| Unless BOOTP_DATA_AT_0x93C00 is defined, use internal bootp strucutre. |
| This gets Etherboot out of the area just below 0x10000 and the area from |
| 0x93C00-0x93FFF. DHCP packets can now be as large as the Ethernet |
| payload. Later on, first32.c and the parameter area could expand a bit. |
| In lance.c had to reduce RX_RING_SIZE (by reducing LANCE_LOG_RX_BUFFERS) |
| from 16 to 4 to fit the driver. I'd like to hear feedback from lance |
| users. Is 24kB of receive buffers really needed given that Etherboot |
| uses stop-wait protocols? |
| |
| + Doug Ambrisko sent in some patches for FreeBSD: a correction for one |
| typo I missed and changes to make compilation under FreeBSD easier. |
| |
| + Michael Sinz contributed patches to allow the FreeBSD loading code to |
| load debugging symbols also. |
| |
| + Marty Connor contributed a SiS900 driver. Also pointed out that if |
| ASK_BOOT <= 0, the prompt and read shouldn't even happen. Conditional |
| code reworked. |
| |
| + Split documentation into user manual and developer manual. Added |
| material. |
| |
| Released as Etherboot 4.7.21 (development) |
| |
| + Preston Wilson pointed out that ds.internic.net should be replaced by |
| www.ietf.org in documentation URLs. Also RFC1090 should be RFC1094 |
| (NFS). |
| |
| + Marty Connor pointed out some broken links due to the split in |
| documentation. Also comments don't match code in lance.c for change just |
| above. Also passed on a bug found by a user of rom-o-matic.net where |
| tftp was not defined when ANSIESC was defined. My mistake, I made it a |
| static function when it needs to be exported to ansiesc.c. |
| |
| + Christoph Plattner found that the Etherboot startup messes up the |
| flags while testing for a 386+. This doesn't affect Etherboot but it can |
| cause the loaded operating system to crash. Fix: pushf before and popf |
| after the CPU model testing. |
| |
| + Jean-Jacques Michel contributed patches to the via-rhine.c driver to |
| make it work for the VT6102 model as used on some DFE530-TX Rev.A3 NICs. |
| |
| + Luigi Rizzo sent in a fixed boot1a.s that actually works on HDs now. |
| |
| + Stefan Furtmayr sent in a list of URLs to TFTP servers for NT. Added |
| to directory contrib/Diskless-From-NT. |
| |
| + Paul Whittaker contributed a HOWTO in HTML format on booting with NT |
| as the server. Added to directory contrib/Diskless-From-NT. |
| |
| + CJ pointed out that the advertised message size is > 1500 bytes. |
| Define MAX_BOOTP_EXTLEN so that the size of the structure matches the |
| Ethernet payload size. |
| |
| Released as Etherboot 4.7.22 (development) |
| |
| + Reintroduce the old Via-Rhine PCI IDs into file NIC and give the |
| corresponding ROM images -old suffixes, in case some people are using |
| the old chips. |
| |
| + Peter Kögel contributed patches to the SiS900 driver to make it work |
| for the SiS630e and SiS730s. |
| |
| + Charles Dobson pointed out that when booting from a PnP BIOS, the code |
| should not hook or restore the INT19H entry point. Put hooking code |
| inside #ifndef PCI_PNP_HEADER and changed entry point in PnP structure |
| from start19h to blockmove. |
| |
| + I have one report that gas 2.91 doesn't assemble loader.S because it |
| can't handle all the 16-bit code. Since the benefits of using gas for |
| all assembly code are great, and gas 2.95 has been out there for a long |
| time, I regretfully say to affected users: upgrade your tools. Otherwise |
| there may be a workaround by specifying the opcodes literally. I leave |
| it to interested parties to try. If you do this, put in an #ifdef |
| GAS291, naturally. |
| |
| + Updated contrib/tftp-hpa to 0.16 from ftp.kernel.org. |
| |
| Released as Etherboot 4.7.23 (development) |
| |
| + Rename nepci entry in file NIC to rtl8029 to avoid giving the |
| impression that nepci will work for all PCI NE2000 clones. Make the |
| issue of PCI IDs in ROMs clearer in documentation, both in the |
| configuration and troubleshooting sections. |
| |
| + Tania Oka and Hyun-Joon Cha at about the same time found that |
| implementing the rtl_disable() routine in rtl8139.c stopped random |
| crashes in Linux later. It is important to disable the NIC after network |
| loading. |
| |
| + Implemented _disable() routine in w89c840, 3c90x and via-rhine drivers |
| too. Don't know how to do it for epic100. |
| |
| + p910nd-0.4 in contrib/ has -f device option now to specify other |
| printer ports, e.g. USB. |
| |
| + Robb Main found a bug with the #ifdef logic in loader.S. This may fix |
| problems with BIOS detection. |
| |
| Released as Etherboot 4.7.24 (development) |
| |
| + Paolo Marini sent in some code to make it work on his bare metal (no |
| standard BIOS or peripherals) platform. This may be a useful starting |
| point for some applications. See contrib/baremetal/. |
| |
| + Eric W. Biederman contributed a Perl script in |
| contrib/award_plugin_roms/ to list flash BIOS plugin components. |
| |
| + Marty Connor rewrote the Tulip driver to handle many more variants. |
| |
| + For PCI ROMs loader.S can now detect if it's being called from a PnP |
| BIOS and choose to hook INT19H if not. |
| |
| + Pass struct *rom_info in priv_data to probe routine. This is to allow |
| drivers to decide, based on the ROM address, which one of multiple |
| instances of identical network adaptors to activate. Started on 3c509 |
| code to use this but need to understand 3c509 contention resolution |
| mechanism first. |
| |
| + Link src/lzhuf.c to contrib/compressor/lzhuf.c so that we don't need |
| to refer to contrib/compressor/lzhuf.c anymore in Makefile. |
| |
| Released as Etherboot 4.7.25 (development) |
| |
| + Minor documentation edits, merged in NIC entries for newly supported |
| Tulip variants from Marty Connor. |
| |
| + One last minute change, Robb Main suggested calling cs89x0_reset() |
| from cs89x0_disable() to shutdown the hardware cleanly. |
| |
| + Updated tftp-hpa to 0.17. |
| |
| + Slight mod to lzhuf.c to make compression statistics report shorter. |
| |
| Released as Etherboot 5.0.0 (production) |
| |
| + Donald Christensen found a small bug in osloader.c. Not all context |
| was cleared on tftp restart which caused restarted tftp loads to fail. |
| |
| + Correct a small error in setting %sp when not running at 0x9xxxx. |
| Now relocation to 0x84000 works. |
| |
| + Marty Connor added a generic Tulip entry and renamed the Macronix |
| entries because PHP doesn't like strings starting with digits (for |
| rom-o-matic.net). |
| |
| + In loader.S, move code to save ROM segment and length to before jump |
| to new segment, otherwise if MOVEROM is defined, then the ROM segment is |
| always 0x8000. In etherboot.h, define an inline function to say if a ROM |
| address is ok to boot from. Allow if < 0xC0000 or matches assigned ROM |
| address of NIC. |
| |
| + Thomas Kessler found a bug in vendortags.sgml re option-NNN tags in |
| dhcpd.conf, the wrong syntax was presented. However on trying the |
| option-NNN syntax documented in the dhcp-options man page, it was |
| discovered that option option-NNN is no longer supported in the old way |
| in recent versions of ISC dhcpd v3; a new syntax should be used. Added |
| note to vendortags.sgml to warn users. |
| |
| + Incorporated changes suggested by Hannu Martikka to #define |
| DEFAULT_KERNELPATH in etherboot.h for rarp(), and display the TFTP |
| server address before filename in Loading: message. |
| |
| + Split off documentation into separate package in anticipation of |
| production/development series split. Moved previous LOG to top level. |
| Moved distribution section of index.html into separate web page so that |
| index.html will be less ephemeral. |
| |
| Released as Etherboot 5.0.1 (production) |
| |
| + Arkadiusz Miskiewicz pointed out that --oformat should be used instead |
| of -oformat as old ld accepts both while new ld requires --oformat. |
| |
| + contrib/{tftp-hpa,atftp} are distributed separately from the |
| distribution page to make them easy to update. |
| |
| + Eric Biederman contributed many small changes in the code to improve |
| the behaviour in exceptions and generally improve the code structure: |
| |
| 1) Cleanup etherboot restarting. There is now only one place that needs |
| to test for EMERGENCYBOOTDISK. |
| |
| 2) Change pci.c as I have suggested. It is setup to scan every possible |
| pci bus until it finds an etherboot card. |
| |
| 3) Change osloader.c so that if an image that can return, but isn't |
| supposed to it restarts etherboot with -2 instead of the returned value. |
| |
| 4) Rewrites the delay logic so that we compute how long we should sleep, |
| and then sleep the whole time in await_reply so in a congested networks |
| we don't miss slow packets. |
| |
| 5) divides load into load & load_configuration. This removes the need |
| for the weird bootp_completed variable. And makes it a little more |
| explicit what we are doing. |
| |
| 6) add an interruptible_sleep function so that we can sleep and still |
| process keystrokes. |
| |
| 7) rewrites the restart logic: |
| - renames jmp_bootmenu to restart_etherboot. |
| - removes bootmenu (The function isn't) |
| - It explicitly does an eth_reset & eth_probe pair to reinitialize |
| the interface. This should help if someone has plugged the |
| interface into a different switch since booting started. |
| - moves ASK_BOOT and TRY_FLOPPY_FIRST into their own functions. |
| - On every restart calls ask_boot and try_floppy_first. Allowing you |
| to change your mind on how you want to boot after network booting |
| starts. |
| |
| 8) In cleanup calls both eth_disable (to disable the interface) & |
| eth_reset to make certain the interface can be initialized from linux. |
| (If nothing else this should cause more hidden bugs to show up). |
| |
| 9) Restart etherboot when downloading a bootfile fails, instead of just |
| looping trying to get that file. Allowing typos in dhcpd.conf to be |
| corrected without having to reboot the client machine running etherboot. |
| |
| Released as Etherboot 5.1.0 (development) |
| |
| + All the changes from 5.1.0 carried over except calling eth_reset() |
| from cleanup(). |
| |
| + Marty Connor, funded by Sicom System (http://www.sicompos.com/), wrote |
| a driver for NICs based on the National Semiconductor DP83815, e.g. |
| Netgear FA311/FA312. Also independently created by Jason McMullan just |
| at the time Marty released his driver. Thanks for the effort Jason; |
| great minds think alike. Both are based on Donald Becker's Linux driver, |
| of course. |
| |
| + Doug Ambrisko contributed a patch to take environment bindings for |
| FreeBSD kernels from a BOOTP/DHCP option or config variable. |
| |
| + Dax Kelson contributed an example of an ISC DHCP config file that uses |
| Vendor Class Identifier to tailor the response to Etherboot clients. |
| Also discovered that the Etherboot VCI should also be sent in the |
| DHCPREQUEST message, in addition to the DHCPDISCOVER message. Note that |
| the DHCP server must be set to non authorititative if you have an |
| authoritative server running already or it will interfere with that |
| one's operation. |
| |
| + Peter Lister and Vasil Vasilev contributed changes to generate .pxe |
| images bootable via PXE. |
| |
| + Eric Biederman added code to 3c90x.c to enable the NIC: set up |
| busmastering and set the latency timer in case the NIC is not already |
| set correctly, and fixed a couple of related bugs in eepro100.c. |
| Verified that the 3c90x driver works for the 3c980. |
| |
| + Moved strncmp from osdep.h to linux-asm-string.h. Use the general |
| version using string ops, not the deprecated 486 version (what was I |
| thinking). Also added strlen, needed for FreeBSD patch above. |
| |
| + Thanks to gcc 3.0, found and corrected a couple of C constructs of |
| undefined semantics in rtl8139.c and lance.c of the form: i = ++i & |
| MASK; |
| |
| + In Config/CFLAGS32: changed -m386 to prefered form, -mcpu=i386, |
| changed -O2 to -Os, and added -ffreestanding. These changes allow |
| warning-free compilation under gcc 3.0. Only mimimal testing has been |
| done with gcc 3.0 compiled binaries, we hope there are no problems but |
| don't throw away your gcc 2.9.5 yet. |
| |
| + Added an .org 0 to loader.S just before _start. May or may not fix |
| alleged assembly problem with gas 2.11. |
| |
| + Cosmetic change: in boot1a.s replaced "loaded" with "done\r\n" so that |
| Etherboot messages start at beginning of line. |
| |
| + More improvements to contrib/mkffwnb. |
| |
| Released as Etherboot 5.0.2 (production) |
| |
| + Added missing rules in genrules.pl for .pxe and .lzpxe images. |
| |
| + Peter Lister unified pxeloader.S into loader.S. pxeloader.S not |
| required now. Also fixed .lzpxe. |
| |
| + Added missing int i; declaration in try_floppy_first(). |
| |
| + Load %edx with dev just before calling xstart in floppy.c:bootdisk() |
| so that %dl will have device number, just like entry from BIOS. |
| |
| + Merged in Eric Biederman's patches to build .ebi images that run under |
| LinuxBIOS. To make an image, edit Config to enable the EBI options (and |
| disable TAGGED_IMAGE), then make bin32/driver.ebi, where driver is the |
| name of a supported PCI NIC. |
| |
| Released as Etherboot 5.1.1 (development) |
| |
| + The rotating bar progress display has been replaced by a sequence of |
| dots, one for each transmitted packet. This is kinder to dumb displays, |
| e.g. serial terminals, and gives a better feel for how the loading is |
| going. If you want the rotating bar, use -DBAR_PROGRESS. |
| |
| + In loader.S change .fill 0x18-(.-_start) to .org 0x18. Might help |
| people having errors assembling it. |
| |
| + Do Jong Gwan found a 3Com 980 with PCI ID 0x9805. Added to config.c |
| and NIC. Added for good measure 0x7646 which is listed as 3CSOHO100-TX |
| in Linux kernel 3c59x.c. |
| |
| + Add a rule to the Makefile to check for gcc 2.96, which is buggy, and |
| tell the user to use kgcc instead if found. |
| |
| + Till Straumann added long-needed code to warn when fragmented packets |
| seen (encountered on a wireless link) and to do UDP packet checksumming. |
| |
| + A trio of patches from Klaus Espenlaub, to fix a lance ring pointer |
| error in lance.c, to fix a format error in the multiboot call in |
| osloader.c and a patch to enable powersaving while waiting (good for |
| compute clusters and VMware), this one requiring the new option |
| -DPOWERSAVE in compiles. |
| |
| + While we are adding compile options, -DFLOPPY has been renamed to |
| -DCAN_BOOT_DISK as FLOPPY has been a misnomer ever since the ability to |
| boot /dev/hdX and /dev/sdX was added. |
| |
| + Spurred by correspondence from Till Straumann and Klaus Espenlaub, |
| hacked printf to not require a buffer. Now printf output can be |
| arbitrarily long as it no longer needs a buffer to assemble the |
| characters before sending to putchar; it outputs on the spot for |
| non-format chars and %s items, and at the end of the item for non-%s |
| items. |
| |
| + DRIVER AND EXTENSION WRITERS NOTE! (s)printf formats have been changed |
| to be a subset of those in glibc to reduce confusion. The changes are %x |
| -> %hX, %b -> %hhX, and %I -> %@. Lower case x formats are also |
| available now. The only variances from glibc are %@ for dotted quad IP |
| addresses (formerly %I; %I is now used), %! for 6 byte Ethernet |
| addresses, and that printf returns void. Thanks to Klaus Espenlaub for |
| assistance on this, after adding the %! format, he cleaned up all of the |
| Ethernet address display code in the drivers. |
| |
| + More cleanup patches from Klaus Espenlaub (he's better than lint; |
| people who have used Bell Labs Unix will know what lint is). Changes |
| noted here for posterity. |
| |
| 3c509.c: consistent non-use of # modifier for debugging output |
| 3c595.c: consistent non-use of # modifier for debugging output |
| 3c90x.c: use optimal %x variant, PCI bus/function numbers are always small |
| Config: Replace a TAB by two spaces inside the descriptions |
| eepro100.c: 6->ETH_ALEN, PCI bus/function numbers are always small |
| floppy.c: optimal %x variant |
| genrules.pl: consistent use of TAB characters |
| i82586.c: the ENET address printing patch for the EXOS205 got lost somehow.... |
| main.c: cleanup of the UDP_CHECKSUM comment some editor messed up, make the |
| assembly fragment use the normal formatting, fix the register assignment |
| specification for the %bx register to use the "b" constraint instead of |
| "bx" - the x makes no sense... |
| natsemi.c: %X case fix... |
| ns8390.c: optimal %x variant |
| pci.c: fix bad Linux port (most messages truncated the hex values) |
| sis900.c: a value read with inl() should probably(!) be printed with %X |
| start32.S: move around the #endifs a little |
| timer.c: fix space/tab characters |
| via-rhine.c: all values "printed" inside the comments are 32 bit integers |
| wd89c840.c: PCI bus/function numbers are always small |
| |
| Released as Etherboot 5.0.3 (production) |
| |
| + New version of contrib/Diskless-From-NT/furtmayer.html. I mangled the |
| previous version by forgetting to extract with metamail so it was still |
| quotable-printable encoded. |
| |
| + Renamed do_printf to vsprintf because that's the standard function it |
| has the same signature as. |
| |
| + More patches from Klaus Espenlaub. In his own words: |
| |
| The patch to add UDP checksums for transmitted packets is attached. |
| Just don't be surprised if some packet sniffer tells you that the |
| checksum for the NFS_LOOKUP packets are wrong and that the filename is |
| truncated. It's a bug in the sniffer, not in Etherboot. |
| |
| Oh, and the small change in udpchksum() almost makes up for the |
| increased code size. |
| |
| I also rewrote the NFS code to use pointers instead of array accesses. |
| This reduced the code size by 124 bytes. Patch attached. |
| |
| The last patch in this mail fixes misc things: a typo in misc.c |
| (DOT_PROGRESS instead of BAR_PROGRESS), and twiddle() is only called if |
| the packet type is IP. This makes the output nicer - the dots are also |
| printed in some non-approriate places for ARP reply packets. The |
| important packets are IP anyway. |
| |
| + The option BOOTP_DATA_AT_0x93C00 is deprecated, in preparation for |
| expanding the parameter area and the first32.c area. |
| |
| + Marty Connor found a typo in index.html, should be: Etherboot can work |
| with..., not Ethernet can work with... Ooops. |
| |
| + Eric Biederman tried a patch of Preston Wilson's and discovered that |
| DI should be prefixed by ES in the test for a PnP BIOS in loader.S to be |
| sure. Furthermore some BIOSes are not fully compliant and we need an |
| #ifndef PNP_BUT_NOT_BBS_COMPLIANT to work around that. |
| |
| + Oops, there's no entry in config.c for the DFE530TX+ even though |
| there's one in NIC. |
| |
| Released as Etherboot 5.0.4 (production) |
| |
| + Fixed a struct alignment (8-byte constraint) problem in lance.c caused |
| by the introduction of the rx_idx field by moving rx_idx to the end of |
| the struct. Found by Rizsanyi Zsolt. Klaus Espenlaub also suggested |
| increasing all the Rx buffers by 4 bytes because of the checksum stored |
| at the end. |
| |
| + Fred Gray contributed changes in tulip.c to check for a duplex |
| connection and to modify the controller register if so. Marty fixed an |
| unassigned to "negotiated" variable. |
| |
| + Mark G of Inprimis Technologies contributed another FA311 (National |
| Semiconductor DP83815) driver, also based on the Donald Becker Linux |
| driver. |
| |
| + Armin Schindler contributed a patch to allow booting LynxOS KDI |
| images. |
| |
| + Moved code to set PCI busmastering and reasonable latency to a routine |
| in pci.c and added calls to this routine from all PCI drivers. |
| |
| + New files for contrib/mkffwnb for version 1.9.11 and 1.9.16. |
| |
| + Removed BOOTP_DATA_AT_0x93Cxx option. |
| |
| + Convert epic100 driver to use hardware timer for transmit timeout and |
| remove polling loop from receive routine. |
| |
| + Steve Tilden pointed out that BOOT_INT18H is a LCONFIG option, not a |
| CFLAGS32 option. Put note under option documentation and also added a |
| commented-out example in Config. Steve also contributed a patch¸ in |
| contrib/auto-default, which autoboots from the next device if a disk is |
| detected. |
| |
| + PNP_BUT_NOT_BBS_COMPLIANT option renamed to BBS_BUT_NOT_PNP_COMPLIANT. |
| |
| + Merged in Vasil Vasilev's changes to loader.S to release memory taken |
| by PXE properly. |
| |
| + E820 memory detection routines added by Eric Biederman. May increase |
| size of bss segment and push large drivers, e.g. Tulip, nearer to limit, |
| please report. |
| |
| + Default to -DCONGESTED in Config, may help on busy networks. |
| |
| + Add Holtek HT80232 to list of NE2000 PCI clones. |
| |
| + Remove prohibition on loading < 0x10000 in ELF images since by default |
| drivers don't use memory < 0x10000 any more, with 48kB to run in. |
| |
| + Put define of ETH_MAX_MTU in etherboot.h inside #ifndef so that it can |
| be overriden from Makefile. |
| |
| + Gustavo Junior Alves added .cvsignore files for src/bin and src/bin32. |
| |
| + Short note on how to make tomsrtbt netbootable in contrib/tomsrtbt. |
| |
| This release is dedicated to the memory of my mother (July 1917 - |
| November 2001) [Ken Yap]. |
| |
| Released as Etherboot 5.0.5 (production) |
| |
| + Changes to enable fa311too driver which were overlooked in 5.0.5. |
| |
| + Chien-Yu Chen sent in patches to support the SiS630ET. Independently, |
| Doug Ambrisko made the same changes. Marty Connor tidied the patches. |
| |
| + In misc.c, when enabling/disabling Gate A20, call int 0x15 with |
| ax=0x240x to do handling first, and if that is not supported, fall back |
| to using the keyboard controller. Hopefully this will solve Gate A20 |
| problems for recent BIOSes. |
| |
| + Add missing entry to config.c for the Macronix 98713 (device ID |
| 0x512). But latest report is that it doesn't transmit. Anybody wanna |
| debug? |
| |
| + Omit test for pointer to $PnP string for ISA NIC images, it may |
| trigger false recognition of a PnP ROM. Just use legacy mode. |
| |
| + Merged in Christopher Li's Intel E1000 gigabit Ethernet driver. |
| |
| + RISKO Gergely found that the ADMTek Comet 983 works with the tulip |
| driver if you provide the right PCI IDs. |
| |
| + Rohit Jalan contributed patches to support FreeBSD booting via PXE. |
| (genrules.pl needed hacking to make it ignore the system includes in |
| osdep.h.) Anybody want to see if it can be made to support pxelinux? |
| [Glanced at it and I think general PXE support may be hard, you may need |
| an Etherboot specific secondary loader. - Ken] |
| |
| + Merged in Eric Biederman's patches to allow trying all PCI devices. |
| |
| + From Eric Biederman: A small patch to allow the serial port parameters |
| to be unchanged at activation. Major changes to start32.S to merge |
| LinuxBIOS support. New files for LinuxBIOS support. PCBIOS specific |
| functions split out into pcbios.S. Massive clean up of PCI subsystem |
| logic. |
| |
| + Jean-Jacques Michel sent in a fix for via-rhine.c to make sure the |
| transmit is finished before returning from the _transmit routine. |
| Also found a bug in gcc 3.0.3 that affected rtl8139.c. Moving the |
| assignment to nstype in _transmit two lines up avoids it. |
| |
| + Based on the experience of Yedidyah Bar-David, in eepro100.c, |
| increased udelay around line 533 after getting MAC address to |
| udelay(10000). |
| |
| + Added PCI IDs for RTL8129, which can use the rtl8139 driver. |
| |
| + Added PCI IDs for 3Com905 with device ID 0x9058. Confirmed working by |
| Fabio Papa. |
| |
| + Added PCI IDs for D-Link 528, which is a PCI NE2000 clone. |
| |
| + Philip R. Auld found a block number rollover bug due to promotion to |
| signed in main.c. |
| |
| + Luigi Rizzo sent in a patch to nfs.c to implement an adaptive timeout. |
| |
| + New config files for floppyfw-1.9.19 in contrib/mkffwnb/. |
| |
| + Glenn McKechnie contributed a Perl script for making a netbootable |
| image from the Dachstein LRP firewall distribution floppy. It's in |
| contrib/mklrpnb/ |
| |
| + At the request of Greg Beeley, who got irate mail from kernel NIC |
| developers, put in a warning in the Makefile about the 3c90x XCVR |
| options which may affect later operation with the Linux driver. For you |
| tinkerers out there, if you don't know what you're doing, please read |
| 3c90x.txt over and over again until you understand what those options |
| do. If you don't understand, please ask on the Etherboot mailing list. |
| And don't complain to the kernel developers, it's nothing to do with |
| them. If you must change the XCVR options on a board, please document it |
| prominently on the board so that those who come after you won't |
| encounter strange behaviour and complain to the kernel developers. |
| Greg also supplied a patch to 3c90x.c to print a warning message. |
| |
| Released as Etherboot 5.0.6 (production) |
| |
| + Andrew Bettison sent in a patch and the explanation: Here's a patch |
| for some changes I made to Etherboot-5.0.6 because it didn't work with a |
| SMC EtherEZ in an old PCI/ISA bybrid bus system. The ISA shared memory |
| isn't accessible on many such systems, so the only way to do I/O to the |
| card is in Programmed I/O mode. I studied the Linux 2.2.19 driver |
| (drivers/net/smc-ultra.c) and hacked what I figured was equivalent code |
| into src/ns8390.c, and it eventually worked. All my new code is enabled |
| with -DWD-790_PIO. |
| |
| + Small error in the ADMTEK Comet 983 IDs fixed. |
| |
| + Michael Rendell sent in patches for 3c90x.c to get the MAC address |
| from location 10 of the EEPROM onwards, like the Linux driver does. Some |
| 905s have the MAC address at both 0 and 10 which is why it worked for |
| some boards. |
| |
| + Michael Brown sent in drivers for 3 wireless NICs based in the prism2 |
| chipset, and a small patch to rtl8139.c to abort detection on no link. |
| |
| + Rewrote makerom.c in Perl to give makerom.pl. |
| |
| + Rewrite genrules.pl to parse a new NIC format. |
| |
| + Timothy Legge contributed a 3c515 driver. Requires a ISA PnP BIOS. |
| |
| + Modified call to int15h/e801 in pcbios.S to check for return values in |
| CX, DX in case BIOS doesn't return them in AX, BX. |
| |
| + Richard Chan sent in PCI IDs for another Intel EEPRO100 product. |
| Omigawd will they ever run out of EEPRO100 model numbers. :-) |
| |
| + Changed location of setup header from 0x97e000 to 0x93e000 in |
| mkQNXnbi.c for recent Etherboot versions. |
| |
| + Renamed membase to addr1 to reflect its lack of predefined meaning in |
| PCI config space. Should do similar to ioaddr, but too much work. |
| |
| + Samuel Clememts found another Intel EEPRO100 device ID, 0x1039. |
| |
| + Updated instructions in contrib/tomsrtbt for latest 2.0.103 release. |
| |
| + Folded in changes by Michael Brown to send PCI and ISA IDs to the |
| server and to encapsulate Etherboot specific options. Changed scheme to |
| send fixed binary structure instead of variable length string. |
| |
| + Bug in sis900.c, wrongly classifies revisions 0x81 and 0x82 because |
| first test catches too many revisions. Changed to match the Linux |
| driver. |
| |
| + Fotis Andritsopoulos found a small bug in cs89x0.h, TX_AFTER_ALL |
| should be 0x0C0. |
| |
| + Great idea by Eric Biederman. Ignore DHCP offers with zero server |
| IP, or null filename unless DEFAULT_BOOTFILE is defined. This will |
| ignore most Windows DHCP servers. |
| |
| + Patrik Weiskircher sent in a patch for rtl8139.c to bring it up to |
| date with the Linux driver. |
| |
| Released as Etherboot 5.0.7 (production) |
| |
| + Multicast support and LOTS of other changes by Eric Biederman. |
| |
| + Builtin menuing has been removed. |
| |
| + Patches for FreeBSD by Doug Ambrisko. |
| |
| Released as Etherboot 5.1.2 (development) |
| |
| + Fix syntax errors in nfs.c. |
| |
| + Patch for tagged image loading by Miles Nordin. |
| |
| + Patches for new eepr100 variant by Georg Baum. |
| |
| + Fixes for typos by Adam Sulmicki. |
| |
| + Fixes by Eric. |
| |
| Released as Etherboot 5.1.3 (development) |
| |
| + Eric rearranged files for multiple platforms, including Itanium. |
| |
| Released as Etherboot 5.1.4 (development) |
| |
| + Lots of fixes to drivers, see CVS for details. |
| |
| Released as Etherboot 5.1.5 (development) |
| |
| + Eric added support for the AMD Hammer. |
| |
| + Geert Stappers found a VIA6105 (via-rhine.c) with id 0x3106. |
| |
| Released as Etherboot 5.1.6 (development) |
| |
| + Broadcomm TG3 support by Eric Biederman. |
| |
| + Georg Baum found that the start16.S prefix was missing from the LILO |
| and PXE images, those formats were broken. He also migrated the PCI IDs |
| into the driver files. Those formats should work again. |
| |
| + Reworked genrules.pl. Family declarations now in here document inside |
| genrules.pl. NIC is now an output file, for use by rom-o-matic. |
| |
| Released as Etherboot 5.1.7 (development) |
| |
| + Fixed various syntax errors that made the source not compile with some |
| configurations. |
| |
| + Hacked boot1a.s to take count of number of blocks to boot from book |
| block itself in new scheme. |
| |
| + Dave Airlie found a patch for an old bug in eepro100 driver on Linux |
| that applies to Etherboot driver too. |
| |
| + Add use bytes; pragma to Perl scripts to avoid problems with UTF-8 |
| handling of input data. |
| |
| + Replace boot1a.s with floppyload.S which has no problems loading large |
| binaries. Lose the ability to boot from disk partition. Use LILO or |
| something similar. |
| |
| + Morten Kristiansen sent in a patch to handle another variant of the |
| SiS 900. |
| |
| + Fix for eepro100 timing problem by Georg Baum. |
| |
| + Add use bytes; to Eric's Perl scripts too. |
| |
| + Additional fix to mask interrupts after PortPartialReset by Georg |
| Baum that might help with booting DOS. |
| |
| + Sundance driver contributed by Timothy Legge. |
| |
| Released as Etherboot 5.1.8 (development) |
| |
| + Fix for correct SMC8416 detection. |
| |
| + Alignment bug fix for the 3c90x driver contributed by Neil Newell. |
| |
| + Robb Main found a bug in appending the MACHINE_INFO to the DHCP request. |
| |
| + SONE Takeshi fixed the Multiboot structure. |
| |
| + Patch from Axel Dittrich to allow timeout to be changed to a fixed |
| value for peer-to-peer setups where the exponential backoff is not |
| suitable. |
| |
| + Tlan driver contributed by Timothy Legge. |
| |
| + Support for symlinks on NFS mounts by Anselm Martin Hoffmeister. |
| |
| + Experimental safe booting code by Anselm Martin Hoffmeister. |
| |
| + Run Etherboot in an even megabyte so that unsetting A20 won't kill it. |
| Experimental UNDI driver by Michael Brown. |
| |
| Released as Etherboot 5.1.9 (5.2 release candidate 1) |
| |
| + 82562EZ ID provided by Samuel Clements. |
| |
| + Rename Local option as Quit, because that's what it really is. |
| |
| + Should prepend start16.bin to .com images, they didn't work and nobody |
| noticed. |
| |
| + PM stack was getting clobbered by zeroing of BSS, move to own segment |
| in etherboot.lds. Move %ss out of the way of Etherboot in comprefix.S. |
| Now Q works from .zrom and sort of from .com (DOS is odd after return). |
| |
| + Make ASK_PROMPT reflect the device options available. |
| |
| + Removed many outdated comments and updated others. |
| |
| Released as Etherboot 5.1.10 (5.2 release candidate 2) |
| |
| + Make floppyload.S and liloprefix.S call instead of jmp to the image so |
| that the return calls int 0x19, which is somewhat better than |
| hyperspace. |
| |
| + Put http://etherboot.org in prompt and ID string. |
| |
| Released as Etherboot 5.2.0 (production) |
| |
| + Print F? if no filename in DHCP offer. |
| |
| + Make lance.c throw a compile error if -DRELOCATE is used. |
| |
| + pcnet32 driver ported by Timothy Legge. |
| |
| + Reinstate boot1a.s in arch/i386/prefix. The binary may have some uses; |
| it boots with vmware although the image fails later in the emulation. |
| |
| Released as Etherboot 5.2.1 (production) |
| |
| CVSed as Etherboot 5.3 (development) |
| |
| + Break out etherboot.h into multiple files along protocol lines. |
| |
| + Georg Baum's conversion of a more recent version of the Linux e1000 |
| driver. |
| |
| + Add mini-slamd to contrib/, it was missed during 5.2 release. |
| |
| + Timothy Legge enabled multicast for a bunch of drivers. Tested with |
| mini-slamd. |
| |
| Released as Etherboot 5.3.0 (development) |
| |
| + Timothy Legge rewrite proto_tftm.c, got multicast working with atftp |
| and enabled multicast for the Tulip. |
| |
| Released as Etherboot 5.3.1 (development) |
| |
| + Günter Knauf sent in a new version of romid that handles the new |
| and old IDENT format. |
| |
| + Cai Qiang fixed the WINCE loader. It needs to handle > 512 byte packets |
| and also the buffer has to be static. Also submitted a driver for VGA |
| which can be activated by CONSOLE_DIRECT_VGA. |
| |
| + Improved tg3 driver by Eric Biederman. New define in etherboot.h: |
| VALID_LINK_TIMEOUT. |
| |
| + Timothy Legge and I fixed up various ISA drivers to be less noisy |
| when probing, from information provided by Paolo Salvan, so that the |
| super etherboot image is more useful. |
| |
| + Proof of concept of a TFTP to HTTP proxy in contrib/t2hproxy/. |
| |
| Released as Etherboot 5.3.2 (development) |
| |
| + Multicast support for the ns8390 (NE, WD, etc) added by Timothy Legge. |
| |
| + Provide config access to alternate DHCP/BOOTP ports. The macro |
| ALTERNATE_DHCP_PORTS_1067_1068 switches to ports 1067 and 1068. |
| |
| + UNDI driver by Michael Brown. |
| |
| Released as Etherboot 5.3.3 (development) |
| |
| + More UNDI improvements by Michael Brown. |
| |
| + Michael Brown pointed out error in ASK_BOOT behaviour. Make it match |
| documentation. < 0 or undefined means no prompt, = 0 means wait |
| forever, > 0 means wait that many seconds. |
| |
| + Start of PCMCIA subsystem by Anselm Martin Hoffmeister. |
| |
| + Port to Hyperstone architecture (big-endian) by Yannis Mitsos and |
| George Thanos at NTUA, Greece. |
| |
| + Timothy Legge got the epic100 driver working again, was not working |
| when 5.2 released. Also implemented multicasting. Also tentatively |
| fixed the tg3 driver. |
| |
| + Use Perl script to make .z?lilo images. |
| |
| + Added an .iso Makefile rule. This requires newer BIOSes as it |
| uses no floppy emulation mode. |
| |
| + Guard Kuo sent in a patch for the via-rhine driver not being |
| reset properly, Timothy Legge improved it based in the Linux driver. |
| |
| Released as Etherboot 5.3.4 (development) |
| |
| + David D. Smith, with help from Georg Baum, sent in a patch for the |
| eepro100 driver which might help unjam the NIC when the receiver has |
| suspended reception. |
| |
| + Timothy Legge and Eric Biederman fixed a bug in the tg3 driver which |
| caused some models to not receive DHCP replies. |
| |
| Released as Etherboot 5.3.5 (development) |
| |
| + Timothy Legge ported the Linux Realtek 8169 driver. |
| |
| + Michael Brown removed irritating A20 status change messages. |
| |
| + Sis900, w89c840 and tg3 drivers fixed by Timothy Legge. R8169 driver |
| needs family entry in genrules.pl. |
| |
| + Revert to normal way of assigning string to DEFAULT_BOOTFILE as |
| tricky stringify macro falls foul of C++ // comments in gcc 3.x. |
| |
| Released as Etherboot 5.3.6 (development) |
| |
| + Don't include ISA .o files for etherboot-pci. |
| |
| + Doug Ambrisko fixed bugs in the FreeBSD loader. |
| |
| + Anders Nystrom provided a tiny via-rhine patch |
| |
| + Introduce new define DEFAULT_PROTO_NFS for those who were used to |
| using DOWNLOAD_PROTO_NFS in 5.0 for NFS booting. |
| |
| + Reverse sort PCI drivers so that 3c90x is tried ahead of 3c595. |
| |
| + Updated e1000 driver by Georg Baum. |
| |
| + New PCI IDs for 3c90x and tulip drivers. Typos in 3c90x and tg3 |
| drivers corrected. |
| |
| + Georg Baum fixed the 3c503 |
| |
| + Fixed Typos which caused compiling with RARP_NOT_BOOTP to fail |
| |
| + Fixed IMAGE_FREEBSD bugs |
| |
| + Cleanup of driver output (pcnet32, r8169, sundance, tlan) |
| |
| + Minor updates to the Config file comments |
| |
| + arch/i386/prefix/boot1a.S is no longer maintained |
| |
| + Added make rule for a floppy emulation ISO boot image |
| |
| + Timothy Legge updated proto_tftm to make it easier to maintain and |
| fix some issues |
| |
| + Timothy Legge contributed a forcedeth driver for the NVidia Force |
| NIC. |
| |
| + Timothy Legge contributed a ns83820 driver for National |
| Semiconductor 83820 based NICS |
| |
| + Ken Yap added support for creating .liso output type which is an iso |
| image with legacy floppy support |
| |
| + Michael Brown improved memory allocation, 16/32 mode swapping, and |
| did various code cleanups |
| |
| + Michael Brown added High-Level PXE API support (pxelinux) to Etherboot |
| |
| Released as Etherboot 5.3.7 (development) |
| |
| + Timothy Legge Fixed an issue in the e1000 driver with 82544 and |
| newer devices that support port I/O. Enabled port io for the reset. |
| Without the patch the e1000 could not reliably boot Linux on some |
| cards. Thanks to James Pearson, Georg Baum and Marty Connor for |
| help resolving this issue. |
| |
| + Michael Brown added lots of PXE code to complete implementation. He |
| also did a warnings purge of the core. |
| |
| + Marty Connor did warnings purge of the network drivers. |
| |
| + Anselm Martin Hoffmeister contributed DNS resolution code. |
| |
| + Lots of driver PXEifications and cleanups from Timothy Legge and |
| Marty Connor |
| |
| + Makefile and genrules fixes from Michael Brown and Marty Connor |
| |
| + BPBATCH workaround from Timothy Legge and Michael Brown |
| |
| + Timothy Legge improved image format detection logic. |
| |
| Released as Etherboot 5.3.8 (development) |
| |
| + Update to lance.c chip_table from Helge Wagner |
| |
| + Fixes to attributes to prevent gcc from optimising away seemingly |
| unused functions and variables that are actually referenced from asm |
| or in the linking stage. (Ken Yap) |
| |
| + Removed non-relocation support, relocation is now always active. |
| Removed lance.c driver as this will not work with relocation. 32-bit |
| Lance NIC users should use pcnet32. (Ken Yap) |
| |
| + Migrated SAFEBOOT to a patch set. This proof-of-concept code is |
| incomplete and needs more work before becoming mainstream. (Ken Yap) |
| |
| Released as Etherboot 5.3.9 (development) |
| |
| + Patch from Tim Fletcher for another eepro100 model. |
| |
| + Patch from Jeremy Jackson to make DNS query recursive and fix sign and |
| casting issues in dns_resover.c. |
| |
| + Paolo Salvan experimented with using isolinux for non-emulation |
| images and contributed the first cut at the code for geniso. |
| |
| + Fix for relocation issue with prism2_pci driver |
| |
| + Small patch to support 3Com tulip version from Jacek Kalinski |
| |
| + Dag Lem provided a new pci_id for the eepro100 Intel "82801EB/ER |
| (ICH5/ICH5R)" |
| |
| + Small patch to support 3Com tulip version from Jacek Kalinski |
| |
| + Yinghai Lu contributed a large patch to add filo, bText and usb |
| support: |
| btext console: In LinuxBIOS, for the VGA, we only can |
| enable display chipframe buffer and write char to framebuffer |
| to get output in CRT. |
| |
| FILO: originally it is standalone boot program and |
| author is TakeshiSone. |
| |
| Boot from SATA disk. |
| |
| Boot from USB disk (OHCI and UHCI). USB boot is from Steven |
| James 's baremetal in LinuxBIOS, moved to FILO and added the |
| OHCI support to it |
| |
| + armnommu arch support by Tobias Lorenz. |
| |
| + Driver updates/cleanup: rtl8139, sis900, tlan |
| |
| + Updates to via-rhine based on input from Guard Kuo from Via Networking |
| Technologies, Inc |
| |
| + Update p910nd (port 9100+n printer daemon) to latest version |
| |
| + Fixed some bugs to enable compilation for gcc 3.4.x. |
| |
| Released as Etherboot 5.3.10 aka 5.4RC1 (development) |
| |
| + Changes to segment scheme to make large compressed images work. |
| |
| + .zelf images can be built now but still don't run properly. .zrom |
| images may be broken. |
| |
| + Start of a .exe prefix which should allow payloads > 64kB. |
| |
| Released as Etherboot 5.3.11 aka 5.4RC2 (development) |
| |
| + Left out in last release's LOG: accepted patch from Jan Kiszka |
| fixing default TFTP blocksize. |
| |
| + Fixed .z?rom image generation, they work now. |
| |
| + Patch from Jan Kiszka for for multiple receive buffers in eepro100 |
| driver. |
| |
| + Fixed 961507 Not so nice 'F?' message when no file name received |
| |
| + Small fixes to e1000 and via-rhine drivers. |
| |
| + New mtd80x.c driver contributed by Erdem Guven |
| |
| + New dmfe.c driver for Davicom based cards contributed by Timothy Legge |
| |
| + Added new definitions of site DHCP options in preparation for 5.4. |
| |
| + Removed etherboot(-pci)?.* rule because there are too many drivers and |
| the image will no longer fit in memory. I don't want to choose a subset |
| of drivers as everybody will have different preferences. So I'm going to |
| piss off everybody equally by deleting the rule. Use the multiple driver |
| rule (driver1--driver2--...) and select your own subset of drivers. |
| |
| Released as Etherboot 5.3.12 aka 5.4RC3 (development) |
| |
| + Changes to Makefile.main and Config to collect FILO objects in |
| filolib.a. This allows FILO to be excluded from compilation and linking |
| with one Makefile define. |
| |
| + Reverse site DHCP option changes, should apply for official |
| assignment. |
| |
| + RIS filename patch which seems to work for many people. |
| |
| + Thanks to the help of Daniel Nilsson, tracked down and fixed a bug |
| where the tftp code did not fall back to 512 byte blocks when an OACK |
| was NOT received. |
| |
| + Removed dead code related to CAN_BOOT_DISK. |
| |
| + Clarified that BOOT_DISK and BOOT_FLOPPY options only work with |
| LinuxBIOS and are not replacements for PCBIOS functions. |
| |
| + Renamed EMERGENCYDISKBOOT to EXIT_IF_NO_OFFER. |
| |
| + Builtin menuing DHCP options are gone. |
| |
| + Paolo Salvan submitted changes to arch/i386/Makefile to make .com |
| images compressed. |
| |
| + Eric Biedermann made .*elf images work again and cleaned up the build |
| procedure in the process. The hardwired virtual RELOCADDR is no more, |
| the virtual base is 0. He also added code to display which protocols are |
| compiled into the image. |
| |
| Released as Etherboot 5.3.13 aka 5.4RC4 (development) |
| |
| + Lots of fixes by Eric Biederman. Symbols for protected mode segment |
| and prefix segments separated. Multiple ASM statements combined to |
| ensure compiler keeps them intact. Allocate real mode stack if none in |
| use. Protect low memory interrupt vectors. Makefile rules for various |
| prefixes factored. Dynamic relocatable image support. |
| |
| + Fixes by Michael Brown. Cleanup of PXE and UNDI code. |
| |
| + Patch to Tulip driver for missing PCI ID. |
| |
| + Fixes to genrules.pl by Kenneth Sumrall. |
| |
| Released as Etherboot 5.3.14 aka 5.4RC5 (development) |
| |
| + Small ARMNOMMU architecture fixes by Toby Lorenz. |
| |
| + Patch to Tulip driver for additional PCI ID by Ramesh Chander. |
| |
| + Proxy DHCP support, catrom.pl script, flat real mode support, and |
| e1000 fixes by Michael Brown. |
| |
| + New PHY support for tg3.c by Timothy Legge. |
| |
| + FS Protocol support by Radim Kolar. |
| |
| + FILO config changes by YHLu. |
| |
| + Support for compilation on AMD64 for i386. makerom.pl fixed not to |
| change product string pointer if one already exists. |
| |
| Released as Etherboot 5.3.15 aka 5.4RC6 (development) |
| |
| + Minor additions and amendments to acknowledgements. |
| |
| + Added Doug Ambrisko's FreeBSD patch to freebsd_loader.c. Doesn't |
| hurt FreeBSD 4 and seems to help FreeBSD 5 get further in booting. |
| Should not affect other image types since it modifies only one file. |
| The part of the patch relating to osloader.c was already present. |
| |
| Released as Etherboot 5.4.0 (production) |
| |
| + Added PCI ID for Fujistu Siemens Futro C200 by Martin Vogt |
| |
| + Liu Tao contributed a driver for the AMD8111 based on the Linux |
| driver |
| |
| + Till Straumann patch for Sporadic eepro(10) RX problems after reboot |
| |
| + Hermann Gausterer sent a patch to support additional Broadcom PHYs |
| |
| + Timothy Legge updated the forcedeth driver to the latest Linux version |
| 2.6.10 (untested and broken) |
| |
| + YhLu fixed the updated forcedeth driver so that it worked and confirmed |
| that it supports the Gigabit nVidia NICs |
| |
| + Timothy Legge fixed relocation issues with the eepro driver |