From: Ian Jackson Date: Fri, 8 Apr 2016 17:07:10 +0000 (+0100) Subject: Revert "xen: change the sizes of fields in the HVM start info layout to be 64bits" X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~1316 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=2d8bd3561626d59698dfe19afa04781e4e0bbf5d;p=xen.git Revert "xen: change the sizes of fields in the HVM start info layout to be 64bits" This reverts commit 1aee836fe2829c39775c6434bf914f752521cfa7. This patch was nacked after commit. Jan writes: And already applied as I see. I think rushing things in like this is not a solution, no matter that we want to freeze the tree today. Changes like this should be free to go in as de-facto bug fixes after the freeze date. --- diff --git a/tools/libxc/include/xc_dom.h b/tools/libxc/include/xc_dom.h index 746cce2d40..6ebe946bfb 100644 --- a/tools/libxc/include/xc_dom.h +++ b/tools/libxc/include/xc_dom.h @@ -227,16 +227,16 @@ struct xc_dom_image { * be required in the future if there are alignment changes. */ struct hvm_start_info { - uint64_t magic; /* Contains the magic value 0x746f6f62336ec578 */ - /* ("xEn3boot" with the 0x80 bit of the "E" set).*/ - uint64_t version; /* Version of this structure. */ - uint64_t flags; /* SIF_xxx flags. */ - uint64_t cmdline_paddr; /* Physical address of the command line. */ - uint64_t nr_modules; /* Number of modules passed to the kernel. */ - uint64_t modlist_paddr; /* Physical address of an array of */ - /* hvm_modlist_entry. */ - uint64_t rsdp_paddr; /* Physical address of the RSDP ACPI data */ - /* structure. */ + 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 { diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h index 59f3c2f228..435d78902a 100644 --- a/xen/include/public/xen.h +++ b/xen/include/public/xen.h @@ -814,23 +814,23 @@ typedef struct start_info start_info_t; * * 0 +----------------+ * | magic | Contains the magic value XEN_HVM_START_MAGIC_VALUE - * | | ("xEn3boot" with the 0x80 bit of the "E" set). - * 8 +----------------+ + * | | ("xEn3" with the 0x80 bit of the "E" set). + * 4 +----------------+ * | version | Version of this structure. Current version is 0. New * | | versions are guaranteed to be backwards-compatible. - * 16 +----------------+ + * 8 +----------------+ * | flags | SIF_xxx flags. - * 24 +----------------+ + * 12 +----------------+ * | cmdline_paddr | Physical address of the command line, * | | a zero-terminated ASCII string. - * 32 +----------------+ + * 16 +----------------+ * | nr_modules | Number of modules passed to the kernel. - * 40 +----------------+ + * 20 +----------------+ * | modlist_paddr | Physical address of an array of modules * | | (layout of the structure below). - * 48 +----------------+ + * 24 +----------------+ * | rsdp_paddr | Physical address of the RSDP ACPI data structure. - * 56 +----------------+ + * 28 +----------------+ * * The layout of each entry in the module structure is the following: * @@ -845,12 +845,10 @@ typedef struct start_info start_info_t; * | reserved | * 32 +----------------+ * - * The address and sizes are always a 64bit little endian unsigned integer. - * - * NB: Xen on x86 will always try to place all the data below the 4GiB - * boundary. + * The address and size of the modules is a 64bit unsigned integer. However + * Xen will always try to place all modules below the 4GiB boundary. */ -#define XEN_HVM_START_MAGIC_VALUE 0x746f6f62336ec578 +#define XEN_HVM_START_MAGIC_VALUE 0x336ec578 /* New console union for dom0 introduced in 0x00030203. */ #if __XEN_INTERFACE_VERSION__ < 0x00030203