From cee3fd7bb8f237a8afcedd7e8e29985cbcf2352b Mon Sep 17 00:00:00 2001 From: Stefano Stabellini Date: Tue, 13 Sep 2011 10:30:09 +0100 Subject: Clone and build Seabios by default Signed-off-by: Stefano Stabellini --- .hgignore | 2 ++ Config.mk | 11 ++---- tools/firmware/Makefile | 12 +++++-- tools/firmware/hvmloader/Makefile | 1 + tools/firmware/seabios-config | 73 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 88 insertions(+), 11 deletions(-) create mode 100644 tools/firmware/seabios-config diff --git a/.hgignore b/.hgignore index 2c1a54b331..6464198d65 100644 --- a/.hgignore +++ b/.hgignore @@ -295,6 +295,8 @@ ^tools/qemu-xen-traditional-dir$ ^tools/qemu-xen-dir-remote ^tools/qemu-xen-dir$ +^tools/tools/firmware/seabios-dir-remote +^tools/tools/firmware/seabios-dir$ ^tools/ocaml/.*/.*\.annot$ ^tools/ocaml/.*/.*\.cmx?a$ ^tools/ocaml/.*/META$ diff --git a/Config.mk b/Config.mk index 6c1811baab..34ce9cf0c0 100644 --- a/Config.mk +++ b/Config.mk @@ -195,6 +195,8 @@ endif # Only available through the git protocol at the moment QEMU_UPSTREAM_URL ?= git://xenbits.xen.org/people/sstabellini/qemu-dm.git QEMU_UPSTREAM_TAG ?= origin/xen-stable-0.15 +SEABIOS_UPSTREAM_URL=git://git.qemu.org/seabios.git +SEABIOS_UPSTREAM_TAG ?= 7fc039e9c262b4199fab497f3e12f4e425c37560 # 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. @@ -208,15 +210,6 @@ QEMU_TAG ?= cd776ee9408ff127f934a707c1a339ee600bc127 # Short answer -- do not enable this unless you know what you are # doing and are prepared for some pain. -# SeaBIOS integration is a work in progress. Before enabling this -# option you must clone git://git.qemu.org/seabios.git/, possibly add -# some development patches and then build it yourself before pointing -# this variable to it (using an absolute path). -# -# Note that using SeaBIOS requires the use the upstream qemu as the -# device model. -SEABIOS_DIR ?= - # Optional components XENSTAT_XENTOP ?= y VTPM_TOOLS ?= n diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile index 4b6d144134..1e8a4db03a 100644 --- a/tools/firmware/Makefile +++ b/tools/firmware/Makefile @@ -6,13 +6,18 @@ TARGET := hvmloader/hvmloader INST_DIR := $(DESTDIR)$(XENFIRMWAREDIR) SUBDIRS := +SUBDIRS += seabios-dir SUBDIRS += rombios SUBDIRS += vgabios SUBDIRS += etherboot SUBDIRS += hvmloader +seabios-dir: + $(XEN_ROOT)/scripts/git-checkout.sh $(SEABIOS_UPSTREAM_URL) $(SEABIOS_UPSTREAM_TAG) seabios-dir + cp seabios-config seabios-dir/.config; + .PHONY: all -all: +all: seabios-dir @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!"; \ @@ -35,4 +40,7 @@ clean: subdirs-clean distclean: subdirs-distclean subdir-distclean-etherboot: .phony - $(MAKE) -C etherboot distclean \ No newline at end of file + $(MAKE) -C etherboot distclean + +subdir-distclean-seabios-dir: .phony + rm -rf seabios-dir seabios-dir-remote diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile index 11e8f1c316..ae8a1e281f 100644 --- a/tools/firmware/hvmloader/Makefile +++ b/tools/firmware/hvmloader/Makefile @@ -44,6 +44,7 @@ CFLAGS += -DENABLE_ROMBIOS ROMBIOS_ROM := $(ROMBIOS_DIR)/BIOS-bochs-latest endif +SEABIOS_DIR := ../seabios-dir ifneq ($(SEABIOS_DIR),) OBJS += seabios.o CFLAGS += -DENABLE_SEABIOS diff --git a/tools/firmware/seabios-config b/tools/firmware/seabios-config new file mode 100644 index 0000000000..202d15fad5 --- /dev/null +++ b/tools/firmware/seabios-config @@ -0,0 +1,73 @@ +# +# Automatically generated make config: don't edit +# SeaBIOS Configuration +# Wed Sep 7 13:03:21 2011 +# + +# +# General Features +# +# CONFIG_COREBOOT is not set +CONFIG_XEN=y +CONFIG_THREADS=y +# CONFIG_THREAD_OPTIONROMS is not set +CONFIG_RELOCATE_INIT=y +CONFIG_BOOTMENU=y +# CONFIG_BOOTSPLASH is not set +CONFIG_BOOTORDER=y + +# +# Hardware support +# +CONFIG_ATA=y +CONFIG_ATA_DMA=y +CONFIG_ATA_PIO32=y +CONFIG_AHCI=y +CONFIG_VIRTIO_BLK=y +CONFIG_FLOPPY=y +CONFIG_PS2PORT=y +CONFIG_USB=y +CONFIG_USB_UHCI=y +CONFIG_USB_OHCI=y +CONFIG_USB_EHCI=y +CONFIG_USB_MSC=y +CONFIG_USB_HUB=y +CONFIG_USB_KEYBOARD=y +CONFIG_USB_MOUSE=y +CONFIG_SERIAL=y +CONFIG_LPT=y +# CONFIG_USE_SMM is not set +CONFIG_MTRR_INIT=y + +# +# BIOS interfaces +# +CONFIG_DRIVES=y +CONFIG_CDROM_BOOT=y +CONFIG_CDROM_EMU=y +CONFIG_PCIBIOS=y +CONFIG_APMBIOS=y +CONFIG_PNPBIOS=y +CONFIG_OPTIONROMS=y +# CONFIG_OPTIONROMS_DEPLOYED is not set +CONFIG_PMM=y +CONFIG_BOOT=y +CONFIG_KEYBOARD=y +CONFIG_KBD_CALL_INT15_4F=y +CONFIG_MOUSE=y +CONFIG_S3_RESUME=y +# CONFIG_DISABLE_A20 is not set + +# +# BIOS Tables +# +CONFIG_PIRTABLE=y +CONFIG_MPTABLE=y +CONFIG_SMBIOS=y +CONFIG_ACPI=y + +# +# Debugging +# +CONFIG_DEBUG_LEVEL=1 +# CONFIG_DEBUG_SERIAL is not set -- cgit v1.2.3