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.