Mailing List Archive

[PATCH v10 5/7] Clone and build Seabios by default
From: stefano.stabellini@eu.citrix.com <stefano.stabellini@eu.citrix.com>

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
.hgignore | 2 +
Config.mk | 12 ++-----
Makefile | 4 ++
tools/firmware/Makefile | 21 ++++++++++-
tools/firmware/hvmloader/Makefile | 1 +
tools/firmware/seabios-config | 73 +++++++++++++++++++++++++++++++++++++
6 files changed, 102 insertions(+), 11 deletions(-)
create mode 100644 tools/firmware/seabios-config

diff --git a/.hgignore b/.hgignore
index cbcc0f5..64b440e 100644
--- a/.hgignore
+++ b/.hgignore
@@ -300,6 +300,8 @@
^tools/qemu-xen-traditional-dir$
^tools/qemu-xen-dir-remote
^tools/qemu-xen-dir$
+^tools/firmware/seabios-dir-remote
+^tools/firmware/seabios-dir$
^tools/ocaml/.*/.*\.annot$
^tools/ocaml/.*/.*\.cmx?a$
^tools/ocaml/.*/META$
diff --git a/Config.mk b/Config.mk
index d229ab6..152c783 100644
--- a/Config.mk
+++ b/Config.mk
@@ -204,10 +204,13 @@ endif

ifeq ($(GIT_HTTP),y)
QEMU_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/qemu-upstream-unstable.git
+SEABIOS_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/seabios.git
else
QEMU_UPSTREAM_URL ?= git://xenbits.xen.org/qemu-upstream-unstable.git
+SEABIOS_UPSTREAM_URL ?= git://xenbits.xen.org/seabios.git
endif
QEMU_UPSTREAM_REVISION ?= master
+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.
@@ -221,15 +224,6 @@ QEMU_TAG ?= bb36d632e4cabf47882adff07a45c6702c4a5b30
# 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/Makefile b/Makefile
index edc5e3d..8edea0d 100644
--- a/Makefile
+++ b/Makefile
@@ -98,6 +98,10 @@ tools/qemu-xen-dir:
tools/qemu-xen-dir-force-update:
$(MAKE) -C tools qemu-xen-dir-force-update

+.PHONY: tools/firmware/seabios-dir-force-update
+tools/firmware/seabios-dir-force-update:
+ $(MAKE) -C tools/firmware seabios-dir-force-update
+
.PHONY: install-docs
install-docs:
sh ./docs/check_pkgs && $(MAKE) -C docs install || true
diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile
index 4b6d144..c3ec9a0 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:
+ 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:
+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,16 @@ 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
+
+.PHONY: seabios-dir-force-update
+seabios-dir-force-update:
+ set -ex; \
+ if [ "$(SEABIOS_UPSTREAM_TAG)" ]; then \
+ cd seabios-dir-remote; \
+ $(GIT) fetch origin; \
+ $(GIT) reset --hard $(SEABIOS_UPSTREAM_TAG); \
+ fi
diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile
index ec33155..41a4369 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 0000000..202d15f
--- /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
--
1.7.2.5


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
Re: [PATCH v10 5/7] Clone and build Seabios by default [ In reply to ]
On Mon, 2012-01-16 at 16:52 +0000, stefano.stabellini@eu.citrix.com
wrote:
> From: stefano.stabellini@eu.citrix.com <stefano.stabellini@eu.citrix.com>

Something is weird in your git metadata here..

> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>

Acked-by: Ian Campbell <ian.campbell@citrix.com>

> ---
> .hgignore | 2 +
> Config.mk | 12 ++-----
> Makefile | 4 ++
> tools/firmware/Makefile | 21 ++++++++++-
> tools/firmware/hvmloader/Makefile | 1 +
> tools/firmware/seabios-config | 73 +++++++++++++++++++++++++++++++++++++
> 6 files changed, 102 insertions(+), 11 deletions(-)
> create mode 100644 tools/firmware/seabios-config
>
> diff --git a/.hgignore b/.hgignore
> index cbcc0f5..64b440e 100644
> --- a/.hgignore
> +++ b/.hgignore
> @@ -300,6 +300,8 @@
> ^tools/qemu-xen-traditional-dir$
> ^tools/qemu-xen-dir-remote
> ^tools/qemu-xen-dir$
> +^tools/firmware/seabios-dir-remote
> +^tools/firmware/seabios-dir$
> ^tools/ocaml/.*/.*\.annot$
> ^tools/ocaml/.*/.*\.cmx?a$
> ^tools/ocaml/.*/META$
> diff --git a/Config.mk b/Config.mk
> index d229ab6..152c783 100644
> --- a/Config.mk
> +++ b/Config.mk
> @@ -204,10 +204,13 @@ endif
>
> ifeq ($(GIT_HTTP),y)
> QEMU_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/qemu-upstream-unstable.git
> +SEABIOS_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/seabios.git
> else
> QEMU_UPSTREAM_URL ?= git://xenbits.xen.org/qemu-upstream-unstable.git
> +SEABIOS_UPSTREAM_URL ?= git://xenbits.xen.org/seabios.git
> endif
> QEMU_UPSTREAM_REVISION ?= master
> +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.
> @@ -221,15 +224,6 @@ QEMU_TAG ?= bb36d632e4cabf47882adff07a45c6702c4a5b30
> # 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/Makefile b/Makefile
> index edc5e3d..8edea0d 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -98,6 +98,10 @@ tools/qemu-xen-dir:
> tools/qemu-xen-dir-force-update:
> $(MAKE) -C tools qemu-xen-dir-force-update
>
> +.PHONY: tools/firmware/seabios-dir-force-update
> +tools/firmware/seabios-dir-force-update:
> + $(MAKE) -C tools/firmware seabios-dir-force-update
> +
> .PHONY: install-docs
> install-docs:
> sh ./docs/check_pkgs && $(MAKE) -C docs install || true
> diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile
> index 4b6d144..c3ec9a0 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:
> + 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:
> +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,16 @@ 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
> +
> +.PHONY: seabios-dir-force-update
> +seabios-dir-force-update:
> + set -ex; \
> + if [ "$(SEABIOS_UPSTREAM_TAG)" ]; then \
> + cd seabios-dir-remote; \
> + $(GIT) fetch origin; \
> + $(GIT) reset --hard $(SEABIOS_UPSTREAM_TAG); \
> + fi
> diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile
> index ec33155..41a4369 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 0000000..202d15f
> --- /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



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