mirror of
https://github.com/xcat2/xNBA.git
synced 2024-11-22 17:41:55 +00:00
2873 lines
110 KiB
Plaintext
2873 lines
110 KiB
Plaintext
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<6F>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<6F>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<6F>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. <20>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 <20>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<63> 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
|
||
|
||
+ Jan Kiszka provided a patch for the smc9000 for missing phy-setup
|