[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