public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
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
> 


  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