[edk2-devel] [PATCH] MdePkg/include: Update DMAR definitions to Intel VT-d spec ver4.0

Sheng Wei w.sheng at intel.com
Thu Jul 7 07:17:13 UTC 2022


Reviewed-by: Sheng Wei <w.sheng at intel.com>

The change matches the Vtd specification v 4.0


> -----Original Message-----
> From: Kowalewski, Robert <robert.kowalewski at intel.com>
> Sent: 2022年7月6日 21:48
> To: devel at edk2.groups.io
> Cc: Kinney, Michael D <michael.d.kinney at intel.com>; Gao, Liming
> <gaoliming at byosoft.com.cn>; Liu, Zhiguang <zhiguang.liu at intel.com>;
> Huang, Jenny <jenny.huang at intel.com>; Sheng, W <w.sheng at intel.com>
> Subject: [PATCH] MdePkg/include: Update DMAR definitions to Intel VT-d
> spec ver4.0
> 
> Updated DMAR definitions accordingly to changes in Intel(R) Virtualization
> Technology for Directed I/O (VT-D) Architecture Specification ver4.0.
> 
> Added new definition of remapping structure - SIDP. The SoC Integrated
> Device Property (SIDP) reporting structure identifies devices that have
> special properties and that may put restrictions on how system software
> must configure remapping structures that govern such devices in a platform
> where remapping hardware is enabled.
> 
> Updated DRHD definition - field 'reserved' is replaced with 'Size'.
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3978
> 
> Signed-off-by: Robert Kowalewski <robert.kowalewski at intel.com>
> 
> Cc: Michael D Kinney <michael.d.kinney at intel.com>
> Cc: Liming Gao <gaoliming at byosoft.com.cn>
> Cc: Zhiguang Liu <zhiguang.liu at intel.com>
> Cc: Jenny Huang <jenny.huang at intel.com>
> Cc: Sheng Wei <w.sheng at intel.com>
> ---
>  .../DmaRemappingReportingTable.h              | 46 +++++++++++++++----
>  1 file changed, 38 insertions(+), 8 deletions(-)
> 
> diff --git
> a/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
> b/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
> index 193e4bced5..00588ff234 100644
> --- a/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
> +++ b/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
> @@ -2,12 +2,12 @@
>    DMA Remapping Reporting (DMAR) ACPI table definition from Intel(R)
>    Virtualization Technology for Directed I/O (VT-D) Architecture Specification.
> 
> -  Copyright (c) 2016 - 2020, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2016 - 2022, Intel Corporation. All rights
> + reserved.<BR>
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>    @par Revision Reference:
>      - Intel(R) Virtualization Technology for Directed I/O (VT-D) Architecture
> -      Specification v3.2, Dated October 2020.
> +      Specification v4.0, Dated June 2022.
> 
> https://software.intel.com/content/dam/develop/external/us/en/documen
> ts/vt-directed-io-spec.pdf
> 
>    @par Glossary:
> @@ -41,6 +41,7 @@
>  #define EFI_ACPI_DMAR_TYPE_RHSA  0x03
>  #define EFI_ACPI_DMAR_TYPE_ANDD  0x04
>  #define EFI_ACPI_DMAR_TYPE_SATC  0x05
> +#define EFI_ACPI_DMAR_TYPE_SIDP  0x06
>  ///@}
> 
>  ///
> @@ -56,6 +57,12 @@
>  #define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_IOAPIC                 0x03
>  #define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_MSI_CAPABLE_HPET
> 0x04
>  #define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_ACPI_NAMESPACE_DEVICE
> 0x05
> +
> +#define
> EFI_ACPI_DEVICE_SCOPE_REQ_WO_PASID_NESTED_NOTALLOWED  BIT0
> +#define
> EFI_ACPI_DEVICE_SCOPE_REQ_WO_PASID_PWSNP_NOTALLOWED   BIT1
> +#define EFI_ACPI_DEVICE_SCOPE_REQ_WO_PASID_PGSNP_NOTALLOWED
> BIT2
> +#define EFI_ACPI_DEVICE_SCOPE_REQ_WO_PASID_ATC_HARDENED
> BIT3
> +#define EFI_ACPI_DEVICE_SCOPE_REQ_WO_PASID_ATC_REQUIRED
> BIT4
>  ///@}
> 
>  ///
> @@ -83,11 +90,12 @@ typedef struct {
>  /// Device Scope Structure is defined in section 8.3.1  ///  typedef struct {
> -  UINT8     Type;
> -  UINT8     Length;
> -  UINT16    Reserved2;
> -  UINT8     EnumerationId;
> -  UINT8     StartBusNumber;
> +  UINT8    Type;
> +  UINT8    Length;
> +  UINT8    Flags;
> +  UINT8    Reserved;
> +  UINT8    EnumerationId;
> +  UINT8    StartBusNumber;
>  } EFI_ACPI_DMAR_DEVICE_SCOPE_STRUCTURE_HEADER;
> 
>  /**
> @@ -111,7 +119,14 @@ typedef struct {
>      - Bits[7:1] Reserved.
>    **/
>    UINT8     Flags;
> -  UINT8     Reserved;
> +
> +  /**
> +    - Bits[3:0]: Indicates the size of the remapping hardware register set for
> +                 this remapping unit. If the value in this field is N, the size
> +                 of the register set is 2^N 4 KB pages
> +    - Bits[7:4]: Reserved.
> +  **/
> +  UINT8     Size;
>    ///
>    /// The PCI Segment associated with this unit.
>    ///
> @@ -249,6 +264,20 @@ typedef struct {
>    UINT16    SegmentNumber;
>  } EFI_ACPI_DMAR_SATC_HEADER;
> 
> +/**
> +  SoC Integrated Device Property (SIDP) Reporting Structure is defined
> +in
> +  section 8.9.
> +**/
> +typedef struct {
> +  EFI_ACPI_DMAR_STRUCTURE_HEADER    Header;
> +
> +  UINT16                            Reserved;
> +  ///
> +  /// The PCI Segment associated with this SIDP structure.
> +  ///
> +  UINT16                            SegmentNumber;
> +} EFI_ACPI_DMAR_SIDP_HEADER;
> +
>  /**
>    DMA Remapping Reporting Structure Header as defined in section 8.1
>    This header will be followed by list of Remapping Structures listed below
> @@ -258,6 +287,7 @@ typedef struct {
>      - Remapping Hardware Static Affinity (RHSA)
>      - ACPI Name-space Device Declaration (ANDD)
>      - SoC Integrated Address Translation Cache reporting (SATC)
> +    - SoC Integrated Device Property reporting (SIDP)
>    These structure types must by reported in numerical order.
>    i.e., All remapping structures of type 0 (DRHD) enumerated before
> remapping
>    structures of type 1 (RMRR), and so forth.
> --
> 2.32.0.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#91135): https://edk2.groups.io/g/devel/message/91135
Mute This Topic: https://groups.io/mt/92223894/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list