From: "Laszlo Ersek" <lersek@redhat.com>
To: devel@edk2.groups.io, anthony.perard@citrix.com
Cc: "Julien Grall" <julien.grall@arm.com>,
xen-devel@lists.xenproject.org,
"Jordan Justen" <jordan.l.justen@intel.com>,
"Ard Biesheuvel" <ard.biesheuvel@linaro.org>,
"Roger Pau Monné" <roger.pau@citrix.com>,
"Andrew Cooper" <andrew.cooper3@citrix.com>
Subject: Re: [edk2-devel] [PATCH v4 00/35] Specific platform to run OVMF in Xen PVH and HVM guests
Date: Tue, 30 Jul 2019 14:38:37 +0200 [thread overview]
Message-ID: <66a122e3-4e47-39e4-e87e-9b96820e14c6@redhat.com> (raw)
In-Reply-To: <20190729153944.24239-1-anthony.perard@citrix.com>
On 07/29/19 17:39, Anthony PERARD wrote:
> Patch series available in this git branch:
> https://xenbits.xen.org/git-http/people/aperard/ovmf.git br.platform-xen-pvh-v4
>
> Changes in v4:
> - patch "OvmfPkg/XenPlatformPei: Reserve hvmloader's memory only when it has
> run" was removed, and instead a different change is done in
> "OvmfPkg/XenPlatformPei: Rework memory detection"
> - other changes detailed in the notes of each patch
I didn't understand why we'd still have 35 patches with one from v3
removed in v4 -- but I've found the new patch now: "OvmfPkg: Introduce
PcdXenGrantFrames".
Hopefully a v5 will not be necessary, but as a "precaution", you could
run "git notes edit" on patch v4 32/35 at once, in order to state
"introduced in v4", or something similar.
Thanks,
Laszlo
>
> Hi,
>
> I've started to create a Xen specific platform, in OvmfPkg/XenOvmf.dsc
> with the goal to make it work on both Xen HVM and Xen PVH.
>
> The first few patches only create the platform and duplicate some code from
> OvmfPkg and the later patches makes OVMF boot in a Xen PVH guest and can boot
> a Linux guest.
>
> After this patch series, I'd like to wait a bit before removing Xen support
> from the OvmfPkg*.dsc, to allow time to switch to the new Xen only platform,
> maybe 1 year.
>
> To build and boot:
>
> To build, simply run OvmfPkg/build.sh -p OvmfPkg/OvmfXen.dsc
> Then use OVMF.fd as a kernel of a pvh guest config file (with xl/libxl).
>
> Patch series available in this git branch:
> https://xenbits.xen.org/git-http/people/aperard/ovmf.git br.platform-xen-pvh-v4
>
> Anthony PERARD (35):
> OvmfPkg/ResetSystemLib: Add missing dependency on PciLib
> OvmfPkg: Create platform OvmfXen
> OvmfPkg: Introduce XenResetVector
> OvmfPkg: Introduce XenPlatformPei
> OvmfPkg/OvmfXen: Creating an ELF header
> OvmfPkg/XenResetVector: Add new entry point for Xen PVH
> OvmfPkg/XenResetVector: Saving start of day pointer for PVH guests
> OvmfPkg/XenResetVector: Allow jumpstart from either hvmloader or PVH
> OvmfPkg/OvmfXen: use a TimerLib instance that depends only on the CPU
> OvmfPkg/XenPlatformPei: Detect OVMF_INFO from hvmloader
> OvmfPkg/XenPlatformPei: Use mXenHvmloaderInfo to get E820
> OvmfPkg/XenPlatformPei: Grab RSDP from PVH guest start of day struct
> OvmfPkg/Library/XenPlatformLib: New library
> OvmfPkg/AcpiPlatformDxe: Use XenPlatformLib
> OvmfPkg/AcpiPlatformDxe: Use Xen PVH RSDP if it exist
> OvmfPkg/XenHypercallLib: Enable it in PEIM
> OvmfPkg/XenPlatformPei: Reinit XenHypercallLib
> OvmfPkg/XenPlatformPei: Introduce XenHvmloaderDetected
> OvmfPkg/XenPlatformPei: Setup HyperPages earlier
> OvmfPkg/XenPlatformPei: Introduce XenPvhDetected
> OvmfPkg: Import XENMEM_memory_map hypercall to Xen/memory.h
> OvmfPkg/XenPlatformPei: no hvmloader: get the E820 table via hypercall
> OvmfPkg/XenPlatformPei: Rework memory detection
> OvmfPkg/XenPlatformPei: Reserve VGA memory region, to boot Linux
> OvmfPkg/XenPlatformPei: Ignore missing PCI Host Bridge on Xen PVH
> OvmfPkg/XenPlatformLib: Cache result for XenDetected
> OvmfPkg/PlatformBootManagerLib: Use XenDetected from XenPlatformLib
> OvmfPkg/PlatformBootManagerLib: Handle the absence of PCI bus on Xen
> PVH
> OvmfPkg/OvmfXen: Override PcdFSBClock to Xen vLAPIC timer frequency
> OvmfPkg/OvmfXen: Introduce XenTimerDxe
> OvmfPkg/PlatformBootManagerLib: Use a Xen console for ConOut/ConIn
> OvmfPkg: Introduce PcdXenGrantFrames
> OvmfPkg: Introduce XenIoPvhDxe to initialize Grant Tables
> OvmfPkg: Move XenRealTimeClockLib from ArmVirtPkg
> OvmfPkg/OvmfXen: use RealTimeClockRuntimeDxe from EmbeddedPkg
>
> OvmfPkg/OvmfPkg.dec | 10 +
> ArmVirtPkg/ArmVirtXen.dsc | 2 +-
> OvmfPkg/OvmfPkgIa32.dsc | 1 +
> OvmfPkg/OvmfPkgIa32X64.dsc | 1 +
> OvmfPkg/OvmfPkgX64.dsc | 1 +
> OvmfPkg/{OvmfPkgX64.dsc => OvmfXen.dsc} | 238 +-------
> OvmfPkg/OvmfXen.fdf | 539 ++++++++++++++++++
> OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf | 3 +-
> .../PlatformBootManagerLib.inf | 6 +-
> .../Library/ResetSystemLib/ResetSystemLib.inf | 1 +
> .../XenHypercallLib/XenHypercallLib.inf | 4 +-
> .../Library/XenPlatformLib/XenPlatformLib.inf | 33 ++
> .../XenRealTimeClockLib.inf | 0
> OvmfPkg/XenBusDxe/XenBusDxe.inf | 2 +
> OvmfPkg/XenIoPvhDxe/XenIoPvhDxe.inf | 35 ++
> OvmfPkg/XenPlatformPei/XenPlatformPei.inf | 100 ++++
> OvmfPkg/XenResetVector/XenResetVector.inf | 41 ++
> OvmfPkg/XenTimerDxe/XenTimerDxe.inf | 42 ++
> OvmfPkg/AcpiPlatformDxe/AcpiPlatform.h | 6 +-
> OvmfPkg/Include/Guid/XenInfo.h | 8 +-
> .../Xen/arch-x86/hvm/start_info.h | 143 +++++
> OvmfPkg/Include/IndustryStandard/Xen/memory.h | 23 +
> OvmfPkg/Include/Library/XenHypercallLib.h | 12 +
> OvmfPkg/Include/Library/XenPlatformLib.h | 53 ++
> .../PlatformBootManagerLib/BdsPlatform.h | 1 +
> OvmfPkg/XenBusDxe/XenBusDxe.h | 1 +
> OvmfPkg/XenPlatformPei/Cmos.h | 52 ++
> OvmfPkg/XenPlatformPei/Platform.h | 136 +++++
> OvmfPkg/XenPlatformPei/Xen.h | 39 ++
> OvmfPkg/XenTimerDxe/XenTimerDxe.h | 177 ++++++
> OvmfPkg/AcpiPlatformDxe/Xen.c | 41 +-
> .../PlatformBootManagerLib/BdsPlatform.c | 43 +-
> .../PlatformBootManagerLib/PlatformData.c | 49 +-
> .../Library/ResetSystemLib/ResetSystemLib.c | 3 +-
> .../Library/XenHypercallLib/X86XenHypercall.c | 8 +-
> .../Library/XenHypercallLib/XenHypercall.c | 16 +
> .../Library/XenPlatformLib/XenPlatformLib.c | 81 +++
> .../XenRealTimeClockLib/XenRealTimeClockLib.c | 0
> OvmfPkg/OvmfXenElfHeaderGenerator.c | 140 +++++
> OvmfPkg/PlatformPei/Xen.c | 3 -
> OvmfPkg/XenBusDxe/GrantTable.c | 3 +-
> OvmfPkg/XenIoPvhDxe/XenIoPvhDxe.c | 53 ++
> OvmfPkg/XenPlatformPei/AmdSev.c | 64 +++
> OvmfPkg/XenPlatformPei/ClearCache.c | 112 ++++
> OvmfPkg/XenPlatformPei/Cmos.c | 60 ++
> OvmfPkg/XenPlatformPei/Fv.c | 76 +++
> OvmfPkg/XenPlatformPei/MemDetect.c | 490 ++++++++++++++++
> OvmfPkg/XenPlatformPei/Platform.c | 463 +++++++++++++++
> OvmfPkg/XenPlatformPei/Xen.c | 373 ++++++++++++
> OvmfPkg/XenTimerDxe/XenTimerDxe.c | 355 ++++++++++++
> Maintainers.txt | 10 +-
> .../XenResetVector/Ia16/Real16ToFlat32.asm | 137 +++++
> .../XenResetVector/Ia16/ResetVectorVtf0.asm | 79 +++
> .../XenResetVector/Ia32/Flat32ToFlat64.asm | 68 +++
> OvmfPkg/XenResetVector/Ia32/PageTables64.asm | 149 +++++
> .../XenResetVector/Ia32/SearchForBfvBase.asm | 87 +++
> OvmfPkg/XenResetVector/Ia32/XenPVHMain.asm | 84 +++
> OvmfPkg/XenResetVector/XenResetVector.nasmb | 71 +++
> 58 files changed, 4523 insertions(+), 305 deletions(-)
> copy OvmfPkg/{OvmfPkgX64.dsc => OvmfXen.dsc} (76%)
> create mode 100644 OvmfPkg/OvmfXen.fdf
> create mode 100644 OvmfPkg/Library/XenPlatformLib/XenPlatformLib.inf
> rename {ArmVirtPkg => OvmfPkg}/Library/XenRealTimeClockLib/XenRealTimeClockLib.inf (100%)
> create mode 100644 OvmfPkg/XenIoPvhDxe/XenIoPvhDxe.inf
> create mode 100644 OvmfPkg/XenPlatformPei/XenPlatformPei.inf
> create mode 100644 OvmfPkg/XenResetVector/XenResetVector.inf
> create mode 100644 OvmfPkg/XenTimerDxe/XenTimerDxe.inf
> create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/arch-x86/hvm/start_info.h
> create mode 100644 OvmfPkg/Include/Library/XenPlatformLib.h
> create mode 100644 OvmfPkg/XenPlatformPei/Cmos.h
> create mode 100644 OvmfPkg/XenPlatformPei/Platform.h
> create mode 100644 OvmfPkg/XenPlatformPei/Xen.h
> create mode 100644 OvmfPkg/XenTimerDxe/XenTimerDxe.h
> create mode 100644 OvmfPkg/Library/XenPlatformLib/XenPlatformLib.c
> rename {ArmVirtPkg => OvmfPkg}/Library/XenRealTimeClockLib/XenRealTimeClockLib.c (100%)
> create mode 100644 OvmfPkg/OvmfXenElfHeaderGenerator.c
> create mode 100644 OvmfPkg/XenIoPvhDxe/XenIoPvhDxe.c
> create mode 100644 OvmfPkg/XenPlatformPei/AmdSev.c
> create mode 100644 OvmfPkg/XenPlatformPei/ClearCache.c
> create mode 100644 OvmfPkg/XenPlatformPei/Cmos.c
> create mode 100644 OvmfPkg/XenPlatformPei/Fv.c
> create mode 100644 OvmfPkg/XenPlatformPei/MemDetect.c
> create mode 100644 OvmfPkg/XenPlatformPei/Platform.c
> create mode 100644 OvmfPkg/XenPlatformPei/Xen.c
> create mode 100644 OvmfPkg/XenTimerDxe/XenTimerDxe.c
> create mode 100644 OvmfPkg/XenResetVector/Ia16/Real16ToFlat32.asm
> create mode 100644 OvmfPkg/XenResetVector/Ia16/ResetVectorVtf0.asm
> create mode 100644 OvmfPkg/XenResetVector/Ia32/Flat32ToFlat64.asm
> create mode 100644 OvmfPkg/XenResetVector/Ia32/PageTables64.asm
> create mode 100644 OvmfPkg/XenResetVector/Ia32/SearchForBfvBase.asm
> create mode 100644 OvmfPkg/XenResetVector/Ia32/XenPVHMain.asm
> create mode 100644 OvmfPkg/XenResetVector/XenResetVector.nasmb
>
next prev parent reply other threads:[~2019-07-30 12:38 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-29 15:39 [PATCH v4 00/35] Specific platform to run OVMF in Xen PVH and HVM guests Anthony PERARD
2019-07-29 15:39 ` [PATCH v4 01/35] OvmfPkg/ResetSystemLib: Add missing dependency on PciLib Anthony PERARD
2019-07-29 15:39 ` [PATCH v4 02/35] OvmfPkg: Create platform OvmfXen Anthony PERARD
2019-07-30 9:13 ` [edk2-devel] " Laszlo Ersek
2019-07-29 15:39 ` [PATCH v4 03/35] OvmfPkg: Introduce XenResetVector Anthony PERARD
2019-07-30 9:16 ` [edk2-devel] " Laszlo Ersek
2019-07-29 15:39 ` [PATCH v4 04/35] OvmfPkg: Introduce XenPlatformPei Anthony PERARD
2019-07-30 9:21 ` [edk2-devel] " Laszlo Ersek
2019-07-29 15:39 ` [PATCH v4 05/35] OvmfPkg/OvmfXen: Creating an ELF header Anthony PERARD
2019-07-30 9:25 ` [edk2-devel] " Laszlo Ersek
2019-07-29 15:39 ` [PATCH v4 06/35] OvmfPkg/XenResetVector: Add new entry point for Xen PVH Anthony PERARD
2019-07-30 9:33 ` [edk2-devel] " Laszlo Ersek
2019-08-07 11:37 ` Roger Pau Monné
2019-07-29 15:39 ` [PATCH v4 07/35] OvmfPkg/XenResetVector: Saving start of day pointer for PVH guests Anthony PERARD
2019-07-29 15:39 ` [PATCH v4 08/35] OvmfPkg/XenResetVector: Allow jumpstart from either hvmloader or PVH Anthony PERARD
2019-07-29 15:39 ` [PATCH v4 09/35] OvmfPkg/OvmfXen: use a TimerLib instance that depends only on the CPU Anthony PERARD
2019-07-30 9:41 ` [edk2-devel] " Laszlo Ersek
2019-08-07 14:25 ` Roger Pau Monné
2019-07-29 15:39 ` [PATCH v4 10/35] OvmfPkg/XenPlatformPei: Detect OVMF_INFO from hvmloader Anthony PERARD
2019-07-29 15:39 ` [PATCH v4 11/35] OvmfPkg/XenPlatformPei: Use mXenHvmloaderInfo to get E820 Anthony PERARD
2019-07-29 15:39 ` [PATCH v4 12/35] OvmfPkg/XenPlatformPei: Grab RSDP from PVH guest start of day struct Anthony PERARD
2019-08-07 14:35 ` [edk2-devel] " Roger Pau Monné
2019-08-08 10:26 ` Anthony PERARD
2019-08-08 10:40 ` Roger Pau Monné
2019-07-29 15:39 ` [PATCH v4 13/35] OvmfPkg/Library/XenPlatformLib: New library Anthony PERARD
2019-07-30 9:57 ` [edk2-devel] " Laszlo Ersek
2019-07-29 15:39 ` [PATCH v4 14/35] OvmfPkg/AcpiPlatformDxe: Use XenPlatformLib Anthony PERARD
2019-07-29 15:39 ` [PATCH v4 15/35] OvmfPkg/AcpiPlatformDxe: Use Xen PVH RSDP if it exist Anthony PERARD
2019-07-29 15:39 ` [PATCH v4 16/35] OvmfPkg/XenHypercallLib: Enable it in PEIM Anthony PERARD
2019-07-29 15:39 ` [PATCH v4 17/35] OvmfPkg/XenPlatformPei: Reinit XenHypercallLib Anthony PERARD
2019-07-29 15:39 ` [PATCH v4 18/35] OvmfPkg/XenPlatformPei: Introduce XenHvmloaderDetected Anthony PERARD
2019-07-29 15:39 ` [PATCH v4 19/35] OvmfPkg/XenPlatformPei: Setup HyperPages earlier Anthony PERARD
2019-07-29 15:39 ` [PATCH v4 20/35] OvmfPkg/XenPlatformPei: Introduce XenPvhDetected Anthony PERARD
2019-08-07 15:03 ` [edk2-devel] " Roger Pau Monné
2019-08-08 10:38 ` Anthony PERARD
2019-08-08 10:43 ` Roger Pau Monné
2019-07-29 15:39 ` [PATCH v4 21/35] OvmfPkg: Import XENMEM_memory_map hypercall to Xen/memory.h Anthony PERARD
2019-07-29 15:39 ` [PATCH v4 22/35] OvmfPkg/XenPlatformPei: no hvmloader: get the E820 table via hypercall Anthony PERARD
2019-08-07 15:14 ` [edk2-devel] " Roger Pau Monné
2019-08-08 10:41 ` Anthony PERARD
2019-08-08 10:45 ` Roger Pau Monné
2019-07-29 15:39 ` [PATCH v4 23/35] OvmfPkg/XenPlatformPei: Rework memory detection Anthony PERARD
2019-07-30 11:45 ` [edk2-devel] " Laszlo Ersek
2019-07-30 12:18 ` Laszlo Ersek
2019-08-07 15:34 ` Roger Pau Monné
2019-08-08 11:13 ` Anthony PERARD
2019-07-29 15:39 ` [PATCH v4 24/35] OvmfPkg/XenPlatformPei: Reserve VGA memory region, to boot Linux Anthony PERARD
2019-07-29 15:39 ` [PATCH v4 25/35] OvmfPkg/XenPlatformPei: Ignore missing PCI Host Bridge on Xen PVH Anthony PERARD
2019-07-29 15:39 ` [PATCH v4 26/35] OvmfPkg/XenPlatformLib: Cache result for XenDetected Anthony PERARD
2019-07-29 15:39 ` [PATCH v4 27/35] OvmfPkg/PlatformBootManagerLib: Use XenDetected from XenPlatformLib Anthony PERARD
2019-07-29 15:39 ` [PATCH v4 28/35] OvmfPkg/PlatformBootManagerLib: Handle the absence of PCI bus on Xen PVH Anthony PERARD
2019-08-07 15:50 ` [edk2-devel] " Roger Pau Monné
2019-07-29 15:39 ` [PATCH v4 29/35] OvmfPkg/OvmfXen: Override PcdFSBClock to Xen vLAPIC timer frequency Anthony PERARD
2019-08-07 15:54 ` [edk2-devel] " Roger Pau Monné
2019-08-08 13:28 ` Anthony PERARD
2019-08-08 13:44 ` Roger Pau Monné
2019-08-08 14:26 ` Anthony PERARD
2019-08-08 15:18 ` Roger Pau Monné
2019-08-12 14:45 ` Anthony PERARD
2019-08-08 20:27 ` Laszlo Ersek
2019-07-29 15:39 ` [PATCH v4 30/35] OvmfPkg/OvmfXen: Introduce XenTimerDxe Anthony PERARD
2019-07-30 12:30 ` [edk2-devel] " Laszlo Ersek
2019-07-29 15:39 ` [PATCH v4 31/35] OvmfPkg/PlatformBootManagerLib: Use a Xen console for ConOut/ConIn Anthony PERARD
2019-07-30 12:34 ` [edk2-devel] " Laszlo Ersek
2019-08-07 16:00 ` Roger Pau Monné
2019-07-29 15:39 ` [PATCH v4 32/35] OvmfPkg: Introduce PcdXenGrantFrames Anthony PERARD
2019-07-30 12:47 ` [edk2-devel] " Laszlo Ersek
2019-07-29 15:39 ` [PATCH v4 33/35] OvmfPkg: Introduce XenIoPvhDxe to initialize Grant Tables Anthony PERARD
2019-07-30 13:01 ` [edk2-devel] " Laszlo Ersek
2019-08-07 16:07 ` Roger Pau Monné
2019-08-08 13:53 ` Anthony PERARD
2019-07-29 15:39 ` [PATCH v4 34/35] OvmfPkg: Move XenRealTimeClockLib from ArmVirtPkg Anthony PERARD
2019-07-30 13:05 ` [edk2-devel] " Laszlo Ersek
2019-07-29 15:39 ` [PATCH v4 35/35] OvmfPkg/OvmfXen: use RealTimeClockRuntimeDxe from EmbeddedPkg Anthony PERARD
2019-08-07 16:09 ` [edk2-devel] " Roger Pau Monné
2019-08-08 14:03 ` Anthony PERARD
2019-08-08 15:19 ` Roger Pau Monné
2019-07-30 12:38 ` Laszlo Ersek [this message]
2019-07-30 13:10 ` [edk2-devel] [PATCH v4 00/35] Specific platform to run OVMF in Xen PVH and HVM guests Laszlo Ersek
2019-08-12 15:12 ` Anthony PERARD
2019-08-13 9:02 ` Laszlo Ersek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=66a122e3-4e47-39e4-e87e-9b96820e14c6@redhat.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox