[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [edk2-devel] [PATCH v5 00/35] Specific platform to run OVMF in Xen PVH and HVM guests
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@xxxxxxxxx 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@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |