xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V2 0/5] Reintroduce OVMF support
@ 2013-10-29 10:31 Wei Liu
  2013-10-29 10:31 ` [PATCH V2 1/5] libxl: bump LIBXL_MAXMEM_CONSTANT to 2048 Wei Liu
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Wei Liu @ 2013-10-29 10:31 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu, ian.jackson, ian.campbell

OVMF (open virtual machine firmware) is used to provide UEFI support for
virtual machines. It was first introduced about a year ago but was disabled due
to compilation problem. Now that the compilation problem is resolved we can
reintorduce it.

OVMF tree can be pulled from
  git://xenbits.xen.org/people/liuw/ovmf.git for-xenbits

Wei.

Ian Campbell (3):
  tools: clone ovmf to ovmf-dir directory
  tools: support system supplied ovmf binary
  tools: Enable OVMF build by default

Wei Liu (2):
  libxl: bump LIBXL_MAXMEM_CONSTANT to 2048
  Config.mk: update OVMF changeset

 Config.mk                         |    2 +-
 Makefile                          |    4 ++++
 config/Tools.mk.in                |    1 +
 tools/configure                   |   20 +++++++++++++++-----
 tools/configure.ac                |   13 ++++++++++++-
 tools/firmware/Makefile           |   31 ++++++++++++-------------------
 tools/firmware/hvmloader/Makefile |    8 ++++++--
 tools/libxl/libxl_internal.h      |    2 +-
 8 files changed, 52 insertions(+), 29 deletions(-)

-- 
1.7.10.4

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH V2 1/5] libxl: bump LIBXL_MAXMEM_CONSTANT to 2048
  2013-10-29 10:31 [PATCH V2 0/5] Reintroduce OVMF support Wei Liu
@ 2013-10-29 10:31 ` Wei Liu
  2013-10-29 10:31 ` [PATCH V2 2/5] tools: clone ovmf to ovmf-dir directory Wei Liu
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Wei Liu @ 2013-10-29 10:31 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu, ian.jackson, ian.campbell

When using OVMF we need to have 1MiB of memory in place for firmware.
Without this change we have:

(XEN) HVM128: Loading OVMF ...
(XEN) page_alloc.c:1460:d128 Over-allocation for domain 128: 33025 > 33024
(XEN) memory.c:132:d128 Could not allocate order=0 extent: id=128 memflags=0 (0 of 1)

This is not a fatal error as hvmloader will instead use low memory to
load OVMF, but it's better to eliminate such error.

Changing this constant doesn't necessary increase the total amount of
memory a guest uses because it's just a limit.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
---
 tools/libxl/libxl_internal.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
index 165dc00..908af20 100644
--- a/tools/libxl/libxl_internal.h
+++ b/tools/libxl/libxl_internal.h
@@ -87,7 +87,7 @@
 #define LIBXL_QEMU_BODGE_TIMEOUT 2
 #define LIBXL_XENCONSOLE_LIMIT 1048576
 #define LIBXL_XENCONSOLE_PROTOCOL "vt100"
-#define LIBXL_MAXMEM_CONSTANT 1024
+#define LIBXL_MAXMEM_CONSTANT 2048
 #define LIBXL_PV_EXTRA_MEMORY 1024
 #define LIBXL_HVM_EXTRA_MEMORY 2048
 #define LIBXL_MIN_DOM0_MEM (128*1024)
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH V2 2/5] tools: clone ovmf to ovmf-dir directory
  2013-10-29 10:31 [PATCH V2 0/5] Reintroduce OVMF support Wei Liu
  2013-10-29 10:31 ` [PATCH V2 1/5] libxl: bump LIBXL_MAXMEM_CONSTANT to 2048 Wei Liu
@ 2013-10-29 10:31 ` Wei Liu
  2013-10-29 10:31 ` [PATCH V2 3/5] tools: support system supplied ovmf binary Wei Liu
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Wei Liu @ 2013-10-29 10:31 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu, ian.jackson, ian.campbell

From: Ian Campbell <ian.campbell@citrix.com>

for consistency with other foo-dir e.g. qemu, seabios.

Remove obsolete ovmf-find target.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 Makefile                          |    4 ++++
 tools/firmware/Makefile           |   29 ++++++++++-------------------
 tools/firmware/hvmloader/Makefile |    2 +-
 3 files changed, 15 insertions(+), 20 deletions(-)

diff --git a/Makefile b/Makefile
index d915660..4e48457 100644
--- a/Makefile
+++ b/Makefile
@@ -110,6 +110,10 @@ endif
 tools/firmware/seabios-dir-force-update:
 	$(MAKE) -C tools/firmware seabios-dir-force-update
 
+.PHONY: tools/firmware/ovmf-dir-force-update
+tools/firmware/ovmf-dir-force-update:
+	$(MAKE) -C tools/firmware ovmf-dir-force-update
+
 .PHONY: install-docs
 install-docs:
 	$(MAKE) -C docs install
diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile
index f064765..8633748 100644
--- a/tools/firmware/Makefile
+++ b/tools/firmware/Makefile
@@ -6,7 +6,7 @@ TARGET      := hvmloader/hvmloader
 INST_DIR := $(DESTDIR)$(XENFIRMWAREDIR)
 
 SUBDIRS-y :=
-SUBDIRS-$(CONFIG_OVMF) += ovmf
+SUBDIRS-$(CONFIG_OVMF) += ovmf-dir
 ifeq ($(SEABIOS_PATH),)
 SUBDIRS-$(CONFIG_SEABIOS) += seabios-dir
 endif
@@ -15,9 +15,9 @@ SUBDIRS-$(CONFIG_ROMBIOS) += vgabios
 SUBDIRS-$(CONFIG_ROMBIOS) += etherboot
 SUBDIRS-y += hvmloader
 
-ovmf:
-	GIT=$(GIT) $(XEN_ROOT)/scripts/git-checkout.sh $(OVMF_UPSTREAM_URL) $(OVMF_UPSTREAM_REVISION) ovmf
-	cp ovmf-makefile ovmf/Makefile;
+ovmf-dir:
+	GIT=$(GIT) $(XEN_ROOT)/scripts/git-checkout.sh $(OVMF_UPSTREAM_URL) $(OVMF_UPSTREAM_REVISION) ovmf-dir
+	cp ovmf-makefile ovmf-dir/Makefile;
 
 seabios-dir:
 	GIT=$(GIT) $(XEN_ROOT)/scripts/git-checkout.sh $(SEABIOS_UPSTREAM_URL) $(SEABIOS_UPSTREAM_TAG) seabios-dir
@@ -52,32 +52,23 @@ subdir-distclean-etherboot: .phony
 	$(MAKE) -C etherboot distclean
 
 subdir-distclean-ovmf: .phony
-	rm -rf ovmf ovmf-remote
+	rm -rf ovmf-dir ovmf-dir-remote
 
 subdir-distclean-seabios-dir: .phony
 	rm -rf seabios-dir seabios-dir-remote
 
-.PHONY: ovmf-find
-ovmf-find:
-	if test -d $(OVMF_UPSTREAM_URL) ; then \
-	               mkdir -p ovmf; \
-        else \
-                export GIT=$(GIT); \
-                $(XEN_ROOT)/scripts/git-checkout.sh $(OVMF_UPSTREAM_URL) $(OVMF_UPSTREAM_REVISION) ovmf ; \
-        fi
-
-.PHONY: ovmf-force-update
-ovmf-force-update:
+.PHONY: ovmf-dir-force-update
+ovmf-dir-force-update:
 	set -ex; \
 	if [ "$(OVMF_UPSTREAM_REVISION)" ]; then \
-		cd ovmf-remote; \
+		cd ovmf-dir-remote; \
 		$(GIT) fetch origin; \
 		$(GIT) reset --hard $(OVMF_UPSTREAM_REVISION); \
 	fi
 
 subdir-clean-ovmf:
-	set -e; if test -d ovmf/.; then \
-		$(MAKE) -C ovmf clean; \
+	set -e; if test -d ovmf-dir/.; then \
+		$(MAKE) -C ovmf-dir clean; \
 	fi
 
 .PHONY: seabios-dir-force-update
diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile
index 8ab1429..e27e457 100644
--- a/tools/firmware/hvmloader/Makefile
+++ b/tools/firmware/hvmloader/Makefile
@@ -37,7 +37,7 @@ endif
 
 CIRRUSVGA_DEBUG ?= n
 
-OVMF_DIR := ../ovmf
+OVMF_DIR := ../ovmf-dir
 ROMBIOS_DIR := ../rombios
 SEABIOS_DIR := ../seabios-dir
 
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH V2 3/5] tools: support system supplied ovmf binary
  2013-10-29 10:31 [PATCH V2 0/5] Reintroduce OVMF support Wei Liu
  2013-10-29 10:31 ` [PATCH V2 1/5] libxl: bump LIBXL_MAXMEM_CONSTANT to 2048 Wei Liu
  2013-10-29 10:31 ` [PATCH V2 2/5] tools: clone ovmf to ovmf-dir directory Wei Liu
@ 2013-10-29 10:31 ` Wei Liu
  2013-10-29 10:31 ` [PATCH V2 4/5] tools: Enable OVMF build by default Wei Liu
  2013-10-29 10:31 ` [PATCH V2 5/5] Config.mk: update OVMF changeset Wei Liu
  4 siblings, 0 replies; 8+ messages in thread
From: Wei Liu @ 2013-10-29 10:31 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu, ian.jackson, ian.campbell

From: Ian Campbell <ian.campbell@citrix.com>

Debian Jessie at least contains an ovmf package that includes
/usr/share/ovmf/OVMF.fd. It's also possible that user may want to supply
his/her own ovmf binary.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 config/Tools.mk.in                |    1 +
 tools/configure                   |   16 +++++++++++++---
 tools/configure.ac                |   11 +++++++++++
 tools/firmware/Makefile           |    2 ++
 tools/firmware/hvmloader/Makefile |    6 +++++-
 5 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/config/Tools.mk.in b/config/Tools.mk.in
index 67f5782..d9d3239 100644
--- a/config/Tools.mk.in
+++ b/config/Tools.mk.in
@@ -24,6 +24,7 @@ BCC                 := @BCC@
 IASL                := @IASL@
 FETCHER             := @FETCHER@
 SEABIOS_PATH        := @seabios_path@
+OVMF_PATH           := @ovmf_path@
 
 # Extra folder for libs/includes
 PREPEND_INCLUDES    := @PREPEND_INCLUDES@
diff --git a/tools/configure b/tools/configure
index 1da8652..22e74a7 100755
--- a/tools/configure
+++ b/tools/configure
@@ -682,6 +682,7 @@ APPEND_LIB
 APPEND_INCLUDES
 PREPEND_LIB
 PREPEND_INCLUDES
+ovmf_path
 seabios_path
 qemu_xen
 qemu_traditional
@@ -768,6 +769,7 @@ enable_blktap1
 enable_qemu_traditional
 with_system_qemu
 with_system_seabios
+with_system_ovmf
 '
       ac_precious_vars='build_alias
 host_alias
@@ -1440,6 +1442,9 @@ Optional Packages:
   --with-system-seabios[=PATH]
                           Use system supplied seabios PATH instead of building
                           and installing our own version
+  --with-system-ovmf[=PATH]
+                          Use system supplied OVMF PATH instead of building
+                          and installing our own version
 
 Some influential environment variables:
   CC          C compiler command
@@ -3771,9 +3776,14 @@ fi
 
 
 
-
-
-
+# Check whether --with-system-ovmf was given.
+if test "${with_system_ovmf+set}" = set; then :
+  withval=$with_system_ovmf;
+    case $withval in
+        no) ovmf_path= ;;
+        *)  ovmf_path=$withval ;;
+    esac
+fi
 
 
 for cppflag in $PREPEND_INCLUDES
diff --git a/tools/configure.ac b/tools/configure.ac
index 4f3c33a..b2941a4 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -108,6 +108,17 @@ AC_ARG_WITH([system-seabios],
 ],[])
 AC_SUBST(seabios_path)
 
+AC_ARG_WITH([system-ovmf],
+    AS_HELP_STRING([--with-system-ovmf@<:@=PATH@:>@],
+       [Use system supplied OVMF PATH instead of building and installing
+        our own version]),[
+    case $withval in
+        no) ovmf_path= ;;
+        *)  ovmf_path=$withval ;;
+    esac
+],[])
+AC_SUBST(ovmf_path)
+
 AC_ARG_VAR([PREPEND_INCLUDES],
     [List of include folders to prepend to CFLAGS (without -I)])
 AC_ARG_VAR([PREPEND_LIB],
diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile
index 8633748..cb13212 100644
--- a/tools/firmware/Makefile
+++ b/tools/firmware/Makefile
@@ -6,7 +6,9 @@ TARGET      := hvmloader/hvmloader
 INST_DIR := $(DESTDIR)$(XENFIRMWAREDIR)
 
 SUBDIRS-y :=
+ifeq ($(OVMF_PATH),)
 SUBDIRS-$(CONFIG_OVMF) += ovmf-dir
+endif
 ifeq ($(SEABIOS_PATH),)
 SUBDIRS-$(CONFIG_SEABIOS) += seabios-dir
 endif
diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile
index e27e457..00ee952 100644
--- a/tools/firmware/hvmloader/Makefile
+++ b/tools/firmware/hvmloader/Makefile
@@ -56,7 +56,11 @@ ROMS :=
 ifeq ($(CONFIG_OVMF),y)
 OBJS += ovmf.o
 CFLAGS += -DENABLE_OVMF
-OVMF_ROM := $(OVMF_DIR)/ovmf.bin
+ifeq ($(OVMF_PATH),)
+	OVMF_ROM := $(OVMF_DIR)/ovmf.bin
+else
+	OVMF_ROM := $(OVMF_PATH)
+endif
 ROMS += $(OVMF_ROM)
 endif
 
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH V2 4/5] tools: Enable OVMF build by default
  2013-10-29 10:31 [PATCH V2 0/5] Reintroduce OVMF support Wei Liu
                   ` (2 preceding siblings ...)
  2013-10-29 10:31 ` [PATCH V2 3/5] tools: support system supplied ovmf binary Wei Liu
@ 2013-10-29 10:31 ` Wei Liu
  2013-10-29 11:31   ` Jan Beulich
  2013-10-29 10:31 ` [PATCH V2 5/5] Config.mk: update OVMF changeset Wei Liu
  4 siblings, 1 reply; 8+ messages in thread
From: Wei Liu @ 2013-10-29 10:31 UTC (permalink / raw)
  To: xen-devel; +Cc: ian.jackson, ian.campbell

From: Ian Campbell <ian.campbell@citrix.com>

The issues with non-GCC4.4 builds seem to have been resolved.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
 tools/configure    |    4 ++--
 tools/configure.ac |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/configure b/tools/configure
index 22e74a7..eb58bcd 100755
--- a/tools/configure
+++ b/tools/configure
@@ -1422,7 +1422,7 @@ Optional Features:
   --enable-xenapi         Enable Xen API Bindings (default is DISABLED)
   --disable-ocamltools    Disable Ocaml tools (default is ENABLED)
   --disable-xsmpolicy     Disable XSM policy compilation (default is ENABLED)
-  --enable-ovmf           Enable OVMF (default is DISABLED)
+  --disable-ovmf          Enable OVMF (default is ENABLED)
   --disable-rombios       Disable ROM BIOS (default is ENABLED)
   --disable-seabios       Disable SeaBIOS (default is ENABLED)
   --disable-debug         Disable debug build of tools (default is ENABLED)
@@ -3584,7 +3584,7 @@ elif test "x$enable_ovmf" = "xyes"; then :
 
 elif test -z $ax_cv_ovmf; then :
 
-    ax_cv_ovmf="n"
+    ax_cv_ovmf="y"
 
 fi
 ovmf=$ax_cv_ovmf
diff --git a/tools/configure.ac b/tools/configure.ac
index b2941a4..86fcb28 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -53,7 +53,7 @@ AX_ARG_DEFAULT_ENABLE([monitors], [Disable xenstat and xentop monitoring tools])
 AX_ARG_DEFAULT_DISABLE([xenapi], [Enable Xen API Bindings])
 AX_ARG_DEFAULT_ENABLE([ocamltools], [Disable Ocaml tools])
 AX_ARG_DEFAULT_ENABLE([xsmpolicy], [Disable XSM policy compilation])
-AX_ARG_DEFAULT_DISABLE([ovmf], [Enable OVMF])
+AX_ARG_DEFAULT_ENABLE([ovmf], [Enable OVMF])
 AX_ARG_DEFAULT_ENABLE([rombios], [Disable ROM BIOS])
 AX_ARG_DEFAULT_ENABLE([seabios], [Disable SeaBIOS])
 AX_ARG_DEFAULT_ENABLE([debug], [Disable debug build of tools])
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH V2 5/5] Config.mk: update OVMF changeset
  2013-10-29 10:31 [PATCH V2 0/5] Reintroduce OVMF support Wei Liu
                   ` (3 preceding siblings ...)
  2013-10-29 10:31 ` [PATCH V2 4/5] tools: Enable OVMF build by default Wei Liu
@ 2013-10-29 10:31 ` Wei Liu
  4 siblings, 0 replies; 8+ messages in thread
From: Wei Liu @ 2013-10-29 10:31 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu, ian.jackson, ian.campbell

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 Config.mk |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Config.mk b/Config.mk
index 1879454..dad2dc4 100644
--- a/Config.mk
+++ b/Config.mk
@@ -232,7 +232,7 @@ OVMF_UPSTREAM_URL ?= git://xenbits.xen.org/ovmf.git
 QEMU_UPSTREAM_URL ?= git://xenbits.xen.org/qemu-upstream-unstable.git
 SEABIOS_UPSTREAM_URL ?= git://xenbits.xen.org/seabios.git
 endif
-OVMF_UPSTREAM_REVISION ?= b0855f925c6e2e0b21fbb03fab4b5fb5b6876871
+OVMF_UPSTREAM_REVISION ?= a93b0e3f6895a074b99c8817181dfa6dbc7a4807
 QEMU_UPSTREAM_REVISION ?= 1c514a7734b7f98625a0d18d5e8ee7581f26e50c
 SEABIOS_UPSTREAM_TAG ?= rel-1.7.3.1
 # Fri Aug 2 14:12:09 2013 -0400
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH V2 4/5] tools: Enable OVMF build by default
  2013-10-29 10:31 ` [PATCH V2 4/5] tools: Enable OVMF build by default Wei Liu
@ 2013-10-29 11:31   ` Jan Beulich
  2013-10-29 11:34     ` Wei Liu
  0 siblings, 1 reply; 8+ messages in thread
From: Jan Beulich @ 2013-10-29 11:31 UTC (permalink / raw)
  To: Wei Liu; +Cc: xen-devel, ian.jackson, ian.campbell

>>> On 29.10.13 at 11:31, Wei Liu <wei.liu2@citrix.com> wrote:
> From: Ian Campbell <ian.campbell@citrix.com>
> 
> The issues with non-GCC4.4 builds seem to have been resolved.

Shouldn't this come _after_ the changeset update patch then?

Jan

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH V2 4/5] tools: Enable OVMF build by default
  2013-10-29 11:31   ` Jan Beulich
@ 2013-10-29 11:34     ` Wei Liu
  0 siblings, 0 replies; 8+ messages in thread
From: Wei Liu @ 2013-10-29 11:34 UTC (permalink / raw)
  To: Jan Beulich; +Cc: ian.jackson, Wei Liu, ian.campbell, xen-devel

On Tue, Oct 29, 2013 at 11:31:01AM +0000, Jan Beulich wrote:
> >>> On 29.10.13 at 11:31, Wei Liu <wei.liu2@citrix.com> wrote:
> > From: Ian Campbell <ian.campbell@citrix.com>
> > 
> > The issues with non-GCC4.4 builds seem to have been resolved.
> 
> Shouldn't this come _after_ the changeset update patch then?
> 

Oops, my bad. Will resend this series in right order.

Wei.

> Jan

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-10-29 11:34 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-29 10:31 [PATCH V2 0/5] Reintroduce OVMF support Wei Liu
2013-10-29 10:31 ` [PATCH V2 1/5] libxl: bump LIBXL_MAXMEM_CONSTANT to 2048 Wei Liu
2013-10-29 10:31 ` [PATCH V2 2/5] tools: clone ovmf to ovmf-dir directory Wei Liu
2013-10-29 10:31 ` [PATCH V2 3/5] tools: support system supplied ovmf binary Wei Liu
2013-10-29 10:31 ` [PATCH V2 4/5] tools: Enable OVMF build by default Wei Liu
2013-10-29 11:31   ` Jan Beulich
2013-10-29 11:34     ` Wei Liu
2013-10-29 10:31 ` [PATCH V2 5/5] Config.mk: update OVMF changeset Wei Liu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).