WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH 2/2] Automatically select seabios when we are buildin

Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>

diff -r f1269b3216ef Config.mk
--- a/Config.mk Wed Sep 07 13:28:05 2011 +0000
+++ b/Config.mk Wed Sep 07 13:29:15 2011 +0000
@@ -195,6 +195,7 @@ 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
 
 # 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.
@@ -202,9 +203,12 @@ QEMU_UPSTREAM_TAG=origin/xen-stable-0.15
 ifeq ($(QEMU),upstream)
 CONFIG_QEMU ?= $(QEMU_UPSTREAM_URL)
 QEMU_TAG ?= $(QEMU_UPSTREAM_TAG)
+CONFIG_SEABIOS ?= $(SEABIOS_UPSTREAM_URL)
+SEABIOS_TAG ?= 7fc039e9c262b4199fab497f3e12f4e425c37560
 else
 CONFIG_QEMU ?= $(QEMU_REMOTE)
 QEMU_TAG ?= cd776ee9408ff127f934a707c1a339ee600bc127
+CONFIG_SEABIOS ?=
 endif
 
 # Tue Jun 28 13:50:53 2011 +0100
@@ -213,15 +217,6 @@ endif
 # 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 -r f1269b3216ef tools/firmware/Makefile
--- a/tools/firmware/Makefile   Wed Sep 07 13:28:05 2011 +0000
+++ b/tools/firmware/Makefile   Wed Sep 07 13:29:15 2011 +0000
@@ -6,13 +6,35 @@ TARGET      := hvmloader/hvmloader
 INST_DIR := $(DESTDIR)$(XENFIRMWAREDIR)
 
 SUBDIRS :=
+ifneq ($(CONFIG_SEABIOS),)
+SEABIOS_DIR := seabios-dir
+SUBDIRS += $(SEABIOS_DIR)
+endif
 SUBDIRS += rombios
 SUBDIRS += vgabios
 SUBDIRS += etherboot
 SUBDIRS += hvmloader
 
+$(SEABIOS_DIR):
+       set -ex; \
+       if [ ! -d seabios-remote ]; then \
+               rm -rf seabios-remote seabios-remote.tmp; \
+               mkdir seabios-remote.tmp; rmdir seabios-remote.tmp; \
+               $(GIT) clone $(CONFIG_SEABIOS) seabios-remote.tmp; \
+               if [ "$(SEABIOS_TAG)" ]; then                   \
+                       cd seabios-remote.tmp;                  \
+                       $(GIT) branch -D dummy >/dev/null 2>&1 ||:; \
+                       $(GIT) checkout -b dummy $(SEABIOS_TAG);        \
+                       cd ..;                                  \
+               fi;                                             \
+               mv seabios-remote.tmp seabios-remote; \
+       fi; \
+       rm -f seabios-dir; \
+       ln -sf seabios-remote seabios-dir; \
+       mv 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 +57,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-remote
diff -r f1269b3216ef tools/firmware/hvmloader/Makefile
--- a/tools/firmware/hvmloader/Makefile Wed Sep 07 13:28:05 2011 +0000
+++ b/tools/firmware/hvmloader/Makefile Wed Sep 07 13:29:15 2011 +0000
@@ -37,19 +37,17 @@ endif
 
 CIRRUSVGA_DEBUG ?= n
 
+ifneq ($(SEABIOS_DIR),)
+OBJS += seabios.o
+CFLAGS += -DENABLE_SEABIOS
+SEABIOS_ROM := ../$(SEABIOS_DIR)/out/bios.bin
+else
 ROMBIOS_DIR := ../rombios
-ifneq ($(ROMBIOS_DIR),)
 OBJS += rombios.o
 CFLAGS += -DENABLE_ROMBIOS
 ROMBIOS_ROM := $(ROMBIOS_DIR)/BIOS-bochs-latest
 endif
 
-ifneq ($(SEABIOS_DIR),)
-OBJS += seabios.o
-CFLAGS += -DENABLE_SEABIOS
-SEABIOS_ROM := $(SEABIOS_DIR)/out/bios.bin
-endif
-
 STDVGA_ROM    := ../vgabios/VGABIOS-lgpl-latest.bin
 ifeq ($(CIRRUSVGA_DEBUG),y)
 CIRRUSVGA_ROM := ../vgabios/VGABIOS-lgpl-latest.cirrus.debug.bin
diff -r f1269b3216ef tools/firmware/seabios-config
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/firmware/seabios-config     Wed Sep 07 13:29:15 2011 +0000
@@ -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

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel