From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v4 00/19] xen: add pvh guest support Date: Fri, 2 Nov 2018 13:37:19 +0100 Message-ID: <20181102123738.16395-1-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: grub-devel@gnu.org Cc: hans@knorrie.org, phcoder@gmail.com, daniel.kiper@oracle.com, Juergen Gross , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBzZXJpZXMgYWRkcyBzdXBwb3J0IGZvciBib290aW5nIExpbnV4IGFzIFBWSCBn dWVzdC4KClNpbWlsYXIgdG8gaTM4Ni94ZW4gYW5kIHg4Nl82NC94ZW4gcGxhdGZvcm1zIHRoZSBu ZXcgaTM4Ni94ZW5wdmgKcGxhdGZvcm0gZ3J1YiBpcyBib290ZWQgYXMgYSBzdGFuZGFsb25lIGlt YWdlIGRpcmVjdGx5IGJ5IFhlbi4KCkZvciBib290aW5nIExpbnV4IGtlcm5lbCBpdCBpcyB1c2lu ZyB0aGUgc3RhbmRhcmQgbGludXgga2VybmVsCmxvYWRlci4gVGhlIG9ubHkgbW9kaWZpY2F0aW9u IG9mIHRoZSBsaW51eCBsb2FkZXIgaXMgdG8gcGFzcyB0aGUKQUNQSSBSU0RQIGFkZHJlc3Mgdmlh IGJvb3QgcGFyYW1ldGVycyB0byB0aGUga2VybmVsLCBhcyB0aGF0IHRhYmxlCm1pZ2h0IG5vdCBi ZSBsb2NhdGVkIGF0IHRoZSB1c3VhbCBwaHlzaWNhbCBhZGRyZXNzIGp1c3QgYmVsb3cgMU1CLgoK VGhlIHJlbGF0ZWQgTGludXgga2VybmVsIHBhdGNoZXMgaGF2ZSBiZWVuIGFjY2VwdGVkIGluIHRo ZSBtZXJnZQp3aW5kb3cgZm9yIHBvc3QgNC4xOSAoNC4yMCBvciA1LjAsIHdoYXRldmVyIGl0IHdp bGwgYmUgY2FsbGVkKS4KCkNoYW5nZXMgaW4gVjQ6Ci0gYWRkZWQgbmV3IHBhdGNoIDEyCi0gd3Jp dGUgbW9kaWZpZWQgbWVtb3J5IG1hcCBiYWNrIHRvIFhlbgoKQ2hhbmdlcyBpbiBWMzoKLSBhZGRy ZXNzZWQgbG90cyBvZiBjb21tZW50cywgbW9zdCBieSBEYW5pZWwgYW5kIHNvbWUgYnkgUm9nZXIs CiAgZGV0YWlscyBhcmUgbWVudGlvbmVkIGluIHRoZSBpbmRpdmlkdWFsIHBhdGNoZXMKCkNoYW5n ZXMgaW4gVjI6Ci0gZXh0ZW5kIGxpbnV4IGJvb3QgcHJvdG9jb2wgdmVyc2lvbiAyLjE0IHRvIHJl cG9ydCBiYWNrIHRoZSBwcm90b2NvbAogIHZlcnNpb24gc3VwcG9ydGVkIGJ5IGdydWIyIChuZWVk ZWQgYXMgdGhlcmUgYXJlIGdydWIyIGRvd25zdHJlYW0KICB2YXJpYW50cyBpbiBzb21lIGRpc3Ry b3Mgd2hpY2ggY2xvYmJlciBkYXRhIGFmdGVyIHRoZSBzZXR1cF9oZWFkZXIpCi0gc3BsaXQgZm9y bWVyIHBhdGNoIDQgaW50byAxMCBwYXRjaGVzCi0gZml4IG1lbW1hcCBoYW5kbGluZyBmb3IgPjRH QiBvZiBtZW1vcnkKLSBhZGRlZCBuZXcgcGF0Y2ggZnJvbSBIYW5zICh0aGFua3MgZm9yIHRoYXQg b25lKQotIGFkZHJlc3NlZCBtb3N0IG9mIERhbmllbCdzIGNvbW1lbnRzIChzZWUgaW5kaXZpZHVh bCBwYXRjaGVzKQoKSGFucyB2YW4gS3JhbmVuYnVyZyAoMSk6CiAgZ3J1Yi1tb2R1bGUtdmVyaWZp ZXI6IElnbm9yZSBhbGxfdmlkZW8gZm9yIHhlbnB2aAoKSnVlcmdlbiBHcm9zcyAoMTgpOgogIHhl bjogYWRkIHNvbWUgeGVuIGhlYWRlcnMKICBsb2FkZXIvbGludXg6IHN1cHBvcnQgcGFzc2luZyBy c2RwIGFkZHJlc3MgdmlhIGJvb3QgcGFyYW1zCiAgeGVuOiBjYXJ2ZSBvdXQgZ3JhbnQgdGFiIGlu aXRpYWxpemF0aW9uIGludG8gZGVkaWNhdGVkIGZ1bmN0aW9uCiAgeGVuOiBwcmVwYXJlIGNvbW1v biBjb2RlIGZvciBYZW4gUFZIIHN1cHBvcnQKICB4ZW46IGFkZCBzb21lIGR1bW15IGhlYWRlcnMg Zm9yIFBWSCBtb2RlCiAgeGVuOiByZWFycmFuZ2UgeGVuL2luaXQuYyB0byBwcmVwYXJlIGl0IGZv ciBYZW4gUFZIIG1vZGUKICB4ZW46IGFkZCBQVkggc3BlY2lmaWMgZGVmaW5lcyB0byBvZmZzZXQu aAogIHhlbjogYWRkIGJhc2ljIGhvb2tzIGZvciBQVkggaW4gY3VycmVudCBjb2RlCiAgeGVuOiBh ZGQgUFZIIGJvb3QgZW50cnkgY29kZQogIHhlbjogc2V0dXAgaHlwZXJjYWxsIHBhZ2UgZm9yIFBW SAogIHhlbjogZ2V0IG1lbW9yeSBtYXAgZnJvbSBoeXBlcnZpc29yIGZvciBQVkgKICB4ZW46IGFk ZCBQQ0kgTU1JTyBhcmVhcyB0byBtZW1vcnkgbWFwCiAgeGVuOiBzZXR1cCBYZW4gc3BlY2lmaWMg ZGF0YSBmb3IgUFZICiAgeGVuOiBpbml0IG1lbW9yeSByZWdpb25zIGZvciBQVkgKICB4ZW5fcHZo OiBhZGQgYnVpbGQgcnVuZXMgZm9yIGdydWItY29yZQogIHhlbl9wdmg6IHN1cHBvcnQgYnVpbGRp bmcgYSBzdGFuZGFsb25lIGltYWdlCiAgeGVuX3B2aDogc3VwcG9ydCBncnViLWluc3RhbGwgZm9y IHhlbl9wdmgKICB4ZW5fcHZoOiBhZGQgc3VwcG9ydCB0byBjb25maWd1cmUKCiBjb25maWd1cmUu YWMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIGdlbnRwbC5weSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGdydWItY29yZS9NYWtlZmlsZS5hbSAgICAgICAg ICAgICAgICAgfCAgMTIgKwogZ3J1Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmICAgICAgICAgICB8 ICAzNiArKwogZ3J1Yi1jb3JlL2tlcm4vaTM4Ni90c2MuYyAgICAgICAgICAgICB8ICAgMiArLQog Z3J1Yi1jb3JlL2tlcm4vaTM4Ni94ZW4vcHZoLmMgICAgICAgICB8IDQyMyArKysrKysrKysrKysr KysrKysrKysKIGdydWItY29yZS9rZXJuL2kzODYveGVuL3N0YXJ0dXBfcHZoLlMgfCAgODEgKysr KysKIGdydWItY29yZS9rZXJuL3hlbi9pbml0LmMgICAgICAgICAgICAgfCAxMDEgKysrKy0tCiBn cnViLWNvcmUvbG9hZGVyL2kzODYvbGludXguYyAgICAgICAgIHwgICA5ICsKIGdydWItY29yZS9t bWFwL2kzODYvcGMvbW1hcC5jICAgICAgICAgfCAgIDcgLQogaW5jbHVkZS9ncnViL2kzODYvbGlu dXguaCAgICAgICAgICAgICB8ICAgNSArLQogaW5jbHVkZS9ncnViL2kzODYvbWVtb3J5LmggICAg ICAgICAgICB8ICAgNyArCiBpbmNsdWRlL2dydWIvaTM4Ni9wYy9pbnQuaCAgICAgICAgICAgIHwg IDM2ICstCiBpbmNsdWRlL2dydWIvaTM4Ni9wYy9pbnRfdHlwZXMuaCAgICAgIHwgIDU5ICsrKwog aW5jbHVkZS9ncnViL2kzODYvdHNjLmggICAgICAgICAgICAgICB8ICAgMiArLQogaW5jbHVkZS9n cnViL2kzODYveGVuL2h5cGVyY2FsbC5oICAgICB8ICAgNSArLQogaW5jbHVkZS9ncnViL2kzODYv eGVuX3B2aC9ib290LmggICAgICB8ICAgMSArCiBpbmNsdWRlL2dydWIvaTM4Ni94ZW5fcHZoL2Nv bnNvbGUuaCAgIHwgICAxICsKIGluY2x1ZGUvZ3J1Yi9pMzg2L3hlbl9wdmgvaW50LmggICAgICAg fCAgIDEgKwogaW5jbHVkZS9ncnViL2kzODYveGVuX3B2aC9rZXJuZWwuaCAgICB8ICAzMCArKwog aW5jbHVkZS9ncnViL2kzODYveGVuX3B2aC9tZW1vcnkuaCAgICB8ICAgMSArCiBpbmNsdWRlL2dy dWIvaTM4Ni94ZW5fcHZoL3RpbWUuaCAgICAgIHwgICAxICsKIGluY2x1ZGUvZ3J1Yi9rZXJuZWwu aCAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGluY2x1ZGUvZ3J1Yi9vZmZzZXRzLmggICAgICAg ICAgICAgICAgfCAgMjEgKy0KIGluY2x1ZGUvZ3J1Yi91dGlsL2luc3RhbGwuaCAgICAgICAgICAg fCAgIDEgKwogaW5jbHVkZS9ncnViL3V0aWwvbWtpbWFnZS5oICAgICAgICAgICB8ICAgMyArLQog aW5jbHVkZS9ncnViL3hlbi5oICAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBpbmNsdWRlL3hl bi9odm0vaHZtX29wLmggICAgICAgICAgICAgIHwgMjk2ICsrKysrKysrKysrKysrKwogaW5jbHVk ZS94ZW4vaHZtL3BhcmFtcy5oICAgICAgICAgICAgICB8IDI4NCArKysrKysrKysrKysrKysKIGlu Y2x1ZGUveGVuL2h2bS9zdGFydF9pbmZvLmggICAgICAgICAgfCAgOTggKysrKysKIGluY2x1ZGUv eGVuL21lbW9yeS5oICAgICAgICAgICAgICAgICAgfCA2NjUgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogaW5jbHVkZS94ZW4vcGh5c2Rldi5oICAgICAgICAgICAgICAgICB8IDM4 NyArKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS94ZW4vdHJhY2UuaCAgICAgICAgICAgICAg ICAgICB8IDMzOSArKysrKysrKysrKysrKysrKwogaW5jbHVkZS94ZW4veGVuLmggICAgICAgICAg ICAgICAgICAgICB8IDEwNCArKysrLS0KIHV0aWwvZ3J1Yi1pbnN0YWxsLWNvbW1vbi5jICAgICAg ICAgICAgfCAgIDEgKwogdXRpbC9ncnViLWluc3RhbGwuYyAgICAgICAgICAgICAgICAgICB8ICAg NyArCiB1dGlsL2dydWItbWtpbWFnZTMyLmMgICAgICAgICAgICAgICAgIHwgICA0ICstCiB1dGls L2dydWItbWtpbWFnZTY0LmMgICAgICAgICAgICAgICAgIHwgICA0ICstCiB1dGlsL2dydWItbWtp bWFnZXh4LmMgICAgICAgICAgICAgICAgIHwgIDU4ICsrLQogdXRpbC9ncnViLW1vZHVsZS12ZXJp Zmllci5jICAgICAgICAgICB8ICAgMSArCiB1dGlsL21raW1hZ2UuYyAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDIzICstCiA0MSBmaWxlcyBjaGFuZ2VkLCAyOTkwIGluc2VydGlvbnMoKyksIDE0 MyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUva2Vybi9pMzg2L3hl bi9wdmguYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9rZXJuL2kzODYveGVuL3N0YXJ0 dXBfcHZoLlMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2dydWIvaTM4Ni9wYy9pbnRfdHlw ZXMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZ3J1Yi9pMzg2L3hlbl9wdmgvYm9vdC5o CiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9ncnViL2kzODYveGVuX3B2aC9jb25zb2xlLmgK IGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2dydWIvaTM4Ni94ZW5fcHZoL2ludC5oCiBjcmVh dGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9ncnViL2kzODYveGVuX3B2aC9rZXJuZWwuaAogY3JlYXRl IG1vZGUgMTAwNjQ0IGluY2x1ZGUvZ3J1Yi9pMzg2L3hlbl9wdmgvbWVtb3J5LmgKIGNyZWF0ZSBt b2RlIDEwMDY0NCBpbmNsdWRlL2dydWIvaTM4Ni94ZW5fcHZoL3RpbWUuaAogY3JlYXRlIG1vZGUg MTAwNjQ0IGluY2x1ZGUveGVuL2h2bS9odm1fb3AuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1 ZGUveGVuL2h2bS9wYXJhbXMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL2h2bS9z dGFydF9pbmZvLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi9tZW1vcnkuaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3BoeXNkZXYuaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IGluY2x1ZGUveGVuL3RyYWNlLmgKCi0tIAoyLjE2LjQKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxt YW4vbGlzdGluZm8veGVuLWRldmVs From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1gIYwh-0007dG-35 for mharc-grub-devel@gnu.org; Fri, 02 Nov 2018 08:53:03 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43969) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gIYwU-0006Bm-Hs for grub-devel@gnu.org; Fri, 02 Nov 2018 08:52:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gIYhu-00052L-Ot for grub-devel@gnu.org; Fri, 02 Nov 2018 08:37:49 -0400 Received: from mx2.suse.de ([195.135.220.15]:49994 helo=mx1.suse.de) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gIYhu-0004uw-9R for grub-devel@gnu.org; Fri, 02 Nov 2018 08:37:46 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 95000ABEF; Fri, 2 Nov 2018 12:37:41 +0000 (UTC) From: Juergen Gross To: grub-devel@gnu.org Cc: xen-devel@lists.xen.org, phcoder@gmail.com, daniel.kiper@oracle.com, hans@knorrie.org, Juergen Gross Subject: [PATCH v4 00/19] xen: add pvh guest support Date: Fri, 2 Nov 2018 13:37:19 +0100 Message-Id: <20181102123738.16395-1-jgross@suse.com> X-Mailer: git-send-email 2.16.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] X-Received-From: 195.135.220.15 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Nov 2018 12:52:57 -0000 This patch series adds support for booting Linux as PVH guest. Similar to i386/xen and x86_64/xen platforms the new i386/xenpvh platform grub is booted as a standalone image directly by Xen. For booting Linux kernel it is using the standard linux kernel loader. The only modification of the linux loader is to pass the ACPI RSDP address via boot parameters to the kernel, as that table might not be located at the usual physical address just below 1MB. The related Linux kernel patches have been accepted in the merge window for post 4.19 (4.20 or 5.0, whatever it will be called). Changes in V4: - added new patch 12 - write modified memory map back to Xen Changes in V3: - addressed lots of comments, most by Daniel and some by Roger, details are mentioned in the individual patches Changes in V2: - extend linux boot protocol version 2.14 to report back the protocol version supported by grub2 (needed as there are grub2 downstream variants in some distros which clobber data after the setup_header) - split former patch 4 into 10 patches - fix memmap handling for >4GB of memory - added new patch from Hans (thanks for that one) - addressed most of Daniel's comments (see individual patches) Hans van Kranenburg (1): grub-module-verifier: Ignore all_video for xenpvh Juergen Gross (18): xen: add some xen headers loader/linux: support passing rsdp address via boot params xen: carve out grant tab initialization into dedicated function xen: prepare common code for Xen PVH support xen: add some dummy headers for PVH mode xen: rearrange xen/init.c to prepare it for Xen PVH mode xen: add PVH specific defines to offset.h xen: add basic hooks for PVH in current code xen: add PVH boot entry code xen: setup hypercall page for PVH xen: get memory map from hypervisor for PVH xen: add PCI MMIO areas to memory map xen: setup Xen specific data for PVH xen: init memory regions for PVH xen_pvh: add build runes for grub-core xen_pvh: support building a standalone image xen_pvh: support grub-install for xen_pvh xen_pvh: add support to configure configure.ac | 3 + gentpl.py | 4 +- grub-core/Makefile.am | 12 + grub-core/Makefile.core.def | 36 ++ grub-core/kern/i386/tsc.c | 2 +- grub-core/kern/i386/xen/pvh.c | 423 +++++++++++++++++++++ grub-core/kern/i386/xen/startup_pvh.S | 81 +++++ grub-core/kern/xen/init.c | 101 ++++-- grub-core/loader/i386/linux.c | 9 + grub-core/mmap/i386/pc/mmap.c | 7 - include/grub/i386/linux.h | 5 +- include/grub/i386/memory.h | 7 + include/grub/i386/pc/int.h | 36 +- include/grub/i386/pc/int_types.h | 59 +++ include/grub/i386/tsc.h | 2 +- include/grub/i386/xen/hypercall.h | 5 +- include/grub/i386/xen_pvh/boot.h | 1 + include/grub/i386/xen_pvh/console.h | 1 + include/grub/i386/xen_pvh/int.h | 1 + include/grub/i386/xen_pvh/kernel.h | 30 ++ include/grub/i386/xen_pvh/memory.h | 1 + include/grub/i386/xen_pvh/time.h | 1 + include/grub/kernel.h | 4 +- include/grub/offsets.h | 21 +- include/grub/util/install.h | 1 + include/grub/util/mkimage.h | 3 +- include/grub/xen.h | 6 + include/xen/hvm/hvm_op.h | 296 +++++++++++++++ include/xen/hvm/params.h | 284 +++++++++++++++ include/xen/hvm/start_info.h | 98 +++++ include/xen/memory.h | 665 ++++++++++++++++++++++++++++= ++++++ include/xen/physdev.h | 387 ++++++++++++++++++++ include/xen/trace.h | 339 +++++++++++++++++ include/xen/xen.h | 104 ++++-- util/grub-install-common.c | 1 + util/grub-install.c | 7 + util/grub-mkimage32.c | 4 +- util/grub-mkimage64.c | 4 +- util/grub-mkimagexx.c | 58 ++- util/grub-module-verifier.c | 1 + util/mkimage.c | 23 +- 41 files changed, 2990 insertions(+), 143 deletions(-) create mode 100644 grub-core/kern/i386/xen/pvh.c create mode 100644 grub-core/kern/i386/xen/startup_pvh.S create mode 100644 include/grub/i386/pc/int_types.h create mode 100644 include/grub/i386/xen_pvh/boot.h create mode 100644 include/grub/i386/xen_pvh/console.h create mode 100644 include/grub/i386/xen_pvh/int.h create mode 100644 include/grub/i386/xen_pvh/kernel.h create mode 100644 include/grub/i386/xen_pvh/memory.h create mode 100644 include/grub/i386/xen_pvh/time.h create mode 100644 include/xen/hvm/hvm_op.h create mode 100644 include/xen/hvm/params.h create mode 100644 include/xen/hvm/start_info.h create mode 100644 include/xen/memory.h create mode 100644 include/xen/physdev.h create mode 100644 include/xen/trace.h --=20 2.16.4