From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web11.3955.1657098204432255564 for ; Wed, 06 Jul 2022 02:03:25 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=YOJSM4iM; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: robert.kowalewski@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1657098204; x=1688634204; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=zaXCh0svec9TUy3SXTHuenhRkq+aXplNy2p9uPG93xw=; b=YOJSM4iMT0JL+53Ny8V9tdnJ4vEjsdfKcxL5J6hUdNCr3q3ezmO9o++0 O8UnQgEUQu0RplDpIcvRzwab5Dtl4wCzGucQ7W2h23PMcGybUYSR1Huqh oVlYmHeIq0LzkAF346rXpnApVYU/8eWry4dZIfM2QsWiYlG9o6XzBfp/n dVEM8FXUN6UFvalUXWAwxAd3cPFOfe4LtphR0qA4S1lsXISRMYO3q/Hym Is+Cj5cIH5iuyRrVSAssb1Wc9zA2lZjxUFON1bj5Js5Hhivvz5mO+m69y LnQBmYveWP+sRLGfSPAF/a0v6zJzyB5Od343KFarPaCrMUgVDdmnCtmAN A==; X-IronPort-AV: E=McAfee;i="6400,9594,10399"; a="282440675" X-IronPort-AV: E=Sophos;i="5.92,249,1650956400"; d="scan'208";a="282440675" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jul 2022 02:03:23 -0700 X-IronPort-AV: E=Sophos;i="5.92,249,1650956400"; d="scan'208";a="567979692" Received: from rkowalew-mobl2.ger.corp.intel.com ([10.213.17.244]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jul 2022 02:03:21 -0700 From: robert.kowalewski@intel.com To: devel@edk2.groups.io Cc: Michael D Kinney , Liming Gao , Zhiguang Liu , Jenny Huang , Sheng Wei Subject: [PATCH] MdePkg/include: Update DMAR definitions to Intel VT-d spec ver4.0 Date: Wed, 6 Jul 2022 11:03:08 +0200 Message-Id: X-Mailer: git-send-email 2.32.0.windows.1 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable 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=3D3978 Signed-off-by: Robert Kowalewski Cc: Michael D Kinney Cc: Liming Gao Cc: Zhiguang Liu Cc: Jenny Huang Cc: Sheng Wei --- .../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 Specifica= tion. = - 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) Architect= ure - Specification v3.2, Dated October 2020. + Specification v4.0, Dated June 2022. https://software.intel.com/content/dam/develop/external/us/en/docume= nts/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 remapp= ing structures of type 1 (RMRR), and so forth. -- = 2.32.0.windows.1 --------------------------------------------------------------------- Intel Technology Poland sp. z o.o. ul. Slowackiego 173 | 80-298 Gdansk | Sad Rejonowy Gdansk Polnoc | VII Wydz= ial Gospodarczy Krajowego Rejestru Sadowego - KRS 101882 | NIP 957-07-52-31= 6 | Kapital zakladowy 200.000 PLN. Ta wiadomosc wraz z zalacznikami jest przeznaczona dla okreslonego adresata= i moze zawierac informacje poufne. W razie przypadkowego otrzymania tej wi= adomosci, prosimy o powiadomienie nadawcy oraz trwale jej usuniecie; jakiek= olwiek przegladanie lub rozpowszechnianie jest zabronione. This e-mail and any attachments may contain confidential material for the s= ole use of the intended recipient(s). If you are not the intended recipient= , please contact the sender and delete all copies; any review or distributi= on by others is strictly prohibited.