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
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#44620): https://edk2.groups.io/g/devel/message/44620
Mute This Topic: https://groups.io/mt/32643834/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-