[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v2 4/4] Clone and build Seabios by default



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

diff -r ef27b472d4f3 Config.mk
--- a/Config.mk Thu Sep 08 17:19:12 2011 +0000
+++ b/Config.mk Thu Sep 08 17:29:50 2011 +0000
@@ -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 ?= cd776ee9408ff127f934a707c1a3
 # 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 ef27b472d4f3 tools/firmware/Makefile
--- a/tools/firmware/Makefile   Thu Sep 08 17:19:12 2011 +0000
+++ b/tools/firmware/Makefile   Thu Sep 08 17:29:50 2011 +0000
@@ -4,15 +4,35 @@ include $(XEN_ROOT)/tools/Rules.mk
 # hvmloader is a 32-bit protected mode binary.
 TARGET      := hvmloader/hvmloader
 INST_DIR := $(DESTDIR)$(XENFIRMWAREDIR)
+SEABIOS_DIR := seabios-dir
 
 SUBDIRS :=
+SUBDIRS += $(SEABIOS_DIR)
 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 $(SEABIOS_UPSTREAM_URL) seabios-remote.tmp; \
+               if [ "$(SEABIOS_UPSTREAM_TAG)" ]; then                  \
+                       cd seabios-remote.tmp;                  \
+                       $(GIT) branch -D dummy >/dev/null 2>&1 ||:; \
+                       $(GIT) checkout -b dummy $(SEABIOS_UPSTREAM_TAG);       
\
+                       cd ..;                                  \
+               fi;                                             \
+               mv seabios-remote.tmp seabios-remote; \
+       fi; \
+       rm -f seabios-dir; \
+       ln -sf seabios-remote 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 +55,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 ef27b472d4f3 tools/firmware/hvmloader/Makefile
--- a/tools/firmware/hvmloader/Makefile Thu Sep 08 17:19:12 2011 +0000
+++ b/tools/firmware/hvmloader/Makefile Thu Sep 08 17:29:50 2011 +0000
@@ -47,7 +47,7 @@ endif
 ifneq ($(SEABIOS_DIR),)
 OBJS += seabios.o
 CFLAGS += -DENABLE_SEABIOS
-SEABIOS_ROM := $(SEABIOS_DIR)/out/bios.bin
+SEABIOS_ROM := ../$(SEABIOS_DIR)/out/bios.bin
 endif
 
 STDVGA_ROM    := ../vgabios/VGABIOS-lgpl-latest.bin
diff -r ef27b472d4f3 tools/firmware/seabios-config
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/firmware/seabios-config     Thu Sep 08 17:29:50 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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.