92ed83b0e8
the toolstack instead of embedding in hvmloader http://lists.xenproject.org/archives/html/xen-devel/2016-03/msg01626.html 0001-libxc-Rework-extra-module-initialisation.patch, 0002-libxc-Prepare-a-start-info-structure-for-hvmloader.patch, 0003-configure-define-SEABIOS_PATH-and-OVMF_PATH.patch, 0004-firmware-makefile-install-BIOS-blob.patch, 0005-libxl-Load-guest-BIOS-from-file.patch, 0006-xen-Move-the-hvm_start_info-C-representation-from-li.patch, 0007-hvmloader-Grab-the-hvm_start_info-pointer.patch, 0008-hvmloader-Locate-the-BIOS-blob.patch, 0009-hvmloader-Check-modules-whereabouts-in-perform_tests.patch, 0010-hvmloader-Load-SeaBIOS-from-hvm_start_info-modules.patch, 0011-hvmloader-Load-OVMF-from-modules.patch, 0012-hvmloader-Specific-bios_load-function-required.patch, 0013-hvmloader-Always-build-in-SeaBIOS-and-OVMF-loader.patch, 0014-configure-do-not-depend-on-SEABIOS_PATH-or-OVMF_PATH.patch - Enable support for UEFI on x86_64 using the ovmf-x86_64-ms.bin firmware from qemu-ovmf-x86_64. The firmware is preloaded with Microsoft keys to more closely resemble firmware on real hardware FATE#320490 OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=416
100 lines
4.8 KiB
Diff
100 lines
4.8 KiB
Diff
From b920bea09b69c1cdd5bb4c5964ce20d0bf7ced8b Mon Sep 17 00:00:00 2001
|
|
From: Anthony PERARD <anthony.perard@citrix.com>
|
|
Date: Mon, 14 Mar 2016 17:55:41 +0000
|
|
Subject: [PATCH 06/15] xen: Move the hvm_start_info C representation from
|
|
libxc to public/xen.h
|
|
|
|
Instead of having several representation of hvm_start_info in C, define
|
|
it in public/xen.h so both libxc and hvmloader can use it.
|
|
|
|
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
|
|
---
|
|
tools/libxc/include/xc_dom.h | 31 -------------------------------
|
|
xen/include/public/xen.h | 31 +++++++++++++++++++++++++++++++
|
|
2 files changed, 31 insertions(+), 31 deletions(-)
|
|
|
|
Index: xen-4.7.0-testing/tools/libxc/include/xc_dom.h
|
|
===================================================================
|
|
--- xen-4.7.0-testing.orig/tools/libxc/include/xc_dom.h
|
|
+++ xen-4.7.0-testing/tools/libxc/include/xc_dom.h
|
|
@@ -219,37 +219,6 @@ struct xc_dom_image {
|
|
struct xc_hvm_firmware_module smbios_module;
|
|
};
|
|
|
|
-#if defined(__i386__) || defined(__x86_64__)
|
|
-/* C representation of the x86/HVM start info layout.
|
|
- *
|
|
- * The canonical definition of this layout resides in public/xen.h, this
|
|
- * is just a way to represent the layout described there using C types.
|
|
- *
|
|
- * NB: the packed attribute is not really needed, but it helps us enforce
|
|
- * the fact this this is just a representation, and it might indeed
|
|
- * be required in the future if there are alignment changes.
|
|
- */
|
|
-struct hvm_start_info {
|
|
- uint32_t magic; /* Contains the magic value 0x336ec578 */
|
|
- /* ("xEn3" with the 0x80 bit of the "E" set).*/
|
|
- uint32_t version; /* Version of this structure. */
|
|
- uint32_t flags; /* SIF_xxx flags. */
|
|
- uint32_t cmdline_paddr; /* Physical address of the command line. */
|
|
- uint32_t nr_modules; /* Number of modules passed to the kernel. */
|
|
- uint32_t modlist_paddr; /* Physical address of an array of */
|
|
- /* hvm_modlist_entry. */
|
|
- uint32_t rsdp_paddr; /* Physical address of the RSDP ACPI data */
|
|
- /* structure. */
|
|
-} __attribute__((packed));
|
|
-
|
|
-struct hvm_modlist_entry {
|
|
- uint64_t paddr; /* Physical address of the module. */
|
|
- uint64_t size; /* Size of the module in bytes. */
|
|
- uint64_t cmdline_paddr; /* Physical address of the command line. */
|
|
- uint64_t reserved;
|
|
-} __attribute__((packed));
|
|
-#endif /* x86 */
|
|
-
|
|
/* --- pluggable kernel loader ------------------------------------- */
|
|
|
|
struct xc_dom_loader {
|
|
Index: xen-4.7.0-testing/xen/include/public/xen.h
|
|
===================================================================
|
|
--- xen-4.7.0-testing.orig/xen/include/public/xen.h
|
|
+++ xen-4.7.0-testing/xen/include/public/xen.h
|
|
@@ -858,6 +858,37 @@ typedef struct start_info start_info_t;
|
|
*/
|
|
#define XEN_HVM_START_MAGIC_VALUE 0x336ec578
|
|
|
|
+#if defined(__i386__) || defined(__x86_64__)
|
|
+/* C representation of the x86/HVM start info layout.
|
|
+ *
|
|
+ * The canonical definition of this layout is abrove, this is just a way to
|
|
+ * represent the layout described there using C types.
|
|
+ *
|
|
+ * NB: the packed attribute is not really needed, but it helps us enforce
|
|
+ * the fact this this is just a representation, and it might indeed
|
|
+ * be required in the future if there are alignment changes.
|
|
+ */
|
|
+struct hvm_start_info {
|
|
+ uint32_t magic; /* Contains the magic value 0x336ec578 */
|
|
+ /* ("xEn3" with the 0x80 bit of the "E" set).*/
|
|
+ uint32_t version; /* Version of this structure. */
|
|
+ uint32_t flags; /* SIF_xxx flags. */
|
|
+ uint32_t cmdline_paddr; /* Physical address of the command line. */
|
|
+ uint32_t nr_modules; /* Number of modules passed to the kernel. */
|
|
+ uint32_t modlist_paddr; /* Physical address of an array of */
|
|
+ /* hvm_modlist_entry. */
|
|
+ uint32_t rsdp_paddr; /* Physical address of the RSDP ACPI data */
|
|
+ /* structure. */
|
|
+} __attribute__((packed));
|
|
+
|
|
+struct hvm_modlist_entry {
|
|
+ uint64_t paddr; /* Physical address of the module. */
|
|
+ uint64_t size; /* Size of the module in bytes. */
|
|
+ uint64_t cmdline_paddr; /* Physical address of the command line. */
|
|
+ uint64_t reserved;
|
|
+} __attribute__((packed));
|
|
+#endif /* x86 */
|
|
+
|
|
/* New console union for dom0 introduced in 0x00030203. */
|
|
#if __XEN_INTERFACE_VERSION__ < 0x00030203
|
|
#define console_mfn console.domU.mfn
|