Ported bnx2 driver from Etherboot 5.4.
authorJames Harper <james.harper@bendigoit.com.au>
Tue, 13 Mar 2007 23:03:50 +0000 (23:03 +0000)
committerJames Harper <james.harper@bendigoit.com.au>
Tue, 13 Mar 2007 23:03:50 +0000 (23:03 +0000)
690 files changed:
Copyrights
LOG
RELNOTES
VERSION
contrib/bin2intelhex/bin2intelhex.c
contrib/bochs/.cvsignore
contrib/bochs/Makefile
contrib/bochs/README
contrib/bochs/README.qemu [new file with mode: 0644]
contrib/bochs/bochsrc.txt
contrib/bochs/ifup.tun [deleted file]
contrib/bochs/qemu-patch [new file with mode: 0644]
contrib/bochs/serial-console
contrib/bochs/tunctl.c [new file with mode: 0644]
contrib/initrd/ChangeLog
eb.png [deleted file]
index-berlios.html [deleted file]
index.html [deleted file]
index.xhtml [deleted file]
src/Config
src/Makefile
src/Makefile.housekeeping
src/arch/armnommu/Config [deleted file]
src/arch/armnommu/Makefile [deleted file]
src/arch/armnommu/core/arm_timer.c [deleted file]
src/arch/armnommu/core/etherboot.lds [deleted file]
src/arch/armnommu/core/lib1funcs.c [deleted file]
src/arch/armnommu/core/mem.c [deleted file]
src/arch/armnommu/core/raw_loader.c [deleted file]
src/arch/armnommu/core/serial.c [deleted file]
src/arch/armnommu/core/setjmp.S [deleted file]
src/arch/armnommu/core/start.S [deleted file]
src/arch/armnommu/drivers/net/p2001_eth.c [deleted file]
src/arch/armnommu/include/bits/byteswap.h [deleted file]
src/arch/armnommu/include/bits/cpu.h [deleted file]
src/arch/armnommu/include/bits/elf.h [deleted file]
src/arch/armnommu/include/bits/endian.h [deleted file]
src/arch/armnommu/include/bits/string.h [deleted file]
src/arch/armnommu/include/callbacks_arch.h [deleted file]
src/arch/armnommu/include/hardware.h [deleted file]
src/arch/armnommu/include/hooks.h [deleted file]
src/arch/armnommu/include/io.h [deleted file]
src/arch/armnommu/include/latch.h [deleted file]
src/arch/armnommu/include/limits.h [deleted file]
src/arch/armnommu/include/lxt971a.h [deleted file]
src/arch/armnommu/include/setjmp.h [deleted file]
src/arch/armnommu/include/stdint.h [deleted file]
src/arch/e1/Config [deleted file]
src/arch/e1/Makefile [deleted file]
src/arch/e1/Makefile.working [deleted file]
src/arch/e1/README [deleted file]
src/arch/e1/core/coff_loader.c [deleted file]
src/arch/e1/core/e132_xs.c [deleted file]
src/arch/e1/core/e1_timer.c [deleted file]
src/arch/e1/core/etherboot.lds [deleted file]
src/arch/e1/core/longjmp.c [deleted file]
src/arch/e1/core/memcmp.S [deleted file]
src/arch/e1/core/memcpy.S [deleted file]
src/arch/e1/core/memset.S [deleted file]
src/arch/e1/core/setjmp.c [deleted file]
src/arch/e1/core/start.S [deleted file]
src/arch/e1/core/strcmp.S [deleted file]
src/arch/e1/include/bits/byteswap.h [deleted file]
src/arch/e1/include/bits/cpu.h [deleted file]
src/arch/e1/include/bits/elf.h [deleted file]
src/arch/e1/include/bits/endian.h [deleted file]
src/arch/e1/include/bits/string.h [deleted file]
src/arch/e1/include/e132_xs_board.h [deleted file]
src/arch/e1/include/hooks.h [deleted file]
src/arch/e1/include/io.h [deleted file]
src/arch/e1/include/latch.h [deleted file]
src/arch/e1/include/limits.h [deleted file]
src/arch/e1/include/setjmp.h [deleted file]
src/arch/e1/include/stdint.h [deleted file]
src/arch/i386/Config
src/arch/i386/Makefile
src/arch/i386/core/cpu.c
src/arch/i386/core/elf.c [deleted file]
src/arch/i386/core/etherboot.lds [deleted file]
src/arch/i386/core/freebsd_loader.c
src/arch/i386/core/hooks.c [deleted file]
src/arch/i386/core/i386_string.c [new file with mode: 0644]
src/arch/i386/core/i386_timer.c
src/arch/i386/core/load_buffer.c [deleted file]
src/arch/i386/core/multiboot_loader.c [deleted file]
src/arch/i386/core/nulltrap.c [new file with mode: 0644]
src/arch/i386/core/pci_io.c [deleted file]
src/arch/i386/core/pcibios.c [new file with mode: 0644]
src/arch/i386/core/pcidirect.c [new file with mode: 0644]
src/arch/i386/core/pic8259.c
src/arch/i386/core/pxe_callbacks.c [deleted file]
src/arch/i386/core/pxe_loader.c [deleted file]
src/arch/i386/core/realmode_asm.S [deleted file]
src/arch/i386/core/relocate.c
src/arch/i386/core/setup.S [deleted file]
src/arch/i386/core/stack.S [new file with mode: 0644]
src/arch/i386/core/start32.S
src/arch/i386/core/udivmod64.c [new file with mode: 0644]
src/arch/i386/core/umalloc.c [new file with mode: 0644]
src/arch/i386/core/video_subr.c
src/arch/i386/core/virtaddr.S
src/arch/i386/drivers/bus/bios_disks.c
src/arch/i386/drivers/net/undi.c
src/arch/i386/drivers/net/undi.h [deleted file]
src/arch/i386/drivers/net/undiload.c [new file with mode: 0644]
src/arch/i386/drivers/net/undinet.c [new file with mode: 0644]
src/arch/i386/drivers/net/undionly.c [new file with mode: 0644]
src/arch/i386/drivers/net/undipreload.c [new file with mode: 0644]
src/arch/i386/drivers/net/undirom.c [new file with mode: 0644]
src/arch/i386/firmware/pcbios/basemem.c
src/arch/i386/firmware/pcbios/bios.c
src/arch/i386/firmware/pcbios/bios_console.c
src/arch/i386/firmware/pcbios/e820mangler.S
src/arch/i386/firmware/pcbios/gateA20.c
src/arch/i386/firmware/pcbios/hidemem.c
src/arch/i386/firmware/pcbios/memmap.c [new file with mode: 0644]
src/arch/i386/firmware/pcbios/memsizes.c [deleted file]
src/arch/i386/firmware/pcbios/pnpbios.c [new file with mode: 0644]
src/arch/i386/firmware/pcbios/smbios.c [new file with mode: 0644]
src/arch/i386/image/bootsector.c [new file with mode: 0644]
src/arch/i386/image/bzimage.c [new file with mode: 0644]
src/arch/i386/image/eltorito.c [new file with mode: 0644]
src/arch/i386/image/multiboot.c [new file with mode: 0644]
src/arch/i386/image/nbi.c
src/arch/i386/image/pxe_image.c [new file with mode: 0644]
src/arch/i386/include/basemem.h
src/arch/i386/include/bios.h
src/arch/i386/include/biosint.h [new file with mode: 0644]
src/arch/i386/include/bits/byteswap.h
src/arch/i386/include/bits/string.h
src/arch/i386/include/bits/uaccess.h [new file with mode: 0644]
src/arch/i386/include/bochs.h
src/arch/i386/include/bootsector.h [new file with mode: 0644]
src/arch/i386/include/bzimage.h [new file with mode: 0644]
src/arch/i386/include/hidemem.h [deleted file]
src/arch/i386/include/hooks.h [deleted file]
src/arch/i386/include/int13.h [new file with mode: 0644]
src/arch/i386/include/latch.h
src/arch/i386/include/libkir.h
src/arch/i386/include/librm.h
src/arch/i386/include/memsizes.h
src/arch/i386/include/multiboot.h [new file with mode: 0644]
src/arch/i386/include/pci_io.h
src/arch/i386/include/pcibios.h [new file with mode: 0644]
src/arch/i386/include/pcidirect.h [new file with mode: 0644]
src/arch/i386/include/pic8259.h
src/arch/i386/include/pnpbios.h [new file with mode: 0644]
src/arch/i386/include/pxe_addr.h [new file with mode: 0644]
src/arch/i386/include/pxe_call.h [new file with mode: 0644]
src/arch/i386/include/pxe_callbacks.h
src/arch/i386/include/pxe_types.h [deleted file]
src/arch/i386/include/realmode.h
src/arch/i386/include/registers.h
src/arch/i386/include/relocate.h [deleted file]
src/arch/i386/include/smbios.h [new file with mode: 0644]
src/arch/i386/include/stdint.h
src/arch/i386/include/undi.h [new file with mode: 0644]
src/arch/i386/include/undiload.h [new file with mode: 0644]
src/arch/i386/include/undinet.h [new file with mode: 0644]
src/arch/i386/include/undipreload.h [new file with mode: 0644]
src/arch/i386/include/undirom.h [new file with mode: 0644]
src/arch/i386/include/virtaddr.h
src/arch/i386/interface/pcbios/biosint.c [new file with mode: 0644]
src/arch/i386/interface/pcbios/int13.c [new file with mode: 0644]
src/arch/i386/interface/pxe/pxe_call.c [new file with mode: 0644]
src/arch/i386/interface/pxe/pxe_entry.S [new file with mode: 0644]
src/arch/i386/kir-Makefile
src/arch/i386/prefix/dskprefix.S
src/arch/i386/prefix/hdprefix.S [new file with mode: 0644]
src/arch/i386/prefix/int19exit.c
src/arch/i386/prefix/kpxeprefix.S [new file with mode: 0644]
src/arch/i386/prefix/libprefix.S [new file with mode: 0644]
src/arch/i386/prefix/liloprefix.S
src/arch/i386/prefix/nbiprefix.S [new file with mode: 0644]
src/arch/i386/prefix/pxeprefix.S
src/arch/i386/prefix/romprefix.S
src/arch/i386/prefix/select_isapnp.c [deleted file]
src/arch/i386/prefix/select_pci.c [deleted file]
src/arch/i386/scripts/i386-kir.lds [new file with mode: 0644]
src/arch/i386/scripts/i386.lds
src/arch/i386/transitions/libkir.S
src/arch/i386/transitions/librm.S
src/arch/i386/transitions/librm_mgmt.c
src/arch/ia64/Config [deleted file]
src/arch/ia64/Makefile [deleted file]
src/arch/ia64/core/__call.S [deleted file]
src/arch/ia64/core/efi.c [deleted file]
src/arch/ia64/core/etherboot.lds [deleted file]
src/arch/ia64/core/ia64_timer.c [deleted file]
src/arch/ia64/core/idiv32.S [deleted file]
src/arch/ia64/core/idiv64.S [deleted file]
src/arch/ia64/core/longjmp.S [deleted file]
src/arch/ia64/core/memmove.S [deleted file]
src/arch/ia64/core/memset.S [deleted file]
src/arch/ia64/core/pal.c [deleted file]
src/arch/ia64/core/pci_io.c [deleted file]
src/arch/ia64/core/reloc.S [deleted file]
src/arch/ia64/core/relocate_to.S [deleted file]
src/arch/ia64/core/sal.c [deleted file]
src/arch/ia64/core/setjmp.S [deleted file]
src/arch/ia64/core/start.S [deleted file]
src/arch/ia64/drivers/net/undi_nii.c [deleted file]
src/arch/ia64/include/bits/byteswap.h [deleted file]
src/arch/ia64/include/bits/cpu.h [deleted file]
src/arch/ia64/include/bits/elf.h [deleted file]
src/arch/ia64/include/bits/endian.h [deleted file]
src/arch/ia64/include/bits/string.h [deleted file]
src/arch/ia64/include/hooks.h [deleted file]
src/arch/ia64/include/io.h [deleted file]
src/arch/ia64/include/latch.h [deleted file]
src/arch/ia64/include/limits.h [deleted file]
src/arch/ia64/include/pal.h [deleted file]
src/arch/ia64/include/sal.h [deleted file]
src/arch/ia64/include/setjmp.h [deleted file]
src/arch/ia64/include/stdint.h [deleted file]
src/arch/ia64/prefix/apply_efi_prefix.pl [deleted file]
src/arch/ia64/prefix/apply_unnrv2b_prefix.pl [deleted file]
src/arch/ia64/prefix/efi_prefix.S [deleted file]
src/arch/ia64/prefix/efi_prefix.lds [deleted file]
src/arch/ia64/prefix/unnrv2b.S [deleted file]
src/arch/ia64/prefix/unnrv2b.lds [deleted file]
src/config.h
src/core/acpi.c [new file with mode: 0644]
src/core/ansiesc.c [new file with mode: 0644]
src/core/async.c [new file with mode: 0644]
src/core/background.c [new file with mode: 0644]
src/core/basename.c [new file with mode: 0644]
src/core/btext.c
src/core/buffer.c
src/core/config.c
src/core/console.c
src/core/debug.c [new file with mode: 0644]
src/core/dev.c
src/core/device.c [new file with mode: 0644]
src/core/download.c [new file with mode: 0644]
src/core/ebuffer.c [new file with mode: 0644]
src/core/elf_loader.c
src/core/errno.c [new file with mode: 0644]
src/core/exec.c [new file with mode: 0644]
src/core/gcc_implicit.c [new file with mode: 0644]
src/core/getkey.c [new file with mode: 0644]
src/core/getopt.c [new file with mode: 0644]
src/core/heap.c
src/core/hotplug.c [new file with mode: 0644]
src/core/image.c
src/core/init.c
src/core/linebuf.c [new file with mode: 0644]
src/core/main.c
src/core/malloc.c [new file with mode: 0644]
src/core/misc.c
src/core/nic.c [deleted file]
src/core/nvo.c [new file with mode: 0644]
src/core/osloader.c [deleted file]
src/core/pc_kbd.c
src/core/pcmcia.c
src/core/process.c [new file with mode: 0644]
src/core/pxe_export.c [deleted file]
src/core/random.c [new file with mode: 0644]
src/core/resolv.c
src/core/serial.c
src/core/settings.c [new file with mode: 0644]
src/core/string.c
src/core/timer.c
src/core/uri.c [new file with mode: 0644]
src/core/url.c [deleted file]
src/core/vsprintf.c
src/crypto/axtls/aes.c [new file with mode: 0644]
src/crypto/axtls/asn1.c [new file with mode: 0644]
src/crypto/axtls/bigint.c [new file with mode: 0644]
src/crypto/axtls/bigint.h [new file with mode: 0644]
src/crypto/axtls/bigint_impl.h [new file with mode: 0644]
src/crypto/axtls/crypto.h [new file with mode: 0644]
src/crypto/axtls/os_port.h [new file with mode: 0644]
src/crypto/axtls/rsa.c [new file with mode: 0644]
src/crypto/axtls/sha1.c [new file with mode: 0644]
src/crypto/axtls_aes.c [new file with mode: 0644]
src/crypto/axtls_sha1.c [new file with mode: 0644]
src/crypto/chap.c [new file with mode: 0644]
src/crypto/cryptoLayer.h [new file with mode: 0644]
src/crypto/crypto_null.c [new file with mode: 0644]
src/crypto/framework.c [new file with mode: 0644]
src/crypto/matrixssl/mpi.h [new file with mode: 0644]
src/crypto/matrixssl/pscrypto.h [new file with mode: 0644]
src/crypto/md5.c [new file with mode: 0644]
src/crypto/ssl.c [new file with mode: 0644]
src/crypto/ssl.h [new file with mode: 0644]
src/crypto/ssl_constructs.h [new file with mode: 0644]
src/doc/build_sys.dox [new file with mode: 0644]
src/doxygen.cfg [new file with mode: 0644]
src/drivers/ata/aoedev.c [new file with mode: 0644]
src/drivers/bitbash/bitbash.c [new file with mode: 0644]
src/drivers/bitbash/i2c_bit.c [new file with mode: 0644]
src/drivers/bitbash/spi_bit.c [new file with mode: 0644]
src/drivers/block/ata.c [new file with mode: 0644]
src/drivers/block/ramdisk.c [new file with mode: 0644]
src/drivers/block/scsi.c [new file with mode: 0644]
src/drivers/bus/eisa.c
src/drivers/bus/isa.c
src/drivers/bus/isa_ids.c
src/drivers/bus/isapnp.c
src/drivers/bus/mca.c
src/drivers/bus/pci.c
src/drivers/bus/pciextra.c [new file with mode: 0644]
src/drivers/disk/filo.c [deleted file]
src/drivers/disk/ide_disk.c [deleted file]
src/drivers/disk/pc_floppy.c [deleted file]
src/drivers/net/3c509-eisa.c
src/drivers/net/3c509.c
src/drivers/net/3c509.h
src/drivers/net/3c515.c
src/drivers/net/3c529.c
src/drivers/net/3c595.c
src/drivers/net/3c5x9.c
src/drivers/net/3c90x.c
src/drivers/net/amd8111e.c [new file with mode: 0644]
src/drivers/net/amd8111e.h [new file with mode: 0644]
src/drivers/net/bnx2.c [new file with mode: 0644]
src/drivers/net/bnx2.h [new file with mode: 0644]
src/drivers/net/bnx2_fw.h [new file with mode: 0644]
src/drivers/net/cs89x0.c
src/drivers/net/davicom.c
src/drivers/net/depca.c
src/drivers/net/dmfe.c
src/drivers/net/e1000.c
src/drivers/net/eepro.c
src/drivers/net/eepro100.c
src/drivers/net/epic100.c
src/drivers/net/etherfabric.c [new file with mode: 0644]
src/drivers/net/etherfabric.h [new file with mode: 0644]
src/drivers/net/forcedeth.c
src/drivers/net/legacy.c [new file with mode: 0644]
src/drivers/net/mlx_ipoib/MT23108_PRM.h [new file with mode: 0644]
src/drivers/net/mlx_ipoib/MT23108_PRM_append.h [new file with mode: 0644]
src/drivers/net/mlx_ipoib/MT25218_PRM.h [new file with mode: 0644]
src/drivers/net/mlx_ipoib/bit_ops.h [new file with mode: 0644]
src/drivers/net/mlx_ipoib/cmdif.h [new file with mode: 0644]
src/drivers/net/mlx_ipoib/cmdif_comm.c [new file with mode: 0644]
src/drivers/net/mlx_ipoib/cmdif_comm.h [new file with mode: 0644]
src/drivers/net/mlx_ipoib/cmdif_mt23108.c [new file with mode: 0644]
src/drivers/net/mlx_ipoib/cmdif_mt25218.c [new file with mode: 0644]
src/drivers/net/mlx_ipoib/cmdif_priv.h [new file with mode: 0644]
src/drivers/net/mlx_ipoib/doc/README.boot_over_ib [new file with mode: 0644]
src/drivers/net/mlx_ipoib/ib_driver.c [new file with mode: 0644]
src/drivers/net/mlx_ipoib/ib_driver.h [new file with mode: 0644]
src/drivers/net/mlx_ipoib/ib_mad.c [new file with mode: 0644]
src/drivers/net/mlx_ipoib/ib_mad.h [new file with mode: 0644]
src/drivers/net/mlx_ipoib/ib_mt23108.c [new file with mode: 0644]
src/drivers/net/mlx_ipoib/ib_mt25218.c [new file with mode: 0644]
src/drivers/net/mlx_ipoib/ipoib.c [new file with mode: 0644]
src/drivers/net/mlx_ipoib/ipoib.h [new file with mode: 0644]
src/drivers/net/mlx_ipoib/mad_attrib.h [new file with mode: 0644]
src/drivers/net/mlx_ipoib/mt23108.c [new file with mode: 0644]
src/drivers/net/mlx_ipoib/mt23108.h [new file with mode: 0644]
src/drivers/net/mlx_ipoib/mt23108_imp.c [new file with mode: 0644]
src/drivers/net/mlx_ipoib/mt25218.c [new file with mode: 0644]
src/drivers/net/mlx_ipoib/mt25218.h [new file with mode: 0644]
src/drivers/net/mlx_ipoib/mt25218_imp.c [new file with mode: 0644]
src/drivers/net/mlx_ipoib/mt_version.c [new file with mode: 0644]
src/drivers/net/mlx_ipoib/patches/dhcpd.patch [new file with mode: 0644]
src/drivers/net/mlx_ipoib/samples/dhcpd.conf [new file with mode: 0644]
src/drivers/net/mtd80x.c
src/drivers/net/natsemi.c
src/drivers/net/ns83820.c
src/drivers/net/ns8390.c
src/drivers/net/pcnet32.c
src/drivers/net/pnic.c
src/drivers/net/prism2.c
src/drivers/net/prism2_pci.c
src/drivers/net/prism2_plx.c
src/drivers/net/r8169.c
src/drivers/net/rtl8139.c
src/drivers/net/sis900.c
src/drivers/net/sis900.h
src/drivers/net/skel.c [deleted file]
src/drivers/net/smc9000.c
src/drivers/net/smc9000.h
src/drivers/net/sundance.c
src/drivers/net/tg3.c
src/drivers/net/tg3.h
src/drivers/net/tlan.c
src/drivers/net/tlan.h
src/drivers/net/tulip.c
src/drivers/net/via-rhine.c
src/drivers/net/via-velocity.c [new file with mode: 0644]
src/drivers/net/via-velocity.h [new file with mode: 0644]
src/drivers/net/w89c840.c
src/drivers/nvs/nvs.c [new file with mode: 0644]
src/drivers/nvs/spi.c [new file with mode: 0644]
src/drivers/nvs/threewire.c [new file with mode: 0644]
src/drivers/scsi/iscsidev.c [new file with mode: 0644]
src/filo/Config [deleted file]
src/filo/README.filo [deleted file]
src/filo/README.filo_in_etherboot [deleted file]
src/filo/README.usb [deleted file]
src/filo/drivers/ide_x.c [deleted file]
src/filo/fs/blockdev.c [deleted file]
src/filo/fs/eltorito.c [deleted file]
src/filo/fs/fat.h [deleted file]
src/filo/fs/filesys.h [deleted file]
src/filo/fs/fsys_ext2fs.c [deleted file]
src/filo/fs/fsys_fat.c [deleted file]
src/filo/fs/fsys_iso9660.c [deleted file]
src/filo/fs/fsys_jfs.c [deleted file]
src/filo/fs/fsys_minix.c [deleted file]
src/filo/fs/fsys_reiserfs.c [deleted file]
src/filo/fs/fsys_xfs.c [deleted file]
src/filo/fs/iso9660.h [deleted file]
src/filo/fs/jfs.h [deleted file]
src/filo/fs/shared.h [deleted file]
src/filo/fs/vfs.c [deleted file]
src/filo/fs/xfs.h [deleted file]
src/filo/i386/context.c [deleted file]
src/filo/i386/context.h [deleted file]
src/filo/i386/linux_load.c [deleted file]
src/filo/i386/multiboot.c [deleted file]
src/filo/i386/segment.c [deleted file]
src/filo/i386/segment.h [deleted file]
src/filo/i386/switch.S [deleted file]
src/filo/i386/sys_info.c [deleted file]
src/filo/main/console_x.c [deleted file]
src/filo/main/elfload.c [deleted file]
src/filo/main/elfnote.c [deleted file]
src/filo/main/filo_x.c [deleted file]
src/filo/main/lib.c [deleted file]
src/filo/main/linuxbios_x.c [deleted file]
src/filo/main/malloc_x.c [deleted file]
src/filo/main/pci_x.c [deleted file]
src/filo/main/printf_x.c [deleted file]
src/filo/usb/debug_x.c [deleted file]
src/filo/usb/debug_x.h [deleted file]
src/filo/usb/ohci.c [deleted file]
src/filo/usb/ohci.h [deleted file]
src/filo/usb/scsi.h [deleted file]
src/filo/usb/scsi_cmds.c [deleted file]
src/filo/usb/scsi_cmds.h [deleted file]
src/filo/usb/uhci.c [deleted file]
src/filo/usb/uhci.h [deleted file]
src/filo/usb/usb.c [deleted file]
src/filo/usb/usb.h [deleted file]
src/filo/usb/usb_scsi_low.c [deleted file]
src/filo/usb/usb_scsi_low.h [deleted file]
src/filo/usb/usb_x.c [deleted file]
src/firmware/linuxbios/linuxbios.c [deleted file]
src/firmware/linuxbios/linuxbios_tables.h [deleted file]
src/hci/commands/autoboot_cmd.c [new file with mode: 0644]
src/hci/commands/config_cmd.c [new file with mode: 0644]
src/hci/commands/dhcp_cmd.c [new file with mode: 0644]
src/hci/commands/ifmgmt_cmd.c [new file with mode: 0644]
src/hci/commands/image_cmd.c [new file with mode: 0644]
src/hci/commands/nvo_cmd.c [new file with mode: 0644]
src/hci/commands/route_cmd.c [new file with mode: 0644]
src/hci/editstring.c [new file with mode: 0644]
src/hci/mucurses/alert.c [new file with mode: 0644]
src/hci/mucurses/ansi_screen.c [new file with mode: 0644]
src/hci/mucurses/clear.c [new file with mode: 0644]
src/hci/mucurses/colour.c [new file with mode: 0644]
src/hci/mucurses/cursor.h [new file with mode: 0644]
src/hci/mucurses/edging.c [new file with mode: 0644]
src/hci/mucurses/kb.c [new file with mode: 0644]
src/hci/mucurses/mucurses.c [new file with mode: 0644]
src/hci/mucurses/mucurses.h [new file with mode: 0644]
src/hci/mucurses/print.c [new file with mode: 0644]
src/hci/mucurses/print_nadv.c [new file with mode: 0644]
src/hci/mucurses/slk.c [new file with mode: 0644]
src/hci/mucurses/widgets/editbox.c [new file with mode: 0644]
src/hci/mucurses/winattrs.c [new file with mode: 0644]
src/hci/mucurses/windows.c [new file with mode: 0644]
src/hci/mucurses/wininit.c [new file with mode: 0644]
src/hci/readline.c [new file with mode: 0644]
src/hci/shell.c [new file with mode: 0644]
src/hci/shell_banner.c [new file with mode: 0644]
src/hci/strerror.c [new file with mode: 0644]
src/hci/tui/settings_ui.c [new file with mode: 0644]
src/image/elf.c [new file with mode: 0644]
src/image/initrd.c [new file with mode: 0644]
src/image/script.c [new file with mode: 0644]
src/image/segment.c [new file with mode: 0644]
src/include/alloca.h [new file with mode: 0644]
src/include/assert.h [new file with mode: 0644]
src/include/background.h [new file with mode: 0644]
src/include/big_bswap.h
src/include/buffer.h [deleted file]
src/include/byteswap.h
src/include/cmdline.h [new file with mode: 0644]
src/include/cmdlinelib.h [new file with mode: 0644]
src/include/cmdlist.h [new file with mode: 0644]
src/include/compiler.h
src/include/console.h
src/include/ctype.h [new file with mode: 0644]
src/include/curses.h [new file with mode: 0644]
src/include/dev.h
src/include/eisa.h [deleted file]
src/include/elf.h
src/include/elf_boot.h [deleted file]
src/include/errno.h [new file with mode: 0644]
src/include/etherboot.h
src/include/getopt.h [new file with mode: 0644]
src/include/gpxe/acpi.h [new file with mode: 0644]
src/include/gpxe/aes.h [new file with mode: 0644]
src/include/gpxe/ansiesc.h [new file with mode: 0644]
src/include/gpxe/aoe.h [new file with mode: 0644]
src/include/gpxe/arp.h [new file with mode: 0644]
src/include/gpxe/async.h [new file with mode: 0644]
src/include/gpxe/ata.h [new file with mode: 0644]
src/include/gpxe/bitbash.h [new file with mode: 0644]
src/include/gpxe/bitops.h [new file with mode: 0644]
src/include/gpxe/blockdev.h [new file with mode: 0644]
src/include/gpxe/buffer.h [new file with mode: 0644]
src/include/gpxe/chap.h [new file with mode: 0644]
src/include/gpxe/command.h [new file with mode: 0644]
src/include/gpxe/crypto.h [new file with mode: 0644]
src/include/gpxe/device.h [new file with mode: 0644]
src/include/gpxe/dhcp.h [new file with mode: 0644]
src/include/gpxe/dns.h [moved from src/include/dns.h with 59% similarity]
src/include/gpxe/download.h [new file with mode: 0644]
src/include/gpxe/ebuffer.h [new file with mode: 0644]
src/include/gpxe/editbox.h [new file with mode: 0644]
src/include/gpxe/editstring.h [new file with mode: 0644]
src/include/gpxe/eisa.h [new file with mode: 0644]
src/include/gpxe/elf.h [new file with mode: 0644]
src/include/gpxe/errortab.h [new file with mode: 0644]
src/include/gpxe/ethernet.h [new file with mode: 0644]
src/include/gpxe/filter.h [new file with mode: 0644]
src/include/gpxe/ftp.h [new file with mode: 0644]
src/include/gpxe/heap.h [new file with mode: 0644]
src/include/gpxe/hidemem.h [new file with mode: 0644]
src/include/gpxe/hotplug.h [new file with mode: 0644]
src/include/gpxe/http.h [new file with mode: 0644]
src/include/gpxe/i2c.h [new file with mode: 0644]
src/include/gpxe/ibft.h [new file with mode: 0644]
src/include/gpxe/icmp6.h [new file with mode: 0644]
src/include/gpxe/if_arp.h [new file with mode: 0644]
src/include/gpxe/if_ether.h [new file with mode: 0644]
src/include/gpxe/image.h [new file with mode: 0644]
src/include/gpxe/in.h [new file with mode: 0644]
src/include/gpxe/init.h [moved from src/include/init.h with 78% similarity]
src/include/gpxe/initrd.h [new file with mode: 0644]
src/include/gpxe/ip.h [new file with mode: 0644]
src/include/gpxe/ip6.h [new file with mode: 0644]
src/include/gpxe/isa.h [new file with mode: 0644]
src/include/gpxe/isa_ids.h [moved from src/include/isa_ids.h with 64% similarity]
src/include/gpxe/isapnp.h [moved from src/include/isapnp.h with 73% similarity]
src/include/gpxe/iscsi.h [new file with mode: 0644]
src/include/gpxe/keys.h [new file with mode: 0644]
src/include/gpxe/linebuf.h [new file with mode: 0644]
src/include/gpxe/linux_compat.h [new file with mode: 0644]
src/include/gpxe/list.h [new file with mode: 0644]
src/include/gpxe/malloc.h [new file with mode: 0644]
src/include/gpxe/mca.h [new file with mode: 0644]
src/include/gpxe/md5.h [new file with mode: 0644]
src/include/gpxe/memmap.h [new file with mode: 0644]
src/include/gpxe/ndp.h [new file with mode: 0644]
src/include/gpxe/netdevice.h [new file with mode: 0644]
src/include/gpxe/nvo.h [new file with mode: 0644]
src/include/gpxe/nvs.h [new file with mode: 0644]
src/include/gpxe/pci.h [moved from src/include/pci.h with 75% similarity]
src/include/gpxe/pci_ids.h [moved from src/include/pci_ids.h with 99% similarity]
src/include/gpxe/pkbuff.h [new file with mode: 0644]
src/include/gpxe/process.h [new file with mode: 0644]
src/include/gpxe/profile.h [new file with mode: 0644]
src/include/gpxe/ramdisk.h [new file with mode: 0644]
src/include/gpxe/resolv.h [new file with mode: 0644]
src/include/gpxe/retry.h [new file with mode: 0644]
src/include/gpxe/rsa.h [new file with mode: 0644]
src/include/gpxe/scsi.h [new file with mode: 0644]
src/include/gpxe/segment.h [new file with mode: 0644]
src/include/gpxe/settings.h [new file with mode: 0644]
src/include/gpxe/settings_ui.h [new file with mode: 0644]
src/include/gpxe/sha1.h [new file with mode: 0644]
src/include/gpxe/shell.h [new file with mode: 0644]
src/include/gpxe/shell_banner.h [new file with mode: 0644]
src/include/gpxe/shutdown.h [new file with mode: 0644]
src/include/gpxe/socket.h [new file with mode: 0644]
src/include/gpxe/spi.h [new file with mode: 0644]
src/include/gpxe/spi_bit.h [new file with mode: 0644]
src/include/gpxe/stream.h [new file with mode: 0644]
src/include/gpxe/tables.h [new file with mode: 0644]
src/include/gpxe/tcp.h [new file with mode: 0644]
src/include/gpxe/tcpip.h [new file with mode: 0644]
src/include/gpxe/tftp.h [new file with mode: 0644]
src/include/gpxe/threewire.h [new file with mode: 0644]
src/include/gpxe/tls.h [new file with mode: 0644]
src/include/gpxe/uaccess.h [new file with mode: 0644]
src/include/gpxe/udp.h [new file with mode: 0644]
src/include/gpxe/umalloc.h [new file with mode: 0644]
src/include/gpxe/uri.h [new file with mode: 0644]
src/include/gpxe/vsprintf.h [new file with mode: 0644]
src/include/heap.h [deleted file]
src/include/if_arp.h [deleted file]
src/include/if_ether.h [deleted file]
src/include/igmp.h
src/include/image.h [deleted file]
src/include/in.h [deleted file]
src/include/ip.h
src/include/isa.h [deleted file]
src/include/libgen.h [new file with mode: 0644]
src/include/little_bswap.h
src/include/load_buffer.h [deleted file]
src/include/mca.h [deleted file]
src/include/nic.h
src/include/nmb.h
src/include/old_tcp.h [moved from src/include/tcp.h with 100% similarity]
src/include/osdep.h
src/include/osloader.h [deleted file]
src/include/proto.h
src/include/pxe.h
src/include/pxe_api.h [new file with mode: 0644]
src/include/pxe_export.h [deleted file]
src/include/pxe_types.h [new file with mode: 0644]
src/include/readline/readline.h [new file with mode: 0644]
src/include/resolv.h [deleted file]
src/include/stddef.h
src/include/stdio.h [new file with mode: 0644]
src/include/stdlib.h
src/include/string.h
src/include/strings.h [new file with mode: 0644]
src/include/sys/time.h [new file with mode: 0644]
src/include/tables.h [deleted file]
src/include/tftp.h
src/include/tftpcore.h [new file with mode: 0644]
src/include/time.h [new file with mode: 0644]
src/include/udp.h
src/include/unistd.h [new file with mode: 0644]
src/include/url.h [deleted file]
src/include/usr/autoboot.h [new file with mode: 0644]
src/include/usr/dhcpmgmt.h [new file with mode: 0644]
src/include/usr/ifmgmt.h [new file with mode: 0644]
src/include/usr/imgmgmt.h [new file with mode: 0644]
src/include/usr/route.h [new file with mode: 0644]
src/include/vsprintf.h [deleted file]
src/interface/pxe/pxe.c [new file with mode: 0644]
src/interface/pxe/pxe_errors.c [new file with mode: 0644]
src/interface/pxe/pxe_loader.c [new file with mode: 0644]
src/interface/pxe/pxe_preboot.c [new file with mode: 0644]
src/interface/pxe/pxe_tftp.c [new file with mode: 0644]
src/interface/pxe/pxe_udp.c [new file with mode: 0644]
src/interface/pxe/pxe_undi.c [new file with mode: 0644]
src/net/aoe.c [new file with mode: 0644]
src/net/arp.c [new file with mode: 0644]
src/net/dhcpopts.c [new file with mode: 0644]
src/net/ethernet.c [new file with mode: 0644]
src/net/filter.c [new file with mode: 0644]
src/net/icmpv6.c [new file with mode: 0644]
src/net/ipv4.c [new file with mode: 0644]
src/net/ipv6.c [new file with mode: 0644]
src/net/ndp.c [new file with mode: 0644]
src/net/netdevice.c [new file with mode: 0644]
src/net/pkbpad.c [new file with mode: 0644]
src/net/pkbuff.c [new file with mode: 0644]
src/net/retry.c [new file with mode: 0644]
src/net/stream.c [new file with mode: 0644]
src/net/tcp.c [new file with mode: 0644]
src/net/tcp/ftp.c [new file with mode: 0644]
src/net/tcp/http.c [new file with mode: 0644]
src/net/tcp/iscsi.c [new file with mode: 0644]
src/net/tcpip.c [new file with mode: 0644]
src/net/udp.c [new file with mode: 0644]
src/net/udp/dhcp.c [new file with mode: 0644]
src/net/udp/dns.c [new file with mode: 0644]
src/net/udp/tftp.c [new file with mode: 0644]
src/proto/dns.c [deleted file]
src/proto/fsp.c [new file with mode: 0644]
src/proto/http.c [deleted file]
src/proto/igmp.c [new file with mode: 0644]
src/proto/nfs.c
src/proto/nmb.c
src/proto/slam.c
src/proto/tcp.c [deleted file]
src/proto/tftm.c
src/proto/tftp.c [deleted file]
src/proto/tftpcore.c [new file with mode: 0644]
src/tests/aoeboot.c [new file with mode: 0644]
src/tests/buffertest.c [new file with mode: 0644]
src/tests/dhcptest.c [new file with mode: 0644]
src/tests/iscsiboot.c [new file with mode: 0644]
src/tests/linebuf_test.c [new file with mode: 0644]
src/tests/memcpy_test.c [new file with mode: 0644]
src/tests/umalloc_test.c [new file with mode: 0644]
src/usr/autoboot.c [new file with mode: 0644]
src/usr/dhcpmgmt.c [new file with mode: 0644]
src/usr/ifmgmt.c [new file with mode: 0644]
src/usr/imgmgmt.c [new file with mode: 0644]
src/usr/route.c [new file with mode: 0644]
src/util/.cvsignore [new file with mode: 0644]
src/util/Makefile [new file with mode: 0644]
src/util/dskpad.pl [new file with mode: 0755]
src/util/hijack.c [new file with mode: 0644]
src/util/makerom.pl
src/util/mucurses_test.c [new file with mode: 0644]
style.css [deleted file]

index 8de2acb..d686b43 100644 (file)
@@ -1,20 +1,26 @@
-Unless specifically noted, a file is under the GPL.  GPLed files are in
+
+In general gPXE files are licensed under the GPL.  GPLed files are in
 general either from Linux or have been explicitly put under GPL by the
-authors.  A few files are inherited from FreeBSD netboot and therefore
-can be used under BSD or GPL.
+authors.  The license for a file is usually documented at the top of
+the file.  
+
+A few files are inherited from FreeBSD netboot and therefore can be
+used under BSD or GPL.  Documented in this file are some of the
+non-GPL'ed files.  If the internal documentation for a file disagrees
+with what is documented in this file, the internal documentation for
+the file shall be override this file.
+
+File                                   Copyright status
 
-File                           Copyright status
+src/core/misc.c                                BSD
+src/drivers/net/3c509.c                        BSD
+src/drivers/net/3c509.h                        BSD
+src/drivers/net/3c595.c                        BSD
+src/drivers/net/3c595.h                        BSD
+src/drivers/net/3c90x.c                        Open Source
+src/drivers/net/epic100.c              None
+src/drivers/net/epic100.h              None
+src/drivers/net/ns8390.c               BSD
+src/drivers/net/ns8390.h               BSD
+src/arch/i386/include/bits/string.h    None
 
-core/misc.c                    BSD
-drivers/net/3c509.c            BSD
-drivers/net/3c509.h            BSD
-drivers/net/3c595.c            BSD
-drivers/net/3c595.h            BSD
-drivers/net/3c90x.c            Open Source
-drivers/net/epic100.c          None
-drivers/net/epic100.h          None
-drivers/net/ns8390.c           BSD
-drivers/net/ns8390.h           BSD
-drivers/net/tulip.c            BSD
-arch/i386/include/bits/string.h        None
-util/lzhuf.c                   Open Source
diff --git a/LOG b/LOG
index 79ad4c0..92d149b 100644 (file)
--- a/LOG
+++ b/LOG
-Major changes from 1.0 to 1.1
+gPXE LOG file
 
-+ 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.
+Started 2007-03-02 by Marty Connor
 
-+ 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.
+Version 0.5.0 (began as Etherboot 5.4 cvs)
 
-+ Everywhere: Added prototypes of functions to netboot.h.  Removed
-unused variables.
++ Michael Brown rewrote large portions of Etherboot, changing to a
+  more kernel-like object-oriented architecture, and generalizing
+  interfaces.
 
-+ Makefiles: Rewritten.
++ Nikhil Rao as an intern during the 2006 Google Summer of Code added
+  improved IPv4 and new IPv6 support to Etherboot to facilitate TCP
+  protocols such as http.
 
-+ netboot.h: Added define for TFTP_MAX_PACKET = 512. Increased TIMEOUT
-for tftp packets to 180 (about 10 seconds) so that tftp servers would
-be able to retransmit blocks.
++ 
 
-+ main.c: Rewrote tftp(). Original was intended to get only one block
-and the strain on the structure due to modifications was showing.
-Increased config_buffer size to TFTP_MAX_PACKET+1 to avoid special
-casing data length=512.
-
-+ linuxloader.c: Cleaned up the code in some places, especially
-linux_tftp.  Moved the bootp reply block into bss space instead of a
-fixed location such as 0x90000.
-
-+ ns8390.c: Removed one bug regarding packet length. packetlen was
-wrongly shortened when packets wraparound the ring buffer.
-
-+ 3c509.c: Changed some of the gotos to returns.  Removed ARP code since
-that's already done elsewhere.  Removed interrupt enable and Rx early
-notification (we can't do anything with the packet until it's complete
-anyway).
-
-Major changes from 1.1 to 1.2
-
-+ Small bug in makerom.c. Extra semicolon shortened for loop and made
-double checking code invalid.
-
-+ Added version identification to startup string.
-
-+ Gathered external declarations into netboot.h.
-
-+ New compile time option for netboot-32. If INT19H is not defined,
-then boot ROM takes control as soon as BIOS scans it. This may solve
-the problem of some BIOSes not calling the boot ROM at INT19H. This
-may be when disks are detected by the BIOS, i.e. the machine is not
-truly diskless.
-
-+ Added a new program, test.c, for making test ROMs to verify that
-the BIOS recognises the ROM.
-
-+ New directory contrib contains contributed code. Currently contains
-masq by Gerd Knorr: make a boot floppy without DOS
-comboot-1.0 by Adam J. Richter: also make a boot floppy without DOS.
-
-+ New mknbi-1.4 from Gero Kuhlmann and Markus Gutschke. This one handles
-the new bzImage format.
-
-Bumped up version to 2.0 because we are so listed in the Linux 2.0
-distribution and this would avoid confusion.
-
-Major changes from 2.0 to 2.1
-
-+ Added LSM for transname-patch to contrib.
-
-+ Added patch for serial console from Claus Heine
-<claus AT momo PERIOD math PERIOD rwth-aachen PERIOD de>.
-
-+ Claus Heine contributed patches to the 2.0.21/22 kernel sources to
-allow NFS swap.
-
-+ Markus Gutschke provided fixes to start2.S so that main can return to
-the ROM code if user doesn't want to ROM boot.
-
-+ Added code to main.c to timeout on the prompt and assume Y or N
-for the answer. Timeout and answer configurable.
-
-+ Made NE1/2000 probe addresses configurable from Makefile. Fixed up
-autoscan code.
-
-+ Made NFS_BOOT a configurable option. By undefining it, only tagged
-file load is supported but ROMs are under 8k.
-
-+ ROMSIZE is not used by makerom now. -s flag controls size of ROM
-at runtime.  So don't need to recompile makerom if ROMSIZE changes.
-
-+ Updated netboot-16 for the latest dev tools from the Linux-MT
-project. Use the size.c from there.
-
-+ Got rid of _main() in main.c, instead using #ifdef ELF in start2.S.
-ELF is preferred now anyway.
-
-+ Changed bcompare to standard bcmp and reversed sense of result.
-Reason: to use standard library if available, e.g. Netboot-16.
-
-+ Common Makefile for 32 bit and 16 versions, with differences in
-Config files.
-
-Major changes from 2.1 to 2.2
-
-+ New device driver for the Crystal Semiconductor CS89x0 chipset family.
-  (because of legal problems, this code is currently in the "contrib"
-  directory.)
-
-+ Added support for loading BOOTP extension files (c.f. RFC1533).
-
-+ If we have to go thru a gateway, then use the one that has been used for
-  the BOOTP daemon. If the BOOTP daemon is directly accessible, then use
-  the first entry in the "gw" gateway list instead.
-
-+ For all retries, back off according to RFC951 by randomizing the timeouts
-  and exponentially increasing them until an average of one minute is
-  reached.
-
-+ Warn if code will not fit into chosen ROM size. Happens only if the
-  autosizing in the Makefile somehow fails.
-
-+ Modified the code for enabling the A20 gate; this could increase
-  compatibility, but I still have to hear from users.
-
-+ The copyright message will now reflect, which features have been
-  enabled at compile time.
-
-+ Added support for selecting different boot images from a menu. As a side
-  effect, this can be used to upgrade the ROM without having to burn a new
-  image (c.f. README.VendorTags).
-
-+ Display a "message of the day" that is provided by the BOOTP daemon.
-
-+ The sanity check for detecting a Linux kernel was too strong to properly
-  recognize a 2.1.x kernel; this has been fixed.
-
-+ Trys to negotiate for 1432 octect blocks, if the TFTP daemon knows
-  about RFC1783.
-
-+ We can optionally boot from local disk, if the BOOTP server cannot
-  be contacted.
-
-+ Restructured directories: got rid of netboot-freebsd to reduce confusion
-  with Gero Kuhlmann's netboot, moved documentation to doc and renamed
-  directories to be more in line with Unix conventions. Edited documentation.
-
-+ Created a dispatch table for NIC routines so that we can include one
-  or more drivers in one binary. Renamed all entry points in the driver
-  sources. Created two new files, config.c, which holds the dispatch
-  table and can be conditionally compiled; and nic.c which contains the
-  extern variables referenced by the drivers.
-
-+ Automatically decide what size ROM is needed by doing a size and then
-  choosing the correct startup object. Currently caters for 8k, 16k and
-  32k ROMs.
-
-+ Optionally include a simple interpreter for ANSI escape sequences. This
-  allows for fancier boot menus.
-
-+ Remove patches directory which is mostly relevant to 1.x kernels only.
-  Everybody should use 2.x kernels now. If for some reason you need those
-  patches, get an older release of etherboot.
-
-+ Fix Makefile to work even if . not on PATH.
-
-+ Sadly, 32 bit ROMs are now > 8kb. We will try to reduce the size by
-  conditionals in a later release. For now, use version 2.1 if your NIC
-  won't take > 8kb ROMs.
-
-+ Release as 3.0b1 because of the large amount of changes.
-
-+ Fixed a few problems with the code for ANSI escape sequences and
-  added optional support for displaying graphics.
-
-+ Optional support for password protected boot images.
-
-+ Optional support for booting from block devices (floppy, hd).
-
-+ The bootp server can pass additional parameters to the loaded kernel
-  image (currently, this only  applies to Linux)  and the user can  be
-  allowed to edit a commandline; the latter is optionally protected by
-  a password scheme.
-
-+ Set the warm-boot flag when the main routine is entered.
-
-+ Release as 3.0b2
-
-+ Added code for updating the FlashCard EPROM over the network
-  (contrib/flashimg).
-
-+ Added very simple code for turning a ROM image into a network loadable image.
-  This is useful for debugging, but some users without flash EPROMs might
-  appreciate the possibility to load a fully fledged image from a very basic
-  configuration.
-
-+ Optional support for compressing the ROM images. Please read
-  doc/COPYING.compressor before using this feature.
-
-+ Sync'd our source tree with Gero's netboot-0.5; this means that you now need
-  the as86 from the ELKs project in order to recompile all of the files. This
-  should not affect normal usage, though.
-
-+ Added "mknbi-blkdev" for booting from local block devices.
-
-+ Fixed some bugs in ppmtoansi.c and bootmenu.c
-
-+ Renamed reference compressor implementation to compressor.exp otherwise
-  make tries to use it and it should not be turned on by default.
-
-+ Zero'ing BSS in 16-bit version has to be done to _end, not to A0000
-  because it's executing in a segment, not in flat address space in 16
-  bit mode.
-
-+ Ken Yap contributed a quick and dirty Perl script for people who use
-  netboot to test ELKS.  So far I'm the only one I know of; maybe the
-  others are silent. :-(
-
-+ Release as 3.0
-
-Major changes from 3.0 to 3.1
-
-+ 4 versions of etherboot can be built for a NIC: .com for testing and
-  .rom for burning into EPROM, and corresponding compressed versions:
-  .lzcom and .lzrom.
-
-+ The loaders are now separate programs which are prepended to the
-  etherboot binary. This allows them (plain and uncompressing versions) to
-  be maintained separately and gives a bit more RAM to the etherboot code.
-
-+ No need to define ROMSIZE in the build. makerom automatically discovers
-  the ROM size needed and fills in the size field in the ROM. This
-  simplifies the build procedure.
-
-+ 16 bit versions use the same loaders as the 32 bit version. Also fixed
-  two bugs in the 16 bit versions: (1) a non-8086 instruction in zloader,
-  (2) setting warm-boot flag in main which zapped some code.
-
-+ Fixed a documentation bug on the ANSI escape sequences.
-
-+ Include netboot-0.5.3 distribution from Gero Kuhlmann.
-
-+ Included some contributions from Dickon.Reed AT cl PERIOD cam PERIOD
-ac PERIOD uk: Running display of Kbytes loaded, line of delimiters after
-loading complete, a temporary hack to address timing problems with the
-3C509, and some Makefile cleanup. The first two changes need to be
-enabled in Config with defines.
-
-+ mknbi-blkdev seems to have been left out by Gero Kuhlmann. Add to
-  contrib directory. You probably have to make a symlink to it from
-  the netboot-0.5.2 directory.
-
-+ Release as 3.1
-
-Major changes from 3.1 to 3.2
-
-+ 16 bit version now can load to extended memory, if it exists. On
-  a 8086/8 this will silently fail.
-
-+ Cleaned up interface between main body of code and NIC drivers. No
-  global variables referenced in NIC driver, everything is passed
-  through a structure. Only the probe function is visible outside,
-  pointers to the others are returned in the structure.
-
-+ Implemented autoprobe for 3c503. Also simplifies code at same time.
-
-+ Removed ARP response code in ns8390.c. Don't think we need to respond
-  to ARP requests because other machines will do gratuituous ARP when
-  boot code sends out bootp request. Are there cases where this is not
-  true? Gateways?
-
-+ Added 1 second timeout to routine that clears the keyboard buffer
-  in case there is no keyboard.
-
-+ Added a skeleton driver that can be used as a template for new NIC
-  drivers.
-
-+ ./lzhuf in Makefile so that it will run even if . is not on path.
-
-+ Fixed comboot to work on 286s also. Won't work yet on 8086/8.
-
-+ Fixed mknbi-blkdev to configure properly under netboot-0.7.
-
-+ Added David Munro's PCI code adapted from Linux. Currently has entries
-  for PCI NE2000 clones. Generalised it to probe other PCI cards later on.
-
-+ Moved twiddle() outside NIC driver except where used to provide a delay.
-
-+ Fixed bug in Makefile spotted by Ton Biegstraaten. Should prepend
-  ZLOADER to make all.lzcom, not LOADER.
-
-+ Charlie Brady donated a NE2100 (LANCE) card, so Ken Yap wrote a driver
-  for it. Should work for other LANCE (7990, etc) based cards with some
-  modifications.
-
-+ Markus Gutschke wrote rom-scan, and it is in contrib/.
-
-+ Hack rom-scan.c so that a DOS version can be compiled.
-
-+ Removed all.* targets from Makefile. The NIC specific loaders should be
-  used in preference as the all.* loaders can run out of memory.
-
-+ Added a disable routine to dispatch table so that cards can be turned
-  off before the loaded code is executed.
-
-+ Make INT19H the default.
-
-+ Rogier Wolff persuaded AW computer systems to contribute the Intel
-  EtherExpressPro 100 driver. The binary to hex converter in contrib/
-  is also from Rogier Wolff. Part of the work is sponsored by BitWizard
-  NL (www.bitwizard.nl).
-
-+ Distribute with a subset of netboot-0.7.2 that doesn't have the bootrom
-  portion.
-
-+ Release as 3.2.
-
-Major changes from 3.2 to 4.0
-
-+ Merged in Vlad Lungu's patches for DHCP support, ifdef'ed by DHCP_SUPPORT.
-
-+ XID matching fix also provided by Vlad Lungu.
-
-+ Merged in William Arbaugh's patches to make eepro driver work properly.
-
-+ Add to contrib/ better bin2intelhex from Jean Marc Lacroix.
-
-+ Patches from Jim Hague (thanks!) for the following:
-
-* Added PIO mode for 3c503 to ns8390.c. Changed the card detection to
-  detect shared memory or PIO and use the selected one, and removed
-  a jumper check that failed on the Bull (no jumpers).
-
-* Added more #ifdefs to ns8390.c to include only code relevant to the
-  card being compiled, and removed unnecessary run-time card vendor
-  behaviour branches - it's all now #ifdefd.
-
-* Added a -3 parameter to makerom to set the last two bytes to 0x80.
-  These are the values they have in the 3Com Etherboot image that was
-  in the Bull. (Also on the 3c503 card I have - Ken.) Also altered the
-  Makefile to add this parameter when building a 3c503 image.
-
-* Modifies lzhuf.c, objdump86.c & size86.c to work on either-endian systems.
-
-* Adds a -DT503_AUI config paramter to let you choose AUI or BNC on
-  3c503s.  Previously it defaulted to AUI, and you had to change the
-  code to alter it.
-
-* Changed the BCC include directory to /usr/bcc/include. If you use the
-  BCC include files they don't define u_char, u_short etc. I've added
-  these into linuxdef.h, ifdef'd on BCC.
-
-* Adds a trivial Linux 3c503 driver patch to the contrib directory
-  to let it spot these 'ere Bull things.
-
-+ Charlie Brady confirmed that the Lance driver works with PCI so there
-is a new lancepci driver now.
-
-+ Removed support for NFS_BOOT; only TFTP booting supported now.
-
-+ Removed support for linear images; only tagged images supported now.
-
-+ Removed PRIORIZEBOOTPKERNEL and BOOTPKERNELONLY. Bootp reply must
-specify kernel name.
-
-+ Bug fix for 16 bit version of 3c509 driver: sign bit propagation bug.
-
-+ Revert to non-pausing versions of out[bw] and inb for NEx000 driver
-because of reports of timimg problems on some cards.
-
-+ New driver for NI6510. Just a simple tweak of the lance driver for
-different ID bytes and different register offsets. According to the
-NI6510 driver in Linux, the NI6510 Etherblaster is more like the NE2100
-and would be detected by the NE2100 driver. So use that one instead.
-
-+ New drivers for 3c507 and NI5210, both of which use the i82586 chip. It
-works properly for both now. I needed to have enough receive buffers to
-make sure i82586 never goes into an out of resources state. 3c507 driver
-has one quirk, it only responds after second bootp request. I seem to
-remember something about this problem of losing the first packet after
-initialisation in early Linux discussions.  I am also now convinced
-that Intel designers have weird minds. BTW, NI5210 driver assumes 8k
-RAM because if you put the ROM on the NIC you can only have 8k RAM. If
-you are putting the ROM off-board and you want 16k, well, talk to me.
-
-+ Call nic_disable routine just before jumping to loaded image. This
-does nothing in most drivers, but may have side effects as the nic_reset
-routine used to be called instead.
-
-+ One of those "why I didn't think of it before" ideas: A modified version
-of comboot, called floppyload, that is prepended to the .rom image rather
-than the .com image and then both written raw to a floppy for testing the
-bootrom. All we have to do is jump to an entry point in (z)loader that
-skips the INT19H stuff. Relocation will happen automatically.  Now the
-.com images and comboot are superfluous, unless one is masochistic enough
-to want to try to test under DOS.
-
-Added .fd0 targets to Makefile. Saying make <card>.fd0 will make
-floppyload.bin and <card>.rom, and cat both to /dev/fd0. Naturally the
-drive must be writable and you must have a floppy in the drive.
-
-+ New driver for Tiara (Fujitsu EtherStar). This was one of the easiest
-drivers to write. But the chip apparently has some quirks; there is no
-Linux driver for it in the standard distribution and the email address
-of someone who wrote an alpha driver is invalid. Perhaps I'll bump into
-an AT1700 (which has a similar chip) one day and be able to reuse a lot
-of the code.
-
-+ Updated contrib/mkelksnbi for ELKS 0.0.68.
-
-+ Confirmed that the SMC8216 driver works. 8416 not tested, it's a PnP
-card. Can anybody confirm this?
-
-+ New contributed software: p910nd, a tiny printer daemon suitable for
-diskless hosts.
-
-+ Made ANSIESC work for Etherboot/16.
-
-+ Fixed Makefile and Config.* so that it works with old binutils.
-
-+ Included a subset of netboot-0.7.3.
-
-+ Released as version 4.0.
-
-Changes between 4.0 and 4.1
-
-+ Patches by Andrew Coulthurst for eepro100b.
-
-+ Patches by Doug Ambrisko for booting Windows95 after answering N to
-the boot from network question. Added conditional code to cope with
-broken DHCP server and TAG 128.
-
-+ Put version and driver identifier at end of ROM image if it fits,
-to help identify ROMs in future.
-
-+ Capture ROM segment address and length to help choose between multiple
-NICs later.
-
-+ Don't clear all of memory because it will destroy return address
-on stack.
-
-+ Changes to comboot-1.2 (although obsolete) to run on 8088s.
-
-+ New version 0.2 of p910nd, a non-spooling printer daemon.
-
-+ Patches by Alex Harin to prepended loaders and makerom to generate PnP
-ready ROMs. Modified makerom to automatically detect PnP and PCI headers
-and do the right thing. Added option to change the vendor and device IDs.
-
-+ Augmented documentation for 2.1 and above kernels. Kernel now wants to
-mount /tftpboot/<hostname in bootptab> rather than /tftpboot/<ip address>
-as the root FS.
-
-+ Changed all the outb* and outw calls in drivers (except eepro) to be
-OUTB* and OUTW, then defined macros to translate to out[bp]* for both
-Etherboot/32 and Etherboot/16, instead of pasting macros from Linux
-include files because apparently they've changed in 2.1. At the same
-time reversed the arguments in start16.S for outb and outw to match the
-Linux convention. Unfortunately the out[bw] usage came that way from
-FreeBSD. Someday I'll reverse the arguments in the C files properly.
-For any new driver writers, you should use the Linux order now.
-
-+ New contributed utility, disnbi for decoding and extracting network
-boot images.
-
-+ Martin Atkins contributed mntnbi for mounting DOS NBIs.
-
-+ Peter Dobcsanyi contributed vendor and device IDs for the Netvin
-NE2000/PCI clone.
-
-+ adam AT mudlist PERIOD eorbit PERIOD net contributed RARP code as
-alternative to BOOTP/DHCP. Activated by RARP_NOT_BOOTP define.
-
-+ Added link to Claus-Justus Heine's NFS swap Web page and updated the
-contrib directory.
-
-+ Disabled max packet length check in ns8390.c. Caused spurious Bogus
-packet messages in some cases and doesn't seem that useful a sanity
-check anyway.
-
-+ Daniel Engstrom contributed a SMC9000 driver.
-
-+ Didier Poirot contributed an Etherpower II (EPIC 100) driver.
-
-+ Added bug fix by Attila Bogár for bootmenu.c and patch to main.c to
-remove looping menus on failure. Also code for ARP replies and TFTP
-block retransmit (#ifdefed because controversial).
-
-+ Code cleanup of tftp and tftpd also by Attila Bogár.
-
-+ Nathan R. Neulinger fixed a bug with block being declared short instead
-of u_short in tftpd.c, which limited transfers to 32k blocks. Fixed
-problem with field tu_block being declared as signed short in many
-platforms by including fixed version of tftp.h. Fixed tftp also for
-good measure.
-
-+ New mini-HOWTO on a "ssh terminal".
-
-+ Andreas Mack pointed out that eepro100 doesn't compile on 2.1 and
-2.2 kernels. Removed unnecessary include of bios32.h and reliance on
-definition of virt_to_bus in kernel headers in eepro100.c, epic100.c
-and lance.c.
-
-+ David Sharp contributed a Tulip driver written for FreeBSD netboot.
-Ken Yap ported to Etherboot. Not tested yet because no hardware.
-
-+ Replaced references to arptable[ARP_CLIENT].node to nic->node_addr in
-eepro100.c and epic100.c as they should be.
-
-+ Greg Beeley of LightSys Technology Services contributed a 3c905b
-driver. Be sure to read the release notes in 3c905b.txt.
-
-+ Günter Knauf suggested making the prompt strings more generic and to
-put a newline after the answer. Beware, N now means Network boot and
-not No to network boot.
-
-+ Alex Nemirovsky contributed some patches for BIOSes that use an extended
-space at the top of 640k. Also some code for BIOSes that don't implement
-BIOS32 correctly or at all.
-
-+ Use PCI extension BIOS header only for PCI cards, all others use legacy
-extension BIOS header.
-
-+ Klaus Espenlaub contributed various cleanup patches to the code.  Also
-introduced Rainer Bawidamann's code, see next paragraph.
-
-+ Rainer Bawidamann contributed a Realtek 8139 driver.
-
-+ Simplified rules for building .bin files, use -b of as86 so we
-don't need ld86 or objdump86 now. But later found that a fixed as86 is
-required. So supply preassembled binaries. The keen hackers can get the
-fixed tools.
-
-+ Georg Baum contributed a Schneider & Koch G16 driver. Only the
-32 bit version works at the moment; even though the 16 bit version
-compiles, it won't work because the current code assumes flat memory
-addressing. Anybody who needs the 16 bit version should feel free to
-fix it.
-
-+ Reduce size of ROM image loaded by floppyboot.bin from 64kB to 32kB
-for a slight speedup in loading. None of the images are even 32kB anyway.
-
-+ Updated some of the documents in doc/sgml.
-
-+ Klaus Espenlaub sent in a totally revamped start32.S, using the code16
-and code32 directives in recent GNU as (so if this file won't assemble
-maybe your as version is not recent enough). Also patches to the menu
-handling code.
-
-+ jluke AT deakin PERIOD edu PERIOD au sent in a fix for the WD/SMC8013
-long ago which I finally got around to verifying.
-
-+ start16.o and start32.o are supplied for those people who have problems
-compiling start*.S with as/as86.
-
-Released as Etherboot-4.2.0
-
-+ One line fix to 3c509b by Greg Beeley for Wake-On-LAN support.
-
-+ Added patches by Klaus Espenlaub that I forgot.
-
-+ Made AS_PSEUDOS not the default, assume that people have sufficiently
-up-to-date GNU as. If not they can uncomment that line.
-
-Released as Etherboot-4.2.1
-
-+ Disable 3c509 after loading finished or port may be unusable.
-
-+ Woops, forgot to up the version's last digit in the last release.
-
-+ Stephan Bauer sent in a device ID for config.c for 21142 chip Tulips.
-
-+ Ifdef out input overrun recovery code (it's really only needed for
-NE2000s) and use SHMEM by default for 3c503s to bring the ROM size down
-below 8kB.
-
-+ Added code to start32.S to detect < 386 and exit so it doesn't hang
-the computer. Doesn't print a message yet.
-
-+ Changed README.sgml to recommend that TFTP use a separate directory
-from NFS, /tftpdir. Added sample configuration file for DHCPD and caveat
-about the name of the root directory when using DHCPD.
-
-+ Revamped atnetboot.sgml: use mtools most of the time, write about a
-few example applications.
-
-+ Quick Perl script for converting bootptab to dhcpd.conf.
-
-Released as Etherboot-4.2.2
-
-+ Forgot to put new version of src/start32.o. Not urgent though, the
-extra code only guards against Etherboot/32 being executed on < 386.
-
-+ Supply version preassembled start32.o with ANSIESC and FLOPPY defined
-for those with a deficient as. Define dummy handleansi routine in
-ansiesc.c so that it will still link even if this start32.o is used.
-
-+ Edited *.asm so that they can be assembled by either as86 (ELKS version)
-or nasm.
-
-+ Changed Makefile so that one can choose between no as86, as86 or nasm.
-
-+ Added Mark Burazin's conditional code for Compex RL2000 PCI NIC.
-
-+ Increase delay during probe phase to 10ms as 1ms is too low for some
-3c509 boards.  Donald Becker's Linux driver hints that > 2ms is needed
-to be safe. Also call t509_disable in case board was active.
-
-+ Update README.sgml date and version.
-
-Released as Etherboot 4.2.3.
-
-+ rtl8139.c: Reduce the number of transmit buffers to reduce footprint.
-Remove polling loop in *_loop(), caller already does the looping.
-
-+ main.c: Fix code indentation in bootp().
-
-+ Small corrections to documentation.
-
-Released as Etherboot 4.2.4.
-
-+ Matthias Meixner found a longstanding bug in rtl8139.c where it was
-testing the wrong bit for the existence of a packet in the buffer.
-
-+ Added paragraph to documentation about caveats for hosting NFS root
-on a different architecture.
-
-Released as Etherboot 4.2.5.
-
-+ Updated mklnim for RH6.0 which uses a different floppy image and
-requires 'network' to be appended to kernel parameters.
-
-+ Reversed sense of #ifdef DHCP_SUPPORT to #ifndef NO_DHCP_SUPPORT and
-so forth, i.e. the default is with DHCP support.
-
-+ Suggest reducing options for rtl8139 driver to minimise footprint in
-release notes.
-
-+ Jim McQuillan provided changes to support the SMC1211, which uses the
-RTL8139 chip.
-
-+ Changed lret in start32.S to int $0x19 so that it doesn't depend on
-the return location being there.
-
-Released as Etherboot 4.2.6
-
-+ Succeeded in booting FreeDOS with the kernel in the tagged image rather
-than on the ramdisk, i.e. the boot process jumps directly to the kernel
-in memory. The utility is mkfreedosnbi in contrib/.
-
-+ Additions to the documentation.
-
-Released as Etherboot 4.2.7
-
-+ Matt Hortman pointed out that the BIOS clock value returned by INT1AH
-rolls over at midnight, causing delay loops that cross midnight to
-fail. Fix was to keep track of midnight crossings in currticks so that
-currticks' return value is monotonically increasing.
-
-+ Added paragraph to documentation about editing PCI vendor and device
-IDs in Makefile if needed.
-
-+ Merged in FreeBSD support code supplied by Doug Ambrisko. Thanks!
-
-Released as Etherboot 4.2.8
-
-+ Cleaned up the FreeBSD support in osloader.c. Symbols to use in Config
-are to select image type, not FreeBSD specific now.
-
-+ Added simple signature checking code in floppyload.asm in case somebody
-forgets to append a ROM image or tries to load a non-ROM image.
-
-+ Merged in 3c90x and multiple PCI bus support by Steve Smith. Thanks!
-
-+ Included NT-Diskless-Terminal HOWTO by Pavel Tkatchouk.
-
-+ Included snapshot of H. Peter Anvin's rewrite of tftp.
-
-+ Combined tftp and tftpd directories, and touched up Makefile to reflect
-normal Linux install directories.
-
-Released as Etherboot 4.2.9
-
-+ NT-Diskless-Terminal HOWTO renamed to Diskless-From-NT.
-
-+ One line fix to mknbi-dos to recognise FAT16 filesystems as legal.
-Updated first.S in mknbi-dos so that it can be assembled by nasm and is
-also suitable for FreeDOS with the right define. Still backward compatible
-with as86. Bug fix at line starting getnm3:.
-
-+ Updated first.S in mknbi-linux so that it can be assembled by nasm also.
-
-+ Locate bootp data block at 0x93C00-0x93FFF to free up 1024+ bytes in
-[0x98000-0x9FFFF]. Etherboot/32 only, business as usual for Etherboot/16.
-
-+ Patch from Attila Bogár to make CONGESTED a compile option for
-TFTP_TIMEOUT. Also corrected spelling of his name in README.
-
-+ Fixed start32.S to assemble correctly with gas version 2.95. Must
-define GAS295 in CFLAGS.
-
-+ Add contrib/3c90xutil containing a utility for handling 3c90x EEPROMs
-in situ.
-
-+ Update p910nd to 0.3. client.pl now checks if hostname is known and
-uses more convenient routines from Socket module.
-
-+ Moved the Flashcard directory into a separate package as it's of
-limited interest.
-
-Released as Etherboot 4.2.10
-
-+ Fixed bug introduced in 4.2.10 in code for handling bootp extension
-files.
-
-+ Change in 3c90x.c so that it can compile under FreeBSD.
-
-+ Patch to tulip.c from Nick Lopez to handle Macronix 98715 (Tulip clone).
-
-Released as Etherboot 4.2.11
-
-+ Prefer RFC1533_GATEWAY to giaddr for routing tftp packets.
-
-+ Print out both relay address and gateway address.
-
-+ Stored arptable ipaddrs in network byte order. Makes everything simpler
-and we can get rid of convert_ipaddr. Now %I in printf and inet_ntoa
-have to deal with NBO. We reduce the footprint by ~100 bytes.
-
-+ Renamed setip to more standard inet_ntoa and change argument type to
-suit, using in_addr.
-
-+ Replaced bcmp by memcmp, bzero by memset, and bcopy by memcpy. Allows
-us to use optimised versions in inline assembler.
-
-+ Replaced OUTB and OUTW by outb and outw with arguments reversed.
-Finally all the out macros are the same form as for Linux.
-
-+ Replaced \r\n and \n\r in output strings with \n since putchar
-now prints \r before \n. Then changed printf("\n") to putchar('\n').
-Like Unix convention for strings now.
-
-+ Got rid of test.c and Makefile rules connected with it.
-
-+ Added patch to eepro100.c by Matt Hortman to correct PCI latency.
-
-+ Merged in Marty Connor's ntulip.c. Now supports Macronix 98715 and
-Linksys LNE100TX.
-
-Released as Etherboot 4.2.12
-
-+ Anders Larsen contributed mkQNXnbi, for generating tagged images from
-QNX kernels.
-
-+ Bernd Wiebelt contributed code to request vendor tags in DHCP.
-
-+ Fixed more bugs introduced in 4.2.10 in code for handling bootp
-extension files.
-
-Released as Etherboot 4.2.13
-
-+ Marty Connor reduced RTL8139 footprint by using only one transmit
-buffer instead of 4. Now RTL8139 is reliable.
-
-+ Moved initialised data declaration from ns8390.h to ns8390.c.
-
-+ Contributed utilities for wake-on-LAN: wol.c (Bob Edwards) and wake.pl.
-
-+ Makefile for 3c90xutil/romutil.c. -O is essential when compiling.
-
-+ Happy year 2000!
-
-Released as Etherboot 4.4.0
-
-+ VIA-Rhine driver contributed by Paolo Marini. Footprint reduced by
-Marty Connor.
-
-+ Netgear FA310TX (Tulip clone, LC82C168 chip) support added by Marty
-Connor.
-
-+ Support for 3C905C added by Marty Connor.
-
-+ mklnim updated to support SuSE 6.x also.
-
-Released as Etherboot 4.4.1
-
-+ New configuration file scheme to specify what ROMs are built.
-
-+ Adam Fritzler contributed 3c529 (MCA version of 3c509) support in
-driver.
-
-+ Marty Connor wrote a version of 3c90xutil/romutil for 905C NICs.
-
-+ Günter Knauf contributed a wake on LAN CGI script.
-
-+ Notes in contrib/eepro100notes on how to flash the EEPROM.
-
-+ Happy Australia Day, 2000-01-26.
-
-Released as Etherboot 4.4.2
-
-+ hwilmer AT gmx PERIOD de found a probe error in 3c507.c, shouldn't
-mask memory size with 0xffffL, this fails with 64kB memory.  Also
-changed to use real-time-clock to timeout on initialisation of i82586
-rather than relying on decrementing a variable (which is CPU speed
-dependent).
-
-+ James Pearson pointed out that ~ should be escaped as &tilde; in
-vendortags.sgml. Also cleaned up the 8-bit characters while I was at it.
-
-+ Günter Knauf pointed out that if ASK_BOOT is defined, then key input
-echos twice. Also, CR doesn't select the default. Problem was that getchar
-converts all \r to \n then main.c was testing against \r instead of \n,
-and also that getchar() was echoing when it should leave it to the caller.
-Deleted code from getchar() and made it a function with no arguments.
-Also sent me a new version of mp-form.pl with mp-form.txt. Also suggested
-the good idea that the gateway and relay fields not be displayed if they
-are not used.
-
-+ Bob Edwards sent in patches to ntulip.c to autodetect 100 Mb media
-for 21142/3 NICs.
-
-+ Okuji Yoshinori found a small bug in main.c: for (retry1 = 0; retry < ..
-Don't know what effect it had.
-
-+ Klaus Espenlaub sent patches which make the RTL8139 driver more
-reliable, see notes in rtl8139.c.
-
-+ Russ Nelson gave permission to release cs89x0 driver with Etherboot.
-It's normally under GPL. Moved cs89x0 driver to src directory, removed
-cs89x0.sgml.
-
-+ Clarified copyrights of files in distribution.
-
-Released as Etherboot 4.4.3
-
-+ Klaus Espenlaub sent in some patches to overcome the 64K block rollover
-problem in tftp.
-
-+ Bob Edwards, Paul Mackerras and Marty Connor worked out fixes to
-ntulip.c to handle 21142/3 Tulips properly.
-
-+ Karsten Tinnefeld sent in a Makefile fragment for doc/sgml/Makefile
-to generate DVI and PS files using sgml2latex.
-
-+ tulip.* renamed to otulip.*, ntulip.* renamed to tulip.*
-
-+ Added FAQ and Writing an Etherboot Driver sections to README.
-
-+ Woops, if and of swapped in dd command in atnetboot.sgml.
-
-Released as Etherboot 4.4.4
-
-+ FUKUHARA Makoto supplied a patch for 4.4.4 for FreeBSD ELF booting
-with large tftp blocks which I missed putting in.
-
-+ Small patch by Marty Connor to tulip.c to handle fast Tulips better.
-
-+ Wrote small loader to load images from .com files.
-
-+ Shusuke Nisiyama contributed a 3c595 (and may work for 3c590) driver.
-
-Released as Etherboot 4.4.5
-
-A major reorganisation by Klaus Espenlaub. Here are his notes, verbatim:
-
-The biggest change is the almost rewritten Makefiles (both in src and in
-doc - the one in doc is still reasonably simple).  If you want to get
-an overview - basically one Makefile now builds both /16 and /32 ROMs.
-This involves quite a few make variables (similarly in Config), but it
-should be mostly self-explaining.  I also converted the suffix rules to
-pattern rules, because it is the only way to keep the build directories
-for /16 and /32 apart.
-
-Generally all /32 code is compiled in bin32, all /16 code is compiled
-in bin16, and the code that works for both is in bin.
-
-The names (object files, images, but NOT the final ROMs) used during
-the build process for some PCI cards have changed (especially lancepci
-and nepci).
-
-I eliminated the driver.a file by adding yet more ugly code to genrules.pl
-(no, I'm not very proud of the code I added there - I hate perl, but
-at least it works), which now generates all sorts of make rules and
-dependency information.  This eliminates the redundant recompile of all
-other drivers if you specified a specific target at the make command line.
-
-There are now automatic checks for the generated ROM size (3K safety
-margin are used to allow for 1K BIOS EBDA and 2K stack).  This should
-avoid most of the cases in which the stack overwrites code and/or data,
-causing strange crashes.
-
-On to the real code - I rewrote both the ELF and a.out loading (the
-blocksize is now properly handled for all formats), and now most of the
-code is identical.  Someone might want to merge the two.  I verified that
-both a.out and ELF FreeBSD loading still works by booting the FreeBSD
-2.2.8 and 3.4 install kernels (the ELF kernel you gave me didn't work
-for whatever reason).  Actually I tested everything except NBI, but that
-code is completely unchanged.
-
-I eliminated config.h and created cards.h - just have a look and you
-should get the idea.  The PCI/ISA prototype matching hack is now buried
-in there.  All PCI drivers (and skel.c) have been converted to the new
-include file.
-
-The only file that is really new is nfs.c, which contains the code where
-I started my journey.
-
-The loader code is now merged into one file for both the normal and
-compressed case.  Some bugs have been fixed along the way (the normal
-loader copied too much data, potentially crashing the machine).  BTW: I
-removed the block copy from comboot, because the first thing the loader
-code does is - to copy the code to the right place.  Also copying it to
-0x80000 prevents compressed ROMs (though there is no way in the Makefile
-to create such a beast).  Also the stack changing code was wrong -
-the overflow handling is missing: 0x9fxxxx-0x800000 is truncated to
-fit in the 16 bit register, which is not quite what one would expect.
-The stack pointer must be in the same segment, so for overflows just
-load 0.  Anyway, we don't need a new stack for 4 bytes (the return
-address).  Also the shifts won't work on an 8086/8088.  The ROM segment
-and length code is also done once more in loader.S.  Finally the org
-0x100 didn't work with my version of as86 - it prepended 256 null bytes.
-Don't get me wrong - I see that comboot was just a quick and dirty hack.
-It's now working...
-
-I also fixed floppyload to read exactly the right amount of data (not
-up to 65520 bytes more like the Linux code did) and ripped out some
-unused code.
-
-3c509.c: includes fixed, const added, static added, removed redundant code
-
-3c90x.c: includes fixed, const added, shortened messages to save space,
-made the transceiver selection bootrom fix optional (default: off),
-updated 3c90x.txt
-
-ansiesc.c: de-tftpified (now uses "download")
-
-config.c: moved the driver prototypes to separate file, added a few const
-
-cs89x0.c: ansified, const added, fixed timeout handling
-
-eepro100.c: includes fixed, const added, static added, USE_INTERNAL_BUFFER
-hack, passing globals as a parameter removed, timeout handling fixed,
-comments fixed
-
-epic100.c: comments fixed, const added, static added, USE_INTERNAL_BUFFER
-hack, removed unused variables, changed debug code to use macro instead
-of variable, allow broadcasts to be received (after all how did it
-work before???)
-
-etherboot.h: dual/serial console "cleanups", added NFS support, fixed
-INTERNAL_BOOTP_DATA for pathologic cases, removed prototype within comment
-(how did that end up there?), moved prototypes for config.c code here,
-added consts all over the place
-
-floppy.c: added static, changed cleanup code
-
-floppyload.S: renamed from .asm
-
-genrules.pl: I didn't write this :)
-
-i82586.c: fixed includes, added const
-
-lance.c: fixed DMA for PCI cards, removed leftovers from Linux driver,
-USE_INTERNAL_BUFFER hack
-
-linux-asm-io.h: added prototypes
-
-linux-asm-string.h: added prototypes
-
-loader.S: renamed from loader.asm, more comments see elsewhere in
-this mail
-
-loader.inc: removed
-
-main.c: includes fixed, static and const added, Etherboot/32 now prints
-relocaddr, hooks for NFS support, drain the Rx queue in some strategic
-places (after sleep), changed interface to await_reply: timeout handling,
-new cleanup code
-
-misc.c: ansified, twiddle code changed, strcasecmp enabled for
-Etherboot/16 (smaller than the 16 bit libc version), clear A20 before
-kernel is started (only for NBI), dual console fixes, removed bogus
-comment about interrupt enabling using iskey()
-
-nic.h: include guard added, added const
-
-ns8390.c: fixed includes for PCI version, added const, ansified, renamed
-internal functions
-
-osdep.h: removed #include <asm/byteorder.h> - probably all #ifdef
-__linux__ and __FreeBSD__ may be removed now.
-
-osloader.c: see elsewhere in this mail. removed loads of debugging code.
-
-otulip.c: removed unused variables, USE_INTERNAL_BUFFER hack, ansified,
-added const
-
-otultip.h: added const
-
-pci.c: fixed signed comparison
-
-pci.h: include guard added, const added
-
-rtl8139.c: static added, const added, globals are no longer passes as
-parameters, fixed probe loop
-
-serial.S: removed the Makefile hack to calculate the divisor and replace
-it by a CPP hack
-
-sk_g16.c: added static/const
-
-skel.c: updated
-
-smc9000.c: fixed includes, added const, fixed timeout, removed unused
-variables
-
-start16.S: changed stack pointer reloading
-
-start32.S: cleaned up GAS295 support, fixed CPU detection, fixed memsize
-for > 64MB, added basememsize()
-
-tiara.c: fixed includes, added const, removed unused variable
-
-tulip.c: fixed includes, added const, decreased oversized frame tolerance,
-USE_INTERNAL_BUFFER hack, converted to C comments, fixed prototypes,
-removed unused variable
-
-via-rhine.c: fixed includes, converted to C comments, removed unused
-functions, fixed timeout, USE_INTERNAL_BUFFER hack, removed unused
-variable, const added
-
-lzhuf.c was modified not to output ':' characters, because I find it
-useful to search for them in a make log to spot all error messages.
-
-Finally all symlinks have gone
-
-I fixed sgml/vendortags.sgml (maybe it's more a workaround): sgml2txt
-didn't like the ~~' sequence and ignored a whole line, making the .txt
-file incomplete.  Also freebsd.txt was converted to sgml.
-
-My standard patch to netboot-0.8.1/configure (to remove the "unknown") is
-again in place - how is this file created? By hand?  I added serial/dual
-console support to mknbi-linux.
-
-Oh, and something I almost forgot: Etherboot now works under VMware.
-VMware has a rather large EBDA (3K instead of 1K like most other
-BIOS versions), so one might have to sacrifice a few nifty options.
-Note that the Makefile check cannot detect this - maybe we should add a
-runtime check, too?  One thing that doesn't work with VMware is the "Boot
-Local" stuff - it's not terribly useful if you have to boot from disk,
-but it shouldn't crash the machine (I've seen several triple faults,
-depending on RELOCADDR and the stack usage).  I tracked it down to the
-fact that VMware crashes on int 0x19 if the memory area 0x98000-0x9f3ff
-is overwritten.  If one changes RELOCADDR to 0x8f000, everything works
-nicely.  Someone should report the bug to VMware.  Also proper boot ROM
-support should be added to VMware and they should upgrade the virtual
-card to 100Mbps (don't laugh - they limit the bandwidth to 10Mbps even
-if you have a real 100Mbps card!).  Maybe one could even use the flash
-utility for the recent AMD PCnet cards...
-
-Released as Etherboot 4.5.5
-
-+ More fixes from Klaus Espenlaub, based on bug reports by Doug Ambrisko
-and others. Small cleanups in tulip.c. He also added a BACKOFF_LIMIT
-parameter to the exponential backoff for retry intervals.
-
-+ Christoph Willing sent in a fix for PCI NE2000s which forces 16-bit
-transfer mode for PCI. This might make it work on some PCI NE2000s that
-failed before, please test if you can.
-
-+ Moved commercial links off main web page into web page of its own.
-
-+ Merged in TRY_FLOPPY_FIRST code from <as AT bart PERIOD nl>.
-
-Released as Etherboot 4.5.6
-
-+ Frank Mehnert spotted a bug in tulip.c where the sole transmit buffer
-was not tagged as the last one in the chain.
-
-+ Hacked serial.S to check if a serial interface is present and to disable
-the routines if not, so that Etherboot does not hang on a machine without
-a serial interface, even if the option has been compiled in.
-
-+ Wrote mkromnbi for making a network bootable image from a ROM image
-(for using Etherboot to test another Etherboot driver).
-
-+ Krzysztof Halasa found a small bug in nfs.c in the handling of BOOTP
-extension files.
-
-+ Some instructions on adding Etherboot to a main BIOS were contributed
-by Dirk von Suchodoletz.
-
-+ Some commentary on cbrom.exe versions posted by Rapp Informatik Systeme
-GmbH to the Netboot mailing list included.
-
-Released as Etherboot 4.5.7
-
-+ Patrick Auge pointed out that -DT503_SHMEM option should be not used
-by default, as the comments say.
-
-+ Heinrich Rebehn pointed out that the documentation needed to be updated
-for the new bin32 and bin16 prefixes for targets.
-
-+ Christoph Plattner found that node_addr in struct nic should be unsigned
-char * or problems occur in the handling of the MAC address in cs89x0.c.
-
-+ Greg Hudson pointed out that inet_ntoa is misnamed, it should be
-inet_aton.
-
-+ Vsevolod Sipakoff suggested that the probe address list for NE2000
-should match that of Linux. Done, with the deletion of 0x360 which often
-conflicts with the parallel port at 0x378.
-
-+ Created mknbi, a Perl utility that replaces mknbi-dos, mknbi-linux,
-mkfreedosnbi, and mkromnbi. Removed mk{freedos,rom,elks}nbi/ from
-contrib/.  (ELKS has its own tagged image creation method now.)
-
-+ Removed obsolete/ from contrib/.
-
-Released as Etherboot 4.5.8
-
-+ Some small enhancements to mknbi. Merged in disnbi and mklnim. Changed
-version to 1.0.
-
-+ netboot-0.8.1 directories distributed separately now.
-
-Released as Etherboot 4.6.0
-
-+ Nick Lopez discovered that the Davicom 9102 is Yet Another Tulip Clone
-and a few appropriate initialisations will make it work.
-
-+ Matthew Reimer sent in patches for contrib/3c90xutil.c/bromutil.c to
-compile and run under FreeBSD.
-
-+ Krzysztof Halasa found that the number of buffers in epic100.c needed
-to be raised to 2 each for operation at 10 Mb for the PCI EtherPower
-9432B-TX using the SMC 83C171.
-
-+ Klaus Espenlaub fixed the root path handling in main.c, it wasn't
-requesting option 17 in DHCP. Also removed one prototype warning in
-tftp().
-
-+ Daniel Shane sent in code for for adding identifiers to a DHCP request,
-using a user specified DHCP option. The patch is in contrib/dhcpid.
-
-+ Bug fix in mknbi-1.0 for the ipaddrs=rom option, warnings about badly
-formed specification to ipaddrs= or unresolvable names.
-
-Released as Etherboot 4.6.1
-
-+ Stuart Lynne sent in patches to allow - to mean reuse kernel filename
-in menu specifications. Also fixed DHCP request to ask for tags 129 and
-130 (Ken added this), as the mknbi man page promised.
-
-+ Fixed URL for Richard Ferri's LUI.
-
-+ Added URL for Gregory R. Warnes' ClusterNFS.
-
-+ Changed RFC2132_MAX_SIZE option in main.c to allow maximum size DHCP
-replies.
-
-+ Matthias Schniedermeyer submitted an optional feature to use numbers
-instead of letters for bootmenu entries.
-
-+ Brought some FAQs up to date with mknbi-1.0.
-
-+ Wrote perl script mklrpnb for making netboot image from Linux Router
-Project floppy.  Tested on Coyote Linux (based on LRP).
-
-Released as Etherboot 4.6.2
-
-+ Re-enabled tulip.c:tulip_disable() code.
-
-+ Minor fix to SHOW_NUMERIC code in bootmenu.c.
-
-+ Minor spelling corrections to vendortags.sgml.
-
-+ andreas.kabel AT slac PERIOD stanford PERIOD edu pointed out that to
-be RFC951 compliant, the broadcast BOOTP request near line 705 of main.c
-should use port BOOTP_CLIENT and thus stand a better chance of going
-through firewalls.
-
-+ Christoph Plattner found that the 16 bit bus width fix for NEPCI cards
-introduced in 4.5.6 breaks operation for other NEPCI cards. So now the
-#define symbol is NS8390_FORCE_16BIT, to be used when the NIC requires
-16 bit bus width but Etherboot guesses wrong. This needs to be fixed
-later to autodetect adapter bus width.
-
-+ Shusuke Nisiyama sent me the PCI IDs for 3C595 NICs so that ROM images
-could be generated for them.
-
-+ Jim McQuillan sent in modifications to tulip.c to reject bad packets.
-
-+ Klaus Espenlaub suggested changing the filename substition macro in the
-IDENT16 and IDENT32 strings to $(@F) so that only the filename portion of
-the pathname is inserted.  Otherwise the contributed romid program breaks.
-
-+ Added author ident and copyright status to contrib/bin2intelhex.c.simple
-at Rogier Wolff's request.
-
-+ Günter Knauff sent updates to romid and mp-form.
-
-Released as Etherboot 4.6.3
-
-+ Marty Connor contributed patches to tulip.c to support the LinkSys
-LNE100TX v4 NICs.
-
-+ Added rmrd.com to mknbi-1.0 directory.
-
-+ Added experimental changes to allow RELOCADDR to be changed to 0x88000
-to avoid Disk On Chip drivers. See RELNOTES and Makefile for details.
-
-Released as Etherboot 4.6.4
-
-+ Chris Johns found a long-standing bug in first-linux.S. ES would
-sometimes != CS, making the ramdisk moving fail.
-
-+ Made --harddisk work for mknbi-fdos.
-
-Released as Etherboot 4.6.5
-
-+ Bug in mknbi-dos, last sector omitted in ramdisk image.
-
-+ Use ceil() for computing number of rootdir sectors.
-
-+ --harddisk now works for mknbi-dos also.
-
-+ Should work on FAT16 partitions now.
-
-+ New driver for Winbond W89C840 by Igor V. Kovalenko.
-
-+ Modification to loader.S by Steve Smith for some PCI BIOSes that don't
-handle INT19H well.
-
-+ Small bug in osloader.c, j not defined in two places if DELIMITERLINES
-defined.
-
-Released as Etherboot 4.7.6 (developmental)
-
-+ All the changes from 4.6.5 to 4.6.6 back propagated except for the
-loader.S change.
-
-+ Removed -nostdlib from ld flags. Seems to be a vestige from when we
-were calling gcc as it's not an ld option.
-
-Released as Etherboot 4.6.6
-
-+ Contributed one-line patch to allow booting from SCSI disks also (sd).
-
-+ Grzegorz Jablonski sent in a fix for long-standing bug in loader.S that
-prevented booting on some BIOSes.
-
-+ More updates to documentation.
-
-Released as Etherboot 4.6.7
-
-+ Rick Kennell pointed out that there is another place in main.c where
-the DHCP request is sent with a source port of 0, which may not elicit
-replies from some DHCP servers or pass gateways. Changed to
-BOOTP_CLIENT.
-
-+ Depca driver finally works.
-
-+ Changed unsigned int len; to int len; in 3c595.c transmit routine
-which was generating a warning from gcc.
-
-+ Removed warning about ljmp indirect without * in start32.S by putting
-in the *. Checked that generated code has not changed by comparing
-binaries. Later: But only for gas 2.9.5 and above, gas 2.9.1 doesn't
-like *.
-
-+ Wanted to do the same for the lcall's in pci.c but discovered that
-gas 2.9.1 chokes on *, and as I don't want to introduce more #ifdefs
-into pci.c, we'll just live with the warnings until gas 2.9.1 is dead
-or the incorrect syntax is rejected by a current gas release.
-
-+ Reversed #define so that GAS291 indicates gas 2.9.1. Rationale: gas
-2.10 probably behaves like gas 2.9.5 so the default should be the new
-behaviour.
-
-+ NI5010 driver finally works. Weird NIC, has only 2kB memory on board
-so if you don't switch to the receiver immediately after transmitting
-you will lose the reply packet. (This is a very ancient board, I was
-doing the driver for kicks.)
-
-+ Implemented a low-overhead timer routine for implementing timeouts in
-drivers. This timer should be used instead of hacks with integer loops
-(which are CPU speed dependent) or calling currticks(), which has
-relatively high overhead because it reads the BIOS timer, and has a
-resolution of only 1/18th of a second.  Timer 2 of the 8254 timer chip
-can be loaded with an unsigned 16-bit value that will be decremented at
-about 1193 counts per ms (constant TICKS_PER_MS in timer.h). So the
-maximum timeout that can be implemented with a single call is about 54
-ms. Call load_timer(u16) to load and start the timer (0 == 65536). Call
-int timer2_running() to check if it is still active. timer2_running can
-be interleaved with other tests, e.g. on the NIC hardware registers.
-When the timer runs down to 0, it will return 0. If you just need to
-delay a short time, call waiton_timer2(u16) to load and delay that many
-ticks.
-
-+ Removed slowdownio() from sources. It's called in only one place and
-is followed by a call to currticks() which will result in a large delay
-anyway. It's also not clear if the strategy in slowdownio (a couple of
-local jumps) will even work on fast CPUs with instruction caches.
-
-+ Removed support for %i (alias for %d) in printf. Nobody uses it, if
-they do they should just edit the format string to use %d, and removing
-it means one less non-standard format in printf; we have %X, %b and %I
-as it is.
-
-+ Simplified currticks() by accessing BIOS variables directly instead of
-calling timeofday BIOS interrupt.
-
-Released as Etherboot 4.6.8
-
-+ I'm pissed off with the inconsistency between gas 2.9.1 and gas 2.9.5
-re ljmp * (indirect jump). Some assemblers claiming to be 2.9.5 dislike
-the * (RH6.2's is one). I'm going to just make it ljmp and live with the
-warning message until the gas 2.9.1 syntax is totally dead.
-
-+ Various fixes from Klaus Espenlaub: Fix for NFS booting from *BSD
-platforms, fix for Lance driver, interrupt was being turned on, fix for
-serial.S and code cleanups.
-
-+ Paul Robertson of Locsoft found that if the top half of %esp contains
-garbage just before the first call to real_to_prot in start32.S, it can
-affect booting on some BIOSes. Inserted andl to clear top half.
-
-+ Sleep for 2 seconds after failure to load file to avoid pounding the
-server if the file does not exist and thus shutting down the tftp
-service (inetd has rather poor rate controls).
-
-+ Shredda of gmx.de reported a discrepancy between the Macronix MX98715
-device IDs used in pci.h and NIC. Marty Connor has ruled that the id in
-NIC is a typo.  If booting works from floppy but not from ROM, this may
-be the reason.
-
-Released as Etherboot 4.6.9
-
-+ Oops, a brown paper bag bug in start32.S. Forgot that the currticks()
-needs interrupts enabled to work. Calling the BIOS allowed interrupts to
-happen by going into real mode (interrupts are disabled in protected
-mode). So inserted prot_to_real and real_to_prot pair inside
-currticks().
-
-Released as Etherboot 4.6.10
-
-+ Marty Connor and Gary Byers of thinguin.org contributed a LILO prefix
-file that makes the Etherboot image look like a Linux kernel to LILO and
-thus bootable from the LILO prompt.
-
-+ Ifdefed out code in mknbi that falls back to the tftp directory for
-root-path. The result is that the options passed to the kernel specifies
-the tftp directory as nfsroot even if there is no root-path option in
-the DHCP or BOOT server configuration. This interacts badly with recent
-Linux kernels which actually pay attention to the root-path handed down
-and use that as nfsroot. People who were expecting the diskless kernel
-to use the default /tftpboot/<name of client> as nfsroot would have been
-surprised to find it trying to use the tftp directory (which often
-happens to be /tftpboot, although I recommend that it be different, to
-improve security).
-
-+ Eric Biederman found an off-by-one bug in the ELF loader.
-
-+ Christoph Plattner pointed out that the comments for COMCONSOLE in
-Config are wrong, the serial port is at 3F8, not 378.
-
-+ A couple of updates to wol.c and wake.pl by Günter Knauff.
-
-+ The Davicom 9009 and 9102 driver was contributed by Sten Wang of
-Davicom. It will be merged into tulip.c later.
-
-+ Implement eepro100_disable. There have been reports of memory
-corruption after Etherboot has handed over to the booted image due to
-the live controller.
-
-+ Matt Hortman reported a new Intel NIC, 82559ER, with different IDs.
-Added to file NIC.
-
-+ Ranjan Parthasarathy reported another Tulip clone from ST Micro with
-different IDs.  Added to file NIC.
-
-Released as Etherboot 4.6.11
-
-+ Stefan Lesicnik sent in a report from Intel which explains what is
-probably wrong with the PnP header. BEV should point to the mainline
-vector, not to the part that installs the INT19H vector.
-
-+ Hopefully finally fixed DHCP option limit problem. It was requesting
-large packets but not parsing them fully due to the length limit passed
-into decode_rfc1533(). Thanks to shredda for testing this.
-
-+ Added the # modifier to printf, it prefixes 0x to %x and %X making
-printf formats shorter throughout. 0x%[xX] changed to %#[xX] in lots of
-files.  Now if only I could make b,x,X the standard hhx,hx,x and get rid
-of I.
-
-+ Andreas Neuhaus provided patches for multiple rx buffers for lance.c
-which made it work again with VMware.
-
-+ Perl script to convert floppyfw floppies to netbootable images.
-
-+ Marty Connor made some small changes to liloprefix and Makefile to
-make the LILO images SYSLINUX bootable also.
-
-+ Make the default return value for _poll in skel.c 0 so that when
-driver writers implement _transmit first, it will not hang on garbage
-return values from _poll when it's called to flush the input queue
-before the first transmit.
-
-+ EEPRO/10 driver now works. µs timer routines came in useful.
-
-+ Anders Larsen sent in a patch to 3c90x.txt which makes it clearer.
-
-+ Added more stuff to the documentation.
-
-+ Fixed bug in mknbi that always did the equivalent of --ipaddrs=rom
-no matter what. Also removed undef from my variable list in TruncFD.pm
-so that it won't have problems with Perl interpreters.
-
-Released as Etherboot 4.6.12
-
-+ Jim McQuillan sent in a patch for first-linux.S where it was assuming
-the argument in tag 129 (additional parameters) is a null terminated
-string, when it's a length counted string. A new routine, addkarg was
-created to handle this.
-
-+ eepro100 should handle newer NICs with 256 byte EEPROMs now. This
-includes the onboard NICs on some motherboards, see file NIC. Thanks to
-Stephan Lauffer for helping with the fixes. WARNING: This code may have
-a bug that causes the onboard EEPROM to be corrupted. We believe we have
-found and removed the bug but please proceed with care.
-
-+ DHCPDISCOVER was sending out one byte too many for PARAM_LIST.
-
-+ In DHCPDISCOVER send "Etherboot" in VENDOR_CLASS_ID option (60).  Will
-add code later to check for "Etherboot" in vendor encapsulated options.
-
-+ Used µs timer routines in 3c509 for more accurate timing and hence
-better hardware detection. Use COMMAND_IN_PROGRESS bit to detect
-transmit complete instead of waiting for a fixed amount of time. Get rid
-of eth_vendor and associated tests, it doesn't serve any useful purpose
-since the driver was modularised long ago and the 3c509 detection status
-is stored outside of the driver now. Got rid of some unused global
-statics in 3c509.c, leftovers when the drivers were monolithic. Wait 2
-seconds after enabling TP interface to give it time to come up. This
-allows us to get rid of T509HACK in main.c.
-
-+ Get rid of eth_vendor and associated tests in cs89x0.c, same reasons
-as for 3c509.c.
-
-+ Moved the rest of the VENDOR_ and FLAG_ defines into ns8390.h, as
-ns8390.c is the only file that uses them now.
-
-+ Use lower 32 bits of node address + current time for xid (network byte
-order). More likely to be distinct from other clients than just the
-current time, which is similar for all clients booted at about the same
-time.
-
-+ Support for 16-bit code has been removed.  XTs and ATs are pretty much
-dead now and in fact many Etherboot/16 drivers have been broken for a
-while but nobody noticed. This should make some of the code easier to
-maintain.  If you really wanted 16 bit support, use an older version of
-Etherboot, maybe 4.4 or something like that, not sure when things
-started breaking for 16 bit mode.
-
-+ Should not store IP and UDP headers at BOOTP_DATA_ADDRESS. Redefined
-bootp_t without IP and UDP headers. Now requested size of bootp packet
-matches storage available. Do not add sizeof(iphdr) + sizeof(udphdr) to
-bootp pointer in start32.S:xstart now. start16.S:xstart was broken
-because it did not do this addition but nobody noticed.
-
-+ Removed array kernel_buf, saving 128 bytes and replaced with
-KERNEL_BUF, a pointer into the bp_file of the bootp_reply structure at
-BOOTP_DATA_ADDR. Note: this depends on the server not sending Option
-Overload which would use the sname and file fields for options, but we
-don't request this option so it shouldn't.  Removed char *kernel,
-instead check KERNEL_BUF[0] just before booting and if null, use
-fallback filename.  (This is needed for future extensions to booting
-protocol.)
-
-+ Define a shorter tftpreq_t type for making requests instead of using a
-full sized tftp_t packet to reduce stack usage.
-
-+ Defined macros for htonl/htons/ntohl/ntohs for cases where the operand
-is a constant, saving a function call.
-
-+ Started on first32.c, a protected mode 32-bit version of
-first-linux.S, which should be far easier to read and maintain. Will
-boot basic Linux kernels correctly but doesn't handle ramdisk or
-kernel arguments yet.
-
-+ Updated nfs-swap documentation in contrib/nfs-swap to point to
-Claus-Justus Heine's new web page.
-
-Released as Etherboot 4.7.13 (development)
-
-+ Added more IDs for eepro100 variants taken from the Linux 2.2.18
-source. Should handle the EEPROM properly now, a few defines were wrong
-in 4.7.13.  Loop counter timeouts in eepro100.c replaced with hardware
-timeouts.  Don't loop waiting for packet in _poll, return 0 immediately.
-
-+ first32.linux works. Does kernel arguments and ramdisk but doesn't do
-appended parameters from menu selections, which should be replaced by a
-more elegant menu scheme anyway.  Needed gateA20 routines in
-mknbi-1.1/first32.c otherwise cannot access extended memory.
-first32.linux should be able to handle memory > 64 MB, which the old one
-couldn't.  Support for first32pm call protocol added.
-
-+ 3c595.c changed to use hardware timer for delays. Transmit routine
-waits for a fixed period after transmitting. Changed to check
-S_COMMAND_IN_PROGRESS bit. It also contains some of the same unused
-variables as 3c509.c and mentions 3c509 in some comments. Cleaned up.
-
-+ Hmm, how come this wasn't fixed long ago? Should discard BOOTP/DHCP
-replies that are not to broadcast or own MAC address. I guess xid caught
-practically all of the non-matching packets. (Later: Actually the NIC
-should filter out packets we don't want, but leave test in anyway, it's
-the last test.)
-
-+ Removed last vestiges of ETHERBOOT32 and ETHERBOOT16.
-
-+ ETHER_ADDR_SIZE => ETH_ALEN, ETHER_HDR_SIZE => ETH_HLEN,
-ETHER_MIN_PACKET => ETH_ZLEN, ETHER_MAX_PACKET => ETH_FRAME_LEN.  More
-Linuxy and therefore more familiar to programmers.
-
-+ Cleared up confusion with 60/64 and 1514/1518 for minimum and maximum
-frame sizes. Practically always the right numbers are 60/1514, except
-that some chips count the FCS in the receive length, then we have to use
-64/1518.
-
-+ Make __swap32 and __swap16 inline routines available globally as
-swap32 and swap16. eepro.c can use swap16 instead of making up one.
-
-+ Make aui field in nic.h an int since it will be padded to a longword
-boundary anyway and call it flags so that other drivers can use it for
-their own purposes. Currently only 3c503 uses it to indicate AUI xcvr.
-
-+ Make sprintf return number of characters written instead of a pointer
-to the last char written to be more consistent with standard C.
-
-Released as Etherboot 4.7.14 (development)
-
-+ Thanks to Mark VandeWettering for the start of HomePNA (networking
-over phone lines) support for the AMD 79C978.
-
-+ Bug fixed in first32.c handling of (ip|nfsroot)=X where X is not rom.
-
-+ first32pm.linux works. No need to go into real mode to call first32pm
-and then it goes back to protected mode. Paves the way for extension
-routines to Etherboot.  Implement program returns to loader flag in
-header field.  Added option to mknbi to specify this.
-
-+ first32*.linux: Check tag 128 present and correct before appending tag
-129. Also tag 129 should be appended to parameters before substitutions.
-
-+ Merged cleanup_net into cleanup since they are always called together.
-
-+ Floppy booting doesn't need to be passed BOOTP_DATA_ADDR.
-
-+ Clean up variables associated with tagged image loading in osloader.c.
-
-Released as Etherboot 4.7.15 (development)
-
-+ Duplicated 3c900 PCI IDs under 3c595 as some NICs apparently detect
-and work with the 3c595 driver but not the 3c90x driver, according to a
-report from Dirk Pfau. (The 3c90x series has two modes of operation,
-programmed I/O mode descended from the 3c509, good only for 10 Mb
-operation, and bus mastering mode, essential for 100 Mb operation. For
-network booting, either mode is acceptable.)
-
-+ Removed auto from kernel parameters; it's the default already.
-
-+ Use hardware timer instead of loop counter for transmit timeout in
-3c90x.c.
-
-+ Define a jmpbuf type for setjmp and longjmp. Trim size to 7 longs,
-that's all that's needed. Standardise the return values from longjmp:
--2: loader error, -1: timeout or ESC, 0...: various meanings to
-Etherboot main loader.
-
-+ Ansify function headers in bootmenu.c.
-
-+ Make _int10 return ax | (bx << 16) as result so that these can be
-accessed more efficiently in the following statements.
-
-+ Make handleansi take unsigned int instead of unsigned char as
-argument, otherwise extra code will be generated to handle this
-according to ANSI rules.  (Quite significant saving of 55 bytes.) Rename
-it ansi_putc for clarity.
-
-+ Prefix getc, putc and ischar with console_ to make things clearer and
-to avoid confusion with the Unix getc, putc.
-
-+ Add menu as a target to mknbi. Started source code for menu extension.
-Successfully transferred control to menu at 0x10000 and back. ANSI
-colour controls work, at least. Return end needs more work.
-
-+ Started on ELF support in mknbi.
-
-Released as Etherboot 4.7.16 (development)
-
-+ Added atftp 0.2 (ftp://ftp.mamalinux.com/pub/atftp/) to contrib/.
-Supposedly contains a tftpd that runs multithreaded, which may help
-people having problems with *inetd shutting down tftpds that spawn too
-fast.
-
-+ Added a few more Tulip entries to config.c and NIC, not all of them
-have been confirmed working.
-
-+ Got ELF format creation in mkelf-linux working now. At least one empty
-section header is required to make a valid ELF file.
-
-+ Added code to support non-MULTIBOOT ELF when IMAGE_ELF is selected but
-IMAGE_MULTIBOOT is not.  Booting from images created by mkelf-linux
-now works!
-
-+ TAGGED_IMAGE is now not always selected. It's just the fallback if
-none of TAGGED_IMAGE, AOUT_IMAGE or ELF_IMAGE is selected. Therefore you
-must explicitly select TAGGED_IMAGE if you want it, and you have
-selected AOUT_IMAGE or ELF_IMAGE.  Startup banner line displays all
-image formats accepted.
-
-+ exit() in mknbi/start32.S should copy argument to %eax first.
-
-+ Images with 0xAA55 in bytes 510-511 are no longer accepted, which
-should reject invalid formats now, e.g. Linux kernel images, which have
-a boot sector in the first block. Strictly this does not conform to the
-original netboot spec by Jamie Honan, which specifies that non-tagged,
-linear images starting from 0x10000 are allowed, but that format is
-pretty useless now. Any decent loading scheme needs a roadmap to the
-blocks in the downloaded file, which is what tagged, a.out, or ELF
-images provide in the header. Q: What is config_buffer in main.c for?
-Nothing else seems to use it. Is it a relic of non-tagged images?
-
-+ Clean up lots of obsolete prototypes in etherboot.h. Ansify lots of
-function headers in main.c. Make lots of functions and variables in
-main.c static.  Make bootmenu.c:getoptvalue() static.
-
-+ Simple external menu program works!
-
-+ More documentation cleanup, notably editing the compile options to
-match what has been done.
-
-Released as Etherboot 4.7.17 (development)
-
-+ Marty Connor did it again! He found a long standing bug in the PnP ROM
-header which caused it not to be recognised by BIOSes. Now Etherboot ROM
-images are PnP compliant. I hacked makerom.c to fill in the offset of
-the ident string for the device string so that the BIOS can even print
-out "Etherboot" and the device ident on boot up.
-
-+ Made demo menu program a bit more elaborate with timeout.
-
-+ Igor V. Kovalenko fixed the Winbond W89C840 driver to use the hardware
-timer instead of CPU counter loops. Now none of the Etherboot drivers
-rely on CPU speed dependent loops.
-
-+ Small fix to contrib/p910nd.c to not use getprotobyname which requires
-libnss_files.so, which may not be installed in all environments.
-
-+ Small change to contrib/mkffwnb to allow the user to choose ELF format
-(by editing one line) instead of tagged format.
-
-+ Patch to atftp-0.2 to make it accept a filename if the directory is a
-prefix of the filename. This is needed so that valid absolute pathnames
-will work. Patch sent to atftp authors.
-
-+ Added support for filtering out replies which do not include a Vendor
-Class Identifier of "Etherboot" in the Vendor Encapsulated Options. This
-can be used to select only the DHCP servers which we want to get
-addresses from and reject the rest.  Select the compile option
--DREQUIRE_VCI_ETHERBOOT. This requires ISC DHCPD 2 or 3 AFAIK.  (It's
-not documented in DHCPD 2, but it works.) Other DHCP servers may support
-VEO. (It's a RFC2132 option.)
-
-+ Jim Thomas suggested a way, other than creating /fastboot, of
-preventing fsck from running on NFS root, ln -s /bin/true
-/sbin/fsck.nfs. Not verified but should work. Added to documentation.
-
-Released as Etherboot 4.7.18 (development)
-
-+ Pavel Tkatchouk verifies that lance.c can handle PCnet-FAST III
-79c973. Added a new entry to lance.c and NIC. NIC entry not verified
-yet.
-
-+ Enhanced disnbi to decode ELF images too.
-
-+ Arrgh! There are old BIOSes that rely on the wrong order of the bytes
-in the device identifier in the PCIR and PnP structures. Wrote a Perl
-program swapdevids.pl to swap these bytes. Apply this to image file just
-before programming the EPROM.
-
-+ Marty Connor suggested that the specs state that for PnP ROMs the
-unsuccessful return from boot should be int 0x18 rather than int 0x19.
-Using int 0x19, selecting L for local device doesn't work. Fixes needed
-in both loader.S and start32.S (get lret to work properly, instead of
-doing an int 0x19 directly, involved saving ss and sp in real mode
-instead of in protected mode).
-
-+ Wrote a Perl program disrom.pl to display key structures of a ROM
-image.
-
-+ Added call to binmode() in various Perl utilities so they should work
-under other OSes.
-
-+ Added check in makerom.c to warn if 55 AA not found at start of image.
-It seems some people don't read the warning not to use the Linux
-supplied as86.
-
-+ It seems Z is a recent addition to pack/unpack formats in Perl and
-even a Perl as recent as 5.004 doesn't implement it. Change Z5 in
-mknbi.pl and TruncFD.pm to a5 since we only need to compare it against
-'FAT12' and 'FAT16'.
-
-+ Some errors found in osloader.c in the #ifdef IMAGE_MULTIBOOT
-sections.  kernel should be KERNEL_BUF and union info should have
-unsigned short s[256];. Also kernel -> KERNEL_BUF for IMAGE_FREEBSD,
-obviously few FREEBSD users have tried compiling it.
-
-+ Explain in docs that .com and .(lz)lilo images can be generated and
-touch briefly on how to use them.
-
-+ Donald Christensen contributed translations of floppyload.S and
-loader.S to gas syntax. Currently they are in contrib/gassyntax/.  They
-potentially allow us to throw away as86 and/or nasm and use GNU tools
-throughout, but I have to do some work on them: 1. I have to check what
-versions of gas accept the syntax, the 16-bit mode in gas was a recent
-enhancement; 2. I have to put back the #ifdef PCI_PNP_HEADER into
-loader.S and also bring it up to date to the recent patches.
-floppyload.S should be usable as is.
-
-Released as Etherboot 4.7.19 (development)
-
-+ Donald Christensen completed the translation of loader.S and all the
-other .S files in the src directory that previously required as86 or
-nasm. No more futzing around with precompiled versions. Yipee!
-
-+ Luigi Rizzo contributed a slightly hacked FreeBSD loader that works on
-floppy or hard disk. See boot1a.s for details. Makefile rules edited.
-Targets renamed .dsk and .lzdsk to indicate they're not floppy specific
-now. Documentation updated. I note that the loader is smart enough to
-figure out exactly how many sectors have to be read.
-
-+ Renamed comload.S to comprefix.S which describes it better.
-
-+ mknbi tools split out into separate package for independent
-development.
-
-+ Use A32 instead of Z32 in unpack format in disrom.pl in case we
-encounter old Perl versions (< 5.005).
-
-+ Vendor Class Identifier string that's sent out is now of the form
-Etherboot-x.y (13 bytes long).
-
-+ Reduced size of ee_data in davicom.c to 32 bytes because we only need
-to access the MAC address in bytes 20:25.
-
-+ Changed type of formal arguments to pci.[ch] routines to unsigned int
-except for the last argument, because in ANSI C parameter passing is
-like assignment and extra dummy variables and code may need to be
-generated if the formal argument type is not the the same size as the
-actual argument that gets pushed on the stack. Not insignificant
-overhead, reduction from 1853 to 1727 bytes due to change. Changed devfn
-and bus members of struct pci_device to unsigned char to enforce limit
-on type. Surprisingly this reduced the size further to 1667 bytes.
-Probably the compilier could do more optimisations after the last
-change.
-
-+ Some drivers hardwired 0 for bus number in calls to pcibios_*
-functions. Changed to pci->bus, which is set in scan_bus. Only
-people with NICs not on bus 0 would have noticed.
-
-+ Found a couple more old-style pre-ANSI C function declarations. Turned
-on -ansi and -pedantic for kicks and fixed some non-ANSIness, e.g.
-// comment in #define, text after #endif, casting memcpy arguments to
-void *, using void * instead of char *. Some char declarations changed
-to unsigned char.
-
-Released as Etherboot 4.7.20 (development)
-
-+ I changed my mind. I think the format in disrom.pl should be Z32,
-otherwise it displays binary characters after the valid part of the
-string. For people with Perl < 5.005, please upgrade.
-
-+ Moved RELOC down to 0x94000. Turned on USE_INTERNAL_BUFFER by default.
-Unless BOOTP_DATA_AT_0x93C00 is defined, use internal bootp strucutre.
-This gets Etherboot out of the area just below 0x10000 and the area from
-0x93C00-0x93FFF. DHCP packets can now be as large as the Ethernet
-payload. Later on, first32.c and the parameter area could expand a bit.
-In lance.c had to reduce RX_RING_SIZE (by reducing LANCE_LOG_RX_BUFFERS)
-from 16 to 4 to fit the driver. I'd like to hear feedback from lance
-users. Is 24kB of receive buffers really needed given that Etherboot
-uses stop-wait protocols?
-
-+ Doug Ambrisko sent in some patches for FreeBSD: a correction for one
-typo I missed and changes to make compilation under FreeBSD easier.
-
-+ Michael Sinz contributed patches to allow the FreeBSD loading code to
-load debugging symbols also.
-
-+ Marty Connor contributed a SiS900 driver. Also pointed out that if
-ASK_BOOT <= 0, the prompt and read shouldn't even happen. Conditional
-code reworked.
-
-+ Split documentation into user manual and developer manual. Added
-material.
-
-Released as Etherboot 4.7.21 (development)
-
-+ Preston Wilson pointed out that ds.internic.net should be replaced by
-www.ietf.org in documentation URLs. Also RFC1090 should be RFC1094
-(NFS).
-
-+ Marty Connor pointed out some broken links due to the split in
-documentation. Also comments don't match code in lance.c for change just
-above. Also passed on a bug found by a user of rom-o-matic.net where
-tftp was not defined when ANSIESC was defined. My mistake, I made it a
-static function when it needs to be exported to ansiesc.c.
-
-+ Christoph Plattner found that the Etherboot startup messes up the
-flags while testing for a 386+. This doesn't affect Etherboot but it can
-cause the loaded operating system to crash. Fix: pushf before and popf
-after the CPU model testing.
-
-+ Jean-Jacques Michel contributed patches to the via-rhine.c driver to
-make it work for the VT6102 model as used on some DFE530-TX Rev.A3 NICs.
-
-+ Luigi Rizzo sent in a fixed boot1a.s that actually works on HDs now.
-
-+ Stefan Furtmayr sent in a list of URLs to TFTP servers for NT. Added
-to directory contrib/Diskless-From-NT.
-
-+ Paul Whittaker contributed a HOWTO in HTML format on booting with NT
-as the server.  Added to directory contrib/Diskless-From-NT.
-
-+ CJ pointed out that the advertised message size is > 1500 bytes.
-Define MAX_BOOTP_EXTLEN so that the size of the structure matches the
-Ethernet payload size.
-
-Released as Etherboot 4.7.22 (development)
-
-+ Reintroduce the old Via-Rhine PCI IDs into file NIC and give the
-corresponding ROM images -old suffixes, in case some people are using
-the old chips.
-
-+ Peter Kögel contributed patches to the SiS900 driver to make it work
-for the SiS630e and SiS730s.
-
-+ Charles Dobson pointed out that when booting from a PnP BIOS, the code
-should not hook or restore the INT19H entry point.  Put hooking code
-inside #ifndef PCI_PNP_HEADER and changed entry point in PnP structure
-from start19h to blockmove.
-
-+ I have one report that gas 2.91 doesn't assemble loader.S because it
-can't handle all the 16-bit code. Since the benefits of using gas for
-all assembly code are great, and gas 2.95 has been out there for a long
-time, I regretfully say to affected users: upgrade your tools. Otherwise
-there may be a workaround by specifying the opcodes literally.  I leave
-it to interested parties to try. If you do this, put in an #ifdef
-GAS291, naturally.
-
-+ Updated contrib/tftp-hpa to 0.16 from ftp.kernel.org.
-
-Released as Etherboot 4.7.23 (development)
-
-+ Rename nepci entry in file NIC to rtl8029 to avoid giving the
-impression that nepci will work for all PCI NE2000 clones. Make the
-issue of PCI IDs in ROMs clearer in documentation, both in the
-configuration and troubleshooting sections.
-
-+ Tania Oka and Hyun-Joon Cha at about the same time found that
-implementing the rtl_disable() routine in rtl8139.c stopped random
-crashes in Linux later. It is important to disable the NIC after network
-loading.
-
-+ Implemented _disable() routine in w89c840, 3c90x and via-rhine drivers
-too. Don't know how to do it for epic100.
-
-+ p910nd-0.4 in contrib/ has -f device option now to specify other
-printer ports, e.g.  USB.
-
-+ Robb Main found a bug with the #ifdef logic in loader.S. This may fix
-problems with BIOS detection.
-
-Released as Etherboot 4.7.24 (development)
-
-+ Paolo Marini sent in some code to make it work on his bare metal (no
-standard BIOS or peripherals) platform. This may be a useful starting
-point for some applications. See contrib/baremetal/.
-
-+ Eric W. Biederman contributed a Perl script in
-contrib/award_plugin_roms/ to list flash BIOS plugin components.
-
-+ Marty Connor rewrote the Tulip driver to handle many more variants.
-
-+ For PCI ROMs loader.S can now detect if it's being called from a PnP
-BIOS and choose to hook INT19H if not.
-
-+ Pass struct *rom_info in priv_data to probe routine. This is to allow
-drivers to decide, based on the ROM address, which one of multiple
-instances of identical network adaptors to activate. Started on 3c509
-code to use this but need to understand 3c509 contention resolution
-mechanism first.
-
-+ Link src/lzhuf.c to contrib/compressor/lzhuf.c so that we don't need
-to refer to contrib/compressor/lzhuf.c anymore in Makefile.
-
-Released as Etherboot 4.7.25 (development)
-
-+ Minor documentation edits, merged in NIC entries for newly supported
-Tulip variants from Marty Connor.
-
-+ One last minute change, Robb Main suggested calling cs89x0_reset()
-from cs89x0_disable() to shutdown the hardware cleanly.
-
-+ Updated tftp-hpa to 0.17.
-
-+ Slight mod to lzhuf.c to make compression statistics report shorter.
-
-Released as Etherboot 5.0.0 (production)
-
-+ Donald Christensen found a small bug in osloader.c. Not all context
-was cleared on tftp restart which caused restarted tftp loads to fail.
-
-+ Correct a small error in setting %sp when not running at 0x9xxxx.
-Now relocation to 0x84000 works.
-
-+ Marty Connor added a generic Tulip entry and renamed the Macronix
-entries because PHP doesn't like strings starting with digits (for
-rom-o-matic.net).
-
-+ In loader.S, move code to save ROM segment and length to before jump
-to new segment, otherwise if MOVEROM is defined, then the ROM segment is
-always 0x8000. In etherboot.h, define an inline function to say if a ROM
-address is ok to boot from. Allow if < 0xC0000 or matches assigned ROM
-address of NIC.
-
-+ Thomas Kessler found a bug in vendortags.sgml re option-NNN tags in
-dhcpd.conf, the wrong syntax was presented. However on trying the
-option-NNN syntax documented in the dhcp-options man page, it was
-discovered that option option-NNN is no longer supported in the old way
-in recent versions of ISC dhcpd v3; a new syntax should be used. Added
-note to vendortags.sgml to warn users.
-
-+ Incorporated changes suggested by Hannu Martikka to #define
-DEFAULT_KERNELPATH in etherboot.h for rarp(), and display the TFTP
-server address before filename in Loading: message.
-
-+ Split off documentation into separate package in anticipation of
-production/development series split. Moved previous LOG to top level.
-Moved distribution section of index.html into separate web page so that
-index.html will be less ephemeral.
-
-Released as Etherboot 5.0.1 (production)
-
-+ Arkadiusz Miskiewicz pointed out that --oformat should be used instead
-of -oformat as old ld accepts both while new ld requires --oformat.
-
-+ contrib/{tftp-hpa,atftp} are distributed separately from the
-distribution page to make them easy to update.
-
-+ Eric Biederman contributed many small changes in the code to improve
-the behaviour in exceptions and generally improve the code structure:
-
-1) Cleanup etherboot restarting.  There is now only one place that needs
-to test for EMERGENCYBOOTDISK.
-
-2) Change pci.c as I have suggested.  It is setup to scan every possible
-pci bus until it finds an etherboot card.
-
-3) Change osloader.c so that if an image that can return, but isn't
-supposed to it restarts etherboot with -2 instead of the returned value.
-
-4) Rewrites the delay logic so that we compute how long we should sleep,
-and then sleep the whole time in await_reply so in a congested networks
-we don't miss slow packets.
-
-5) divides load into load & load_configuration.  This removes the need
-for the weird bootp_completed variable.  And makes it a little more
-explicit what we are doing.
-
-6) add an interruptible_sleep function so that we can sleep and still
-process keystrokes.
-
-7) rewrites the restart logic:
-   - renames jmp_bootmenu to restart_etherboot.
-   - removes bootmenu (The function isn't)
-   - It explicitly does an eth_reset & eth_probe pair to reinitialize
-     the interface.  This should help if someone has plugged the
-interface into a different switch since booting started.
-   - moves ASK_BOOT and TRY_FLOPPY_FIRST into their own functions.
-   - On every restart calls ask_boot and try_floppy_first.  Allowing you
-     to change your mind on how you want to boot after network booting
-starts.
-
-8) In cleanup calls both eth_disable (to disable the interface) &
-eth_reset to make certain the interface can be initialized from linux.
-(If nothing else this should cause more hidden bugs to show up).
-
-9) Restart etherboot when downloading a bootfile fails, instead of just
-looping trying to get that file.  Allowing typos in dhcpd.conf to be
-corrected without having to reboot the client machine running etherboot.
-
-Released as Etherboot 5.1.0 (development)
-
-+ All the changes from 5.1.0 carried over except calling eth_reset()
-from cleanup().
-
-+ Marty Connor, funded by Sicom System (http://www.sicompos.com/), wrote
-a driver for NICs based on the National Semiconductor DP83815, e.g.
-Netgear FA311/FA312. Also independently created by Jason McMullan just
-at the time Marty released his driver. Thanks for the effort Jason;
-great minds think alike. Both are based on Donald Becker's Linux driver,
-of course.
-
-+ Doug Ambrisko contributed a patch to take environment bindings for
-FreeBSD kernels from a BOOTP/DHCP option or config variable.
-
-+ Dax Kelson contributed an example of an ISC DHCP config file that uses
-Vendor Class Identifier to tailor the response to Etherboot clients.
-Also discovered that the Etherboot VCI should also be sent in the
-DHCPREQUEST message, in addition to the DHCPDISCOVER message.  Note that
-the DHCP server must be set to non authorititative if you have an
-authoritative server running already or it will interfere with that
-one's operation.
-
-+ Peter Lister and Vasil Vasilev contributed changes to generate .pxe
-images bootable via PXE.
-
-+ Eric Biederman added code to 3c90x.c to enable the NIC: set up
-busmastering and set the latency timer in case the NIC is not already
-set correctly, and fixed a couple of related bugs in eepro100.c.
-Verified that the 3c90x driver works for the 3c980.
-
-+ Moved strncmp from osdep.h to linux-asm-string.h. Use the general
-version using string ops, not the deprecated 486 version (what was I
-thinking).  Also added strlen, needed for FreeBSD patch above.
-
-+ Thanks to gcc 3.0, found and corrected a couple of C constructs of
-undefined semantics in rtl8139.c and lance.c of the form: i = ++i &
-MASK;
-
-+ In Config/CFLAGS32: changed -m386 to prefered form, -mcpu=i386,
-changed -O2 to -Os, and added -ffreestanding. These changes allow
-warning-free compilation under gcc 3.0. Only mimimal testing has been
-done with gcc 3.0 compiled binaries, we hope there are no problems but
-don't throw away your gcc 2.9.5 yet.
-
-+ Added an .org 0 to loader.S just before _start. May or may not fix
-alleged assembly problem with gas 2.11.
-
-+ Cosmetic change: in boot1a.s replaced "loaded" with "done\r\n" so that
-Etherboot messages start at beginning of line.
-
-+ More improvements to contrib/mkffwnb.
-
-Released as Etherboot 5.0.2 (production)
-
-+ Added missing rules in genrules.pl for .pxe and .lzpxe images.
-
-+ Peter Lister unified pxeloader.S into loader.S. pxeloader.S not
-required now. Also fixed .lzpxe.
-
-+ Added missing int i; declaration in try_floppy_first().
-
-+ Load %edx with dev just before calling xstart in floppy.c:bootdisk()
-so that %dl will have device number, just like entry from BIOS.
-
-+ Merged in Eric Biederman's patches to build .ebi images that run under
-LinuxBIOS. To make an image, edit Config to enable the EBI options (and
-disable TAGGED_IMAGE), then make bin32/driver.ebi, where driver is the
-name of a supported PCI NIC.
-
-Released as Etherboot 5.1.1 (development)
-
-+ The rotating bar progress display has been replaced by a sequence of
-dots, one for each transmitted packet. This is kinder to dumb displays,
-e.g. serial terminals, and gives a better feel for how the loading is
-going. If you want the rotating bar, use -DBAR_PROGRESS.
-
-+ In loader.S change .fill 0x18-(.-_start) to .org 0x18. Might help
-people having errors assembling it.
-
-+ Do Jong Gwan found a 3Com 980 with PCI ID 0x9805. Added to config.c
-and NIC. Added for good measure 0x7646 which is listed as 3CSOHO100-TX
-in Linux kernel 3c59x.c.
-
-+ Add a rule to the Makefile to check for gcc 2.96, which is buggy, and
-tell the user to use kgcc instead if found.
-
-+ Till Straumann added long-needed code to warn when fragmented packets
-seen (encountered on a wireless link) and to do UDP packet checksumming.
-
-+ A trio of patches from Klaus Espenlaub, to fix a lance ring pointer
-error in lance.c, to fix a format error in the multiboot call in
-osloader.c and a patch to enable powersaving while waiting (good for
-compute clusters and VMware), this one requiring the new option
--DPOWERSAVE in compiles.
-
-+ While we are adding compile options, -DFLOPPY has been renamed to
--DCAN_BOOT_DISK as FLOPPY has been a misnomer ever since the ability to
-boot /dev/hdX and /dev/sdX was added.
-
-+ Spurred by correspondence from Till Straumann and Klaus Espenlaub,
-hacked printf to not require a buffer. Now printf output can be
-arbitrarily long as it no longer needs a buffer to assemble the
-characters before sending to putchar; it outputs on the spot for
-non-format chars and %s items, and at the end of the item for non-%s
-items.
-
-+ DRIVER AND EXTENSION WRITERS NOTE! (s)printf formats have been changed
-to be a subset of those in glibc to reduce confusion. The changes are %x
--> %hX, %b -> %hhX, and %I -> %@. Lower case x formats are also
-available now. The only variances from glibc are %@ for dotted quad IP
-addresses (formerly %I; %I is now used), %! for 6 byte Ethernet
-addresses, and that printf returns void. Thanks to Klaus Espenlaub for
-assistance on this, after adding the %! format, he cleaned up all of the
-Ethernet address display code in the drivers.
-
-+ More cleanup patches from Klaus Espenlaub (he's better than lint;
-people who have used Bell Labs Unix will know what lint is). Changes
-noted here for posterity.
-
-3c509.c: consistent non-use of # modifier for debugging output
-3c595.c: consistent non-use of # modifier for debugging output
-3c90x.c: use optimal %x variant, PCI bus/function numbers are always small
-Config: Replace a TAB by two spaces inside the descriptions
-eepro100.c: 6->ETH_ALEN, PCI bus/function numbers are always small
-floppy.c: optimal %x variant
-genrules.pl: consistent use of TAB characters
-i82586.c: the ENET address printing patch for the EXOS205 got lost somehow....
-main.c: cleanup of the UDP_CHECKSUM comment some editor messed up, make the
-    assembly fragment use the normal formatting, fix the register assignment
-    specification for the %bx register to use the "b" constraint instead of
-    "bx" - the x makes no sense...
-natsemi.c: %X case fix...
-ns8390.c: optimal %x variant
-pci.c: fix bad Linux port (most messages truncated the hex values)
-sis900.c: a value read with inl() should probably(!) be printed with %X
-start32.S: move around the #endifs a little
-timer.c: fix space/tab characters
-via-rhine.c: all values "printed" inside the comments are 32 bit integers
-wd89c840.c: PCI bus/function numbers are always small
-
-Released as Etherboot 5.0.3 (production)
-
-+ New version of contrib/Diskless-From-NT/furtmayer.html. I mangled the
-previous version by forgetting to extract with metamail so it was still
-quotable-printable encoded.
-
-+ Renamed do_printf to vsprintf because that's the standard function it
-has the same signature as.
-
-+ More patches from Klaus Espenlaub. In his own words:
-
-The patch to add UDP checksums for transmitted packets is attached.
-Just don't be surprised if some packet sniffer tells you that the
-checksum for the NFS_LOOKUP packets are wrong and that the filename is
-truncated.  It's a bug in the sniffer, not in Etherboot.
-
-Oh, and the small change in udpchksum() almost makes up for the
-increased code size.
-
-I also rewrote the NFS code to use pointers instead of array accesses.
-This reduced the code size by 124 bytes.  Patch attached.
-
-The last patch in this mail fixes misc things: a typo in misc.c
-(DOT_PROGRESS instead of BAR_PROGRESS), and twiddle() is only called if
-the packet type is IP.  This makes the output nicer - the dots are also
-printed in some non-approriate places for ARP reply packets.  The
-important packets are IP anyway.
-
-+ The option BOOTP_DATA_AT_0x93C00 is deprecated, in preparation for
-expanding the parameter area and the first32.c area.
-
-+ Marty Connor found a typo in index.html, should be: Etherboot can work
-with..., not Ethernet can work with... Ooops.
-
-+ Eric Biederman tried a patch of Preston Wilson's and discovered that
-DI should be prefixed by ES in the test for a PnP BIOS in loader.S to be
-sure.  Furthermore some BIOSes are not fully compliant and we need an
-#ifndef PNP_BUT_NOT_BBS_COMPLIANT to work around that.
-
-+ Oops, there's no entry in config.c for the DFE530TX+ even though
-there's one in NIC.
-
-Released as Etherboot 5.0.4 (production)
-
-+ Fixed a struct alignment (8-byte constraint) problem in lance.c caused
-by the introduction of the rx_idx field by moving rx_idx to the end of
-the struct. Found by Rizsanyi Zsolt. Klaus Espenlaub also suggested
-increasing all the Rx buffers by 4 bytes because of the checksum stored
-at the end.
-
-+ Fred Gray contributed changes in tulip.c to check for a duplex
-connection and to modify the controller register if so. Marty fixed an
-unassigned to "negotiated" variable.
-
-+ Mark G of Inprimis Technologies contributed another FA311 (National
-Semiconductor DP83815) driver, also based on the Donald Becker Linux
-driver.
-
-+ Armin Schindler contributed a patch to allow booting LynxOS KDI
-images.
-
-+ Moved code to set PCI busmastering and reasonable latency to a routine
-in pci.c and added calls to this routine from all PCI drivers.
-
-+ New files for contrib/mkffwnb for version 1.9.11 and 1.9.16.
-
-+ Removed BOOTP_DATA_AT_0x93Cxx option.
-
-+ Convert epic100 driver to use hardware timer for transmit timeout and
-remove polling loop from receive routine.
-
-+ Steve Tilden pointed out that BOOT_INT18H is a LCONFIG option, not a
-CFLAGS32 option. Put note under option documentation and also added a
-commented-out example in Config. Steve also contributed a patch¸ in
-contrib/auto-default, which autoboots from the next device if a disk is
-detected.
-
-+ PNP_BUT_NOT_BBS_COMPLIANT option renamed to BBS_BUT_NOT_PNP_COMPLIANT.
-
-+ Merged in Vasil Vasilev's changes to loader.S to release memory taken
-by PXE properly.
-
-+ E820 memory detection routines added by Eric Biederman. May increase
-size of bss segment and push large drivers, e.g. Tulip, nearer to limit,
-please report.
-
-+ Default to -DCONGESTED in Config, may help on busy networks.
-
-+ Add Holtek HT80232 to list of NE2000 PCI clones.
-
-+ Remove prohibition on loading < 0x10000 in ELF images since by default
-drivers don't use memory < 0x10000 any more, with 48kB to run in.
-
-+ Put define of ETH_MAX_MTU in etherboot.h inside #ifndef so that it can
-be overriden from Makefile.
-
-+ Gustavo Junior Alves added .cvsignore files for src/bin and src/bin32.
-
-+ Short note on how to make tomsrtbt netbootable in contrib/tomsrtbt.
-
-This release is dedicated to the memory of my mother (July 1917 -
-November 2001) [Ken Yap].
-
-Released as Etherboot 5.0.5 (production)
-
-+ Changes to enable fa311too driver which were overlooked in 5.0.5.
-
-+ Chien-Yu Chen sent in patches to support the SiS630ET. Independently,
-Doug Ambrisko made the same changes. Marty Connor tidied the patches.
-
-+ In misc.c, when enabling/disabling Gate A20, call int 0x15 with
-ax=0x240x to do handling first, and if that is not supported, fall back
-to using the keyboard controller. Hopefully this will solve Gate A20
-problems for recent BIOSes.
-
-+ Add missing entry to config.c for the Macronix 98713 (device ID
-0x512). But latest report is that it doesn't transmit. Anybody wanna
-debug?
-
-+ Omit test for pointer to $PnP string for ISA NIC images, it may
-trigger false recognition of a PnP ROM. Just use legacy mode.
-
-+ Merged in Christopher Li's Intel E1000 gigabit Ethernet driver.
-
-+ RISKO Gergely found that the ADMTek Comet 983 works with the tulip
-driver if you provide the right PCI IDs.
-
-+ Rohit Jalan contributed patches to support FreeBSD booting via PXE.
-(genrules.pl needed hacking to make it ignore the system includes in
-osdep.h.)  Anybody want to see if it can be made to support pxelinux?
-[Glanced at it and I think general PXE support may be hard, you may need
-an Etherboot specific secondary loader. - Ken]
-
-+ Merged in Eric Biederman's patches to allow trying all PCI devices.
-
-+ From Eric Biederman: A small patch to allow the serial port parameters
-to be unchanged at activation.  Major changes to start32.S to merge
-LinuxBIOS support.  New files for LinuxBIOS support.  PCBIOS specific
-functions split out into pcbios.S. Massive clean up of PCI subsystem
-logic.
-
-+ Jean-Jacques Michel sent in a fix for via-rhine.c to make sure the
-transmit is finished before returning from the _transmit routine.
-Also found a bug in gcc 3.0.3 that affected rtl8139.c. Moving the
-assignment to nstype in _transmit two lines up avoids it.
-
-+ Based on the experience of Yedidyah Bar-David, in eepro100.c,
-increased udelay around line 533 after getting MAC address to
-udelay(10000).
-
-+ Added PCI IDs for RTL8129, which can use the rtl8139 driver.
-
-+ Added PCI IDs for 3Com905 with device ID 0x9058. Confirmed working by
-Fabio Papa.
-
-+ Added PCI IDs for D-Link 528, which is a PCI NE2000 clone.
-
-+ Philip R. Auld found a block number rollover bug due to promotion to
-signed in main.c.
-
-+ Luigi Rizzo sent in a patch to nfs.c to implement an adaptive timeout.
-
-+ New config files for floppyfw-1.9.19 in contrib/mkffwnb/.
-
-+ Glenn McKechnie contributed a Perl script for making a netbootable
-image from the Dachstein LRP firewall distribution floppy. It's in
-contrib/mklrpnb/
-
-+ At the request of Greg Beeley, who got irate mail from kernel NIC
-developers, put in a warning in the Makefile about the 3c90x XCVR
-options which may affect later operation with the Linux driver. For you
-tinkerers out there, if you don't know what you're doing, please read
-3c90x.txt over and over again until you understand what those options
-do. If you don't understand, please ask on the Etherboot mailing list.
-And don't complain to the kernel developers, it's nothing to do with
-them. If you must change the XCVR options on a board, please document it
-prominently on the board so that those who come after you won't
-encounter strange behaviour and complain to the kernel developers.
-Greg also supplied a patch to 3c90x.c to print a warning message.
-
-Released as Etherboot 5.0.6 (production)
-
-+ Andrew Bettison sent in a patch and the explanation: Here's a patch
-for some changes I made to Etherboot-5.0.6 because it didn't work with a
-SMC EtherEZ in an old PCI/ISA bybrid bus system.  The ISA shared memory
-isn't accessible on many such systems, so the only way to do I/O to the
-card is in Programmed I/O mode.  I studied the Linux 2.2.19 driver
-(drivers/net/smc-ultra.c) and hacked what I figured was equivalent code
-into src/ns8390.c, and it eventually worked.  All my new code is enabled
-with -DWD-790_PIO.
-
-+ Small error in the ADMTEK Comet 983 IDs fixed.
-
-+ Michael Rendell sent in patches for 3c90x.c to get the MAC address
-from location 10 of the EEPROM onwards, like the Linux driver does. Some
-905s have the MAC address at both 0 and 10 which is why it worked for
-some boards.
-
-+ Michael Brown sent in drivers for 3 wireless NICs based in the prism2
-chipset, and a small patch to rtl8139.c to abort detection on no link.
-
-+ Rewrote makerom.c in Perl to give makerom.pl.
-
-+ Rewrite genrules.pl to parse a new NIC format.
-
-+ Timothy Legge contributed a 3c515 driver. Requires a ISA PnP BIOS.
-
-+ Modified call to int15h/e801 in pcbios.S to check for return values in
-CX, DX in case BIOS doesn't return them in AX, BX.
-
-+ Richard Chan sent in PCI IDs for another Intel EEPRO100 product.
-Omigawd will they ever run out of EEPRO100 model numbers. :-)
-
-+ Changed location of setup header from 0x97e000 to 0x93e000 in
-mkQNXnbi.c for recent Etherboot versions.
-
-+ Renamed membase to addr1 to reflect its lack of predefined meaning in
-PCI config space. Should do similar to ioaddr, but too much work.
-
-+ Samuel Clememts found another Intel EEPRO100 device ID, 0x1039.
-
-+ Updated instructions in contrib/tomsrtbt for latest 2.0.103 release.
-
-+ Folded in changes by Michael Brown to send PCI and ISA IDs to the
-server and to encapsulate Etherboot specific options. Changed scheme to
-send fixed binary structure instead of variable length string.
-
-+ Bug in sis900.c, wrongly classifies revisions 0x81 and 0x82 because
-first test catches too many revisions. Changed to match the Linux
-driver.
-
-+ Fotis Andritsopoulos found a small bug in cs89x0.h, TX_AFTER_ALL
-should be 0x0C0.
-
-+ Great idea by Eric Biederman. Ignore DHCP offers with zero server
-IP, or null filename unless DEFAULT_BOOTFILE is defined. This will
-ignore most Windows DHCP servers.
-
-+ Patrik Weiskircher sent in a patch for rtl8139.c to bring it up to
-date with the Linux driver.
-
-Released as Etherboot 5.0.7 (production)
-
-+ Multicast support and LOTS of other changes by Eric Biederman.
-
-+ Builtin menuing has been removed.
-
-+ Patches for FreeBSD by Doug Ambrisko.
-
-Released as Etherboot 5.1.2 (development)
-
-+ Fix syntax errors in nfs.c.
-
-+ Patch for tagged image loading by Miles Nordin.
-
-+ Patches for new eepr100 variant by Georg Baum.
-
-+ Fixes for typos by Adam Sulmicki.
-
-+ Fixes by Eric.
-
-Released as Etherboot 5.1.3 (development)
-
-+ Eric rearranged files for multiple platforms, including Itanium.
-
-Released as Etherboot 5.1.4 (development)
-
-+ Lots of fixes to drivers, see CVS for details.
-
-Released as Etherboot 5.1.5 (development)
-
-+ Eric added support for the AMD Hammer.
-
-+ Geert Stappers found a VIA6105 (via-rhine.c) with id 0x3106.
-
-Released as Etherboot 5.1.6 (development)
-
-+ Broadcomm TG3 support by Eric Biederman.
-
-+ Georg Baum found that the start16.S prefix was missing from the LILO
-and PXE images, those formats were broken. He also migrated the PCI IDs
-into the driver files. Those formats should work again.
-
-+ Reworked genrules.pl. Family declarations now in here document inside
-genrules.pl. NIC is now an output file, for use by rom-o-matic.
-
-Released as Etherboot 5.1.7 (development)
-
-+ Fixed various syntax errors that made the source not compile with some
-configurations.
-
-+ Hacked boot1a.s to take count of number of blocks to boot from book
-block itself in new scheme.
-
-+ Dave Airlie found a patch for an old bug in eepro100 driver on Linux
-that applies to Etherboot driver too.
-
-+ Add use bytes; pragma to Perl scripts to avoid problems with UTF-8
-handling of input data.
-
-+ Replace boot1a.s with floppyload.S which has no problems loading large
-binaries. Lose the ability to boot from disk partition. Use LILO or
-something similar.
-
-+ Morten Kristiansen sent in a patch to handle another variant of the
-SiS 900.
-
-+ Fix for eepro100 timing problem by Georg Baum.
-
-+ Add use bytes; to Eric's Perl scripts too.
-
-+ Additional fix to mask interrupts after PortPartialReset by Georg
-Baum that might help with booting DOS.
-
-+ Sundance driver contributed by Timothy Legge.
-
-Released as Etherboot 5.1.8 (development)
-
-+ Fix for correct SMC8416 detection.
-
-+ Alignment bug fix for the 3c90x driver contributed by Neil Newell.
-
-+ Robb Main found a bug in appending the MACHINE_INFO to the DHCP request.
-
-+ SONE Takeshi fixed the Multiboot structure.
-
-+ Patch from Axel Dittrich to allow timeout to be changed to a fixed
-value for peer-to-peer setups where the exponential backoff is not
-suitable.
-
-+ Tlan driver contributed by Timothy Legge.
-
-+ Support for symlinks on NFS mounts by Anselm Martin Hoffmeister.
-
-+ Experimental safe booting code by Anselm Martin Hoffmeister.
-
-+ Run Etherboot in an even megabyte so that unsetting A20 won't kill it.
-Experimental UNDI driver by Michael Brown.
-
-Released as Etherboot 5.1.9 (5.2 release candidate 1)
-
-+ 82562EZ ID provided by Samuel Clements.
-
-+ Rename Local option as Quit, because that's what it really is.
-
-+ Should prepend start16.bin to .com images, they didn't work and nobody
-noticed.
-
-+ PM stack was getting clobbered by zeroing of BSS, move to own segment
-in etherboot.lds. Move %ss out of the way of Etherboot in comprefix.S.
-Now Q works from .zrom and sort of from .com (DOS is odd after return).
-
-+ Make ASK_PROMPT reflect the device options available.
-
-+ Removed many outdated comments and updated others.
-
-Released as Etherboot 5.1.10 (5.2 release candidate 2)
-
-+ Make floppyload.S and liloprefix.S call instead of jmp to the image so
-that the return calls int 0x19, which is somewhat better than
-hyperspace.
-
-+ Put http://etherboot.org in prompt and ID string.
-
-Released as Etherboot 5.2.0 (production)
-
-+ Print F? if no filename in DHCP offer.
-
-+ Make lance.c throw a compile error if -DRELOCATE is used.
-
-+ pcnet32 driver ported by Timothy Legge.
-
-+ Reinstate boot1a.s in arch/i386/prefix. The binary may have some uses;
-it boots with vmware although the image fails later in the emulation.
-
-Released as Etherboot 5.2.1 (production)
-
-CVSed as Etherboot 5.3 (development)
-
-+ Break out etherboot.h into multiple files along protocol lines.
-
-+ Georg Baum's conversion of a more recent version of the Linux e1000
-driver.
-
-+ Add mini-slamd to contrib/, it was missed during 5.2 release.
-
-+ Timothy Legge enabled multicast for a bunch of drivers. Tested with
-mini-slamd.
-
-Released as Etherboot 5.3.0 (development)
-
-+ Timothy Legge rewrite proto_tftm.c, got multicast working with atftp
-and enabled multicast for the Tulip.
-
-Released as Etherboot 5.3.1 (development)
-
-+ Günter Knauf sent in a new version of romid that handles the new
-and old IDENT format.
-
-+ Cai Qiang fixed the WINCE loader. It needs to handle > 512 byte packets
-and also the buffer has to be static. Also submitted a driver for VGA
-which can be activated by CONSOLE_DIRECT_VGA.
-
-+ Improved tg3 driver by Eric Biederman. New define in etherboot.h:
-VALID_LINK_TIMEOUT.
-
-+ Timothy Legge and I fixed up various ISA drivers to be less noisy
-when probing, from information provided by Paolo Salvan, so that the
-super etherboot image is more useful.
-
-+ Proof of concept of a TFTP to HTTP proxy in contrib/t2hproxy/.
-
-Released as Etherboot 5.3.2 (development)
-
-+ Multicast support for the ns8390 (NE, WD, etc) added by Timothy Legge.
-
-+ Provide config access to alternate DHCP/BOOTP ports. The macro
-ALTERNATE_DHCP_PORTS_1067_1068 switches to ports 1067 and 1068.
-
-+ UNDI driver by Michael Brown.
-
-Released as Etherboot 5.3.3 (development)
-
-+ More UNDI improvements by Michael Brown.
-
-+ Michael Brown pointed out error in ASK_BOOT behaviour. Make it match
-documentation. < 0 or undefined means no prompt,  = 0 means wait
-forever, > 0 means wait that many seconds.
-
-+ Start of PCMCIA subsystem by Anselm Martin Hoffmeister.
-
-+ Port to Hyperstone architecture (big-endian) by Yannis Mitsos and
-George Thanos at NTUA, Greece.
-
-+ Timothy Legge got the epic100 driver working again, was not working
-when 5.2 released. Also implemented multicasting. Also tentatively
-fixed the tg3 driver.
-
-+ Use Perl script to make .z?lilo images.
-
-+ Added an .iso Makefile rule. This requires newer BIOSes as it
-uses no floppy emulation mode.
-
-+ Guard Kuo sent in a patch for the via-rhine driver not being
-reset properly, Timothy Legge improved it based in the Linux driver.
-
-Released as Etherboot 5.3.4 (development)
-
-+ David D. Smith, with help from Georg Baum, sent in a patch for the
-eepro100 driver which might help unjam the NIC when the receiver has
-suspended reception.
-
-+ Timothy Legge and Eric Biederman fixed a bug in the tg3 driver which
-caused some models to not receive DHCP replies.
-
-Released as Etherboot 5.3.5 (development)
-
-+ Timothy Legge ported the Linux Realtek 8169 driver.
-
-+ Michael Brown removed irritating A20 status change messages.
-
-+ Sis900, w89c840 and tg3 drivers fixed by Timothy Legge. R8169 driver
-needs family entry in genrules.pl.
-
-+ Revert to normal way of assigning string to DEFAULT_BOOTFILE as
-tricky stringify macro falls foul of C++ // comments in gcc 3.x.
-
-Released as Etherboot 5.3.6 (development)
-
-+ Don't include ISA .o files for etherboot-pci.
-
-+ Doug Ambrisko fixed bugs in the FreeBSD loader.
-
-+ Anders Nystrom provided a tiny via-rhine patch
-
-+ Introduce new define DEFAULT_PROTO_NFS for those who were used to
-using DOWNLOAD_PROTO_NFS in 5.0 for NFS booting.
-
-+ Reverse sort PCI drivers so that 3c90x is tried ahead of 3c595.
-
-+ Updated e1000 driver by Georg Baum.
-
-+ New PCI IDs for 3c90x and tulip drivers. Typos in 3c90x and tg3
-drivers corrected.
-
-+ Georg Baum fixed the 3c503 
-
-+ Fixed Typos which caused compiling with RARP_NOT_BOOTP to fail
-
-+ Fixed IMAGE_FREEBSD bugs
-
-+ Cleanup of driver output (pcnet32, r8169, sundance, tlan)
-
-+ Minor updates to the Config file comments
-
-+ arch/i386/prefix/boot1a.S is no longer maintained
-
-+ Added make rule for a floppy emulation ISO boot image
-
-+ Timothy Legge updated proto_tftm to make it easier to maintain and
-  fix some issues
-
-+ Timothy Legge contributed a forcedeth driver for the NVidia Force
-  NIC.
-
-+ Timothy Legge contributed a ns83820 driver for National
-  Semiconductor 83820 based NICS
-
-+ Ken Yap added support for creating .liso output type which is an iso
-  image with legacy floppy support
-
-+ Michael Brown improved memory allocation, 16/32 mode swapping, and
-  did various code cleanups
-
-+ Michael Brown added High-Level PXE API support (pxelinux) to Etherboot
-
-Released as Etherboot 5.3.7 (development)
-
-+ Timothy Legge Fixed an issue in the e1000 driver with 82544 and
-  newer devices that support port I/O.  Enabled port io for the reset.
-  Without the patch the e1000 could not reliably boot Linux on some
-  cards.  Thanks to James Pearson, Georg Baum and Marty Connor for
-  help resolving this issue.
-
-+ Michael Brown added lots of PXE code to complete implementation. He
-  also did a warnings purge of the core.
-
-+ Marty Connor did warnings purge of the network drivers.
-
-+ Anselm Martin Hoffmeister contributed DNS resolution code.
-
-+ Lots of driver PXEifications and cleanups from Timothy Legge and
-  Marty Connor
-
-+ Makefile and genrules fixes from Michael Brown and Marty Connor
-
-+ BPBATCH workaround from Timothy Legge and Michael Brown
-
-+ Timothy Legge improved image format detection logic.
-
-Released as Etherboot 5.3.8 (development)
-
-+ Update to lance.c chip_table from Helge Wagner
-
-+ Fixes to attributes to prevent gcc from optimising away seemingly
-unused functions and variables that are actually referenced from asm
-or in the linking stage. (Ken Yap)
-
-+ Removed non-relocation support, relocation is now always active.
-Removed lance.c driver as this will not work with relocation. 32-bit
-Lance NIC users should use pcnet32. (Ken Yap)
-
-+ Migrated SAFEBOOT to a patch set. This proof-of-concept code is
-incomplete and needs more work before becoming mainstream. (Ken Yap)
-
-Released as Etherboot 5.3.9 (development)
-
-+ Patch from Tim Fletcher for another eepro100 model.
-
-+ Patch from Jeremy Jackson to make DNS query recursive and fix sign and
-casting issues in dns_resover.c.
-
-+ Paolo Salvan experimented with using isolinux for non-emulation
-images and contributed the first cut at the code for geniso.
-
-+ Fix for relocation issue with prism2_pci driver
-
-+ Small patch to support 3Com tulip version from Jacek Kalinski
-
-+ Dag Lem provided a new pci_id for the eepro100 Intel "82801EB/ER 
-(ICH5/ICH5R)"
-
-+ Small patch to support 3Com tulip version from Jacek Kalinski
-
-+ Yinghai Lu contributed a large patch to add filo, bText and usb 
-support:
-       btext console: In LinuxBIOS, for the VGA, we only can 
-       enable display chipframe buffer and write char to framebuffer 
-       to get output in CRT.
-       
-       FILO: originally it is standalone boot program and 
-       author is TakeshiSone.
-
-       Boot from SATA disk.
-
-       Boot from USB disk (OHCI and UHCI).  USB boot is from Steven 
-       James 's baremetal in LinuxBIOS, moved to FILO and added the 
-       OHCI support to it 
-
-+ armnommu arch support by Tobias Lorenz.
-
-+ Driver updates/cleanup: rtl8139, sis900, tlan 
-
-+ Updates to via-rhine based on input from Guard Kuo from Via Networking 
-Technologies, Inc
-
-+ Update p910nd (port 9100+n printer daemon) to latest version
-
-+ Fixed some bugs to enable compilation for gcc 3.4.x.
-
-Released as Etherboot 5.3.10 aka 5.4RC1 (development)
-
-+ Changes to segment scheme to make large compressed images work.
-
-+ .zelf images can be built now but still don't run properly. .zrom
-images may be broken.
-
-+ Start of a .exe prefix which should allow payloads > 64kB.
-
-Released as Etherboot 5.3.11 aka 5.4RC2 (development)
-
-+ Left out in last release's LOG: accepted patch from Jan Kiszka
-fixing default TFTP blocksize.
-
-+ Fixed .z?rom image generation, they work now.
-
-+ Patch from Jan Kiszka for for multiple receive buffers in eepro100
-driver.
-
-+ Fixed 961507 Not so nice 'F?' message when no file name received
-
-+ Small fixes to e1000 and via-rhine drivers.
-
-+ New mtd80x.c driver contributed by Erdem Guven
-
-+ New dmfe.c driver for Davicom based cards contributed by Timothy Legge
-
-+ Added new definitions of site DHCP options in preparation for 5.4.
-
-+ Removed etherboot(-pci)?.* rule because there are too many drivers and
-the image will no longer fit in memory. I don't want to choose a subset
-of drivers as everybody will have different preferences. So I'm going to
-piss off everybody equally by deleting the rule. Use the multiple driver
-rule (driver1--driver2--...) and select your own subset of drivers.
-
-Released as Etherboot 5.3.12 aka 5.4RC3 (development)
-
-+ Changes to Makefile.main and Config to collect FILO objects in
-filolib.a.  This allows FILO to be excluded from compilation and linking
-with one Makefile define.
-
-+ Reverse site DHCP option changes, should apply for official
-assignment.
-
-+ RIS filename patch which seems to work for many people.
-
-+ Thanks to the help of Daniel Nilsson, tracked down and fixed a bug
-where the tftp code did not fall back to 512 byte blocks when an OACK
-was NOT received.
-
-+ Removed dead code related to CAN_BOOT_DISK.
-
-+ Clarified that BOOT_DISK and BOOT_FLOPPY options only work with
-LinuxBIOS and are not replacements for PCBIOS functions.
-
-+ Renamed EMERGENCYDISKBOOT to EXIT_IF_NO_OFFER.
-
-+ Builtin menuing DHCP options are gone.
-
-+ Paolo Salvan submitted changes to arch/i386/Makefile to make .com
-images compressed.
-
-+ Eric Biedermann made .*elf images work again and cleaned up the build
-procedure in the process. The hardwired virtual RELOCADDR is no more,
-the virtual base is 0. He also added code to display which protocols are
-compiled into the image.
-
-Released as Etherboot 5.3.13 aka 5.4RC4 (development)
-
-+ Lots of fixes by Eric Biederman.  Symbols for protected mode segment
-and prefix segments separated.  Multiple ASM statements combined to
-ensure compiler keeps them intact.  Allocate real mode stack if none in
-use.  Protect low memory interrupt vectors. Makefile rules for various
-prefixes factored. Dynamic relocatable image support.
-
-+ Fixes by Michael Brown. Cleanup of PXE and UNDI code.
-
-+ Patch to Tulip driver for missing PCI ID.
-
-+ Fixes to genrules.pl by Kenneth Sumrall.
-
-Released as Etherboot 5.3.14 aka 5.4RC5 (development)
-
-+ Small ARMNOMMU architecture fixes by Toby Lorenz.
-
-+ Patch to Tulip driver for additional PCI ID by Ramesh Chander.
-
-+ Proxy DHCP support, catrom.pl script, flat real mode support, and
-e1000 fixes by Michael Brown.
-
-+ New PHY support for tg3.c by Timothy Legge.
-
-+ FS Protocol support by Radim Kolar.
-
-+ FILO config changes by YHLu.
-
-+ Support for compilation on AMD64 for i386. makerom.pl fixed not to
-change product string pointer if one already exists.
-
-Released as Etherboot 5.3.15 aka 5.4RC6 (development)
-
-+ Minor additions and amendments to acknowledgements.
-
-+ Added Doug Ambrisko's FreeBSD patch to freebsd_loader.c. Doesn't
-hurt FreeBSD 4 and seems to help FreeBSD 5 get further in booting.
-Should not affect other image types since it modifies only one file.
-The part of the patch relating to osloader.c was already present.
-
-Released as Etherboot 5.4.0 (production)
-
-+ Added PCI ID for Fujistu Siemens Futro C200 by Martin Vogt
-
-+ Liu Tao contributed a driver for the AMD8111 based on the Linux 
-driver
-
-+ Till Straumann patch for Sporadic eepro(10)  RX problems after reboot
-
-+ Hermann Gausterer sent a patch to support additional Broadcom PHYs
+Release as gPXE 0.5.xxx
 
index ffd0145..d7cd962 100644 (file)
--- a/RELNOTES
+++ b/RELNOTES
@@ -1,43 +1,7 @@
-Etherboot 5.4.0
+gPXE 0.5.1
 
-PXE is now supported.  You will also need to configure your server to
-provide a pxelinux.0 loader file, kernel and initrd images, and a
-pxelinux.cfg directory with a appropriate configuration spec files.
+gPXE is an implementation of the PXE specification with extensions to
+allow additional features such as booting via HTTP, iSCSI, and AoE.
+In generally, it is compatible with the PXE specification, and also
+supports Etherboot .nbi file loading.
 
-See the PXELINUX home page at:
-
-    http://syslinux.zytor.com/pxe.php
-
-for more information. 
-
-There is no longer a default target for make.  You must specify an
-argument to make. Help text is now provided to indicate possible make
-targets.
-
-It should be possible to compile Etherboot with gcc >= 3.3.3, including
-gcc 3.4.x now that a couple of bugs have been tracked down. Please mail
-reports of success or failure to the etherboot-users list, together with
-the versions of gcc and binutils used.
-
-gcc 2.x is not supported anymore. You need at least gcc 3.x to compile
-etherboot due to C99 constructs.
-
-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.
-
-In order to create .iso and .liso images you will need to have the
-packages mtools-3.9.9 or later, and syslinux-2.08 or later installed on
-your system.  These packages are available in various locations and
-formats.  .liso images are like .iso but use floppy emulation.  If you
-have a very old BIOS and .liso images don't work you may wish to try
-adding the -s option of syslinux as a last resort.
-
-EMERGENCYDISKBOOT has been renamed EXIT_IF_NO_OFFER, which describes it
-better.
-
-Menuing using DHCP options (mknbi/menu.c) has been removed.
-
-.exe format can be generated by doesn't work so not publicised.
diff --git a/VERSION b/VERSION
index 85570a8..9fbc6ee 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-5.4.0 2005-04-01
+0.5.1 2007-03-02
index 92c2728..75b88c1 100644 (file)
@@ -24,8 +24,8 @@
 /*
  * $Id$
  * $Log$
- * Revision 1.1.1.1  2005/05/17 16:45:06  mcb30
- * Import from Etherboot 5.4
+ * Revision 1.1  2005/05/17 16:45:06  mcb30
+ * Initial revision
  *
  * Revision 1.9  1997/12/14 05:14:54  install
  * - some documentation....
index baadb8c..a5a930a 100644 (file)
@@ -2,4 +2,4 @@ bochsout.txt
 parport.out
 ne2k-tx.log
 ne2k-txdump.txt
-
+tunctl
index 3c0e645..4a5b14c 100644 (file)
@@ -1,7 +1,10 @@
-all : serial-console.1
+all : tunctl serial-console.1
 
 %.1 : %
        pod2man $< > $@
 
+tunctl : tunctl.c
+       $(CC) -o $@ $<
+
 clean :
-       rm -f serial-console.1
+       rm -f serial-console.1 tunctl
index 80e1529..71831ed 100644 (file)
@@ -14,40 +14,32 @@ but it doesn't seem to quite work.)
 
 To get bochs running is fairly simple:
 
-1.  Get the bochs source code:
-    a)  cvs -d:pserver:anonymous:@cvs.sourceforge.net:/cvsroot/bochs login
-    b)  cvs -d:pserver:anonymous:@cvs.sourceforge.net:/cvsroot/bochs co bochs
-
-2.  Configure bochs with
-      ./configure --enable-all-optimisations --enable-pci \
-                --enable-ne2000 --enable-pnic
-    Other potentially useful configure options:
-      --prefix=/usr
-          to force use of standard file locations
-      --enable-debugger
-          to enable the internal debugger
-
-3.  Build bochs:
+1.  Build the utilities in this directory:
       make
 
-4.  Configure Etherboot with CONFIG_PCI_DIRECT: add the line
-      CFLAGS += -DCONFIG_PCI_DIRECT
-    to the end of src/arch/i386/Config.
-
-5.  Build bin/pnic.zrom:
-      make bin/pnic.zrom
-
-6.  Load the TUN/TAP kernel module:
-      modprobe tun
-    You should see the device /dev/net/tun is created automatically if
-    you're using devfs, otherwise you may have to create it by hand with:
-      mknod /dev/net/tun c 10 200
-
-7.  Grant yourself write access to /dev/net/tun:
-      su -c 'chown <your user id> /dev/net/tun'
-    The alternative to this is to run Bochs as root.  Don't do that.
-
-8.  Add the following fragment to /etc/dhcpd.conf:
+2.  Get the bochs source code:
+      cvs -d:pserver:anonymous@bochs.cvs.sourceforge.net:/cvsroot/bochs \
+           login
+      cvs -d:pserver:anonymous@bochs.cvs.sourceforge.net:/cvsroot/bochs \
+           co bochs
+
+3.  Configure bochs with
+      pushd bochs
+      ./configure --enable-all-optimisations --enable-pci --enable-pnic \
+                  --enable-debugger --enable-magic-breakpoints \
+                 --enable-disasm --enable-show-ips
+      popd
+
+4.  Build bochs:
+      make -C bochs
+
+5.  As root, set up a TAP virtual network device:
+      /sbin/modprobe tun
+      chmod o+rw /dev/net/tun
+      ./tunctl -u <username> -t tap0
+      /sbin/ifconfig tap0 up 10.254.254.2 netmask 255.255.255.0
+
+6.  As root, add the following fragment to /etc/dhcpd.conf:
       subnet 10.254.254.0 netmask 255.255.255.252 {
         range dynamic-bootp 10.254.254.1 10.254.254.1;
       }
@@ -57,39 +49,21 @@ To get bochs running is fairly simple:
     machine you are using for running Bochs.  If not, then you're on
     your own.
 
-9.  Change back to this directory and run bochs from your Bochs source tree:
-      cd /path/to/Etherboot/contrib/bochs
-      /path/to/bochs/source/tree/bochs
-
-10. Select option 5 (Begin simulation).  You will be prompted for your
-    root password.  This is required in order to configure the tun1
-    network interface and to restart the DHCP server.
-
-11. You should see Bochs start up and attempt to boot from the network,
-    with a screen that looks like:
-
-VGA BIOS - Version 2.40
-Copyright (C) 1990-2000 Elpin Systems, Inc.
-All rights reserved.
-
-Licensed for use with bochs, courtesy of MandrakeSoft.
-
-For information on this or other VGA development products, contact
-Elpin Systems at: (800) 723-9038 or www.elpin.com
-
-Bochs BIOS, 1 cpu, $Revision$ $Date$
-
+7.  As root, restart dhcpd
+      /etc/init.d/dhcpd restart
 
-Etherboot 5.3.6 (GPL) http://etherboot.org Tagged ELF for [PNIC]
-Relocating _text from: [00091020,0009fb50) to [01ef14d0,01f00000)
-Boot from (N)etwork or (Q)uit?
+8.  Build Etherboot images
+      pushd ../../src
+      make bin/pnic.dsk
+      popd
 
-Probing pci nic...
-[pnic] - Detected Bochs Pseudo NIC MAC FE:FD:00:00:00:01 (API v1.0) at 0xdc00
-Searching for server (DHCP)...
-..Me: 10.254.254.1, Server: 10.254.254.2
-Loading 10.254.254.2:/tftpboot/kernel
+9.  Start Bochs
+      ./bochs/bochs -q
+    You should get to the debugger prompt "<bochs:1>".  Type "c" to
+    start running Bochs.
 
+You should see Bochs start up, load up Etherboot and attempt to boot
+from the network.
 
 
 
@@ -99,9 +73,8 @@ Serial console
 You can use the program "serial-console" to obtain a virtual serial
 console for Etherboot running within Bochs.  Simply run
 "./serial-console" on a spare tty (e.g. a separate xterm window)
-before starting Bochs, and ensure that you have compiled Etherboot
-with appropriate settings such as
-  CFLAGS+=      -DCONSOLE_DUAL -DCOMCONSOLE=0x3F8 -DCONSPEED=9600
+before starting Bochs, and ensure that you have enabled CONSOLE_SERIAL
+in config.h.
 
 There is a manual page for "serial-console"; use
 "man ./serial-console.1" to view it.
diff --git a/contrib/bochs/README.qemu b/contrib/bochs/README.qemu
new file mode 100644 (file)
index 0000000..e72c884
--- /dev/null
@@ -0,0 +1,88 @@
+Running Etherboot within qemu
+=============================
+
+Michael Brown <mbrown@fensystems.co.uk>
+
+To get qemu running is fairly simple:
+
+1.  Build the utilities in this directory:
+      make
+
+2.  Get the qemu source code:
+      cvs -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/qemu \
+           login
+      cvs -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/qemu \
+           co qemu
+
+2a. Patch the qemu code.  There is currently a bug that causes qemu to
+    execute Etherboot incredibly slowly.  The bug seems to be related
+    to the relative prioritisation of CPU and I/O operations within
+    qemu.  This patch (which I found via Google) isn't a proper fix,
+    but it does work around the problem:
+      patch -p0 < qemu-patch
+
+3.  Configure qemu with
+      pushd qemu
+      ./configure --enable-system
+      popd
+
+    Note that qemu will not compile with gcc4; if your system's
+    default compiler is gcc4 then specify the path to gcc3 using
+    e.g. --cc=gcc-3.3.6
+
+4.  Build qemu:
+      make -C qemu
+
+5.  As root, set up a TAP virtual network device:
+      /sbin/modprobe tun
+      chmod o+rw /dev/net/tun
+      ./tunctl -u <username> -t tap0
+      /sbin/ifconfig tap0 up 10.254.254.2 netmask 255.255.255.0
+
+6.  As root, add the following fragment to /etc/dhcpd.conf:
+      subnet 10.254.254.0 netmask 255.255.255.252 {
+        range dynamic-bootp 10.254.254.1 10.254.254.1;
+      }
+    You will also need to add in any of your usual declarations for
+    Etherboot, e.g. 'filename "vmlinuz.ltsp";'.  Note that this setup
+    assumes that your DHCP server, TFTP server etc. all live on the
+    machine you are using for running qemu.  If not, then you're on
+    your own.
+
+7.  As root, restart dhcpd
+      /etc/init.d/dhcpd restart
+
+8.  Build Etherboot floppy disk images and pad to 1.44MB
+      pushd ../../src
+      make bin/rtl8139.dsk
+      ./util/dskpad.pl bin/rtl8139.dsk
+      popd
+
+9.  Start qemu
+      export SDL_VIDEO_X11_DGAMOUSE=0
+      ./qemu/i386-softmmu/qemu -L qemu/pc-bios \
+                              -net nic,model=rtl8139 -net tap,ifname=tap0 \
+                              -boot a -fda ../../src/bin/rtl8139.dsk 
+
+You should see qemu start up, load up Etherboot and attempt to boot
+from the network.
+
+
+
+Serial console
+==============
+
+You can use the program "serial-console" to obtain a virtual serial
+console for Etherboot running within qemu.  Run "./serial-console" on
+a spare tty (e.g. a separate xterm window) before starting qemu, and
+ensure that you have enabled CONSOLE_SERIAL in config.h.
+
+When serial-console starts, it will print out the message "Slave pty
+is /dev/pts/XX", where XX is a number.  You need to append the option
+
+   -serial /dev/pts/XX
+
+to the qemu command line.
+
+There is a manual page for "serial-console"; use "man
+./serial-console.1" to view it.
index d7ba043..873bd61 100644 (file)
@@ -1,4 +1,4 @@
-# You many now use double quotes around pathnames, in case
+# You may now use double quotes around pathnames, in case
 # your pathname includes spaces.
 
 #=======================================================================
 #   svga           use SVGALIB library for Linux, allows graphics without X11
 #   term           text only, uses curses/ncurses library, cross platform
 #   rfb            provides an interface to AT&T's VNC viewer, cross platform
-#   wx             use wxWindows library, cross platform
+#   wx             use wxWidgets library, cross platform
 #   nogui          no display at all
 #
 # NOTE: if you use the "wx" configuration interface, you must also use
 # the "wx" display library.
+#
+# Specific options:
+# Some display libraries now support specific option to control their
+# behaviour. See the examples below for currently supported options.
 #=======================================================================
 #display_library: amigaos
 #display_library: beos
 #display_library: carbon
 #display_library: macintosh
 #display_library: nogui
-#display_library: rfb
-#display_library: sdl
+#display_library: rfb, options="timeout=60" # time to wait for client
+#display_library: sdl, options="fullscreen" # startup in fullscreen mode
 #display_library: term
-#display_library: win32
+#display_library: win32, options="legacyF12" # use F12 to toggle mouse
 #display_library: wx
 #display_library: x
 
 #=======================================================================
 # ROMIMAGE:
-# You now need to load a ROM BIOS into F0000-FFFFF.  I've wiped
-# out most of the BIOS hooks, and replace them with real BIOS
-# support.  Normally, you can use a precompiled BIOS in the bios/
-# directory, named BIOS-bochs-latest. 
+# The ROM BIOS controls what the PC does when it first powers on.
+# Normally, you can use a precompiled BIOS in the source or binary
+# distribution called BIOS-bochs-latest. The ROM BIOS is usually loaded
+# starting at address 0xf0000, and it is exactly 64k long.
+# You can also use the environment variable $BXSHARE to specify the
+# location of the BIOS.
+# The usage of external large BIOS images (up to 512k) at memory top is
+# now supported, but we still recommend to use the BIOS distributed with
+# Bochs. Now the start address can be calculated from image size.
+#=======================================================================
+romimage: file=bochs/bios/BIOS-bochs-latest, address=0xf0000
+#romimage: file=mybios.bin, address=0xfff80000 # 512k at memory top
+#romimage: file=mybios.bin # calculate start address from image size
+
+#=======================================================================
+# CPU:
+# This defines cpu-related parameters inside Bochs:
+#
+#  COUNT:
+#  Set the number of processors:cores per processor:threads per core 
+#  when Bochs is compiled for SMP emulation.
+#  Bochs currently supports up to 8 threads running simultaniosly. 
+#  If Bochs is compiled without SMP support, it won't accept values 
+#  different from 1.
+#
+#  RESET_ON_TRIPLE_FAULT:
+#  Reset the CPU when triple fault occur (highly recommended) rather than
+#  PANIC. Remember that if you trying to continue after triple fault the 
+#  simulation will be completely bogus !
+#
+#  IPS:
+#  Emulated Instructions Per Second.  This is the number of IPS that bochs
+#  is capable of running on your machine. You can recompile Bochs with
+#  --enable-show-ips option enabled, to find your workstation's capability.
+#  Measured IPS value will then be logged into your log file or status bar
+#  (if supported by the gui).
+#
+#  IPS is used to calibrate many time-dependent events within the bochs 
+#  simulation.  For example, changing IPS affects the frequency of VGA
+#  updates, the duration of time before a key starts to autorepeat, and
+#  the measurement of BogoMips and other benchmarks.
+#
+#  Examples:
+#  Machine                                         Mips
+# ________________________________________________________________
+#  2.1Ghz Athlon XP with Linux 2.6/g++ 3.4         12 to 15 Mips
+#  1.6Ghz Intel P4 with Win2000/g++ 3.3             5 to  7 Mips
+#  650Mhz Athlon K-7 with Linux 2.4.4/egcs-2.91.66  2 to  2.5 Mips
+#  400Mhz Pentium II with Linux 2.0.36/egcs-1.0.3   1 to  1.8 Mips
 #=======================================================================
-#romimage: bios/BIOS-bochs-970717a
-#romimage: file=bios/BIOS-bochs-latest, address=0xf0000
-romimage: file=$BXSHARE/BIOS-bochs-latest, address=0xf0000
-#romimage: file=bios/BIOS-bochs-2-processors, address=0xf0000
-#romimage: file=bios/BIOS-bochs-4-processors, address=0xf0000
-#romimage: file=bios/rombios.bin, address=0xf0000
+cpu: count=1, ips=10000000, reset_on_triple_fault=1
 
 #=======================================================================
 # MEGS
-# set this to the default number of Megabytes of memory you want
-# to emulate.  You may also pass the '-megs xyz' option to bochs
-#
-# The default is 32MB, most OS's won't need more than that. 
+# Set the number of Megabytes of physical memory you want to emulate. 
+# The default is 32MB, most OS's won't need more than that.
+# The maximum amount of memory supported is 2048Mb.
 #=======================================================================
 #megs: 256
 #megs: 128
@@ -93,30 +136,44 @@ megs: 32
 # ROM images should not overwrite the rombios (located at
 # F0000-FFFFF) and the videobios (located at C0000-C7FFF).
 # Those ROM images will be initialized by the bios if they contain 
-# the right signature (0x55AA).
-# It can also be a convenient way to upload some arbitary code/data
+# the right signature (0x55AA) and a valid checksum.
+# It can also be a convenient way to upload some arbitrary code/data
 # in the simulation, that can be retrieved by the boot loader
 #=======================================================================
 #optromimage1: file=optionalrom.bin, address=0xd0000
 #optromimage2: file=optionalrom.bin, address=0xd1000
 #optromimage3: file=optionalrom.bin, address=0xd2000
 #optromimage4: file=optionalrom.bin, address=0xd3000
-#optromimage1: file=../../src/bin/ne.zrom, address=0xd0000
-optromimage1: file=../../src/bin/pnic.zrom, address=0xd0000
+optromimage1: file=../../src/bin/pnic.rom, address=0xd0000
+
+#optramimage1: file=/path/file1.img, address=0x0010000
+#optramimage2: file=/path/file2.img, address=0x0020000
+#optramimage3: file=/path/file3.img, address=0x0030000
+#optramimage4: file=/path/file4.img, address=0x0040000
 
 #=======================================================================
 # VGAROMIMAGE
 # You now need to load a VGA ROM BIOS into C0000.
 #=======================================================================
-#vgaromimage: bios/VGABIOS-lgpl-latest
-#vgaromimage: bios/VGABIOS-elpin-2.40
-vgaromimage: $BXSHARE/VGABIOS-elpin-2.40
+#vgaromimage: file=bios/VGABIOS-elpin-2.40
+vgaromimage: file=bochs/bios/VGABIOS-lgpl-latest
+#vgaromimage: file=bios/VGABIOS-lgpl-latest-cirrus
+
+#=======================================================================
+# VGA:
+# Here you can specify the display extension to be used. With the value
+# 'none' you can use standard VGA with no extension. Other supported
+# values are 'vbe' for Bochs VBE and 'cirrus' for Cirrus SVGA support.
+#=======================================================================
+#vga: extension=cirrus
+#vga: extension=vbe
+vga: extension=none
 
 #=======================================================================
 # FLOPPYA:
 # Point this to pathname of floppy image file or device
-# This should be of a bootable floppy(image/device) if you're 
-# booting from 'a'.
+# This should be of a bootable floppy(image/device) if you're
+# booting from 'a' (or 'floppy').
 #
 # You can set the initial status of the media to 'ejected' or 'inserted'.
 #   floppya: 2_88=path, status=ejected             (2.88M 3.5" floppy)
@@ -124,18 +181,24 @@ vgaromimage: $BXSHARE/VGABIOS-elpin-2.40
 #   floppya: 1_2=path, status=ejected              (1.2M  5.25" floppy)
 #   floppya: 720k=path, status=inserted            (720K  3.5" floppy)
 #   floppya: 360k=path, status=inserted            (360K  5.25" floppy)
-#
-# The path should be the name of a disk image file.  On unix, you can use
-# a raw device name such as /dev/fd0 on Linux.  On WinNT and Win2k, use
-# drive letters such as a: or b: as the path.  Raw floppy access is not
-# supported on Windows 95 and 98.
-#=======================================================================
-floppya: 1_44=/dev/fd0, status=inserted
-#floppya: file=../1.44, status=inserted
+#   floppya: 320k=path, status=inserted            (320K  5.25" floppy)
+#   floppya: 180k=path, status=inserted            (180K  5.25" floppy)
+#   floppya: 160k=path, status=inserted            (160K  5.25" floppy)
+#   floppya: image=path, status=inserted           (guess type from image size)
+#
+# The path should be the name of a disk image file.  On Unix, you can use a raw
+# device name such as /dev/fd0 on Linux.  On win32 platforms, use drive letters
+# such as a: or b: as the path.  The parameter 'image' works with image files
+# only. In that case the size must match one of the supported types.
+#=======================================================================
+#floppya: 1_44=/dev/fd0, status=inserted
+#floppya: image=../1.44, status=inserted
 #floppya: 1_44=/dev/fd0H1440, status=inserted
 #floppya: 1_2=../1_2, status=inserted
 #floppya: 1_44=a:, status=inserted
 #floppya: 1_44=a.img, status=inserted
+#floppya: 1_44=/dev/rfd0a, status=inserted
+floppya: 1_44=../../src/bin/pnic.dsk, status=inserted
 
 #=======================================================================
 # FLOPPYB:
@@ -151,34 +214,37 @@ floppyb: 1_44=b.img, status=inserted
 # ata[0-3]: enabled=[0|1], ioaddr1=addr, ioaddr2=addr, irq=number
 # 
 # These options enables up to 4 ata channels. For each channel
-# the two base io address and the irq must be specified.
+# the two base io addresses and the irq must be specified.
 # 
-# ata0 is enabled by default, with ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
+# ata0 and ata1 are enabled by default with the values shown below
 #
 # Examples:
 #   ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
 #   ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
-#   ata2: enabled=1, ioaddr1=0x1e8, ioaddr2=0x3e8, irq=11
-#   ata3: enabled=1, ioaddr1=0x168, ioaddr2=0x368, irq=9
+#   ata2: enabled=1, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
+#   ata3: enabled=1, ioaddr1=0x168, ioaddr2=0x360, irq=9
 #=======================================================================
 ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
-ata1: enabled=0, ioaddr1=0x170, ioaddr2=0x370, irq=15
-ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e8, irq=11
-ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x368, irq=9
+ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
+ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
+ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9
 
 #=======================================================================
 # ATA[0-3]-MASTER, ATA[0-3]-SLAVE
 #
 # This defines the type and characteristics of all attached ata devices:
 #   type=       type of attached device [disk|cdrom] 
+#   mode=       only valid for disks [flat|concat|external|dll|sparse|vmware3]
+#   mode=       only valid for disks [undoable|growing|volatile]
 #   path=       path of the image
 #   cylinders=  only valid for disks
 #   heads=      only valid for disks
 #   spt=        only valid for disks
 #   status=     only valid for cdroms [inserted|ejected]
 #   biosdetect= type of biosdetection [none|auto], only for disks on ata0 [cmos]
-#   translation=type of transation of the bios, only for disks [none|lba|large|rechs|auto]
+#   translation=type of translation of the bios, only for disks [none|lba|large|rechs|auto]
 #   model=      string returned by identify device command
+#   journal=    optional filename of the redolog for undoable and volatile disks
 #   
 # Point this at a hard disk image file, cdrom iso file, or physical cdrom
 # device.  To create a hard disk image, try running bximage.  It will help you
@@ -192,93 +258,35 @@ ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x368, irq=9
 # access the "first" cdrom in the system.  On MacOSX, use path="drive"
 # to access the physical drive.
 #
-# The path, cylinders, heads, and spt are mandatory for type=disk
-# The path is mandatory for type=cdrom
+# The path is always mandatory. For flat hard disk images created with
+# bximage geometry autodetection can be used (cylinders=0 -> cylinders are
+# calculated using heads=16 and spt=63). For other hard disk images and modes
+# the cylinders, heads, and spt are mandatory.
 #
 # Default values are:
-#   biosdetect=auto, translation=auto, model="Generic 1234"
+#   mode=flat, biosdetect=auto, translation=auto, model="Generic 1234"
 #
 # The biosdetect option has currently no effect on the bios
 #
 # Examples:
-#   ata0-master: type=disk, path=10M.sample, cylinders=306, heads=4, spt=17
-#   ata0-slave:  type=disk, path=20M.sample, cylinders=615, heads=4, spt=17
-#   ata1-master: type=disk, path=30M.sample, cylinders=615, heads=6, spt=17
-#   ata1-slave:  type=disk, path=46M.sample, cylinders=940, heads=6, spt=17
-#   ata2-master: type=disk, path=62M.sample, cylinders=940, heads=8, spt=17
-#   ata2-slave:  type=disk, path=112M.sample, cylinders=900, heads=15, spt=17
-#   ata3-master: type=disk, path=483M.sample, cylinders=1024, heads=15, spt=63
+#   ata0-master: type=disk, mode=flat, path=10M.sample, cylinders=306, heads=4, spt=17
+#   ata0-slave:  type=disk, mode=flat, path=20M.sample, cylinders=615, heads=4, spt=17
+#   ata1-master: type=disk, mode=flat, path=30M.sample, cylinders=615, heads=6, spt=17
+#   ata1-slave:  type=disk, mode=flat, path=46M.sample, cylinders=940, heads=6, spt=17
+#   ata2-master: type=disk, mode=flat, path=62M.sample, cylinders=940, heads=8, spt=17
+#   ata2-slave:  type=disk, mode=flat, path=112M.sample, cylinders=900, heads=15, spt=17
+#   ata3-master: type=disk, mode=flat, path=483M.sample, cylinders=1024, heads=15, spt=63
 #   ata3-slave:  type=cdrom, path=iso.sample, status=inserted
 #=======================================================================
-#ata0-master: type=disk, path="30M.sample", cylinders=615, heads=6, spt=17
+#ata0-master: type=disk, mode=flat, path="30M.sample", cylinders=615, heads=6, spt=17
 #ata0-slave: type=cdrom, path=D:, status=inserted
 #ata0-slave: type=cdrom, path=/dev/cdrom, status=inserted
 #ata0-slave: type=cdrom, path="drive", status=inserted
-
-#=======================================================================
-#
-# The DISKC option is deprecated. Use ATA* options instead.
-#
-# DISKC: file=, cyl=, heads=, spt=
-# Point this at a hard disk image file.  To create 
-# a hard disk image, try running bximage.  It will help you choose the
-# size and then suggest a diskc line that works with it.
-#
-# In UNIX it may be possible to use a raw device as a Bochs hard disk, 
-# but WE DON'T RECOMMEND IT.  In Windows there is no easy way.
-#
-# Examples:
-#   diskc: file=10M.sample, cyl=306, heads=4, spt=17
-#   diskc: file=20M.sample, cyl=615, heads=4, spt=17
-#   diskc: file=30M.sample, cyl=615, heads=6, spt=17
-#   diskc: file=46M.sample, cyl=940, heads=6, spt=17
-#   diskc: file=62M.sample, cyl=940, heads=8, spt=17
-#   diskc: file=112M.sample, cyl=900, heads=15, spt=17
-#   diskc: file=483M.sample, cyl=1024, heads=15, spt=63
-#=======================================================================
-#diskc: file="30M.sample", cyl=615, heads=6, spt=17
-
-#=======================================================================
-#
-# The DISKD option is deprecated. Use ATA* options instead.
-#
-# DISKD:
-# See DISKC above for syntax
-#
-# NOTE: diskd and cdromd must not be used together!
-#=======================================================================
-#diskd: file="diskd.img", cyl=615, heads=6, spt=17
-
-#=======================================================================
-#
-# The CDROMD option is deprecated. Use ATA* options instead.
-#
-# CDROMD:
-#
-# cdromd: dev=/dev/cdrom, status=inserted
-# cdromd: dev=/dev/cdrom, status=ejected
-# cdromd: dev=e:, status=ejected
-#
-# In windows, the drive letter + colon notation should be used for cdroms.
-# Depending on versions of windows and drivers, you may only be able to 
-# access the "first" cdrom in the system.  On MacOSX, use path="drive"
-# to access the physical drive.
-#
-# NOTE: diskd and cdromd must not be used together!
-#=======================================================================
-#cdromd: dev=D:, status=inserted
-#cdromd: dev=/dev/cdrom, status=inserted
-#cdromd: dev="drive", status=inserted
-
-#=======================================================================
-# NEWHARDDRIVESUPPORT: enabled=[0|1]
-# As of cvs version on 5/17/2001, newharddrivesupport is on by default.
-#=======================================================================
-#newharddrivesupport: enabled=1
+#ata0-slave: type=cdrom, path=/dev/rcd0d, status=inserted 
 
 #=======================================================================
 # BOOT:
-# This defines your boot drive.  
+# This defines the boot sequence. Now you can specify up to 3 boot drives.
 # You can either boot from 'floppy', 'disk' or 'cdrom'
 # legacy 'a' and 'c' are also supported
 # Examples:
@@ -287,10 +295,43 @@ ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x368, irq=9
 #   boot: cdrom
 #   boot: c
 #   boot: a
+#   boot: cdrom, floppy, disk
 #=======================================================================
 #boot: floppy
 #boot: disk
 
+#=======================================================================
+# CLOCK:
+# This defines the parameters of the clock inside Bochs:
+#
+#  SYNC:
+#  TO BE COMPLETED (see Greg explanation in feature request #536329)
+#
+#  TIME0:
+#  Specifies the start (boot) time of the virtual machine. Use a time 
+#  value as returned by the time(2) system call. If no time0 value is 
+#  set or if time0 equal to 1 (special case) or if time0 equal 'local', 
+#  the simulation will be started at the current local host time.
+#  If time0 equal to 2 (special case) or if time0 equal 'utc',
+#  the simulation will be started at the current utc time.
+#
+# Syntax:
+#  clock: sync=[none|slowdown|realtime|both], time0=[timeValue|local|utc]
+#
+# Example:
+#   clock: sync=none,     time0=local       # Now (localtime)
+#   clock: sync=slowdown, time0=315529200   # Tue Jan  1 00:00:00 1980
+#   clock: sync=none,     time0=631148400   # Mon Jan  1 00:00:00 1990
+#   clock: sync=realtime, time0=938581955   # Wed Sep 29 07:12:35 1999
+#   clock: sync=realtime, time0=946681200   # Sat Jan  1 00:00:00 2000
+#   clock: sync=none,     time0=1           # Now (localtime)
+#   clock: sync=none,     time0=utc         # Now (utc/gmt)
+# 
+# Default value are sync=none, time0=local
+#=======================================================================
+#clock: sync=none, time0=local
+
+
 #=======================================================================
 # FLOPPY_BOOTSIG_CHECK: disabled=[0|1]
 # Enables or disables the 0xaa55 signature check on boot floppies
@@ -304,8 +345,10 @@ floppy_bootsig_check: disabled=0
 
 #=======================================================================
 # LOG:
-# Give the path of the log file you'd like Bochs debug and misc. verbage
-# to be written to.  If you really don't want it, make it /dev/null. :^(
+# Give the path of the log file you'd like Bochs debug and misc. verbiage
+# to be written to. If you don't use this option or set the filename to
+# '-' the output is written to the console. If you really don't want it,
+# make it "/dev/null" (Unix) or "nul" (win32). :^(
 #
 # Examples:
 #   log: ./bochs.out
@@ -319,7 +362,7 @@ log: bochsout.txt
 # This handles the format of the string prepended to each log line.
 # You may use those special tokens :
 #   %t : 11 decimal digits timer tick
-#   %i : 8 hexadecimal digits of cpu0 current eip
+#   %i : 8 hexadecimal digits of cpu current eip (ignored in SMP configuration)
 #   %e : 1 character event type ('i'nfo, 'd'ebug, 'p'anic, 'e'rror)
 #   %d : 5 characters string of the device, between brackets
 # 
@@ -356,6 +399,7 @@ panic: action=ask
 error: action=report
 info: action=report
 debug: action=ignore
+#pass: action=fatal
 
 #=======================================================================
 # DEBUGGER_LOG:
@@ -370,22 +414,33 @@ debug: action=ignore
 debugger_log: -
 
 #=======================================================================
-# com1:
-# This defines a serial (COM) port. You can specify a device to use as com1.
-# This can be a real serial line, or a pty.  To use a pty (under X/Unix),
-# create two windows (xterms, usually).  One of them will run bochs, and the
-# other will act as com1. Find out the tty the com1 window using the `tty'
-# command, and use that as the `dev' parameter.  Then do `sleep 1000000' in
-# the com1 window to keep the shell from messing with things, and run bochs in
-# the other window.  Serial I/O to com1 (port 0x3f8) will all go to the other
-# window.
+# COM1, COM2, COM3, COM4:
+# This defines a serial port (UART type 16550A). In the 'term' you can specify
+# a device to use as com1. This can be a real serial line, or a pty.  To use
+# a pty (under X/Unix), create two windows (xterms, usually).  One of them will
+# run bochs, and the other will act as com1. Find out the tty the com1
+# window using the `tty' command, and use that as the `dev' parameter.
+# Then do `sleep 1000000' in the com1 window to keep the shell from
+# messing with things, and run bochs in the other window.  Serial I/O to
+# com1 (port 0x3f8) will all go to the other window.
+# Other serial modes are 'null' (no input/output), 'file' (output to a file
+# specified as the 'dev' parameter), 'raw' (use the real serial port - under
+# construction for win32), 'mouse' (standard serial mouse - requires
+# mouse option setting 'type=serial' or 'type=serial_wheel') and 'socket'
+# (connect a networking socket).
+#
+# Examples:
+#   com1: enabled=1, mode=null
+#   com1: enabled=1, mode=mouse
+#   com2: enabled=1, mode=file, dev=serial.out
+#   com3: enabled=1, mode=raw, dev=com1
+#   com3: enabled=1, mode=socket, dev=localhost:8888
 #=======================================================================
-#com1: enabled=1, dev=/dev/ttyp9
-#com1: enabled=1, dev=/tmp/serial.log
+#com1: enabled=1, mode=term, dev=/dev/ttyp9
 
 
 #=======================================================================
-# PARPORT1:
+# PARPORT1, PARPORT2:
 # This defines a parallel (printer) port. When turned on and an output file is
 # defined the emulated printer port sends characters printed by the guest OS
 # into the output file. On some platforms a device filename can be used to
@@ -394,7 +449,7 @@ debugger_log: -
 #
 # Examples:
 #   parport1: enabled=1, file="parport.out"
-#   parport1: enabled=1, file="/dev/lp0"
+#   parport2: enabled=1, file="/dev/lp0"
 #   parport1: enabled=0
 #=======================================================================
 parport1: enabled=1, file="parport.out"
@@ -421,15 +476,15 @@ parport1: enabled=1, file="parport.out"
 # log:  The file to write the sb16 emulator messages to.
 # loglevel:
 #      0=no log
-#      1=only midi program and bank changes
+#      1=resource changes, midi program and bank changes
 #      2=severe errors
 #      3=all errors
 #      4=all errors plus all port accesses
 #      5=all errors and port accesses plus a lot of extra info
 # dmatimer:
 #      microseconds per second for a DMA cycle.  Make it smaller to fix
-#      non-continous sound.  750000 is usually a good value.  This needs a
-#      reasonably correct setting for IPS.
+#      non-continuous sound.  750000 is usually a good value.  This needs a
+#      reasonably correct setting for the IPS parameter of the CPU option.
 #
 # For an example look at the next line:
 #=======================================================================
@@ -439,10 +494,10 @@ parport1: enabled=1, file="parport.out"
 #=======================================================================
 # VGA_UPDATE_INTERVAL:
 # Video memory is scanned for updates and screen updated every so many
-# virtual seconds.  The default is 300000, about 3Hz.  This is generally
-# plenty.  Keep in mind that you must tweak the 'ips:' directive
-# to be as close to the number of emulated instructions-per-second
-# your workstation can do, for this to be accurate.
+# virtual seconds.  The default is 40000, about 25Hz. Keep in mind that
+# you must tweak the 'cpu: ips=N' directive to be as close to the number
+# of emulated instructions-per-second your workstation can do, for this
+# to be accurate.
 #
 # Examples:
 #   vga_update_interval: 250000
@@ -479,61 +534,25 @@ keyboard_serial_delay: 250
 keyboard_paste_delay: 100000
 
 #=======================================================================
-# FLOPPY_COMMAND_DELAY:
-# Time in microseconds to wait before completing some floppy commands
-# such as read/write/seek/etc, which normally have a delay associated.
-# I had this hardwired to 50,000 before.
-#
-# Examples:
-#   floppy_command_delay: 50000
-#=======================================================================
-floppy_command_delay: 500
-
-#=======================================================================
-# IPS:
-# Emulated Instructions Per Second.  This is the number of IPS that bochs
-# is capable of running on your machine.  Read the note in config.h
-# on how to find this.  Make sure to recompile after.
-#
-# IPS is used to calibrate many time-dependent events within the bochs 
-# simulation.  For example, changing IPS affects the frequency of VGA
-# updates, the duration of time before a key starts to autorepeat, and 
-# the measurement of BogoMips and other benchmarks.
-#
-# Examples:
-# Machine                                         Mips
-# ________________________________________________________________
-# 650Mhz Athlon K-7 with Linux 2.4.4/egcs-2.91.66 2 to 2.5 Mips
-# 400Mhz Pentium II with Linux 2.0.36/egcs-1.0.3  1 to 1.8 Mips
-# 166Mhz 64bit Sparc with Solaris 2.x             approx 0.75 Mips
-# 200Mhz Pentium with Linux 2.x                   approx 0.5 Mips
-#
-#=======================================================================
-ips: 1000000
-
-#=======================================================================
-# PIT:
-# The PIT is the programmable interval timer.  It has an option that tries to
-# keep the PIT in sync with real time.  This feature is still experimental,
-# but it may be useful if you want to prevent Bochs from running too fast, for
-# example a DOS video game.  Be aware that with the realtime pit option, your
-# simulation will not be repeatable; this can a problem if you are debugging.
-#=======================================================================
-#pit: realtime=1
-
-#=======================================================================
-# mouse: Not used in any of the GUI specific modules, but the option
-#        bx_options.mouse_enabled is set to this value.  The idea,
-#        is that the GUI code should not generate mouse events when
-#        not enabled.  The hardware emualation itself is not disabled
-#        by this.  This is to facilitate deterministic runs of bochs.
+# MOUSE: 
+# This option prevents Bochs from creating mouse "events" unless a mouse
+# is  enabled. The hardware emulation itself is not disabled by this.
+# You can turn the mouse on by setting enabled to 1, or turn it off by
+# setting enabled to 0. Unless you have a particular reason for enabling
+# the mouse by default, it is recommended that you leave it off.
+# You can also toggle the mouse usage at runtime (control key + middle
+# mouse button on X11, SDL, wxWidgets and Win32).
+# With the mouse type option you can select the type of mouse to emulate.
+# The default value is 'ps2'. The other choices are 'imps2' (wheel mouse
+# on PS/2), 'serial', 'serial_wheel' (one com port requires setting
+# 'mode=mouse') and 'usb' (3-button mouse - one of the USB ports must be
+# connected with the 'mouse' device - requires PCI and USB support).
 #
 # Examples:
 #   mouse: enabled=1
+#   mouse: enabled=1, type=imps2
+#   mouse: enabled=1, type=serial
 #   mouse: enabled=0
-#
-# I wouldn't recommend enabling the mouse by default, unless you have a
-# really good reason to do so.
 #=======================================================================
 mouse: enabled=0
 
@@ -559,8 +578,8 @@ private_colormap: enabled=0
 #   fullscreen: enabled=0
 #   fullscreen: enabled=1
 #=======================================================================
-fullscreen: enabled=0
-screenmode: name="sample"
+#fullscreen: enabled=0
+#screenmode: name="sample"
 
 #=======================================================================
 # ne2k: NE2000 compatible ethernet adapter
@@ -583,24 +602,35 @@ screenmode: name="sample"
 # Niclist source code is in misc/niclist.c and it is included in Windows 
 # binary releases.
 #
-# script: The script value is optionnal, and is the name of a script that 
+# script: The script value is optional, and is the name of a script that 
 # is executed after bochs initialize the network interface. You can use 
 # this script to configure this network interface, or enable masquerading.
 # This is mainly useful for the tun/tap devices that only exist during
 # Bochs execution. The network interface name is supplied to the script
 # as first parameter
-#=======================================================================
-# ne2k: ioaddr=0x280, irq=9, mac=b0:c4:20:00:00:00, ethmod=fbsd, ethdev=xl0
-# ne2k: ioaddr=0x280, irq=9, mac=b0:c4:20:00:00:00, ethmod=linux, ethdev=eth0
-# ne2k: ioaddr=0x280, irq=9, mac=b0:c4:20:00:00:01, ethmod=win32, ethdev=MYCARD
-# ne2k: ioaddr=0x280, irq=9, mac=fe:fd:00:00:00:01, ethmod=tap, ethdev=tap0
-# ne2k: ioaddr=0x280, irq=9, mac=fe:fd:00:00:00:01, ethmod=tuntap, ethdev=tun0, script=./ifup.tun
-# ne2k: ioaddr=0x280, irq=9, mac=fe:fd:00:00:00:01, ethmod=tuntap, ethdev=tun0
-
-# Pseudo NIC adaptor.  The way bochs is structured at the moment means
-# that you need to enable ne2k support in order to compile in any of
-# the networking code.
-pnic: ioaddr=0xdc00, irq=11, mac=fe:fd:00:00:00:01, ethmod=tuntap, ethdev=tun1, script=./ifup.tun
+#
+# If you don't want to make connections to any physical networks,
+# you can use the following 'ethmod's to simulate a virtual network.
+#   null: All packets are discarded, but logged to a few files.
+#   arpback: ARP is simulated. Disabled by default.
+#   vde:  Virtual Distributed Ethernet
+#   vnet: ARP, ICMP-echo(ping), DHCP and read/write TFTP are simulated.
+#         The virtual host uses 192.168.10.1.
+#         DHCP assigns 192.168.10.2 to the guest.
+#         TFTP uses the ethdev value for the root directory and doesn't
+#         overwrite files.
+#
+#=======================================================================
+# ne2k: ioaddr=0x240, irq=9, mac=fe:fd:00:00:00:01, ethmod=fbsd, ethdev=en0 #macosx
+# ne2k: ioaddr=0x240, irq=9, mac=b0:c4:20:00:00:00, ethmod=fbsd, ethdev=xl0
+# ne2k: ioaddr=0x240, irq=9, mac=b0:c4:20:00:00:00, ethmod=linux, ethdev=eth0
+# ne2k: ioaddr=0x240, irq=9, mac=b0:c4:20:00:00:01, ethmod=win32, ethdev=MYCARD
+# ne2k: ioaddr=0x240, irq=9, mac=fe:fd:00:00:00:01, ethmod=tap, ethdev=tap0
+# ne2k: ioaddr=0x240, irq=9, mac=fe:fd:00:00:00:01, ethmod=tuntap, ethdev=/dev/net/tun0, script=./tunconfig
+# ne2k: ioaddr=0x240, irq=9, mac=b0:c4:20:00:00:01, ethmod=null, ethdev=eth0
+# ne2k: ioaddr=0x240, irq=9, mac=b0:c4:20:00:00:01, ethmod=vde, ethdev="/tmp/vde.ctl"
+# ne2k: ioaddr=0x240, irq=9, mac=b0:c4:20:00:00:01, ethmod=vnet, ethdev="c:/temp"
+pnic: mac=fe:fd:00:00:00:01, ethmod=tuntap, ethdev=/dev/net/tun:tap0
 
 #=======================================================================
 # KEYBOARD_MAPPING:
@@ -628,31 +658,90 @@ keyboard_mapping: enabled=0, map=
 #=======================================================================
 # USER_SHORTCUT:
 # This defines the keyboard shortcut to be sent when you press the "user"
-# button in the headerbar. The shortcut string can be a combination of
-# these key names: "alt", "ctrl", "del", "esc", "f1", "f4", "tab", "win".
-# Up to 3 keys can be pressed at a time.
+# button in the headerbar. The shortcut string is a combination of maximum
+# 3 key names (listed below) separated with a '-' character. The old-style
+# syntax (without the '-') still works for the key combinations supported
+# in Bochs 2.2.1.
+# Valid key names:
+# "alt", "bksl", "bksp", "ctrl", "del", "down", "end", "enter", "esc",
+# "f1", ... "f12", "home", "ins", "left", "menu", "minus", "pgdwn", "pgup",
+# "plus", "right", "shift", "space", "tab", "up", and "win".
 #
 # Example:
-#   user_shortcut: keys=ctrlaltdel
+#   user_shortcut: keys=ctrl-alt-del
 #=======================================================================
-user_shortcut: keys=ctrlaltdel
+user_shortcut: keys=ctrl-alt-del
+
+#=======================================================================
+# I440FXSUPPORT:
+# This option controls the presence of the i440FX PCI chipset. You can
+# also specify the devices connected to PCI slots. Up to 5 slots are
+# available now. These devices are currently supported: ne2k, pcivga,
+# pcidev and pcipnic. If Bochs is compiled with Cirrus SVGA support
+# you'll have the additional choice 'cirrus'.
+#
+# Example:
+#   i440fxsupport: enabled=1, slot1=pcivga, slot2=ne2k
+#=======================================================================
+i440fxsupport: enabled=1, slot1=pcipnic
+
+#=======================================================================
+# USB1:
+# This option controls the presence of the USB root hub which is a part
+# of the i440FX PCI chipset. With the portX option you can connect devices
+# to the hub (currently supported: 'mouse' and 'keypad'). If you connect
+# the mouse to one of the ports and use the mouse option 'type=usb' you'll
+# have a 3-button USB mouse.
+#
+# Example:
+#   usb1: enabled=1, port1=mouse, port2=keypad
+#=======================================================================
+#usb1: enabled=1
+
+#=======================================================================
+# CMOSIMAGE:
+# This defines image file that can be loaded into the CMOS RAM at startup.
+# The rtc_init parameter controls whether initialize the RTC with values stored
+# in the image. By default the time0 argument given to the clock option is used.
+# With 'rtc_init=image' the image is the source for the initial time.
+#
+# Example:
+#   cmosimage: file=cmos.img, rtc_init=image
+#=======================================================================
+#cmosimage: file=cmos.img, rtc_init=time0
 
 #=======================================================================
 # other stuff
 #=======================================================================
 magic_break: enabled=1
-
 #load32bitOSImage: os=nullkernel, path=../kernel.img, iolog=../vga_io.log
 #load32bitOSImage: os=linux, path=../linux.img, iolog=../vga_io.log, initrd=../initrd.img
-i440fxsupport: enabled=1
-#time0: 938581955
+#text_snapshot_check: enable
+
+#-------------------------
+# PCI host device mapping
+#-------------------------
+#pcidev: vendor=0x1234, device=0x5678
+
+#=======================================================================
+# GDBSTUB:
+# Enable GDB stub. See user documentation for details.
+# Default value is enabled=0.
+#=======================================================================
+#gdbstub: enabled=0, port=1234, text_base=0, data_base=0, bss_base=0
+
+#=======================================================================
+# IPS:
+# The IPS directive is DEPRECATED. Use the parameter IPS of the CPU
+# directive instead.
+#=======================================================================
+#ips: 10000000
 
 #=======================================================================
 # for Macintosh, use the style of pathnames in the following
 # examples.
 #
-# vgaromimage: :bios:VGABIOS-elpin-2.20
-# romimage: file=:bios:BIOS-bochs-981222a, address=0xf0000
+# vgaromimage: :bios:VGABIOS-elpin-2.40
+# romimage: file=:bios:BIOS-bochs-latest, address=0xf0000
 # floppya: 1_44=[fd:], status=inserted
 #=======================================================================
-
diff --git a/contrib/bochs/ifup.tun b/contrib/bochs/ifup.tun
deleted file mode 100755 (executable)
index 8e2ede2..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-SCRIPT=$0
-INTERFACE=$1
-
-if [ `id -u` != 0 ]; then
-    echo ""
-    echo "Enter root password for configuring network interface $INTERFACE"
-    echo "(To avoid this prompt, make the script $SCRIPT setuid-root)"
-    /bin/su -c "$SCRIPT $INTERFACE" || exit 1
-    exit 0
-fi
-
-/sbin/ifconfig $INTERFACE 10.254.254.2 netmask 255.255.255.252
-
-# Force dhcpd to notice the new network interface
-if [ -x /etc/init.d/dhcpd ]; then
-  /etc/init.d/dhcpd reload # Redhat
-elif [ -x /etc/init.d/dhcp ]; then
-  /etc/init.d/dhcp restart # Debian
-fi
diff --git a/contrib/bochs/qemu-patch b/contrib/bochs/qemu-patch
new file mode 100644 (file)
index 0000000..5fb6c09
--- /dev/null
@@ -0,0 +1,26 @@
+Index: qemu/cpu-exec.c
+===================================================================
+RCS file: /sources/qemu/qemu/cpu-exec.c,v
+retrieving revision 1.84
+diff -u -r1.84 cpu-exec.c
+--- qemu/cpu-exec.c    29 Jul 2006 19:09:31 -0000      1.84
++++ qemu/cpu-exec.c    28 Aug 2006 01:54:15 -0000
+@@ -788,6 +788,18 @@
+                     cpu_loop_exit();
+                 }
+ #endif
++#if 1
++#define MIN_CYCLE_COUNT 100
++              {
++                    static int cycle_count;
++                
++                  if (++cycle_count > MIN_CYCLE_COUNT) {
++                        cycle_count = 0;
++                        env->exception_index = EXCP_INTERRUPT;
++                        cpu_loop_exit();
++                    }
++              }
++#endif
+             }
+         } else {
+             env_to_regs();
index 3ea877c..cc4fd00 100755 (executable)
@@ -142,7 +142,7 @@ sub patch_bochsrc {
       or die "Could not back up $active to $backup: $!\n";
 
   # Derive line to be inserted
-  my $patch = "com1: enabled=1, dev=$pty\n";
+  my $patch = "com1: enabled=1, mode=term, dev=$pty\n";
 
   # Modify file
   open my $old, "<$backup" or die "Could not open $backup: $!\n";
diff --git a/contrib/bochs/tunctl.c b/contrib/bochs/tunctl.c
new file mode 100644 (file)
index 0000000..6e43906
--- /dev/null
@@ -0,0 +1,113 @@
+/* Copyright 2002 Jeff Dike
+ * Licensed under the GPL
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <pwd.h>
+#include <net/if.h>
+#include <sys/ioctl.h>
+#include <linux/if_tun.h>
+
+static void Usage(char *name)
+{
+  fprintf(stderr, "Create: %s [-b] [-u owner] [-t device-name] "
+         "[-f tun-clone-device]\n", name);
+  fprintf(stderr, "Delete: %s -d device-name [-f tun-clone-device]\n\n", 
+         name);
+  fprintf(stderr, "The default tun clone device is /dev/net/tun - some systems"
+         " use\n/dev/misc/net/tun instead\n\n");
+  fprintf(stderr, "-b will result in brief output (just the device name)\n");
+  exit(1);
+}
+
+int main(int argc, char **argv)
+{
+  struct ifreq ifr;
+  struct passwd *pw;
+  long owner = geteuid();
+  int tap_fd, opt, delete = 0, brief = 0;
+  char *tun = "", *file = "/dev/net/tun", *name = argv[0], *end;
+
+  while((opt = getopt(argc, argv, "bd:f:t:u:")) > 0){
+    switch(opt) {
+      case 'b':
+        brief = 1;
+        break;
+      case 'd':
+        delete = 1;
+       tun = optarg;
+        break;
+      case 'f':
+       file = optarg;
+       break;
+      case 'u':
+       pw = getpwnam(optarg);
+       if(pw != NULL){
+         owner = pw->pw_uid;
+         break;
+       }
+        owner = strtol(optarg, &end, 0);
+       if(*end != '\0'){
+         fprintf(stderr, "'%s' is neither a username nor a numeric uid.\n",
+                 optarg);
+         Usage(name);
+       }
+        break;
+      case 't':
+        tun = optarg;
+        break;
+      case 'h':
+      default:
+        Usage(name);
+    }
+  }
+
+  argv += optind;
+  argc -= optind;
+
+  if(argc > 0)
+    Usage(name);
+
+  if((tap_fd = open(file, O_RDWR)) < 0){
+    fprintf(stderr, "Failed to open '%s' : ", file);
+    perror("");
+    exit(1);
+  }
+
+  memset(&ifr, 0, sizeof(ifr));
+
+  ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
+  strncpy(ifr.ifr_name, tun, sizeof(ifr.ifr_name) - 1);
+  if(ioctl(tap_fd, TUNSETIFF, (void *) &ifr) < 0){
+    perror("TUNSETIFF");
+    exit(1);
+  }
+
+  if(delete){
+    if(ioctl(tap_fd, TUNSETPERSIST, 0) < 0){
+      perror("TUNSETPERSIST");
+      exit(1);
+    }    
+    printf("Set '%s' nonpersistent\n", ifr.ifr_name);
+  }
+  else {
+    if(ioctl(tap_fd, TUNSETPERSIST, 1) < 0){
+      perror("TUNSETPERSIST");
+      exit(1);
+    }
+    if(ioctl(tap_fd, TUNSETOWNER, owner) < 0){
+      perror("TUNSETPERSIST");
+      exit(1);
+    } 
+    if(brief)
+      printf("%s\n", ifr.ifr_name);
+    else printf("Set '%s' persistent and owned by uid %ld\n", ifr.ifr_name, 
+               owner);
+  }
+  return(0);
+}
index 74d3ce1..94f8f6a 100644 (file)
@@ -3,8 +3,8 @@ mkinitrd-net ChangeLog
 Last Modified: Fri Jul 26 23:08:28 2002
 
 $Log$
-Revision 1.1.1.1  2005/05/17 16:45:02  mcb30
-Import from Etherboot 5.4
+Revision 1.1  2005/05/17 16:45:02  mcb30
+Initial revision
 
 Revision 1.1  2002/11/06 06:31:06  ken_yap
 Contributed by Michael Brown.
diff --git a/eb.png b/eb.png
deleted file mode 100644 (file)
index 544c841..0000000
Binary files a/eb.png and /dev/null differ
diff --git a/index-berlios.html b/index-berlios.html
deleted file mode 100644 (file)
index 354d6c1..0000000
+++ /dev/null
@@ -1,254 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1st April 2002), see www.w3.org">
-<title>Welcome to EtherBoot.org</title>
-<meta http-equiv="Content-Type" content=
-"text/html; charset=iso-8859-1">
-<link rel=StyleSheet href="style.css" type="text/css"/>
-</head>
-<body>
-<table summary="welcome" width="95%" border="0" cellspacing="0"
-cellpadding="3" align="center">
-<tr bgcolor="#0F3161">
-<td width="278" bgcolor="#0F3161" valign="bottom">
-<h2 class="c1">Welcome to the</h2>
-</td>
-<td bgcolor="#0F3161">
-</td>
-<td></td>
-</tr>
-
-<tr>
-<td bgcolor="#BFCBD9">
-<div class="c2">EtherBoot Project</div>
-</td>
-<td align="middle">
-<div class="c2">
-<a href="http://osdir.com/Article198.phtml"><img src=
-"http://www.osdir.com/images/2003osdirwinnerbadge.gif" width=
-"125" height="65" border="0" alt="OSDir 2003 Winner Badge"></a>
-</div>
-</td>
-<td bgcolor="#BFCBD9">
-<div class="c4"><a href="index.html" class="c3"><img src=
-"doc/html/images/etherboot_logo.png" alt="Etherboot logo" width=
-"125" height="54" border="0"></a></div>
-</td>
-</tr>
-</table>
-
-<table summary="index" width="95%" border="0" cellspacing="0"
-cellpadding="0" align="center">
-<tr>
-<td bgcolor="#0F3161" width="165" height="56" valign="top">
-<table summary="index.html" width="100%" border="0" cellspacing=
-"10" cellpadding="0" align="right">
-<tr>
-<td height="45">
-<div class="c4"><a href="index.html" class=
-"c5"><b>Home</b></a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href="http://sourceforge.net/projects/etherboot" class=
-"c3">Sourceforge project home</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href="http://developer.berlios.de/projects/etherboot" class=
-"c3">Berlios project mirror</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href="http://sourceforge.net/news/?group_id=4233" class=
-"c3">News</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href="doc/html/documentation.html" class=
-"c3">Documentation</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href="http://wiki.etherboot.org" class=
-"c3">Wiki</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href="http://rom-o-matic.net/" class=
-"c3">Make ROMs</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href="http://sourceforge.net/project/showfiles.php?group_id=4233" class=
-"c3">Download source from Sourceforge</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href="http://etherboot.berlios.de/dist/" class=
-"c3">Download source from Berlios (Germany)</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href="doc/html/contributing.html" class=
-"c3">Volunteering</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href="http://sourceforge.net/mail/?group_id=4233" class=
-"c3">Mailing Lists</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href=
-"http://etherboot.sourceforge.net/relatedlinks.html" class=
-"c3">Related Links</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href=
-"http://etherboot.sourceforge.net/clinks.html" class=
-"c3">Commercial Links</a></div>
-</td>
-</tr>
-</table>
-</td>
-<td width="700" height="56" bgcolor="#FFFFFF" valign="top" align=
-"left">
-<blockquote>
-<h2 class="c6">About EtherBoot</h2>
-
-<p class="c7">Etherboot is a software package for creating ROM
-images that can download code over an Ethernet network to be
-executed on an x86 computer. Many network adapters have a socket
-where a ROM chip can be installed. Etherboot is code that can be
-put in such a ROM. Etherboot is normally used for for booting PCs
-diskless. This is useful in various situations, for example:</p>
-
-<ul class="c11">
-<li>An X-terminal.</li>
-
-<li>Clusters of compute servers.</li>
-
-<li>Routers.</li>
-
-<li>Various kinds of remote servers, e.g. a tape drive server that
-can be accessed with the RMT protocol.</li>
-
-<li>Machines doing tasks in environments unfriendly to disks.</li>
-
-<li>A user platform where remote partitions are mounted over the
-network and you are willing to accept the lower speed compared to
-disk.</li>
-
-<li>Maintaining software for a cluster of equally configured
-workstations centrally.</li>
-</ul>
-
-<p class="c7">Etherboot can boot computers faster than from a disk
-because there are no delays in spinning up disks, etc. A moment's
-calculation will show that even with a 10Mbit Ethernet, sending a
-500kB kernel will take only a couple of seconds typically. With
-100Mbit Ethernet it gets even better.</p>
-
-<p class="c7">Compared to booting from solid-state devices, e.g.
-Flash disks, Etherboot has the advantage of centralising software
-adminstration, the tradeoff being the dependence on a server. This
-can be partly alleviated by providing redundant servers.</p>
-
-<p class="c7">Etherboot can work with RAM disks, NFS filesystems,
-or even local disks, if desired. It's a component technology and
-can be combined with other technologies to do things the way you
-want.</p>
-
-<p class="c7">Etherboot is usually used to load Linux, FreeBSD or
-DOS. However the protocol and boot file formats are general, so
-there is no reason why it could not be used to load arbitrary
-images to a PC, including other OSes.</p>
-
-<p class="c7">Etherboot is Open Source under the GNU General Public
-License Version 2 (GPL2).</p>
-
-<p class="c7">The components needed by Etherboot are</p>
-
-<ul class="c11">
-<li>A bootstrap loader, usually in an EPROM on a network card, or
-installed in the flash BIOS, but could be put anywhere in the
-address space the BIOS probes in. For testing this could be put on
-a floppy disk or a hard disk partition. Some configurations may
-even be always run from a floppy disk (e.g. temporary testing
-setups or pedagogic uses).</li>
-
-<li>A DHCP or bootp server, for returning an IP address and other
-information when sent a MAC (Ethernet card) address.</li>
-
-<li>A tftp server, for sending the kernel images and other files
-required in the boot process. Alternatively, Etherboot can boot
-from an NFS mount.</li>
-
-<li>A Linux or FreeBSD kernel.</li>
-
-<li>Optionally, a NFS server, for providing the disk partitions
-that will be mounted if Linux or FreeBSD is being booted.</li>
-
-<li>Optionally, a RAM disk contained in the loaded image. This can
-be the initial RAM disk if desired.</li>
-
-<li>Software tools for building the download image, and tools for
-debugging.</li>
-</ul>
-</blockquote>
-
-</td>
-<td width="12" height="56" bgcolor="#0F3161"></td>
-</tr>
-</table>
-
-<table summary="pad" width="95%" border="0" cellspacing="0"
-cellpadding="0" align="center">
-<tr>
-<td height="5" bgcolor="#BFCBD9">&nbsp;</td>
-</tr>
-</table>
-
-<table summary="sponsor" width="95%" border="0" cellspacing="3"
-cellpadding="0" align="center" bgcolor="#0F3161">
-<tr>
-<td valign="middle" width="81">
-<div class="c10">Hosted by</div>
-</td>
-<td valign="middle" width="610"><a href="http://developer.berlios.de"><img
-src=
-"http://developer.berlios.de/sflogo.php?group_id=190&amp;type=1"
-width="118" height="52" border="0" alt="BerliOS Logo"></a> </td>
-</tr>
-</table>
-</body>
-</html>
-
diff --git a/index.html b/index.html
deleted file mode 100644 (file)
index 653ea4e..0000000
+++ /dev/null
@@ -1,254 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1st April 2002), see www.w3.org">
-<title>Welcome to EtherBoot.org</title>
-<meta http-equiv="Content-Type" content=
-"text/html; charset=iso-8859-1">
-<link rel=StyleSheet href="style.css" type="text/css"/>
-</head>
-<body>
-<table summary="welcome" width="95%" border="0" cellspacing="0"
-cellpadding="3" align="center">
-<tr bgcolor="#0F3161">
-<td width="278" bgcolor="#0F3161" valign="bottom">
-<h2 class="c1">Welcome to the</h2>
-</td>
-<td bgcolor="#0F3161">
-</td>
-<td></td>
-</tr>
-
-<tr>
-<td bgcolor="#BFCBD9">
-<div class="c2">EtherBoot Project</div>
-</td>
-<td align="middle">
-<div class="c2">
-<a href="http://osdir.com/Article198.phtml"><img src=
-"http://www.osdir.com/images/2003osdirwinnerbadge.gif" width=
-"125" height="65" border="0" alt="OSDir 2003 Winner Badge"></a>
-</div>
-</td>
-<td bgcolor="#BFCBD9">
-<div class="c4"><a href="index.html" class="c3"><img src=
-"doc/html/images/etherboot_logo.png" alt="Etherboot logo" width=
-"125" height="54" border="0"></a></div>
-</td>
-</tr>
-</table>
-
-<table summary="index" width="95%" border="0" cellspacing="0"
-cellpadding="0" align="center">
-<tr>
-<td bgcolor="#0F3161" width="165" height="56" valign="top">
-<table summary="index.html" width="100%" border="0" cellspacing=
-"10" cellpadding="0" align="right">
-<tr>
-<td height="45">
-<div class="c4"><a href="index.html" class=
-"c5"><b>Home</b></a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href="http://sourceforge.net/projects/etherboot" class=
-"c3">Sourceforge project home</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href="http://developer.berlios.de/projects/etherboot" class=
-"c3">Berlios project mirror</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href="http://sourceforge.net/news/?group_id=4233" class=
-"c3">News</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href="doc/html/documentation.html" class=
-"c3">Documentation</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href="http://wiki.etherboot.org" class=
-"c3">Wiki</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href="http://rom-o-matic.net/" class=
-"c3">Make ROMs</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href="http://sourceforge.net/project/showfiles.php?group_id=4233" class=
-"c3">Download source from Sourceforge</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href="http://etherboot.berlios.de/dist/" class=
-"c3">Download source from Berlios (Germany)</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href="doc/html/contributing.html" class=
-"c3">Volunteering</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href="http://sourceforge.net/mail/?group_id=4233" class=
-"c3">Mailing Lists</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href=
-"http://etherboot.sourceforge.net/relatedlinks.html" class=
-"c3">Related Links</a></div>
-</td>
-</tr>
-
-<tr>
-<td height="45">
-<div class="c4"><a href=
-"http://etherboot.sourceforge.net/clinks.html" class=
-"c3">Commercial Links</a></div>
-</td>
-</tr>
-</table>
-</td>
-<td width="700" height="56" bgcolor="#FFFFFF" valign="top" align=
-"left">
-<blockquote>
-<h2 class="c6">About EtherBoot</h2>
-
-<p class="c7">Etherboot is a software package for creating ROM
-images that can download code over an Ethernet network to be
-executed on an x86 computer. Many network adapters have a socket
-where a ROM chip can be installed. Etherboot is code that can be
-put in such a ROM. Etherboot is normally used for for booting PCs
-diskless. This is useful in various situations, for example:</p>
-
-<ul class="c11">
-<li>An X-terminal.</li>
-
-<li>Clusters of compute servers.</li>
-
-<li>Routers.</li>
-
-<li>Various kinds of remote servers, e.g. a tape drive server that
-can be accessed with the RMT protocol.</li>
-
-<li>Machines doing tasks in environments unfriendly to disks.</li>
-
-<li>A user platform where remote partitions are mounted over the
-network and you are willing to accept the lower speed compared to
-disk.</li>
-
-<li>Maintaining software for a cluster of equally configured
-workstations centrally.</li>
-</ul>
-
-<p class="c7">Etherboot can boot computers faster than from a disk
-because there are no delays in spinning up disks, etc. A moment's
-calculation will show that even with a 10Mbit Ethernet, sending a
-500kB kernel will take only a couple of seconds typically. With
-100Mbit Ethernet it gets even better.</p>
-
-<p class="c7">Compared to booting from solid-state devices, e.g.
-Flash disks, Etherboot has the advantage of centralising software
-adminstration, the tradeoff being the dependence on a server. This
-can be partly alleviated by providing redundant servers.</p>
-
-<p class="c7">Etherboot can work with RAM disks, NFS filesystems,
-or even local disks, if desired. It's a component technology and
-can be combined with other technologies to do things the way you
-want.</p>
-
-<p class="c7">Etherboot is usually used to load Linux, FreeBSD or
-DOS. However the protocol and boot file formats are general, so
-there is no reason why it could not be used to load arbitrary
-images to a PC, including other OSes.</p>
-
-<p class="c7">Etherboot is Open Source under the GNU General Public
-License Version 2 (GPL2).</p>
-
-<p class="c7">The components needed by Etherboot are</p>
-
-<ul class="c11">
-<li>A bootstrap loader, usually in an EPROM on a network card, or
-installed in the flash BIOS, but could be put anywhere in the
-address space the BIOS probes in. For testing this could be put on
-a floppy disk or a hard disk partition. Some configurations may
-even be always run from a floppy disk (e.g. temporary testing
-setups or pedagogic uses).</li>
-
-<li>A DHCP or bootp server, for returning an IP address and other
-information when sent a MAC (Ethernet card) address.</li>
-
-<li>A tftp server, for sending the kernel images and other files
-required in the boot process. Alternatively, Etherboot can boot
-from an NFS mount.</li>
-
-<li>A Linux or FreeBSD kernel.</li>
-
-<li>Optionally, a NFS server, for providing the disk partitions
-that will be mounted if Linux or FreeBSD is being booted.</li>
-
-<li>Optionally, a RAM disk contained in the loaded image. This can
-be the initial RAM disk if desired.</li>
-
-<li>Software tools for building the download image, and tools for
-debugging.</li>
-</ul>
-</blockquote>
-
-</td>
-<td width="12" height="56" bgcolor="#0F3161"></td>
-</tr>
-</table>
-
-<table summary="pad" width="95%" border="0" cellspacing="0"
-cellpadding="0" align="center">
-<tr>
-<td height="5" bgcolor="#BFCBD9">&nbsp;</td>
-</tr>
-</table>
-
-<table summary="sponsor" width="95%" border="0" cellspacing="3"
-cellpadding="0" align="center" bgcolor="#0F3161">
-<tr>
-<td valign="middle" width="81">
-<div class="c10">Hosted by</div>
-</td>
-<td valign="middle" width="610"><a href="http://sourceforge.net"><img src=
-"http://sourceforge.net/sflogo.php?group_id=4233&amp;type=1" width=
-"88" height="31" border="0" alt="SourceForge Logo"></a>
-</td>
-</tr>
-</table>
-</body>
-</html>
-
diff --git a/index.xhtml b/index.xhtml
deleted file mode 100644 (file)
index f5f0e41..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<blockquote>
-<h2 class="c6">About EtherBoot</h2>
-
-<p class="c7">Etherboot is a software package for creating ROM
-images that can download code over an Ethernet network to be
-executed on an x86 computer. Many network adapters have a socket
-where a ROM chip can be installed. Etherboot is code that can be
-put in such a ROM. Etherboot is normally used for for booting PCs
-diskless. This is useful in various situations, for example:</p>
-
-<ul class="c11">
-<li>An X-terminal.</li>
-
-<li>Clusters of compute servers.</li>
-
-<li>Routers.</li>
-
-<li>Various kinds of remote servers, e.g. a tape drive server that
-can be accessed with the RMT protocol.</li>
-
-<li>Machines doing tasks in environments unfriendly to disks.</li>
-
-<li>A user platform where remote partitions are mounted over the
-network and you are willing to accept the lower speed compared to
-disk.</li>
-
-<li>Maintaining software for a cluster of equally configured
-workstations centrally.</li>
-</ul>
-
-<p class="c7">Etherboot can boot computers faster than from a disk
-because there are no delays in spinning up disks, etc. A moment's
-calculation will show that even with a 10Mbit Ethernet, sending a
-500kB kernel will take only a couple of seconds typically. With
-100Mbit Ethernet it gets even better.</p>
-
-<p class="c7">Compared to booting from solid-state devices, e.g.
-Flash disks, Etherboot has the advantage of centralising software
-adminstration, the tradeoff being the dependence on a server. This
-can be partly alleviated by providing redundant servers.</p>
-
-<p class="c7">Etherboot can work with RAM disks, NFS filesystems,
-or even local disks, if desired. It's a component technology and
-can be combined with other technologies to do things the way you
-want.</p>
-
-<p class="c7">Etherboot is usually used to load Linux, FreeBSD or
-DOS. However the protocol and boot file formats are general, so
-there is no reason why it could not be used to load arbitrary
-images to a PC, including other OSes.</p>
-
-<p class="c7">Etherboot is Open Source under the GNU General Public
-License Version 2 (GPL2).</p>
-
-<p class="c7">The components needed by Etherboot are</p>
-
-<ul class="c11">
-<li>A bootstrap loader, usually in an EPROM on a network card, or
-installed in the flash BIOS, but could be put anywhere in the
-address space the BIOS probes in. For testing this could be put on
-a floppy disk or a hard disk partition. Some configurations may
-even be always run from a floppy disk (e.g. temporary testing
-setups or pedagogic uses).</li>
-
-<li>A DHCP or bootp server, for returning an IP address and other
-information when sent a MAC (Ethernet card) address.</li>
-
-<li>A tftp server, for sending the kernel images and other files
-required in the boot process. Alternatively, Etherboot can boot
-from an NFS mount.</li>
-
-<li>A Linux or FreeBSD kernel.</li>
-
-<li>Optionally, a NFS server, for providing the disk partitions
-that will be mounted if Linux or FreeBSD is being booted.</li>
-
-<li>Optionally, a RAM disk contained in the loaded image. This can
-be the initial RAM disk if desired.</li>
-
-<li>Software tools for building the download image, and tools for
-debugging.</li>
-</ul>
-</blockquote>
index ca069c7..aa11dd3 100644 (file)
 #
 #      Obscure options you probably don't need to touch:
 #
+#      -DZPXE_SUFFIX_STRIP
+#                      If the last 5 characters of the filename passed to Etherboot is
+#                      ".zpxe" then strip it off. This is useful in cases where a DHCP server
+#                      is not able to be configured to support conditionals. The way it works
+#                      is that the DHCP server is configured with a filename like
+#                      "foo.nbi.zpxe" so that when PXE asks for a filename it gets that, and
+#                      loads Etherboot from that file. Etherboot then starts up and once
+#                      again asks the DHCP server for a filename and once again gets
+#                      foo.nbi.zpxe, but with this option turned on loads "foo.nbi" instead.
+#                      This allows people to use Etherboot who might not otherwise be able to
+#                      because their DHCP servers won't let them.
+#
 #      -DPOWERSAVE
 #                      Halt the processor when waiting for keyboard input
 #                      which saves power while waiting for user interaction.
@@ -271,13 +283,6 @@ CFLAGS+=   -DASK_BOOT=3 -DBOOT_FIRST=BOOT_NIC
 # CFLAGS+=     -DDHCP_USER_CLASS="5,'A','L','P','H','A',4,'B','E','T','A'" \
 #              -DDHCP_USER_CLASS_LEN=11
 
-# Set to enable FILO support
-# for FILO support it will make main call pci_init
-# INCLUDE_FILO=y
-ifdef  INCLUDE_FILO
-CFLAGS+=       -DCONFIG_FILO
-endif
-
 # Enabling this causes Etherboot to ignore Etherboot-specific options
 # that are not within an Etherboot encapsulated options field.
 # This option should be enabled unless you have a legacy DHCP server
@@ -295,7 +300,7 @@ CFLAGS+=    -DALLOW_ONLY_ENCAPSULATED
 
 # Limit the delay on packet loss/congestion to a more bearable value. See
 # description above.  If unset, do not limit the delay between resend.
-CFLAGS+=       -DBACKOFF_LIMIT=7 -DCONGESTED
+CFLAGS+=       -DBACKOFF_LIMIT=5 -DCONGESTED
 
 # More optional features
 # CFLAGS+=     -DTRY_FLOPPY_FIRST=4
index fa7b3f3..2dd2a8d 100644 (file)
@@ -29,17 +29,21 @@ include arch/$(ARCH)/Config
 # If invoked with no build target, print out a helpfully suggestive
 # message.
 #
-noargs : blib
+noargs :
        @echo '===================================================='
+       @echo
+       @echo ' *** WARNING: THE INSTRUCTIONS BELOW DO NOT FULLY WORK YET !!!  ***'
+       @echo ' ***                    PLEASE STAY TUNED                       ***' 
+       @echo
        @echo 'No target specified. To specify a target, do: '
        @echo
-       @echo '    $(MAKE) bin/<rom-name>.<output-format> '
+       @echo '    make bin/<rom-name>.<output-format> '
        @echo
-       @echo 'where <output-format> is one of [z]{$(MEDIA) }'
+       @echo 'where <output-format> is one of {$(MEDIA) }'
        @echo
        @echo 'or: '
        @echo
-       @echo '    $(MAKE) all<output-format>s'
+       @echo '    make all<output-format>s'
        @echo
        @echo 'to generate all possible images of format <output-format>'
        @echo
@@ -79,6 +83,7 @@ MKCONFIG      ?= $(PERL) ./util/mkconfig.pl
 SYMCHECK       ?= $(PERL) ./util/symcheck.pl
 SORTOBJDUMP    ?= $(PERL) ./util/sortobjdump.pl
 NRV2B          ?= ./util/nrv2b
+DOXYGEN                ?= doxygen
 
 # Location to place generated files
 #
@@ -88,7 +93,8 @@ BIN           ?= bin
 #
 CFLAGS         += -I include -I arch/$(ARCH)/include -I . -DARCH=$(ARCH)
 CFLAGS         += -Os -ffreestanding
-CFLAGS         += -Wall -W -Wno-format
+CFLAGS         += -Wall -W
+CFLAGS         += -g
 CFLAGS         += $(EXTRA_CFLAGS)
 ASFLAGS                += $(EXTRA_ASFLAGS)
 LDFLAGS                += $(EXTRA_LDFLAGS)
@@ -113,27 +119,37 @@ $(BIN)/%.flags :
 # Rules for specific object types.
 #
 COMPILE_c      = $(CC) $(CFLAGS) $(CFLAGS_c) $(OBJ_CFLAGS)
-RULE_c         = $(COMPILE_c) -c $< -o $@
-RULE_c_to_dbg.o        = $(COMPILE_c) -Ddebug_$(OBJECT) -c $< -o $@
-RULE_c_to_dbg2.o = $(COMPILE_c) -Ddebug_$(OBJECT)=2 -c $< -o $@
-RULE_c_to_c    = $(COMPILE_c) -E -c $< > $@
-RULE_c_to_s    = $(COMPILE_c) -S -c $< -o $@ 
+RULE_c         = $(Q)$(COMPILE_c) -c $< -o $@
+RULE_c_to_dbg%.o = $(Q)$(COMPILE_c) -Ddebug_$(OBJECT)=$* -c $< -o $@
+RULE_c_to_c    = $(Q)$(COMPILE_c) -E -c $< > $@
+RULE_c_to_s    = $(Q)$(COMPILE_c) -S -g0 -c $< -o $@ 
 
 PREPROCESS_S   = $(CPP) $(CFLAGS) $(CFLAGS_S) $(OBJ_CFLAGS)
 ASSEMBLE_S     = $(AS) $(ASFLAGS)
-RULE_S         = $(PREPROCESS_S) $< | $(ASSEMBLE_S) -o $@
-RULE_S_to_s    = $(PREPROCESS_S) $< > $@
+RULE_S         = $(Q)$(PREPROCESS_S) $< | $(ASSEMBLE_S) -o $@
+RULE_S_to_s    = $(Q)$(PREPROCESS_S) $< > $@
 
-DEBUG_TARGETS  += dbg2.o dbg.o c s
+DEBUG_TARGETS  += dbg%.o c s
 
 # SRCDIRS lists all directories containing source files.
 #
 SRCDIRS                += core
 SRCDIRS                += proto
+SRCDIRS                += net net/tcp net/udp
 SRCDIRS                += image
 SRCDIRS                += drivers/bus
 SRCDIRS                += drivers/net
-#SRCDIRS               += drivers/disk 
+SRCDIRS                += drivers/block
+SRCDIRS                += drivers/scsi
+SRCDIRS                += drivers/ata
+SRCDIRS                += drivers/nvs
+SRCDIRS                += drivers/bitbash
+SRCDIRS                += interface/pxe
+SRCDIRS                += tests
+SRCDIRS                += crypto crypto/axtls crypto/matrixssl
+SRCDIRS                += hci hci/commands hci/tui
+SRCDIRS                += hci/mucurses hci/mucurses/widgets
+SRCDIRS                += usr
 
 # NON_AUTO_SRCS lists files that are excluded from the normal
 # automatic build system.
index 1f06d69..e01817d 100644 (file)
@@ -9,9 +9,9 @@ CLEANUP := $(BIN)/*.* # *.* to avoid catching the "CVS" directory
 
 # Version number calculations 
 #
-VERSION_MAJOR  = 5
-VERSION_MINOR  = 3
-VERSION_PATCH  = 14
+VERSION_MAJOR  = 0
+VERSION_MINOR  = 5
+VERSION_PATCH  = 1
 EXTRAVERSION   =       
 MM_VERSION     = $(VERSION_MAJOR).$(VERSION_MINOR)
 VERSION                = $(MM_VERSION).$(VERSION_PATCH)$(EXTRAVERSION)
@@ -39,6 +39,16 @@ version :
        @$(TOUCH) $@
 VERYCLEANUP    += .toolcheck
 
+# Build verbosity
+#
+ifeq ($(V),1)
+Q = 
+QM = @\#
+else
+Q = @
+QM = @
+endif
+
 # Check for an old version of gas (binutils 2.9.1)
 #
 OLDGAS := $(shell $(AS) --version | grep -q '2\.9\.1' && echo -DGAS291)
@@ -111,11 +121,13 @@ define obj_template
        @$(CPP) $(CFLAGS) $(CFLAGS_$(3)) $(CFLAGS_$(4)) \
                -M $(1) -MT "$(4)_DEPS" -MG | tr : = >> $(2)
        @echo -e '\n$$(BIN)/$(4).o : $(1) $$(MAKEDEPS) $$($(4)_DEPS)' \
+                '\n\t$$(QM)echo "  [BUILD] $$@"\n' \
                 '\n\t$$(RULE_$(3))\n' \
                 '\nBOBJS += $$(BIN)/$(4).o\n' \
                 $(foreach TGT,$(DEBUG_TARGETS), \
                    $(if $(RULE_$(3)_to_$(TGT)), \
                    '\n$$(BIN)/$(4).$(TGT) : $(1) $$(MAKEDEPS) $$($(4)_DEPS)' \
+                   '\n\t$$(QM)echo "  [BUILD] $$@"\n' \
                    '\n\t$$(RULE_$(3)_to_$(TGT))\n' \
                    '\n$(TGT)_OBJS += $$(BIN)/$(4).$(TGT)\n' ) ) \
                 '\n$(2) : $$($(4)_DEPS)\n' \
@@ -178,14 +190,12 @@ TGT_DRIVERS       = $(strip $(if $(DRIVERS_$(TGT_ROM_NAME)), \
                                 $(call CARD_DRIVER,$(TGT_ELEMENT))) ))
 TGT_MEDIA      = $(subst z,,$(TGT_PREFIX))
 
-# Look up ROM type and IDs for the current target
+# Look up ROM IDs for the current target
 # (e.g. "bin/dfe538--prism2_pci.zrom.tmp") and derive the variables:
 #
-# TGT_ROM_TYPE   : PCI/ISA indicator (e.g. "pci")
 # TGT_PCI_VENDOR : the PCI vendor ID (e.g. "0x1186")
 # TGT_PCI_DEVICE : the PCI device ID (e.g. "0x1300")
 #
-TGT_ROM_TYPE   = $(ROM_TYPE_$(TGT_ROM_NAME))
 TGT_PCI_VENDOR = $(PCI_VENDOR_$(TGT_ROM_NAME))
 TGT_PCI_DEVICE = $(PCI_DEVICE_$(TGT_ROM_NAME))
 
@@ -194,13 +204,11 @@ TGT_PCI_DEVICE    = $(PCI_DEVICE_$(TGT_ROM_NAME))
 #
 # TGT_LD_DRIVERS : symbols to require in order to drag in the relevant drivers
 #                 (e.g. "obj_rtl8139 obj_prism2_pci")
-# TGT_LD_PREFIX  : symbols to require in order to drag in the relevant prefix
-#                 (e.g. "obj_zpciprefix")
 # TGT_LD_IDS :     symbols to define in order to fill in ID structures in the
 #                 ROM header (e.g."pci_vendor_id=0x1186 pci_device_id=0x1300")
 #
 TGT_LD_DRIVERS = $(subst -,_,$(patsubst %,obj_%,$(TGT_DRIVERS)))
-TGT_LD_PREFIX  = obj_$(subst rom,$(TGT_ROM_TYPE),$(TGT_PREFIX))prefix
+TGT_LD_PREFIX  = obj_$(TGT_PREFIX)prefix
 TGT_LD_IDS     = $(if $(TGT_PCI_VENDOR),pci_vendor_id=$(TGT_PCI_VENDOR)) \
                  $(if $(TGT_PCI_DEVICE),pci_device_id=$(TGT_PCI_DEVICE))
 
@@ -230,7 +238,8 @@ TGT_MAKEROM_FLAGS = $(strip $(MAKEROM_FLAGS_$(TGT_ROM_NAME)) \
 #
 COMMA          := ,
 DEBUG_LIST     = $(subst $(COMMA), ,$(DEBUG))
-DEBUG_OBJ_BASE = $(word 1,$(subst :, ,$(1))).dbg$(word 2,$(subst :, ,$(1)))
+DEBUG_OBJ_LEVEL        = $(firstword $(word 2,$(subst :, ,$(1))) 1)
+DEBUG_OBJ_BASE = $(word 1,$(subst :, ,$(1))).dbg$(call DEBUG_OBJ_LEVEL,$(1))
 DEBUG_OBJ      = $(BIN)/$(call DEBUG_OBJ_BASE,$(1)).o
 DEBUG_ORIG_OBJ = $(BIN)/$(word 1,$(subst :, ,$(1))).o
 DEBUG_OBJS     = $(foreach D,$(DEBUG_LIST),$(call DEBUG_OBJ,$(D)))
@@ -246,7 +255,6 @@ $(BIN)/%.info :
        @echo 'ROM name             : $(TGT_ROM_NAME)'
        @echo 'Media                : $(TGT_MEDIA)'
        @echo
-       @echo 'ROM type             : $(TGT_ROM_TYPE)'
        @echo 'PCI vendor           : $(TGT_PCI_VENDOR)'
        @echo 'PCI device           : $(TGT_PCI_DEVICE)'
        @echo
@@ -272,28 +280,36 @@ endif
 
 $(BLIB_LIST) :
 
+VERYCLEANUP    += $(BLIB_LIST)
+
 # Library of all objects
 #
 BLIB           = $(BIN)/blib.a
 $(BLIB) : $(BLIB_OBJS) $(BLIB_LIST) $(MAKEDEPS)
-       $(RM) $(BLIB)
-       $(AR) r $@ $(BLIB_OBJS)
-       $(RANLIB) $@
+       $(Q)$(RM) $(BLIB)
+       $(QM)echo "  [AR] $@"
+       $(Q)$(AR) r $@ $(BLIB_OBJS)
+       $(Q)$(RANLIB) $@
 blib : $(BLIB)
 
 # Build an intermediate object file from the objects required for the
 # specified target.
 #
 $(BIN)/%.tmp : $(BLIB) $(MAKEDEPS) $(LDSCRIPT) 
-       $(LD) $(LDFLAGS) -T $(LDSCRIPT) $(TGT_LD_FLAGS) $(BLIB) -o $@ \
+       $(QM)echo "  [LD] $@"
+       $(Q)$(LD) $(LDFLAGS) -T $(LDSCRIPT) $(TGT_LD_FLAGS) $(BLIB) -o $@ \
                -Map $(BIN)/$*.tmp.map
-       $(OBJDUMP) -ht $@ | $(SORTOBJDUMP) >> $(BIN)/$*.tmp.map
+       $(Q)$(OBJDUMP) -ht $@ | $(SORTOBJDUMP) >> $(BIN)/$*.tmp.map
 
 # Show a linker map for the specified target
 #
 $(BIN)/%.map : $(BIN)/%.tmp
        @less $(BIN)/$*.tmp.map
 
+# Build bochs symbol table
+$(BIN)/%.bxs : $(BIN)/%.tmp
+       $(NM) $< | cut -d" " -f1,3 > $@
+
 # Rules for each media format.  These are generated and placed in an
 # external Makefile fragment.  We could do this via $(eval ...), but
 # that would require make >= 3.80.
@@ -404,7 +420,8 @@ otherarchs :
 TAGS : TAGS.$(ARCH)
 
 TAGS.$(ARCH) : 
-       ctags -e -R -f $@ $(foreach ARCH,$(OTHER_ARCHS),--exclude=arch/$(ARCH))
+       ctags -e -R -f $@ --exclude=bin \
+               $(foreach ARCH,$(OTHER_ARCHS),--exclude=arch/$(ARCH))
 CLEANUP        += TAGS*
 
 # Symbol table checks
@@ -422,6 +439,31 @@ $(BIN)/%.rebuild :
        rm -f $(BIN)/$*
        $(MAKE) $(MAKEFLAGS) $(BIN)/$*
 
+# Documentation
+#
+$(BIN)/doxygen.cfg : doxygen.cfg $(MAKEDEPS)
+       $(PERL) -pe 's{\@SRCDIRS\@}{$(SRCDIRS)}; ' \
+               -e  's{\@BIN\@}{$(BIN)}; ' \
+               -e  's{\@ARCH\@}{$(ARCH)}; ' \
+               $< > $@
+
+$(BIN)/doc : $(BIN)/doxygen.cfg
+       $(DOXYGEN) $<
+
+.PHONY : $(BIN)/doc
+
+VERYCLEANUP    += $(BIN)/doc
+
+doc : $(BIN)/doc
+
+docview :
+       @[ -f $(BIN)/doc/html/index.html ] || $(MAKE) $(BIN)/doc
+       @if [ -n "$$BROWSER" ] ; then \
+               ( $$BROWSER $(BIN)/doc/html/index.html & ) ; \
+       else \
+               echo "Documentation index in $(BIN)/doc/html/index.html" ; \
+       fi
+
 # Clean-up
 #
 clean :
@@ -429,3 +471,20 @@ clean :
 
 veryclean : clean
        $(RM) -r $(VERYCLEANUP)
+
+# Make clean tarballs for release
+
+gpxe-tarball : ../VERSION
+       (echo -n $(VERSION) ''; date -u +'%Y-%m-%d') > ../VERSION
+       $(RM) -r /tmp/gpxe/gpxe-$(VERSION)
+       mkdir -p /tmp/gpxe/gpxe-$(VERSION)
+       cp -rP .. /tmp/gpxe/gpxe-$(VERSION)
+       $(RM) -r /tmp/gpxe/CVS
+       ( cd /tmp/gpxe/gpxe-$(VERSION)/src ; $(RM) -r bin/deps ; $(MAKE) clean ; $(MAKE) veryclean )
+       ( cd /tmp/gpxe; tar cf /tmp/gpxe/gpxe-$(VERSION).tar --exclude CVS --exclude "#*" \
+         --exclude "*~" gpxe-$(VERSION) )
+       bzip2 -9 < /tmp/gpxe/gpxe-$(VERSION).tar > /tmp/gpxe/gpxe-$(VERSION).tar.bz2
+       gzip -9 < /tmp/gpxe/gpxe-$(VERSION).tar > /tmp/gpxe/gpxe-$(VERSION).tar.gz
+       $(RM) -r /tmp/gpxe/gpxe-$(VERSION)
+       $(RM) /tmp/gpxe/gpxe-$(VERSION).tar
+       ( cd /tmp/gpxe ; tar -zxf /tmp/gpxe/gpxe-$(VERSION).tar.gz )
diff --git a/src/arch/armnommu/Config b/src/arch/armnommu/Config
deleted file mode 100644 (file)
index 4c220cd..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-# Config for armnommu Etherboot
-#
-
-# For a clean compilation, switch in global Config
-# off: -DCONFIG_PCI, -DTAGGED_IMAGE, -DELF_IMAGE, -DPXE*, -DRELOCATE and INCLUDE_FILO
-# on : -DRAW_IMAGE
-
-# Serial line settings
-CFLAGS+= -DCONSOLE_SERIAL -DCONSPEED=57600
-
-# System Frequency
-CFLAGS+= -DSYSCLK=73728000
-
-# Image Download Address
-CFLAGS+= -DRAWADDR=0x40100000
-
-# NIC Debug Outputs
-#CFLAGS+= -DDEBUG_NIC
-
-# Fixed MAC address
-# p2001_eth has no flash and fixed mac address
-#CFLAGS+=      -DMAC_HW_ADDR_DRV="'H','Y','L','N','X','1'"
-CFLAGS+=       -DMAC_HW_ADDR_DRV="0x00,0x09,0x4F,0x00,0x00,0x02"
diff --git a/src/arch/armnommu/Makefile b/src/arch/armnommu/Makefile
deleted file mode 100644 (file)
index a0cbb0c..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-ARCH_FORMAT=   armnommu
-
-ROMLIMIT=      20480
-CHECKSIZE=     { read d1; read d1 d2 d3 size d4; [ $$size -gt $(ROMLIMIT) ] &&\
-       { $(RM) $@; echo "ERROR: code size exceeds limit!"; exit 1; }; exit 0; }
-
-START= $(BIN)/start.o
-
-SRCS+= arch/armnommu/core/arm_timer.c
-SRCS+= arch/armnommu/core/start.S
-SRCS+= arch/armnommu/core/serial.c
-SRCS+= arch/armnommu/core/mem.c
-SRCS+= arch/armnommu/core/setjmp.S
-SRCS+= arch/armnommu/drivers/net/p2001_eth.c
-
-# not greater than 100kB
-ROMLIMIT:=1024000
-
-include                $(BIN)/Roms
-
-ROMS= $(BIN)/p2001_eth.rom
-IMGS= $(BIN)/p2001_eth.img
-
-
-allfiles:      $(ROMS)
-
-BOBJS+=                $(BIN)/arm_timer.o
-BOBJS+=                $(BIN)/serial.o
-BOBJS+=                $(BIN)/mem.o
-BOBJS+=                $(BIN)/setjmp.o
-BOBJS+=                $(BIN)/lib1funcs.o
-
-# Utilities
-
-$(BIN)/nrv2b:  util/nrv2b.c
-       $(HOST_CC) -O2 -DENCODE -DDECODE -DMAIN -DVERBOSE -DNDEBUG -DBITSIZE=32 -DENDIAN=0 -o $@ $<
-
-# Pattern Rules
-# General for compiling/assembly source files
-$(BIN)/%.o:    arch/armnommu/core/%.c $(MAKEDEPS)
-       $(CC) $(CFLAGS) -o $@ -c $<
-
-$(BIN)/%.o:    arch/armnommu/drivers/net/%.c $(MAKEDEPS)
-       $(CC) $(CFLAGS) -o $@ -c $<
-
-$(BIN)/%.S:    arch/armnommu/core/%.c $(MAKEDEPS)
-       $(CC) $(CFLAGS) -S -o $@ -c $<
-
-$(BIN)/%.o:    arch/armnommu/core/%.S $(MAKEDEPS)
-       $(CPP) $(CFLAGS) -D ASSEMBLY $< | $(AS) $(ASFLAGS) -o $@
-
-# general ruls for generating .img files
-$(BIN)/%.tmp: $(BIN)/%.o $(START) $(BIN)/config.o arch/$(ARCH)/core/etherboot.lds $(LIBS) $(STDDEPS) $(MAKEDEPS)
-       $(LD) $(LDFLAGS) -T arch/$(ARCH)/core/etherboot.lds -o $@ $(START) $(BIN)/config.o $< $(LIBS)
-       @$(SIZE) $@ | $(CHECKSIZE)
-
-$(BIN)/%.img: $(BIN)/%.tmp $(MAKEDEPS)
-       $(OBJCOPY) -O binary $< $@
diff --git a/src/arch/armnommu/core/arm_timer.c b/src/arch/armnommu/core/arm_timer.c
deleted file mode 100644 (file)
index fef20e7..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- *  Copyright (C) 2004 Tobias Lorenz
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include "etherboot.h"
-#include "timer.h"
-#include "latch.h"
-#include "hardware.h"
-#include "init.h"
-
-/* get timer returns the contents of the timer */
-static unsigned long get_timer(void)
-{
-       return P2001_TIMER->Freerun_Timer;
-}
-
-/* ------ Calibrate the TSC ------- 
- * Time how long it takes to excute a loop that runs in known time.
- * And find the convertion needed to get to CLOCK_TICK_RATE
- */
-
-static unsigned long configure_timer(void)
-{
-       return (1);
-}
-
-static unsigned long clocks_per_tick = 1;
-
-static void setup_timers(void)
-{
-       if (!clocks_per_tick) {
-               clocks_per_tick = configure_timer();
-       }
-}
-
-unsigned long currticks(void)
-{
-       return get_timer(); /* /clocks_per_tick */
-}
-
-static unsigned long timer_timeout;
-static int __timer_running(void)
-{
-       return get_timer() < timer_timeout;
-}
-
-void udelay(unsigned int usecs)
-{
-       unsigned long now;
-       now = get_timer();
-       timer_timeout = now + usecs * ((clocks_per_tick * TICKS_PER_SEC)/(1000*1000));
-       while(__timer_running());
-}
-void ndelay(unsigned int nsecs)
-{
-       unsigned long now;
-       now = get_timer();
-       timer_timeout = now + nsecs * ((clocks_per_tick * TICKS_PER_SEC)/(1000*1000*1000));
-       while(__timer_running());
-}
-
-void load_timer2(unsigned int timer2_ticks)
-{
-       unsigned long now;
-       unsigned long clocks;
-       now = get_timer();
-       clocks = timer2_ticks * ((clocks_per_tick * TICKS_PER_SEC)/CLOCK_TICK_RATE);
-       timer_timeout = now + clocks;
-}
-
-int timer2_running(void)
-{
-       return __timer_running();
-}
-
-INIT_FN ( INIT_TIMERS, setup_timers, NULL, NULL );
diff --git a/src/arch/armnommu/core/etherboot.lds b/src/arch/armnommu/core/etherboot.lds
deleted file mode 100644 (file)
index 0901a2f..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- *  Copyright (C) 2004 Tobias Lorenz
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
-OUTPUT_ARCH(arm)
-ENTRY(_start)
-SECTIONS
-{
-       /*. = 0x00000000;*/     /* PIC */
-       /*. = 0x00000400;*/     /* ROM Bootloader */
-       . = 0x40000000;         /* SDRAM */
-
-       . = ALIGN(4);
-       _text = . ;
-       .text      :
-       {
-         _start = .;
-         _virt_start = .;
-         bin/start.o   (.text)
-         *(.text)
-
-         . = ALIGN(16);
-         isa_drivers = . ;
-         *(.drivers.isa);
-         isa_drivers_end = . ;   
-       }
-
-       . = ALIGN(4);
-       .rodata : { *(.rodata) }
-
-       . = ALIGN(4);
-       .data : { *(.data) }
-
-       . = ALIGN(4);
-       .got : { *(.got) }
-
-       . = ALIGN(4);
-       _bss = . ;
-       .bss : { *(.bss) }
-
-       . = ALIGN(4);
-       _ebss = .;
-       _end = .;
-
-       . = ALIGN(16);
-       .text :
-       {
-               *(.dma.desc);
-               *(.dma.buffer);
-       }
-}
diff --git a/src/arch/armnommu/core/lib1funcs.c b/src/arch/armnommu/core/lib1funcs.c
deleted file mode 100644 (file)
index e9e3a8f..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- *  Copyright (C) 2004 Tobias Lorenz
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-
-/*
- * from gcc/config/udivmodsi4.c
- */
-unsigned long
-udivmodsi4(unsigned long num, unsigned long den, int modwanted)
-{
-  unsigned long bit = 1;
-  unsigned long res = 0;
-
-  while (den < num && bit && !(den & (1L<<31)))
-    {
-      den <<=1;
-      bit <<=1;
-    }
-  while (bit)
-    {
-      if (num >= den)
-       {
-         num -= den;
-         res |= bit;
-       }
-      bit >>=1;
-      den >>=1;
-    }
-  if (modwanted) return num;
-  return res;
-}
-
-
-/*
- * from gcc/config/udivmod.c
- */
-long
-__udivsi3 (long a, long b)
-{
-  return udivmodsi4 (a, b, 0);
-}
-
-long
-__umodsi3 (long a, long b)
-{
-  return udivmodsi4 (a, b, 1);
-}
-
-
-/*
- * from gcc/config/divmod.c
- */
-long
-__divsi3 (long a, long b)
-{
-  int neg = 0;
-  long res;
-
-  if (a < 0)
-    {
-      a = -a;
-      neg = !neg;
-    }
-
-  if (b < 0)
-    {
-      b = -b;
-      neg = !neg;
-    }
-
-  res = udivmodsi4 (a, b, 0);
-
-  if (neg)
-    res = -res;
-
-  return res;
-}
-
-long
-__modsi3 (long a, long b)
-{
-  int neg = 0;
-  long res;
-
-  if (a < 0)
-    {
-      a = -a;
-      neg = 1;
-    }
-