[edk2-devel] [PATCH v5 00/35] Specific platform to run OVMF in Xen PVH and HVM guests

Anthony PERARD posted 35 patches 5 years, 3 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/edk2 tags/patchew/20190813113119.14804-1-anthony.perard@citrix.com
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               |   3 +
OvmfPkg/XenIoPvhDxe/XenIoPvhDxe.inf           |  36 ++
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             |  54 ++
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                  | 388 +++++++++++++
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, 4541 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
[edk2-devel] [PATCH v5 00/35] Specific platform to run OVMF in Xen PVH and HVM guests
Posted by Anthony PERARD 5 years, 3 months ago
Patch series available in this git branch:
https://xenbits.xen.org/git-http/people/aperard/ovmf.git br.platform-xen-pvh-v5

Changes in v5:
- patch 23 got a rework of the lapic range skipping
- small fixups in patch 20, 22, 23, 31, 32, 33.
  see notes for detail.

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-v5

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               |   3 +
 OvmfPkg/XenIoPvhDxe/XenIoPvhDxe.inf           |  36 ++
 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             |  54 ++
 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                  | 388 +++++++++++++
 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, 4541 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

-- 
Anthony PERARD


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#45526): https://edk2.groups.io/g/devel/message/45526
Mute This Topic: https://groups.io/mt/32851497/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [Xen-devel] [edk2-devel] [PATCH v5 00/35] Specific platform to run OVMF in Xen PVH and HVM guests
Posted by Laszlo Ersek 5 years, 2 months ago
On 08/13/19 13:30, Anthony PERARD wrote:
> Patch series available in this git branch:
> https://xenbits.xen.org/git-http/people/aperard/ovmf.git br.platform-xen-pvh-v5
>
> Changes in v5:
> - patch 23 got a rework of the lapic range skipping
> - small fixups in patch 20, 22, 23, 31, 32, 33.
>   see notes for detail.

This series is now fully covered with maintainer R-b's and A-b's.

I've also done some regression-tests, after applying the set in a topic
branch on top of commit caa7d3a896f6 ("BaseTools/Scripts: Add
GetUtcDateTime script.", 2019-08-15). Including build tests and my usual
boot & S3 tests.

Building for DEBUG (with GCC48) requires the independent fix

  [edk2-devel] [PATCH 1/1]
  MdeModulePkg/DxeIplPeim: Initialize pointer PageMapLevel5Entry

which was posted at

  http://mid.mail-archive.com/20190814073741.16080-1-shenglei.zhang@intel.com
  https://edk2.groups.io/g/devel/message/45591

(again, that issue is independent of this series). With that independent
fix, RELEASE builds fine too.

Given that this v5 feature series has now been fully reviewed before
entering the Soft Feature Freeze for edk2-stable201908 -- which will
commence on 2019-08-16 at 00:00:00 UTC-8) --, the set is eligible for
pushing during the Soft Feature Freeze:

  https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Release-Planning
  https://github.com/tianocore/tianocore.github.io/wiki/SoftFeatureFreeze

Therefore I'll push v5 no later than 2019-Aug-21, unless a NACK arrives
before that date, from xen-devel or elsewhere.

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-v5
>
> 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               |   3 +
>  OvmfPkg/XenIoPvhDxe/XenIoPvhDxe.inf           |  36 ++
>  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             |  54 ++
>  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                  | 388 +++++++++++++
>  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, 4541 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
>


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [edk2-devel] [PATCH v5 00/35] Specific platform to run OVMF in Xen PVH and HVM guests
Posted by Laszlo Ersek 5 years, 2 months ago
On 08/15/19 13:03, Laszlo Ersek wrote:
> On 08/13/19 13:30, Anthony PERARD wrote:
>> Patch series available in this git branch:
>> https://xenbits.xen.org/git-http/people/aperard/ovmf.git br.platform-xen-pvh-v5
>>
>> Changes in v5:
>> - patch 23 got a rework of the lapic range skipping
>> - small fixups in patch 20, 22, 23, 31, 32, 33.
>>   see notes for detail.
> 
> This series is now fully covered with maintainer R-b's and A-b's.
> 
> I've also done some regression-tests, after applying the set in a topic
> branch on top of commit caa7d3a896f6 ("BaseTools/Scripts: Add
> GetUtcDateTime script.", 2019-08-15). Including build tests and my usual
> boot & S3 tests.
> 
> Building for DEBUG (with GCC48) requires the independent fix
> 
>   [edk2-devel] [PATCH 1/1]
>   MdeModulePkg/DxeIplPeim: Initialize pointer PageMapLevel5Entry
> 
> which was posted at
> 
>   http://mid.mail-archive.com/20190814073741.16080-1-shenglei.zhang@intel.com
>   https://edk2.groups.io/g/devel/message/45591
> 
> (again, that issue is independent of this series). With that independent
> fix, RELEASE builds fine too.
> 
> Given that this v5 feature series has now been fully reviewed before
> entering the Soft Feature Freeze for edk2-stable201908 -- which will
> commence on 2019-08-16 at 00:00:00 UTC-8) --, the set is eligible for
> pushing during the Soft Feature Freeze:
> 
>   https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Release-Planning
>   https://github.com/tianocore/tianocore.github.io/wiki/SoftFeatureFreeze
> 
> Therefore I'll push v5 no later than 2019-Aug-21, unless a NACK arrives
> before that date, from xen-devel or elsewhere.

Pushed as commit range 30781febe210..1237517b2130.

Thanks!
Laszlo

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#46166): https://edk2.groups.io/g/devel/message/46166
Mute This Topic: https://groups.io/mt/32851497/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-