[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [edk2-devel] [PATCH v2 24/31] OvmfPkg/XenPlatformPei: Ignore missing PCI Host Bridge on Xen PVH



On 04/09/19 13:08, Anthony PERARD wrote:
> When the device ID of the host bridge is unknown, check if we are
> running as a PVH guest as there is no PCI bus in that case.
> 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
> ---
> 
> Notes:
>     v2:
>     - Use new XEN_PVH_PCI_HOST_BRIDGE_DEVICE_ID macro
> 
>  OvmfPkg/Include/OvmfPlatforms.h   | 6 ++++++
>  OvmfPkg/XenPlatformPei/Platform.c | 7 +++++++
>  2 files changed, 13 insertions(+)
> 
> diff --git a/OvmfPkg/Include/OvmfPlatforms.h b/OvmfPkg/Include/OvmfPlatforms.h
> index cc67f40a88..1ce71e18ec 100644
> --- a/OvmfPkg/Include/OvmfPlatforms.h
> +++ b/OvmfPkg/Include/OvmfPlatforms.h
> @@ -43,4 +43,10 @@
>  //
>  #define ACPI_TIMER_OFFSET 0x8
>  
> +//
> +// When running OVMF on a Xen PVH guest there is no PCI,
> +// so -1 is return for the Host Bridge Device ID.
> +//
> +#define XEN_PVH_PCI_HOST_BRIDGE_DEVICE_ID 0xFFFF
> +
>  #endif

We split the i440fx and Q35 host bridge device IDs to separate files,
under "OvmfPkg/Include/IndustryStandard/", in commit cb2e300766ae
("OvmfPkg: split Include/OvmfPlatforms.h", 2015-05-13).

(1) I'd prefer if we could introduce the above macro similarly -- and
include that header only in XenPlatformPei (plus wherever else it is
necessary).

Thanks!
Laszlo


> diff --git a/OvmfPkg/XenPlatformPei/Platform.c 
> b/OvmfPkg/XenPlatformPei/Platform.c
> index 5e6d553ad5..d91cd98bf4 100644
> --- a/OvmfPkg/XenPlatformPei/Platform.c
> +++ b/OvmfPkg/XenPlatformPei/Platform.c
> @@ -278,6 +278,13 @@ MiscInitialization (
>        AcpiEnBit  = ICH9_ACPI_CNTL_ACPI_EN;
>        break;
>      default:
> +      if (XenPvhDetected ()) {
> +        //
> +        // There is no PCI bus in this case
> +        //
> +        PcdSet16S (PcdOvmfHostBridgePciDevId, 
> XEN_PVH_PCI_HOST_BRIDGE_DEVICE_ID);
> +        return;
> +      }
>        DEBUG ((EFI_D_ERROR, "%a: Unknown Host Bridge Device ID: 0x%04x\n",
>          __FUNCTION__, mHostBridgeDevId));
>        ASSERT (FALSE);
> 


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.