diff --git a/package/xen/Config.in b/package/xen/Config.in index 47f9dfa6e4..89543ac9ba 100644 --- a/package/xen/Config.in +++ b/package/xen/Config.in @@ -1,7 +1,7 @@ config BR2_PACKAGE_XEN bool "xen" # needs "dmb" on ARM, so ARM >= v7 - depends on BR2_ARM_CPU_ARMV7A || BR2_aarch64 + depends on BR2_ARM_CPU_ARMV7A || BR2_aarch64 || BR2_x86_64 select BR2_PACKAGE_XEN_HYPERVISOR if !BR2_PACKAGE_XEN_TOOLS help This package builds the Xen hypervisor and toolstack. diff --git a/package/xen/xen.mk b/package/xen/xen.mk index bddfdbba38..729d213c02 100644 --- a/package/xen/xen.mk +++ b/package/xen/xen.mk @@ -24,6 +24,8 @@ ifeq ($(ARCH),aarch64) XEN_ARCH = arm64 else ifeq ($(ARCH),arm) XEN_ARCH = arm32 +else ifeq ($(ARCH),x86_64) +XEN_ARCH = x86_64 endif XEN_CONF_OPTS = \ @@ -32,6 +34,21 @@ XEN_CONF_OPTS = \ --with-initddir=/etc/init.d \ --disable-werror +ifeq ($(BR2_x86_64),y) +# SeaBIOS, OVMF and iPXE would be git-cloned at build time, and ROMBIOS +# needs the bcc/as86/ld86 toolchain, so only build hvmloader. The PV shim +# is a second, differently configured build of the hypervisor. +XEN_CONF_OPTS += \ + --disable-seabios \ + --disable-ovmf \ + --disable-ipxe \ + --disable-rombios \ + --disable-pvshim + +# hvmloader is 32-bit x86 firmware, loaded into HVM guests +XEN_BIN_ARCH_EXCLUDE = /usr/lib/xen/boot +endif + # Xen 4.20+ would normally fetch qemu-xen via git at build time; we # pre-provide it via the qemu-xen package instead. XEN_CONF_ENV = PYTHON=$(HOST_DIR)/bin/python3