diff options
-rw-r--r-- | .hgignore | 8 | ||||
-rw-r--r-- | Config.mk | 15 | ||||
-rw-r--r-- | Makefile | 17 | ||||
-rwxr-xr-x | scripts/git-checkout.sh | 47 | ||||
-rw-r--r-- | tools/Makefile | 64 | ||||
-rw-r--r-- | tools/firmware/Makefile | 12 | ||||
-rw-r--r-- | tools/firmware/hvmloader/Makefile | 1 | ||||
-rw-r--r-- | tools/firmware/seabios-config | 73 |
8 files changed, 59 insertions, 178 deletions
@@ -291,12 +291,8 @@ ^tools/xm-test/lib/XmTestLib/config.py$ ^tools/xm-test/lib/XmTestReport/xmtest.py$ ^tools/xm-test/tests/.*\.test$ -^tools/qemu-xen-traditional-dir-remote -^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/ioemu-remote +^tools/ioemu-dir$ ^tools/ocaml/.*/.*\.annot$ ^tools/ocaml/.*/.*\.cmx?a$ ^tools/ocaml/.*/META$ @@ -192,12 +192,6 @@ else QEMU_REMOTE=git://xenbits.xensource.com/qemu-xen-unstable.git 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. # CONFIG_QEMU ?= `pwd`/$(XEN_ROOT)/../qemu-xen.git @@ -210,6 +204,15 @@ 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 @@ -70,7 +70,7 @@ install-tools: $(MAKE) -C tools install ifeq ($(CONFIG_IOEMU),y) -install-tools: tools/qemu-xen-traditional-dir tools/qemu-xen-dir +install-tools: tools/ioemu-dir endif .PHONY: install-kernels @@ -78,21 +78,18 @@ install-kernels: for i in $(XKERNELS) ; do $(MAKE) $$i-install || exit 1; done .PHONY: install-stubdom -install-stubdom: tools/qemu-xen-traditional-dir install-tools +install-stubdom: tools/ioemu-dir install-tools $(MAKE) -C stubdom install ifeq (x86_64,$(XEN_TARGET_ARCH)) XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom install-grub endif -tools/qemu-xen-traditional-dir: - $(MAKE) -C tools qemu-xen-traditional-dir-find +tools/ioemu-dir: + $(MAKE) -C tools ioemu-dir-find -.PHONY: tools/qemu-xen-traditional-dir-force-update -tools/qemu-xen-traditional-dir-force-update: - $(MAKE) -C tools qemu-xen-traditional-dir-force-update - -tools/qemu-xen-dir: - $(MAKE) -C tools qemu-xen-dir-find +.PHONY: tools/ioemu-dir-force-update +tools/ioemu-dir-force-update: + $(MAKE) -C tools ioemu-dir-force-update .PHONY: install-docs install-docs: diff --git a/scripts/git-checkout.sh b/scripts/git-checkout.sh deleted file mode 100755 index dd6c74efdd..0000000000 --- a/scripts/git-checkout.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh - -TREE=$1 -TAG=$2 -DIR=$3 - - -if test -d $TREE; then - mkdir -p $DIR - ROOT=$TREE -else - if test \! -d $DIR-remote; then - rm -rf $DIR-remote $DIR-remote.tmp; - mkdir $DIR-remote.tmp; rmdir $DIR-remote.tmp; - git clone $TREE $DIR-remote.tmp; - if test "$TAG" ; then - cd $DIR-remote.tmp - git branch -D dummy >/dev/null 2>&1 ||: - git checkout -b dummy $TAG - cd .. - fi - mv $DIR-remote.tmp $DIR-remote - fi - rm -f $DIR - ln -sf $DIR-remote $DIR - ROOT=. -fi - -set -e -cd $DIR -# is this qemu-xen-traditional? -if test -f $ROOT/xen-setup; then - QEMU_ROOT=$ROOT $ROOT/xen-setup $IOEMU_CONFIGURE_CROSS -# is this qemu-xen? -elif test -f $ROOT/configure; then - cd $ROOT - ./configure --enable-xen --target-list=i386-softmmu \ - --extra-cflags="-I$XEN_ROOT/tools/include \ - -I$XEN_ROOT/tools/libxc \ - -I$XEN_ROOT/tools/xenstore" \ - --extra-ldflags="-L$XEN_ROOT/tools/libxc \ - -L$XEN_ROOT/tools/libxenstore" \ - --bindir=/usr/lib/xen/bin \ - --disable-kvm \ - $IOEMU_CONFIGURE_CROSS -fi - diff --git a/tools/Makefile b/tools/Makefile index ede96db9b0..df6270c352 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -30,8 +30,7 @@ SUBDIRS-$(LIBXENAPI_BINDINGS) += libxen # do not recurse in to a dir we are about to delete ifneq "$(MAKECMDGOALS)" "distclean" -SUBDIRS-$(CONFIG_IOEMU) += qemu-xen-traditional-dir -SUBDIRS-$(CONFIG_IOEMU) += qemu-xen-dir +SUBDIRS-$(CONFIG_IOEMU) += ioemu-dir endif SUBDIRS-y += xenpmd @@ -71,8 +70,7 @@ clean: subdirs-clean .PHONY: distclean distclean: subdirs-distclean - rm -rf qemu-xen-traditional-dir qemu-xen-traditional-dir-remote - rm -rf qemu-xen-dir qemu-xen-dir-remote + rm -rf ioemu-dir ioemu-remote ifneq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH)) IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TARGET_ARCH) \ @@ -80,35 +78,51 @@ IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TARGET_ARCH) \ --interp-prefix=$(CROSS_SYS_ROOT) endif -qemu-xen-traditional-dir-find: - $(XEN_ROOT)/scripts/git-checkout.sh $(CONFIG_QEMU) $(QEMU_TAG) qemu-xen-traditional-dir - -qemu-xen-dir-find: - $(XEN_ROOT)/scripts/git-checkout.sh $(QEMU_UPSTREAM_URL) $(QEMU_UPSTREAM_TAG) qemu-xen-dir - -.PHONY: qemu-xen-traditional-dir-force-update -qemu-xen-traditional-dir-force-update: +QEMU_ROOT := $(shell if [ -d "$(CONFIG_QEMU)" ]; then echo "$(CONFIG_QEMU)"; else echo .; fi) +ifneq ($(QEMU_ROOT),.) +export QEMU_ROOT +endif + +ioemu-dir-find: + set -ex; \ + if test -d $(CONFIG_QEMU); then \ + mkdir -p ioemu-dir; \ + else \ + if [ ! -d ioemu-remote ]; then \ + rm -rf ioemu-remote ioemu-remote.tmp; \ + mkdir ioemu-remote.tmp; rmdir ioemu-remote.tmp; \ + $(GIT) clone $(CONFIG_QEMU) ioemu-remote.tmp; \ + if [ "$(QEMU_TAG)" ]; then \ + cd ioemu-remote.tmp; \ + $(GIT) branch -D dummy >/dev/null 2>&1 ||:; \ + $(GIT) checkout -b dummy $(QEMU_TAG); \ + cd ..; \ + fi; \ + mv ioemu-remote.tmp ioemu-remote; \ + fi; \ + rm -f ioemu-dir; \ + ln -sf ioemu-remote ioemu-dir; \ + fi + set -e; \ + $(buildmakevars2shellvars); \ + cd ioemu-dir; \ + $(QEMU_ROOT)/xen-setup $(IOEMU_CONFIGURE_CROSS) + +.PHONY: ioemu-dir-force-update +ioemu-dir-force-update: set -ex; \ if [ "$(QEMU_TAG)" ]; then \ - cd qemu-xen-traditional-dir-remote; \ + cd ioemu-remote; \ $(GIT) fetch origin; \ $(GIT) reset --hard $(QEMU_TAG); \ fi -subdir-all-qemu-xen-traditional-dir subdir-install-qemu-xen-traditional-dir: qemu-xen-traditional-dir-find - -subdir-clean-qemu-xen-traditional-dir: - set -e; if test -d qemu-xen-traditional-dir/.; then \ - $(buildmakevars2shellvars); \ - $(MAKE) -C qemu-xen-traditional-dir clean; \ - fi - -subdir-all-qemu-xen-dir subdir-install-qemu-xen-dir: qemu-xen-dir-find +subdir-all-ioemu-dir subdir-install-ioemu-dir: ioemu-dir-find -subdir-clean-qemu-xen-dir: - set -e; if test -d qemu-xen-dir/.; then \ +subdir-clean-ioemu-dir: + set -e; if test -d ioemu-dir/.; then \ $(buildmakevars2shellvars); \ - $(MAKE) -C qemu-xen-dir clean; \ + $(MAKE) -C ioemu-dir clean; \ fi subdir-clean-debugger/gdbsx subdir-distclean-debugger/gdbsx: .phony diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile index 1e8a4db03a..4b6d144134 100644 --- a/tools/firmware/Makefile +++ b/tools/firmware/Makefile @@ -6,18 +6,13 @@ 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: seabios-dir +all: @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!"; \ @@ -40,7 +35,4 @@ clean: subdirs-clean distclean: subdirs-distclean subdir-distclean-etherboot: .phony - $(MAKE) -C etherboot distclean - -subdir-distclean-seabios-dir: .phony - rm -rf seabios-dir seabios-dir-remote + $(MAKE) -C etherboot distclean
\ No newline at end of file diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile index ae8a1e281f..11e8f1c316 100644 --- a/tools/firmware/hvmloader/Makefile +++ b/tools/firmware/hvmloader/Makefile @@ -44,7 +44,6 @@ 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 deleted file mode 100644 index 202d15fad5..0000000000 --- a/tools/firmware/seabios-config +++ /dev/null @@ -1,73 +0,0 @@ -# -# 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 |