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.
+ Copyright (c) 2016 - 2022, Intel Corporation. All rights reserved.
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/documents/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.