firmware: Use mkhex from hvmloader directory for etherboot ROMs
authorJulian Pidancet <julian.pidancet@gmail.com>
Mon, 13 Feb 2012 12:49:06 +0000 (12:49 +0000)
committerJulian Pidancet <julian.pidancet@gmail.com>
Mon, 13 Feb 2012 12:49:06 +0000 (12:49 +0000)
To remain consistent with how other ROMs are built into hvmloader,
call mkhex on etherboot ROMs from the hvmloader directory, instead of
the etherboot directory. In other words, eb-roms.h is not used any
more.

Introduce ETHERBOOT_NICS config option to choose which ROMs should be
built (kept rtl8139 and 8086100e per default as before).

Signed-off-by: Julian Pidancet <julian.pidancet@gmail.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Config.mk
tools/firmware/etherboot/Config
tools/firmware/etherboot/Makefile
tools/firmware/hvmloader/Makefile

index e2dc4b93ae6b2637fdcffdf68bbc5306427a1159..42508b88ee359172028475137f38ab96cd70c67a 100644 (file)
--- a/Config.mk
+++ b/Config.mk
@@ -222,6 +222,8 @@ endif
 QEMU_UPSTREAM_REVISION ?= master
 SEABIOS_UPSTREAM_TAG ?= rel-1.6.3.1
 
+ETHERBOOT_NICS ?= rtl8139 8086100e
+
 # Specify which qemu-dm to use. This may be `ioemu' to use the old
 # Mercurial in-tree version, or a local directory, or a git URL.
 # CONFIG_QEMU ?= `pwd`/$(XEN_ROOT)/../qemu-xen.git
index 143914f1352cecf5fe893f47861d0fe19a0d3721..69963b94b4fce80c7916feeaa3e5600a0262d211 100644 (file)
@@ -1,6 +1,4 @@
 
-NICS = rtl8139 8086100e
-
 CFLAGS += -UPXE_DHCP_STRICT
 CFLAGS += -DPXE_DHCP_STRICT
 
index c09140eb19059e9fa048938643b79e098d8513fc..a195888dff21ad36ca711abdd8ffb6a82710d039 100644 (file)
@@ -17,23 +17,16 @@ IPXE_TARBALL_URL := $(XEN_EXTFILES_URL)/ipxe-git-$(IPXE_GIT_TAG).tar.gz
 D=ipxe
 T=ipxe.tar.gz
 
-ROMS = $(addprefix $D/src/bin/, $(addsuffix .rom, $(NICS)))
+ROMS = $(addprefix $D/src/bin/, $(addsuffix .rom, $(ETHERBOOT_NICS)))
 
 .NOTPARALLEL:
 
 .PHONY: all
-all: eb-roms.h
+all: $(ROMS)
 
 %.rom: $D/src/arch/i386/Makefile
        $(MAKE) -C $D/src bin/$(*F).rom
 
-eb-roms.h.new: $(ROMS)
-       cat $^ | ../hvmloader/mkhex etherboot >$@
-
-eb-roms.h: Config
-       $(MAKE) NO_WERROR=1 $@.new
-       mv -f $@.new $@
-
 $T:
        if ! wget -O _$T $(IPXE_TARBALL_URL); then \
                $(GIT) clone $(IPXE_GIT_URL) $D.git; \
@@ -56,7 +49,7 @@ $D/src/bin/NIC: $D/src/arch/i386/Makefile
 
 .PHONY: clean
 clean:
-       rm -rf $D $D.git *~ eb-roms.h _$T $T
+       rm -rf $D $D.git *~ _$T $T
 
 .PHONY: distclean
 distclean: clean
index e82146a2514cb814e80c395d02a82aeaef6d1d93..1ea32dbd27f319e3b11cd9d0baa48d243bd9d63b 100644 (file)
@@ -58,6 +58,8 @@ else
 CIRRUSVGA_ROM := ../vgabios/VGABIOS-lgpl-latest.cirrus.bin
 endif
 
+ETHERBOOT_ROMS := $(addprefix ../etherboot/ipxe/src/bin/, $(addsuffix .rom, $(ETHERBOOT_NICS)))
+
 .PHONY: all
 all: subdirs-all
        $(MAKE) hvmloader
@@ -70,7 +72,7 @@ hvmloader: $(OBJS) acpi/acpi.a
        $(OBJCOPY) hvmloader.tmp hvmloader
        rm -f hvmloader.tmp
 
-roms.inc: $(ROMBIOS_ROM) $(SEABIOS_ROM) $(STDVGA_ROM) $(CIRRUSVGA_ROM) ../etherboot/eb-roms.h
+roms.inc: $(ROMBIOS_ROM) $(SEABIOS_ROM) $(STDVGA_ROM) $(CIRRUSVGA_ROM) $(ETHERBOOT_ROMS)
        echo "/* Autogenerated file. DO NOT EDIT */" > $@.new
 
 ifneq ($(ROMBIOS_ROM),)
@@ -95,10 +97,11 @@ ifneq ($(CIRRUSVGA_ROM),)
        sh ./mkhex vgabios_cirrusvga $(CIRRUSVGA_ROM) >> $@.new
        echo "#endif" >> $@.new
 endif
-
+ifneq ($(ETHERBOOT_ROMS),)
        echo "#ifdef ROM_INCLUDE_ETHERBOOT" >> $@.new
-       cat ../etherboot/eb-roms.h >> $@.new
+       sh ./mkhex etherboot $(ETHERBOOT_ROMS) >> $@.new
        echo "#endif" >> $@.new
+endif
 
        mv $@.new $@