From 86b47ba3ee8c48e6a132b97c2a2c1d505963110e Mon Sep 17 00:00:00 2001 From: Julian Pidancet Date: Mon, 13 Feb 2012 12:50:46 +0000 Subject: firmware: Introduce CONFIG_ROMBIOS and CONFIG_SEABIOS options This patch introduces configuration options allowing to built either a rombios only or a seabios only hvmloader. Building option ROMs like vgabios or etherboot is only enabled for a rombios hvmloader, since SeaBIOS takes care or extracting option ROMs itself from the PCI devices (these option ROMs are provided by the device model and do not need to be built in hvmloader). The Makefile in tools/firmware/ now only checks for bcc if rombios is enabled. These two configuration options are left on by default to remain compatible. Signed-off-by: Julian Pidancet Acked-by: Ian Campbell --- tools/firmware/Makefile | 18 ++++++++++-------- tools/firmware/hvmloader/Makefile | 32 +++++++++++++++++++------------- 2 files changed, 29 insertions(+), 21 deletions(-) (limited to 'tools/firmware') diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile index c3ec9a07b9..5d40bcd2f8 100644 --- a/tools/firmware/Makefile +++ b/tools/firmware/Makefile @@ -5,19 +5,20 @@ include $(XEN_ROOT)/tools/Rules.mk TARGET := hvmloader/hvmloader INST_DIR := $(DESTDIR)$(XENFIRMWAREDIR) -SUBDIRS := -SUBDIRS += seabios-dir -SUBDIRS += rombios -SUBDIRS += vgabios -SUBDIRS += etherboot -SUBDIRS += hvmloader +SUBDIRS-y := +SUBDIRS-$(CONFIG_SEABIOS) += seabios-dir +SUBDIRS-$(CONFIG_ROMBIOS) += rombios +SUBDIRS-$(CONFIG_ROMBIOS) += vgabios +SUBDIRS-$(CONFIG_ROMBIOS) += etherboot +SUBDIRS-y += hvmloader seabios-dir: GIT=$(GIT) $(XEN_ROOT)/scripts/git-checkout.sh $(SEABIOS_UPSTREAM_URL) $(SEABIOS_UPSTREAM_TAG) seabios-dir cp seabios-config seabios-dir/.config; .PHONY: all -all: seabios-dir +all: $(SUBDIRS-y) +ifeq ($(CONFIG_ROMBIOS),y) @set -e; if [ $$((`( bcc -v 2>&1 | grep version || echo 0.0.0 ) | cut -d' ' -f 3 | awk -F. '{ printf "0x%02x%02x%02x", $$1, $$2, $$3}'`)) -lt $$((0x00100e)) ] ; then \ echo "==========================================================================="; \ echo "Require dev86 rpm or bin86 & bcc debs version >= 0.16.14 to build firmware!"; \ @@ -25,7 +26,8 @@ all: seabios-dir echo "==========================================================================="; \ false ; \ fi - $(MAKE) subdirs-$@; \ +endif + $(MAKE) subdirs-$@ .PHONY: install diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile index 5a5ee41e79..175dba6360 100644 --- a/tools/firmware/hvmloader/Makefile +++ b/tools/firmware/hvmloader/Makefile @@ -38,27 +38,33 @@ endif CIRRUSVGA_DEBUG ?= n ROMBIOS_DIR := ../rombios -ifneq ($(ROMBIOS_DIR),) -OBJS += optionroms.o 32bitbios_support.o rombios.o -CFLAGS += -DENABLE_ROMBIOS -ROMBIOS_ROM := $(ROMBIOS_DIR)/BIOS-bochs-latest -endif - SEABIOS_DIR := ../seabios-dir -ifneq ($(SEABIOS_DIR),) -OBJS += seabios.o -CFLAGS += -DENABLE_SEABIOS -SEABIOS_ROM := $(SEABIOS_DIR)/out/bios.bin -endif +ifeq ($(CONFIG_ROMBIOS),y) STDVGA_ROM := ../vgabios/VGABIOS-lgpl-latest.bin ifeq ($(CIRRUSVGA_DEBUG),y) CIRRUSVGA_ROM := ../vgabios/VGABIOS-lgpl-latest.cirrus.debug.bin else CIRRUSVGA_ROM := ../vgabios/VGABIOS-lgpl-latest.cirrus.bin endif - ETHERBOOT_ROMS := $(addprefix ../etherboot/ipxe/src/bin/, $(addsuffix .rom, $(ETHERBOOT_NICS))) +endif + +ROMS := + +ifeq ($(CONFIG_ROMBIOS),y) +OBJS += optionroms.o 32bitbios_support.o rombios.o +CFLAGS += -DENABLE_ROMBIOS +ROMBIOS_ROM := $(ROMBIOS_DIR)/BIOS-bochs-latest +ROMS += $(ROMBIOS_ROM) $(STDVGA_ROM) $(CIRRUSVGA_ROM) $(ETHERBOOT_ROMS) +endif + +ifeq ($(CONFIG_SEABIOS),y) +OBJS += seabios.o +CFLAGS += -DENABLE_SEABIOS +SEABIOS_ROM := $(SEABIOS_DIR)/out/bios.bin +ROMS += $(SEABIOS_ROM) +endif .PHONY: all all: subdirs-all @@ -72,7 +78,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_ROMS) +roms.inc: $(ROMS) echo "/* Autogenerated file. DO NOT EDIT */" > $@.new ifneq ($(ROMBIOS_ROM),) -- cgit v1.2.3