|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [edk2-devel] [PATCH v2 14/31] OvmfPkg/AcpiPlatformDxe: Use PVH RSDP if exist
On 04/11/19 14:20, Laszlo Ersek wrote:
> On 04/09/19 13:08, Anthony PERARD wrote:
>> If the firmware have been started via the PVH entry point, a RSDP
>> pointer would have been provided. Use it.
>>
>> Also, use XenDetect() from the new XenPlatformLib.
>>
>> Contributed-under: TianoCore Contribution Agreement 1.1
>> Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
>> ---
>> OvmfPkg/OvmfPkgIa32.dsc | 1 +
>> OvmfPkg/OvmfPkgIa32X64.dsc | 1 +
>> OvmfPkg/OvmfPkgX64.dsc | 1 +
>> OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf | 2 +-
>> OvmfPkg/AcpiPlatformDxe/AcpiPlatform.h | 6 +--
>> OvmfPkg/AcpiPlatformDxe/Xen.c | 41 ++++++++------------
>> 6 files changed, 22 insertions(+), 30 deletions(-)
>>
>> diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
>> index f55ab5a3d2..cab9764cab 100644
>> --- a/OvmfPkg/OvmfPkgIa32.dsc
>> +++ b/OvmfPkg/OvmfPkgIa32.dsc
>> @@ -205,6 +205,7 @@ [LibraryClasses]
>> SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf
>>
>> OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf
>> XenHypercallLib|OvmfPkg/Library/XenHypercallLib/XenHypercallLib.inf
>> + XenPlatformLib|OvmfPkg/Library/XenPlatformLib/XenPlatformLib.inf
>>
>> !if $(TPM2_ENABLE) == TRUE
>> Tpm2CommandLib|SecurityPkg/Library/Tpm2CommandLib/Tpm2CommandLib.inf
>> diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
>> index 5c9bdf034e..a156358690 100644
>> --- a/OvmfPkg/OvmfPkgIa32X64.dsc
>> +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
>> @@ -210,6 +210,7 @@ [LibraryClasses]
>> SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf
>>
>> OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf
>> XenHypercallLib|OvmfPkg/Library/XenHypercallLib/XenHypercallLib.inf
>> + XenPlatformLib|OvmfPkg/Library/XenPlatformLib/XenPlatformLib.inf
>>
>> !if $(TPM2_ENABLE) == TRUE
>> Tpm2CommandLib|SecurityPkg/Library/Tpm2CommandLib/Tpm2CommandLib.inf
>> diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
>> index 2943e9e8af..9d8dc442b4 100644
>> --- a/OvmfPkg/OvmfPkgX64.dsc
>> +++ b/OvmfPkg/OvmfPkgX64.dsc
>> @@ -210,6 +210,7 @@ [LibraryClasses]
>> SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf
>>
>> OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf
>> XenHypercallLib|OvmfPkg/Library/XenHypercallLib/XenHypercallLib.inf
>> + XenPlatformLib|OvmfPkg/Library/XenPlatformLib/XenPlatformLib.inf
>>
>> !if $(TPM2_ENABLE) == TRUE
>> Tpm2CommandLib|SecurityPkg/Library/Tpm2CommandLib/Tpm2CommandLib.inf
>> diff --git a/OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
>> b/OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
>> index 8440e7b343..ca54a3bd9e 100644
>> --- a/OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
>> +++ b/OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
>> @@ -51,13 +51,13 @@ [LibraryClasses]
>> DebugLib
>> UefiBootServicesTableLib
>> UefiDriverEntryPoint
>> - HobLib
>> QemuFwCfgLib
>> QemuFwCfgS3Lib
>> MemoryAllocationLib
>> BaseLib
>> DxeServicesTableLib
>> OrderedCollectionLib
>> + XenPlatformLib
>>
>> [Protocols]
>> gEfiAcpiTableProtocolGuid # PROTOCOL ALWAYS_CONSUMED
>> diff --git a/OvmfPkg/AcpiPlatformDxe/AcpiPlatform.h
>> b/OvmfPkg/AcpiPlatformDxe/AcpiPlatform.h
>> index 83b981ee00..85f37128dd 100644
>> --- a/OvmfPkg/AcpiPlatformDxe/AcpiPlatform.h
>> +++ b/OvmfPkg/AcpiPlatformDxe/AcpiPlatform.h
>> @@ -25,6 +25,7 @@
>> #include <Library/UefiBootServicesTableLib.h>
>> #include <Library/DebugLib.h>
>> #include <Library/PcdLib.h>
>> +#include <Library/XenPlatformLib.h>
>>
>> #include <IndustryStandard/Acpi.h>
>>
>> @@ -58,11 +59,6 @@ QemuInstallAcpiTable (
>> OUT UINTN *TableKey
>> );
>>
>> -BOOLEAN
>> -XenDetected (
>> - VOID
>> - );
>> -
>> EFI_STATUS
>> EFIAPI
>> InstallXenTables (
>> diff --git a/OvmfPkg/AcpiPlatformDxe/Xen.c b/OvmfPkg/AcpiPlatformDxe/Xen.c
>> index 618ac58b42..7e9a7797d7 100644
>> --- a/OvmfPkg/AcpiPlatformDxe/Xen.c
>> +++ b/OvmfPkg/AcpiPlatformDxe/Xen.c
>> @@ -15,8 +15,6 @@
>> **/
>>
>> #include "AcpiPlatform.h"
>> -#include <Library/HobLib.h>
>> -#include <Guid/XenInfo.h>
>> #include <Library/BaseLib.h>
>>
>> #define XEN_ACPI_PHYSICAL_ADDRESS 0x000EA020
>> @@ -24,28 +22,6 @@
>>
>> EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER *XenAcpiRsdpStructurePtr =
>> NULL;
>>
>> -/**
>> - This function detects if OVMF is running on Xen.
>> -
>> -**/
>> -BOOLEAN
>> -XenDetected (
>> - VOID
>> - )
>> -{
>> - EFI_HOB_GUID_TYPE *GuidHob;
>> -
>> - //
>> - // See if a XenInfo HOB is available
>> - //
>> - GuidHob = GetFirstGuidHob (&gEfiXenInfoGuid);
>> - if (GuidHob == NULL) {
>> - return FALSE;
>> - }
>> -
>> - return TRUE;
>> -}
>> -
>> /**
>> Get the address of Xen ACPI Root System Description Pointer (RSDP)
>> structure.
>> @@ -66,10 +42,27 @@ GetXenAcpiRsdp (
>> EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER *RsdpStructurePtr;
>> UINT8 *XenAcpiPtr;
>> UINT8 Sum;
>> + EFI_XEN_INFO *XenInfo;
>>
>> //
>> // Detect the RSDP structure
>> //
>> +
>> + //
>> + // First look for PVH one
>> + //
>> + XenInfo = XenGetInfoHOB ();
>> + ASSERT (XenInfo != NULL);
>> + if (XenInfo->RsdpPvh != NULL) {
>> + DEBUG ((DEBUG_INFO, "AcpiPlatformDxe: Use ACPI RSDP table at 0x%08x\n",
>> + XenInfo->RsdpPvh));
(4) sorry, missed this one: please
- either print pointers with %p,
- or convert them with
(UINT64)(UINTN)XenInfo->RsdpPvh
and log them with "0x%016Lx".
Thanks,
Laszlo
>> + *RsdpPtr = XenInfo->RsdpPvh;
>> + return EFI_SUCCESS;
>> + }
>> +
>> + //
>> + // Otherwise, look for the HVM one
>> + //
>> for (XenAcpiPtr = (UINT8*)(UINTN) XEN_ACPI_PHYSICAL_ADDRESS;
>> XenAcpiPtr < (UINT8*)(UINTN) XEN_BIOS_PHYSICAL_END;
>> XenAcpiPtr += 0x10) {
>>
>
> Can you please split this patch in two:
>
> (1) the first patch should only rebase AcpiPlatformDxe to the new
> library, without functional changes.
>
> (2) the second patch should add the new feature, of looking for the PVH
> RSDP.
>
> (3) In the 2nd patch, pls mention Xen in the subject line, such as:
>
> OvmfPkg/AcpiPlatformDxe: Use Xen PVH RSDP if it exist
>
> Thanks!
> Laszlo
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |