Build etherboot ROM from source.

We now include the source for Etherboot (5.4.2, obtained from git)
rather than a pre-built ROM.  This gives better traceability and GPL
licence compliance.  See tools/firmware/etherboot/README for details.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
This commit is contained in:
Ian Jackson committed 2008-01-30 18:39:04 +00:00
1 parent 26f9a3f7f5
commit 2d06b3f0df
8 files changed
+76 -2057

No files matched your search

+2
View File
@@ -258,3 +258,5 @@
^unmodified_drivers/linux-2.6/.*\.ko$
^unmodified_drivers/linux-2.6/.*\.mod\.c$
^LibVNCServer.*
^tools/firmware/etherboot/etherboot-build
^tools/firmware/etherboot/etherboot-5.*
+1
View File
@@ -11,6 +11,7 @@ SUBDIRS += rombios rombios/32bit
SUBDIRS += vgabios
SUBDIRS += vmxassist
SUBDIRS += extboot
SUBDIRS += etherboot
SUBDIRS += hvmloader
.PHONY: all
+13
View File
@@ -0,0 +1,13 @@
CFLAGS+= -UASK_BOOT -UBOOT_FIRST
CFLAGS+= -DASK_BOOT=-1 -DBOOT_FIRST=BOOT_NIC
CFLAGS+= -UEXIT_ON_FILE_LOAD_ERROR
CFLAGS+= -DEXIT_ON_FILE_LOAD_ERROR
CFLAGS+= -UEXIT_IF_NO_OFFER
CFLAGS+= -DEXIT_IF_NO_OFFER
CFLAGS+= -UPXE_DHCP_STRICT
CFLAGS+= -DPXE_DHCP_STRICT
# Also, the Makefile arranges for us to use GCC 3
+27
View File
@@ -0,0 +1,27 @@
EB_VERSION=5.4.2
D=etherboot-$(EB_VERSION)
T=etherboot-$(EB_VERSION).tar.gz
E=etherboot-build
TARGETS=eb-rtl8139.zrom.h
all: $(TARGETS)
eb-%.zrom.h: $E/src/Config
$(MAKE) -C $E/src bin/$*.zrom
../hvmloader/mkhex etherboot <$E/src/bin/$*.zrom >$@.new
mv -f $@.new $@
$E/src/Config: $T Config
rm -rf $D $E
tar zxf $T
cat Config >>$D/src/Config
./find-gcc-3 >>$D/src/Config
mv $D $E
clean:
rm -rf $D $E *.zrom.h *~
.PHONY: all clean
+23 -6
View File
@@ -1,11 +1,28 @@
This is an Etherboot option ROM for the rtl8139 NIC. It has a few
non-standard settings, most to do with timeouts and when to give up,
and for stricter DHCP spec compliance.
This directory builds Etherboot option ROMs from the etherboot source
tarball. (We provide this tarball in our source so that we do not
distribute binaries without source code, as that would mean we weren't
sure what the binaries are and in any case would be forbidden by the
licensing of Etherboot.)
Rom-o-matic.net will provide this image at the following URL:
We make a few non-standard settings, most to do with timeouts and when
to give up, and for stricter DHCP spec compliance.
----------------------------------------
Since Etherboot upstream do not appear to distribute tarballs, we
generated one ourselves with the following runes:
git clone git://git.etherboot.org/scm/etherboot.git
cd etherboot
git archive --format=tar --prefix=etherboot-5.4.2/ Eb.5.4.2 | gzip >../etherboot-5.4.2.tar.gz
----------------------------------------
Previously, an image from Rom-o-matic.net was provided here, fetched
from the following URL:
http://rom-o-matic.net/5.4.3/build.php?version=5.4.3&F=ignore&nic=rtl8139%3Artl8139+--+%5B0x10ec%2C0x8139%5D&ofmt=Binary+ROM+Image%28.zrom%29&arch=i386&ASK_BOOT=-1&BOOT_FIRST=BOOT_NIC&BOOT_SECOND=BOOT_NOTHING&BOOT_THIRD=BOOT_NOTHING&BOOT_INDEX=0&STATIC_CLIENT_IP=&STATIC_SUBNET_MASK=&STATIC_SERVER_IP=&STATIC_GATEWAY_IP=&STATIC_BOOTFILE=&EXIT_ON_FILE_LOAD_ERROR=on&DHCP_CLIENT_ID=&DHCP_CLIENT_ID_LEN=&DHCP_CLIENT_ID_TYPE=&DHCP_USER_CLASS=&DHCP_USER_CLASS_LEN=&ALLOW_ONLY_ENCAPSULATED=on&DEFAULT_BOOTFILE=&CONGESTED=on&BACKOFF_LIMIT=7&TIMEOUT=180&TRY_FLOPPY_FIRST=0&EXIT_IF_NO_OFFER=on&TAGGED_IMAGE=on&ELF_IMAGE=on&PXE_IMAGE=on&DOWNLOAD_PROTO_TFTP=on&COMCONSOLE=0x3F8&CONSPEED=9600&COMPARM=0x03&PXE_EXPORT=on&CONFIG_PCI=on&CONFIG_ISA=on&BUILD_ID=&PCBIOS=on&PXE_DHCP_STRICT=on&A=Get+ROM
and the mkhex script in tools/firmware/hvmloader will make the header
file from the downloaded image.
The mkhex script in tools/firmware/hvmloader will make the header file
from the downloaded image.
File diff suppressed because it is too large. Load diff
Binary file not shown.
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
set -e
for gcc in gcc-3.4 gcc34 gcc-3.3 gcc33 gcc-3.2 gcc32; do
if type -p $gcc >&2; then
echo "CC=$gcc"; exit 0
fi
done
echo >&2 'We need GCC 3 for Etherboot.'
false
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.