mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
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 <julian.pidancet@gmail.com> Acked-by: Ian Campbell <ian.campbell@citrix.com>
This commit is contained in:
1 parent
cf3ee71e8b
commit
86b47ba3ee
3 files changed
+32
-21
No files matched your search
@@ -224,6 +224,9 @@ SEABIOS_UPSTREAM_TAG ?= rel-1.6.3.1
|
||||
|
||||
ETHERBOOT_NICS ?= rtl8139 8086100e
|
||||
|
||||
CONFIG_ROMBIOS ?= y
|
||||
CONFIG_SEABIOS ?= y
|
||||
|
||||
# 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
|
||||
|
||||
+10
-8
@@ -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
|
||||
|
||||
@@ -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),)
|
||||
|
||||