Yes. Typical copy-paste issue.

Thanks to correct me.


> -----Original Message-----
> From: Zeng, Star
> Sent: Friday, August 25, 2017 5:39 PM
> To: Yao, Jiewen <jiewen....@intel.com>; edk2-devel@lists.01.org
> Cc: Zeng, Star <star.z...@intel.com>
> Subject: RE: [PATCH 3/3] IntelSiliconPkg/PlatformVTdSample: update
> ExceptionDevice
> 
> PLATFORM_EXCEPTION_DEVICE_SCOPE_STRUCT is used in
> mExceptionPciDeviceIdList, that is wrong and should be
> PLATFORM_EXCEPTION_PCI_DEVICE_ID_STRUCT.
> Others are good to me. Reviewed-by: Star Zeng <star.z...@intel.com>
> 
> +PLATFORM_EXCEPTION_PCI_DEVICE_ID_STRUCT  mExceptionPciDeviceIdList[]
> =
> +{
> +  {
> +    {
> +
> EDKII_PLATFORM_VTD_EXCEPTION_DEVICE_INFO_TYPE_PCI_DEVICE_ID,
> +      sizeof(PLATFORM_EXCEPTION_DEVICE_SCOPE_STRUCT)
> 
> 
> Thanks,
> Star
> -----Original Message-----
> From: Yao, Jiewen
> Sent: Friday, August 25, 2017 3:41 PM
> To: edk2-devel@lists.01.org
> Cc: Zeng, Star <star.z...@intel.com>
> Subject: [PATCH 3/3] IntelSiliconPkg/PlatformVTdSample: update
> ExceptionDevice
> 
> Add sample for device scope based exception list and PCI vendor id based
> exception list.
> 
> Cc: Star Zeng <star.z...@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Jiewen Yao <jiewen....@intel.com>
> ---
>  IntelSiliconPkg/PlatformVTdSampleDxe/PlatformVTdSampleDxe.c | 80
> +++++++++++++++++---
>  1 file changed, 70 insertions(+), 10 deletions(-)
> 
> diff --git a/IntelSiliconPkg/PlatformVTdSampleDxe/PlatformVTdSampleDxe.c
> b/IntelSiliconPkg/PlatformVTdSampleDxe/PlatformVTdSampleDxe.c
> index f181b94..95e0f3a 100644
> --- a/IntelSiliconPkg/PlatformVTdSampleDxe/PlatformVTdSampleDxe.c
> +++ b/IntelSiliconPkg/PlatformVTdSampleDxe/PlatformVTdSampleDxe.c
> @@ -27,6 +27,8 @@
>  #include <Library/UefiBootServicesTableLib.h>
>  #include <Library/DevicePathLib.h>
> 
> +#include <IndustryStandard/DmaRemappingReportingTable.h>
> +
>  typedef struct {
>    ACPI_EXTENDED_HID_DEVICE_PATH      I2cController;
>    UINT8                              HidStr[8];
> @@ -137,10 +139,57 @@ PLATFORM_PCI_BRIDGE_DEVICE_PATH
> mPlatformPciBridgeDevicePath = {
>    PLATFORM_END_ENTIRE
>  };
> 
> -EDKII_PLATFORM_VTD_DEVICE_INFO  mExceptionDeviceList[] = {
> +#pragma pack(1)
> +
> +typedef struct {
> +  EDKII_PLATFORM_VTD_EXCEPTION_DEVICE_INFO     ExceptionDeviceInfo;
> +  EDKII_PLATFORM_VTD_DEVICE_SCOPE              DeviceScope;
> +  EFI_ACPI_DMAR_PCI_PATH                       PciBridge;
> +  EFI_ACPI_DMAR_PCI_PATH                       PciDevice;
> +} PLATFORM_EXCEPTION_DEVICE_SCOPE_STRUCT;
> +
> +typedef struct {
> +  EDKII_PLATFORM_VTD_EXCEPTION_DEVICE_INFO     ExceptionDeviceInfo;
> +  EDKII_PLATFORM_VTD_PCI_DEVICE_ID             PciDeviceId;
> +} PLATFORM_EXCEPTION_PCI_DEVICE_ID_STRUCT;
> +
> +#pragma pack()
> +
> +PLATFORM_EXCEPTION_DEVICE_SCOPE_STRUCT
> mExceptionDeviceScopeList[] = {
>    {
> -    0x0,                 // Segment
> -    {{0x00, 0x00, 0x02}} // Function, Device, Bus
> +    {
> +
> EDKII_PLATFORM_VTD_EXCEPTION_DEVICE_INFO_TYPE_DEVICE_SCOPE,
> +      sizeof(PLATFORM_EXCEPTION_DEVICE_SCOPE_STRUCT)
> +    },  // ExceptionDeviceInfo
> +    {
> +      0,                                                    //
> SegmentNumber
> +      {
> +        EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_PCI_ENDPOINT,      // Type
> +        sizeof(EFI_ACPI_DMAR_DEVICE_SCOPE_STRUCTURE_HEADER) +
> +          2 * sizeof(EFI_ACPI_DMAR_PCI_PATH),               // Length
> +        0,                                                  //
> Reserved2
> +        0,                                                  //
> EnumerationId
> +        0,                                                  //
> StartBusNumber
> +      },
> +    },                                                      //
> DeviceScope
> +    { 0x1C, 1 },                                            // PciBridge
> +    { 0x0,  0 },                                            // PciDevice
> +  },
> +};
> +
> +PLATFORM_EXCEPTION_PCI_DEVICE_ID_STRUCT  mExceptionPciDeviceIdList[]
> =
> +{
> +  {
> +    {
> +
> EDKII_PLATFORM_VTD_EXCEPTION_DEVICE_INFO_TYPE_PCI_DEVICE_ID,
> +      sizeof(PLATFORM_EXCEPTION_DEVICE_SCOPE_STRUCT)
> +    },  // ExceptionDeviceInfo
> +    {
> +      0x8086,                                               //
> VendorId
> +      0x9D2F,                                               // DeviceId
> +      0x21,                                                 //
> RevisionId
> +      0x8086,                                               //
> SubsystemVendorId
> +      0x7270,                                               //
> SubsystemDeviceId
> +    },
>    },
>  };
> 
> @@ -269,6 +318,7 @@ PlatformVTdGetDeviceId (
>    @param[in]  This                  The protocol instance pointer.
>    @param[out] DeviceInfoCount       The count of the list of DeviceInfo.
>    @param[out] DeviceInfo            A callee allocated buffer to hold a list
> of DeviceInfo.
> +                                    Each DeviceInfo pointer points to
> EDKII_PLATFORM_VTD_EXCEPTION_DEVICE_INFO.
> 
>    @retval EFI_SUCCESS           The DeviceInfoCount and DeviceInfo are
> returned.
>    @retval EFI_INVALID_PARAMETER DeviceInfoCount is NULL, or DeviceInfo is
> NULL.
> @@ -280,7 +330,7 @@ EFIAPI
>  PlatformVTdGetExceptionDeviceList (
>    IN  EDKII_PLATFORM_VTD_POLICY_PROTOCOL       *This,
>    OUT UINTN                                    *DeviceInfoCount,
> -  OUT EDKII_PLATFORM_VTD_DEVICE_INFO           **DeviceInfo
> +  OUT VOID                                     **DeviceInfo
>    )
>  {
>    DEBUG ((DEBUG_VERBOSE, "PlatformVTdGetExceptionDeviceList\n"));
> @@ -289,13 +339,23 @@ PlatformVTdGetExceptionDeviceList (
>      return EFI_INVALID_PARAMETER;
>    }
> 
> -  *DeviceInfo = AllocateZeroPool (sizeof(mExceptionDeviceList));
> -  if (*DeviceInfo == NULL) {
> -    return EFI_OUT_OF_RESOURCES;
> -  }
> -  CopyMem (*DeviceInfo, mExceptionDeviceList,
> sizeof(mExceptionDeviceList));
> +  if (0) {
> +    *DeviceInfo = AllocateZeroPool (sizeof(mExceptionDeviceScopeList));
> +    if (*DeviceInfo == NULL) {
> +      return EFI_OUT_OF_RESOURCES;
> +    }
> +    CopyMem (*DeviceInfo, mExceptionDeviceScopeList,
> + sizeof(mExceptionDeviceScopeList));
> +
> +    *DeviceInfoCount = ARRAY_SIZE(mExceptionDeviceScopeList);
> +  } else {
> +    *DeviceInfo = AllocateZeroPool (sizeof(mExceptionPciDeviceIdList));
> +    if (*DeviceInfo == NULL) {
> +      return EFI_OUT_OF_RESOURCES;
> +    }
> +    CopyMem (*DeviceInfo, mExceptionPciDeviceIdList,
> + sizeof(mExceptionPciDeviceIdList));
> 
> -  *DeviceInfoCount = ARRAY_SIZE(mExceptionDeviceList);
> +    *DeviceInfoCount = ARRAY_SIZE(mExceptionPciDeviceIdList);
> +  }
> 
>    return EFI_SUCCESS;
>  }
> --
> 2.7.4.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to