public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCHV2] MdePkg: Add DmaRemappingReportingTable.h
       [not found] <fa2ad2b710576ca09de4f2ef8ac80146d9c4bb2c.1469720749.git.giri.p.mudusuru@intel.com>
@ 2016-08-01 23:16 ` Giri P Mudusuru
  2016-08-01 23:44   ` Kinney, Michael D
  0 siblings, 1 reply; 2+ messages in thread
From: Giri P Mudusuru @ 2016-08-01 23:16 UTC (permalink / raw)
  To: edk2-devel; +Cc: Michael Kinney, Liming Gao, Jiewen Yao

DMA Remapping Reporting (DMAR) ACPI table definitions from Intel(R)
Virtualization Technology for Directed I/O (VT-D) Architecture
Specification v2.4 dated June 2016.

This replaces the DMARemappingReportingTable.h from
EdkCompatibilityPkg\Foundation\Include\IndustryStandard

Patch V2: added below defines and re-arranged the file.
  EFI_ACPI_DMAR_DRHD_FLAGS_INCLUDE_PCI_ALL
  EFI_ACPI_DMAR_ATSR_FLAGS_ALL_PORTS

Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
---
 .../IndustryStandard/DmaRemappingReportingTable.h  | 261 +++++++++++++++++++++
 1 file changed, 261 insertions(+)
 create mode 100644 MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h

diff --git a/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h b/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
new file mode 100644
index 0000000..a4a7e00
--- /dev/null
+++ b/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
@@ -0,0 +1,261 @@
+/** @file
+  DMA Remapping Reporting (DMAR) ACPI table definition from Intel(R)
+  Virtualization Technology for Directed I/O (VT-D) Architecture Specification.
+
+  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+  This program and the accompanying materials
+  are licensed and made available under the terms and conditions of the BSD License
+  which accompanies this distribution.  The full text of the license may be found at
+  http://opensource.org/licenses/bsd-license.php
+
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+  @par Revision Reference:
+    - Intel(R) Virtualization Technology for Directed I/O (VT-D) Architecture
+      Specification v2.4, Dated June 2016.
+      http://www.intel.com/content/dam/www/public/us/en/documents/product-specifications/vt-directed-io-spec.pdf
+
+  @par Glossary:
+    - HPET - High Precision Event Timer
+    - NUMA - Non-uniform Memory Access
+**/
+#ifndef _DMA_REMAPPING_REPORTING_TABLE_H_
+#define _DMA_REMAPPING_REPORTING_TABLE_H_
+
+#pragma pack(1)
+
+///
+/// DMA-Remapping Reporting Structure definitions from section 8.1
+///@{
+#define EFI_ACPI_DMAR_REVISION                    0x01
+
+#define EFI_ACPI_DMAR_FLAGS_INTR_REMAP            BIT0
+#define EFI_ACPI_DMAR_FLAGS_X2APIC_OPT_OUT        BIT1
+///@}
+
+///
+/// Remapping Structure Types definitions from section 8.2
+///@{
+#define EFI_ACPI_DMAR_TYPE_DRHD                   0x00
+#define EFI_ACPI_DMAR_TYPE_RMRR                   0x01
+#define EFI_ACPI_DMAR_TYPE_ATSR                   0x02
+#define EFI_ACPI_DMAR_TYPE_RHSA                   0x03
+#define EFI_ACPI_DMAR_TYPE_ANDD                   0x04
+///@}
+
+///
+/// DMA-Remapping Hardware Unit definitions from section 8.3
+///
+#define EFI_ACPI_DMAR_DRHD_FLAGS_INCLUDE_PCI_ALL  BIT0
+
+///
+/// DMA-Remapping Device Scope Entry Structure definitions from section 8.3.1
+///@{
+#define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_PCI_ENDPOINT           0x01
+#define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_PCI_BRIDGE             0x02
+#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
+///@}
+
+///
+/// Root Port ATS Capability Reporting Structure definitions from section 8.5
+///
+#define EFI_ACPI_DMAR_ATSR_FLAGS_ALL_PORTS                      BIT0
+
+///
+/// Definition for DMA Remapping Structure Header
+///
+typedef struct {
+  UINT16        Type;
+  UINT16        Length;
+} EFI_ACPI_DMAR_STRUCTURE_HEADER;
+
+///
+/// Definition for DMA-Remapping PCI Path
+///
+typedef struct {
+  UINT8         Device;
+  UINT8         Function;
+} EFI_ACPI_DMAR_PCI_PATH;
+
+///
+/// Device Scope Structure is defined in section 8.3.1
+///
+typedef struct {
+  UINT8         Type;
+  UINT8         Length;
+  UINT16        Reserved2;
+  UINT8         EnumerationId;
+  UINT8         StartBusNumber;
+} EFI_ACPI_DMAR_DEVICE_SCOPE_STRUCTURE_HEADER;
+
+/**
+  DMA-remapping hardware unit definition (DRHD) structure is defined in
+  section 8.3. This uniquely represents a remapping hardware unit present
+  in the platform. There must be at least one instance of this structure
+  for each PCI segment in the platform.
+**/
+typedef struct {
+  EFI_ACPI_DMAR_STRUCTURE_HEADER  Header;
+  /**
+    - Bit[0]: INCLUDE_PCI_ALL
+              - If Set, this remapping hardware unit has under its scope all
+                PCI compatible devices in the specified Segment, except devices
+                reported under the scope of other remapping hardware units for
+                the same Segment.
+              - If Clear, this remapping hardware unit has under its scope only
+                devices in the specified Segment that are explicitly identified
+                through the DeviceScope field.
+    - Bits[7:1] Reserved.
+  **/
+  UINT8                           Flags;
+  UINT8                           Reserved;
+  ///
+  /// The PCI Segment associated with this unit.
+  ///
+  UINT16                          SegmentNumber;
+  ///
+  /// Base address of remapping hardware register-set for this unit.
+  ///
+  UINT64                          RegisterBaseAddress;
+} EFI_ACPI_DMAR_DRHD_HEADER;
+
+/**
+  Reserved Memory Region Reporting Structure (RMRR) is described in section 8.4
+  Reserved memory ranges that may be DMA targets may be reported through the
+  RMRR structures, along with the devices that requires access to the specified
+  reserved memory region.
+**/
+typedef struct {
+  EFI_ACPI_DMAR_STRUCTURE_HEADER  Header;
+  UINT8                           Reserved[2];
+  ///
+  /// PCI Segment Number associated with devices identified through
+  /// the Device Scope field.
+  ///
+  UINT16                          SegmentNumber;
+  ///
+  /// Base address of 4KB-aligned reserved memory region
+  ///
+  UINT64                          ReservedMemoryRegionBaseAddress;
+  /**
+    Last address of the reserved memory region. Value in this field must be
+    greater than the value in Reserved Memory Region Base Address field.
+    The reserved memory region size (Limit - Base + 1) must be an integer
+    multiple of 4KB.
+  **/
+  UINT64                          ReservedMemoryRegionLimitAddress;
+} EFI_ACPI_DMAR_RMRR_HEADER;
+
+/**
+  Root Port ATS Capability Reporting (ATSR) structure is defined in section 8.5.
+  This structure is applicable only for platforms supporting Device-TLBs as
+  reported through the Extended Capability Register. For each PCI Segment in
+  the platform that supports Device-TLBs, BIOS provides an ATSR structure. The
+  ATSR structures identifies PCI-Express Root-Ports supporting Address
+  Translation Services (ATS) transactions. Software must enable ATS on endpoint
+  devices behind a Root Port only if the Root Port is reported as supporting
+  ATS transactions.
+**/
+typedef struct {
+  EFI_ACPI_DMAR_STRUCTURE_HEADER  Header;
+  /**
+    - Bit[0]: ALL_PORTS:
+              - If Set, indicates all PCI Express Root Ports in the specified
+                PCI Segment supports ATS transactions.
+              - If Clear, indicates ATS transactions are supported only on
+                Root Ports identified through the Device Scope field.
+    - Bits[7:1] Reserved.
+  **/
+  UINT8                           Flags;
+  UINT8                           Reserved;
+  ///
+  /// The PCI Segment associated with this ATSR structure
+  ///
+  UINT16                          SegmentNumber;
+} EFI_ACPI_DMAR_ATSR_HEADER;
+
+/**
+  Remapping Hardware Static Affinity (RHSA) is an optional structure defined
+  in section 8.6. This is intended to be used only on NUMA platforms with
+  Remapping hardware units and memory spanned across multiple nodes.
+  When used, there must be a RHSA structure for each Remapping hardware unit
+  reported through DRHD structure.
+**/
+typedef struct {
+  EFI_ACPI_DMAR_STRUCTURE_HEADER  Header;
+  UINT8                           Reserved[4];
+  ///
+  /// Register Base Address of this Remap hardware unit reported in the
+  /// corresponding DRHD structure.
+  ///
+  UINT64                          RegisterBaseAddress;
+  ///
+  /// Proximity Domain to which the Remap hardware unit identified by the
+  /// Register Base Address field belongs.
+  ///
+  UINT32                          ProximityDomain;
+} EFI_ACPI_DMAR_RHSA_HEADER;
+
+/**
+  An ACPI Name-space Device Declaration (ANDD) structure is defined in section
+  8.7 and uniquely represents an ACPI name-space enumerated device capable of
+  issuing DMA requests in the platform. ANDD structures are used in conjunction
+  with Device-Scope entries of type ACPI_NAMESPACE_DEVICE.
+**/
+typedef struct {
+  EFI_ACPI_DMAR_STRUCTURE_HEADER  Header;
+  UINT8                           Reserved[3];
+  /**
+    Each ACPI device enumerated through an ANDD structure must have a unique
+    value for this field. To report an ACPI device with ACPI Device Number
+    value of X, under the scope of a DRHD unit, a Device-Scope entry of type
+    ACPI_NAMESPACE_DEVICE is used with value of X in the Enumeration ID field.
+    The Start Bus Number and Path fields in the Device-Scope together
+    provides the 16-bit source-id allocated by platform for the ACPI device.
+  **/
+  UINT8                           AcpiDeviceNumber;
+} EFI_ACPI_DMAR_ANDD_HEADER;
+
+/**
+  DMA Remapping Reporting Structure Header as defined in section 8.1
+  This header will be followed by list of Remapping Structures listed below
+    - DMA Remapping Hardware Unit Definition (DRHD)
+    - Reserved Memory Region Reporting (RMRR)
+    - Root Port ATS Capability Reporting (ATSR)
+    - Remapping Hardware Static Affinity (RHSA)
+    - ACPI Name-space Device Declaration (ANDD)
+  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.
+**/
+typedef struct {
+  EFI_ACPI_DESCRIPTION_HEADER     Header;
+  /**
+    This field indicates the maximum DMA physical addressability supported by
+    this platform. The system address map reported by the BIOS indicates what
+    portions of this addresses are populated. The Host Address Width (HAW) of
+    the platform is computed as (N+1), where N is the value reported in this
+    field.
+    For example, for a platform supporting 40 bits of physical addressability,
+    the value of 100111b is reported in this field.
+  **/
+  UINT8                           HostAddressWidth;
+  /**
+    - Bit[0]:   INTR_REMAP - If Clear, the platform does not support interrupt
+                remapping. If Set, the platform supports interrupt remapping.
+    - Bit[1]:   X2APIC_OPT_OUT - For firmware compatibility reasons, platform
+                firmware may Set this field to request system software to opt
+                out of enabling Extended xAPIC (X2APIC) mode. This field is
+                valid only when the INTR_REMAP field (bit 0) is Set.
+    - Bits[7:2] Reserved.
+  **/
+  UINT8                           Flags;
+  UINT8                           Reserved[10];
+} EFI_ACPI_DMAR_HEADER;
+
+#pragma pack()
+
+#endif
-- 
2.9.0.windows.1



^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCHV2] MdePkg: Add DmaRemappingReportingTable.h
  2016-08-01 23:16 ` [PATCHV2] MdePkg: Add DmaRemappingReportingTable.h Giri P Mudusuru
@ 2016-08-01 23:44   ` Kinney, Michael D
  0 siblings, 0 replies; 2+ messages in thread
From: Kinney, Michael D @ 2016-08-01 23:44 UTC (permalink / raw)
  To: Mudusuru, Giri P, edk2-devel@lists.01.org, Kinney, Michael D
  Cc: Yao, Jiewen, Gao, Liming

Giri,

The updates look good.

Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>

Mike

> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Giri P Mudusuru
> Sent: Monday, August 1, 2016 4:17 PM
> To: edk2-devel@lists.01.org
> Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Yao, Jiewen <jiewen.yao@intel.com>;
> Gao, Liming <liming.gao@intel.com>
> Subject: [edk2] [PATCHV2] MdePkg: Add DmaRemappingReportingTable.h
> 
> DMA Remapping Reporting (DMAR) ACPI table definitions from Intel(R)
> Virtualization Technology for Directed I/O (VT-D) Architecture
> Specification v2.4 dated June 2016.
> 
> This replaces the DMARemappingReportingTable.h from
> EdkCompatibilityPkg\Foundation\Include\IndustryStandard
> 
> Patch V2: added below defines and re-arranged the file.
>   EFI_ACPI_DMAR_DRHD_FLAGS_INCLUDE_PCI_ALL
>   EFI_ACPI_DMAR_ATSR_FLAGS_ALL_PORTS
> 
> Cc: Michael Kinney <michael.d.kinney@intel.com>
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Giri P Mudusuru <giri.p.mudusuru@intel.com>
> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
> ---
>  .../IndustryStandard/DmaRemappingReportingTable.h  | 261 +++++++++++++++++++++
>  1 file changed, 261 insertions(+)
>  create mode 100644 MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
> 
> diff --git a/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
> b/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
> new file mode 100644
> index 0000000..a4a7e00
> --- /dev/null
> +++ b/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
> @@ -0,0 +1,261 @@
> +/** @file
> +  DMA Remapping Reporting (DMAR) ACPI table definition from Intel(R)
> +  Virtualization Technology for Directed I/O (VT-D) Architecture Specification.
> +
> +  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
> +  This program and the accompanying materials
> +  are licensed and made available under the terms and conditions of the BSD License
> +  which accompanies this distribution.  The full text of the license may be found at
> +  http://opensource.org/licenses/bsd-license.php
> +
> +  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +
> +  @par Revision Reference:
> +    - Intel(R) Virtualization Technology for Directed I/O (VT-D) Architecture
> +      Specification v2.4, Dated June 2016.
> +      http://www.intel.com/content/dam/www/public/us/en/documents/product-
> specifications/vt-directed-io-spec.pdf
> +
> +  @par Glossary:
> +    - HPET - High Precision Event Timer
> +    - NUMA - Non-uniform Memory Access
> +**/
> +#ifndef _DMA_REMAPPING_REPORTING_TABLE_H_
> +#define _DMA_REMAPPING_REPORTING_TABLE_H_
> +
> +#pragma pack(1)
> +
> +///
> +/// DMA-Remapping Reporting Structure definitions from section 8.1
> +///@{
> +#define EFI_ACPI_DMAR_REVISION                    0x01
> +
> +#define EFI_ACPI_DMAR_FLAGS_INTR_REMAP            BIT0
> +#define EFI_ACPI_DMAR_FLAGS_X2APIC_OPT_OUT        BIT1
> +///@}
> +
> +///
> +/// Remapping Structure Types definitions from section 8.2
> +///@{
> +#define EFI_ACPI_DMAR_TYPE_DRHD                   0x00
> +#define EFI_ACPI_DMAR_TYPE_RMRR                   0x01
> +#define EFI_ACPI_DMAR_TYPE_ATSR                   0x02
> +#define EFI_ACPI_DMAR_TYPE_RHSA                   0x03
> +#define EFI_ACPI_DMAR_TYPE_ANDD                   0x04
> +///@}
> +
> +///
> +/// DMA-Remapping Hardware Unit definitions from section 8.3
> +///
> +#define EFI_ACPI_DMAR_DRHD_FLAGS_INCLUDE_PCI_ALL  BIT0
> +
> +///
> +/// DMA-Remapping Device Scope Entry Structure definitions from section 8.3.1
> +///@{
> +#define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_PCI_ENDPOINT           0x01
> +#define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_PCI_BRIDGE             0x02
> +#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
> +///@}
> +
> +///
> +/// Root Port ATS Capability Reporting Structure definitions from section 8.5
> +///
> +#define EFI_ACPI_DMAR_ATSR_FLAGS_ALL_PORTS                      BIT0
> +
> +///
> +/// Definition for DMA Remapping Structure Header
> +///
> +typedef struct {
> +  UINT16        Type;
> +  UINT16        Length;
> +} EFI_ACPI_DMAR_STRUCTURE_HEADER;
> +
> +///
> +/// Definition for DMA-Remapping PCI Path
> +///
> +typedef struct {
> +  UINT8         Device;
> +  UINT8         Function;
> +} EFI_ACPI_DMAR_PCI_PATH;
> +
> +///
> +/// Device Scope Structure is defined in section 8.3.1
> +///
> +typedef struct {
> +  UINT8         Type;
> +  UINT8         Length;
> +  UINT16        Reserved2;
> +  UINT8         EnumerationId;
> +  UINT8         StartBusNumber;
> +} EFI_ACPI_DMAR_DEVICE_SCOPE_STRUCTURE_HEADER;
> +
> +/**
> +  DMA-remapping hardware unit definition (DRHD) structure is defined in
> +  section 8.3. This uniquely represents a remapping hardware unit present
> +  in the platform. There must be at least one instance of this structure
> +  for each PCI segment in the platform.
> +**/
> +typedef struct {
> +  EFI_ACPI_DMAR_STRUCTURE_HEADER  Header;
> +  /**
> +    - Bit[0]: INCLUDE_PCI_ALL
> +              - If Set, this remapping hardware unit has under its scope all
> +                PCI compatible devices in the specified Segment, except devices
> +                reported under the scope of other remapping hardware units for
> +                the same Segment.
> +              - If Clear, this remapping hardware unit has under its scope only
> +                devices in the specified Segment that are explicitly identified
> +                through the DeviceScope field.
> +    - Bits[7:1] Reserved.
> +  **/
> +  UINT8                           Flags;
> +  UINT8                           Reserved;
> +  ///
> +  /// The PCI Segment associated with this unit.
> +  ///
> +  UINT16                          SegmentNumber;
> +  ///
> +  /// Base address of remapping hardware register-set for this unit.
> +  ///
> +  UINT64                          RegisterBaseAddress;
> +} EFI_ACPI_DMAR_DRHD_HEADER;
> +
> +/**
> +  Reserved Memory Region Reporting Structure (RMRR) is described in section 8.4
> +  Reserved memory ranges that may be DMA targets may be reported through the
> +  RMRR structures, along with the devices that requires access to the specified
> +  reserved memory region.
> +**/
> +typedef struct {
> +  EFI_ACPI_DMAR_STRUCTURE_HEADER  Header;
> +  UINT8                           Reserved[2];
> +  ///
> +  /// PCI Segment Number associated with devices identified through
> +  /// the Device Scope field.
> +  ///
> +  UINT16                          SegmentNumber;
> +  ///
> +  /// Base address of 4KB-aligned reserved memory region
> +  ///
> +  UINT64                          ReservedMemoryRegionBaseAddress;
> +  /**
> +    Last address of the reserved memory region. Value in this field must be
> +    greater than the value in Reserved Memory Region Base Address field.
> +    The reserved memory region size (Limit - Base + 1) must be an integer
> +    multiple of 4KB.
> +  **/
> +  UINT64                          ReservedMemoryRegionLimitAddress;
> +} EFI_ACPI_DMAR_RMRR_HEADER;
> +
> +/**
> +  Root Port ATS Capability Reporting (ATSR) structure is defined in section 8.5.
> +  This structure is applicable only for platforms supporting Device-TLBs as
> +  reported through the Extended Capability Register. For each PCI Segment in
> +  the platform that supports Device-TLBs, BIOS provides an ATSR structure. The
> +  ATSR structures identifies PCI-Express Root-Ports supporting Address
> +  Translation Services (ATS) transactions. Software must enable ATS on endpoint
> +  devices behind a Root Port only if the Root Port is reported as supporting
> +  ATS transactions.
> +**/
> +typedef struct {
> +  EFI_ACPI_DMAR_STRUCTURE_HEADER  Header;
> +  /**
> +    - Bit[0]: ALL_PORTS:
> +              - If Set, indicates all PCI Express Root Ports in the specified
> +                PCI Segment supports ATS transactions.
> +              - If Clear, indicates ATS transactions are supported only on
> +                Root Ports identified through the Device Scope field.
> +    - Bits[7:1] Reserved.
> +  **/
> +  UINT8                           Flags;
> +  UINT8                           Reserved;
> +  ///
> +  /// The PCI Segment associated with this ATSR structure
> +  ///
> +  UINT16                          SegmentNumber;
> +} EFI_ACPI_DMAR_ATSR_HEADER;
> +
> +/**
> +  Remapping Hardware Static Affinity (RHSA) is an optional structure defined
> +  in section 8.6. This is intended to be used only on NUMA platforms with
> +  Remapping hardware units and memory spanned across multiple nodes.
> +  When used, there must be a RHSA structure for each Remapping hardware unit
> +  reported through DRHD structure.
> +**/
> +typedef struct {
> +  EFI_ACPI_DMAR_STRUCTURE_HEADER  Header;
> +  UINT8                           Reserved[4];
> +  ///
> +  /// Register Base Address of this Remap hardware unit reported in the
> +  /// corresponding DRHD structure.
> +  ///
> +  UINT64                          RegisterBaseAddress;
> +  ///
> +  /// Proximity Domain to which the Remap hardware unit identified by the
> +  /// Register Base Address field belongs.
> +  ///
> +  UINT32                          ProximityDomain;
> +} EFI_ACPI_DMAR_RHSA_HEADER;
> +
> +/**
> +  An ACPI Name-space Device Declaration (ANDD) structure is defined in section
> +  8.7 and uniquely represents an ACPI name-space enumerated device capable of
> +  issuing DMA requests in the platform. ANDD structures are used in conjunction
> +  with Device-Scope entries of type ACPI_NAMESPACE_DEVICE.
> +**/
> +typedef struct {
> +  EFI_ACPI_DMAR_STRUCTURE_HEADER  Header;
> +  UINT8                           Reserved[3];
> +  /**
> +    Each ACPI device enumerated through an ANDD structure must have a unique
> +    value for this field. To report an ACPI device with ACPI Device Number
> +    value of X, under the scope of a DRHD unit, a Device-Scope entry of type
> +    ACPI_NAMESPACE_DEVICE is used with value of X in the Enumeration ID field.
> +    The Start Bus Number and Path fields in the Device-Scope together
> +    provides the 16-bit source-id allocated by platform for the ACPI device.
> +  **/
> +  UINT8                           AcpiDeviceNumber;
> +} EFI_ACPI_DMAR_ANDD_HEADER;
> +
> +/**
> +  DMA Remapping Reporting Structure Header as defined in section 8.1
> +  This header will be followed by list of Remapping Structures listed below
> +    - DMA Remapping Hardware Unit Definition (DRHD)
> +    - Reserved Memory Region Reporting (RMRR)
> +    - Root Port ATS Capability Reporting (ATSR)
> +    - Remapping Hardware Static Affinity (RHSA)
> +    - ACPI Name-space Device Declaration (ANDD)
> +  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.
> +**/
> +typedef struct {
> +  EFI_ACPI_DESCRIPTION_HEADER     Header;
> +  /**
> +    This field indicates the maximum DMA physical addressability supported by
> +    this platform. The system address map reported by the BIOS indicates what
> +    portions of this addresses are populated. The Host Address Width (HAW) of
> +    the platform is computed as (N+1), where N is the value reported in this
> +    field.
> +    For example, for a platform supporting 40 bits of physical addressability,
> +    the value of 100111b is reported in this field.
> +  **/
> +  UINT8                           HostAddressWidth;
> +  /**
> +    - Bit[0]:   INTR_REMAP - If Clear, the platform does not support interrupt
> +                remapping. If Set, the platform supports interrupt remapping.
> +    - Bit[1]:   X2APIC_OPT_OUT - For firmware compatibility reasons, platform
> +                firmware may Set this field to request system software to opt
> +                out of enabling Extended xAPIC (X2APIC) mode. This field is
> +                valid only when the INTR_REMAP field (bit 0) is Set.
> +    - Bits[7:2] Reserved.
> +  **/
> +  UINT8                           Flags;
> +  UINT8                           Reserved[10];
> +} EFI_ACPI_DMAR_HEADER;
> +
> +#pragma pack()
> +
> +#endif
> --
> 2.9.0.windows.1
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-08-01 23:44 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <fa2ad2b710576ca09de4f2ef8ac80146d9c4bb2c.1469720749.git.giri.p.mudusuru@intel.com>
2016-08-01 23:16 ` [PATCHV2] MdePkg: Add DmaRemappingReportingTable.h Giri P Mudusuru
2016-08-01 23:44   ` Kinney, Michael D

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox