From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rian Quinn Subject: PVH Whitelist Results / Windows Dom0 Date: Sat, 1 Dec 2018 09:21:00 -0700 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1339748766296436967==" Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gT816-0006rc-Cd for xen-devel@lists.xenproject.org; Sat, 01 Dec 2018 16:21:16 +0000 Received: by mail-ed1-x530.google.com with SMTP id o10so7281018edt.13 for ; Sat, 01 Dec 2018 08:21:14 -0800 (PST) List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org --===============1339748766296436967== Content-Type: multipart/alternative; boundary="000000000000ef0e17057bf84d84" --000000000000ef0e17057bf84d84 Content-Type: text/plain; charset="UTF-8" We finally have a Linux PVH guest up and running (using an initramfs right now). I have posted a quick status update video on YouTube that shows our progress of getting a Windows Dom0 working (which is one of the many goals of our research). https://www.youtube.com/watch?v=xzTKBek-g0k As promised in the x86 Community Call, here is the list of things that a PVH Linux guest requires. You can see the code for this here: https://github.com/rianquinn/hyperkernel/blob/hyperkernel_1/bfvmm/src/hve/arch/intel_x64/xen/xen_op.cpp and here: https://github.com/rianquinn/hyperkernel/blob/hyperkernel_1/bfexec/src/main.c I would love to put this information somewhere in Xen's project (i.e. wiki or source), but I am not sure what you would prefer. Any ideas? Finally, keep in mind that we will likely keep adding to this list as we add more features (like front/back support, xenstore, etc...) Thanks, - Rian CPUID: - XEN_CPUID_LEAF(0) - XEN_CPUID_LEAF(1) - XEN_CPUID_LEAF(2) - XEN_CPUID_LEAF(4) - 0x0, 0x1, 0x2, 0x4, 0x6, 0x7, 0xA, 0xB, 0xD, 0xF, 0x10, 0x15, 0x16 - 0x80000000, 0x80000001, 0x80000002, 0x80000003, 0x80000004 - 0x80000007, 0x80000008 MSRs: - Hypercall page (dynamic) - ia32_star - ia32_lstar - ia32_cstar - ia32_fmask - ia32_kernel_gs_base - ia32_pat - ia32_efer - ia32_fs_base - ia32_gs_base - ia32_sysenter_cs - ia32_sysenter_eip - ia32_sysenter_esp - ia32_apic_base - platform_info - 0x34, 0x64E, 0x140, 0x1A0, 0x6e0 IO Ports (some of these are odd): - 0xCF8 - 0xCFF - 0x4D0 (odd since PIT and ACPI is disable for everything that might need this) - 0x4D1 - 0x70 - 0x71 - 0x3FE (any ideas)? - 0x42, 0x43, 0x61 - XEN_IOPORT_BASE (since QEMU is not used, why is this needed?) Hypercalls: - XENMEM_decrease_reservation - XENMEM_add_to_physmap_handler - XENMEM_memory_map_handler - XENVER_get_features_handler - GNTTABOP_query_size_handler - GNTTABOP_set_version_handler - EVTCHNOP_init_control_handler - EVTCHNOP_expand_array_handler - EVTCHNOP_alloc_unbound_handler - EVTCHNOP_bind_ipi_handler - EVTCHNOP_bind_virq_handler - EVTCHNOP_bind_vcpu_handler - EVTCHNOP_send_handler - HVMOP_set_param_handler - HVMOP_get_param_handler - HVMOP_pagetable_dying_handler Memory: - Shared info page - Start info struct (PVH) - Initial GDT, IDT, TSS - Command line page - ACPI (FSDT, DSDT, MADT) - xAPIC page - Real-mode trampoline (this was weird) - DMI, Video Bios, MP Table, and some legacy ROMs --000000000000ef0e17057bf84d84 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
<= div dir=3D"ltr">
We finally have a Linux PVH guest up and ru= nning (using an initramfs=C2=A0right now). I have posted a quick status upd= ate video on YouTube that shows our progress of getting a Windows Dom0 work= ing (which is one of the many goals of our research).=C2=A0=C2=A0

As promised in th= e x86 Community Call, here is the list of things that a PVH Linux guest req= uires. You can see the code for this here:
and= here:

I would= love to put this information somewhere in Xen's project (i.e. wiki or = source), but I am not sure what you would prefer. Any ideas?

=
Finally, keep in mind that we will likely keep adding to this li= st as we add more features (like front/back support, xenstore, etc...)

Thanks,
- Rian

CPUI= D:
- XEN_CPUID_LEAF(0)
- XEN_CPUID_LEAF(1)
- XEN_CPUID_LEAF(2)
- XEN_CPUID_LEAF(4)
-= 0x0, 0x1, 0x2, 0x4, 0x6, 0x7, 0xA, 0xB, 0xD, 0xF, 0x10, 0x15, 0x16
- 0x80000000, 0x80000001, 0x80000002, 0x80000003, 0x80000004
-= 0x80000007, 0x80000008

MSRs:
- Hypercal= l page (dynamic)
- ia32_star
- ia32_lstar
- i= a32_cstar
- ia32_fmask
- ia32_kernel_gs_base
= - ia32_pat
- ia32_efer
- ia32_fs_base
- ia32_= gs_base
- ia32_sysenter_cs
- ia32_sysenter_eip
- ia32_sysenter_esp
- ia32_apic_base
- platform_info<= /div>
- 0x34, 0x64E, 0x140, 0x1A0, 0x6e0

IO Po= rts (some of these are odd):
- 0xCF8 - 0xCFF
- 0x4D0 (o= dd since PIT and ACPI is disable for everything that might need this)
=
- 0x4D1
- 0x70
- 0x71
- 0x3FE (any ideas= )?
- 0x42, 0x43, 0x61
- XEN_IOPORT_BASE (since QEMU= is not used, why is this needed?)

Hypercalls:
- XENMEM_decrease_reservation
- XENMEM_add_to_physmap_hand= ler
- XENMEM_memory_map_handler
- XENVER_get_features_h= andler
- GNTTABOP_query_size_handler
- GNTTABOP_set_ver= sion_handler
- EVTCHNOP_init_control_handler
- EVTC= HNOP_expand_array_handler
- EVTCHNOP_alloc_unbound_handler
<= div>- EVTCHNOP_bind_ipi_handler
- EVTCHNOP_bind_virq_handler
- EVTCHNOP_bind_vcpu_handler
- EVTCHNOP_send_handler
<= div>- HVMOP_set_param_handler
- HVMOP_get_param_handler
- HVMOP_pagetable_dying_handler

Memory:
- Shared info page
- Start info struct (PVH)
- Initial= GDT, IDT, TSS
- Command line page
- ACPI (FSDT, DSDT, = MADT)
- xAPIC page
- Real-mode trampoline (this was wei= rd)
- DMI, Video Bios, MP Table, and some legacy ROMs
<= br>


=
=
=
--000000000000ef0e17057bf84d84-- --===============1339748766296436967== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0 cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA== --===============1339748766296436967==--