[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [edk2-devel] [PATCH v2 18/31] OvmfPkg/XenPlatformPei: Setup HyperPages earlier
On 04/09/19 13:08, Anthony PERARD wrote: > We are going to need to make an hypercall in order to retreive the E820 > table from the hypervisor before been able to setup the memory. > > Calling XenConnect earlier will allow to setup the XenHypercallLib > earlier to allow to make hypercalls. > > While here, add some comments in XenConnect(). > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> > --- > OvmfPkg/XenPlatformPei/Platform.h | 5 +++++ > OvmfPkg/XenPlatformPei/Platform.c | 2 ++ > OvmfPkg/XenPlatformPei/Xen.c | 23 ++++++++++---------- > 3 files changed, 19 insertions(+), 11 deletions(-) > > diff --git a/OvmfPkg/XenPlatformPei/Platform.h > b/OvmfPkg/XenPlatformPei/Platform.h > index 5565d47e34..a524c23a43 100644 > --- a/OvmfPkg/XenPlatformPei/Platform.h > +++ b/OvmfPkg/XenPlatformPei/Platform.h > @@ -85,6 +85,11 @@ InstallClearCacheCallback ( > VOID > ); > > +EFI_STATUS > +XenConnect ( > + VOID > + ); > + > EFI_STATUS > InitializeXen ( > VOID > diff --git a/OvmfPkg/XenPlatformPei/Platform.c > b/OvmfPkg/XenPlatformPei/Platform.c > index 2d567a4760..5e6d553ad5 100644 > --- a/OvmfPkg/XenPlatformPei/Platform.c > +++ b/OvmfPkg/XenPlatformPei/Platform.c > @@ -421,6 +421,8 @@ InitializeXenPlatform ( > CpuDeadLoop (); > } > > + XenConnect (); > + > BootModeInitialization (); > AddressWidthInitialization (); > > diff --git a/OvmfPkg/XenPlatformPei/Xen.c b/OvmfPkg/XenPlatformPei/Xen.c > index 22c7a22c88..b36eff524d 100644 > --- a/OvmfPkg/XenPlatformPei/Xen.c > +++ b/OvmfPkg/XenPlatformPei/Xen.c > @@ -78,14 +78,11 @@ XenGetE820Map ( > /** > Connects to the Hypervisor. > > - @param XenLeaf CPUID index used to connect. > - > @return EFI_STATUS > > **/ > EFI_STATUS > XenConnect ( > - UINT32 XenLeaf > ) > { > UINT32 Index; > @@ -96,7 +93,13 @@ XenConnect ( > CHAR8 Sig[sizeof (Info->Signature) + 1]; > UINT32 *PVHResetVectorData; > > - AsmCpuid (XenLeaf + 2, &TransferPages, &TransferReg, NULL, NULL); > + ASSERT (mXenLeaf != 0); > + > + // > + // Prepare HyperPages to be able to make hypercalls > + // > + > + AsmCpuid (mXenLeaf + 2, &TransferPages, &TransferReg, NULL, NULL); > mXenInfo.HyperPages = AllocatePages (TransferPages); > if (!mXenInfo.HyperPages) { > return EFI_OUT_OF_RESOURCES; > @@ -108,7 +111,11 @@ XenConnect ( > (Index << EFI_PAGE_SHIFT) + Index); > } > > - AsmCpuid (XenLeaf + 1, &XenVersion, NULL, NULL, NULL); > + // > + // Find out the Xen version > + // > + > + AsmCpuid (mXenLeaf + 1, &XenVersion, NULL, NULL, NULL); > DEBUG ((EFI_D_ERROR, "Detected Xen version %d.%d\n", > XenVersion >> 16, XenVersion & 0xFFFF)); > mXenInfo.VersionMajor = (UINT16)(XenVersion >> 16); > @@ -265,12 +272,6 @@ InitializeXen ( > { > RETURN_STATUS PcdStatus; > > - if (mXenLeaf == 0) { > - return EFI_NOT_FOUND; > - } > - > - XenConnect (mXenLeaf); > - > // > // Reserve away HVMLOADER reserved memory [0xFC000000,0xFD000000). > // This needs to match HVMLOADER RESERVED_MEMBASE/RESERVED_MEMSIZE. > Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |