MdePkg: IORT Specification Rev D updates

Updated IORT structure definitions to conform to the IO Remapping
Table, Platform Design Document, Revision D, March 2018.

The following structures have been updated:
  1. SMMUv3 - fix on proximity node.
  2. PMCG - added page 1 support.
  3. Root complex node - added DMA mask (memory address size limit).

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Evan Lloyd <evan.lloyd@arm.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
Sami Mujawar 2018-04-26 23:41:06 +08:00 committed by Liming Gao
parent 27e9839185
commit 1e2bf55e09
1 changed files with 6 additions and 4 deletions

View File

@ -1,7 +1,7 @@
/** @file /** @file
ACPI IO Remapping Table (IORT) as specified in ARM spec DEN0049C ACPI IO Remapping Table (IORT) as specified in ARM spec DEN0049D
http://infocenter.arm.com/help/topic/com.arm.doc.den0049c/DEN0049C_IO_Remapping_Table.pdf http://infocenter.arm.com/help/topic/com.arm.doc.den0049d/DEN0049D_IO_Remapping_Table.pdf
Copyright (c) 2017, Linaro Limited. All rights reserved.<BR> Copyright (c) 2017, Linaro Limited. All rights reserved.<BR>
Copyright (c) 2018, ARM Limited. All rights reserved.<BR> Copyright (c) 2018, ARM Limited. All rights reserved.<BR>
@ -123,6 +123,8 @@ typedef struct {
UINT32 AtsAttribute; UINT32 AtsAttribute;
UINT32 PciSegmentNumber; UINT32 PciSegmentNumber;
UINT8 MemoryAddressSize;
UINT8 Reserved1[3];
} EFI_ACPI_6_0_IO_REMAPPING_RC_NODE; } EFI_ACPI_6_0_IO_REMAPPING_RC_NODE;
/// ///
@ -185,8 +187,7 @@ typedef struct {
UINT32 Pri; UINT32 Pri;
UINT32 Gerr; UINT32 Gerr;
UINT32 Sync; UINT32 Sync;
UINT8 ProximityDomain; UINT32 ProximityDomain;
UINT8 Reserved1[3];
UINT32 DeviceIdMappingIndex; UINT32 DeviceIdMappingIndex;
} EFI_ACPI_6_0_IO_REMAPPING_SMMU3_NODE; } EFI_ACPI_6_0_IO_REMAPPING_SMMU3_NODE;
@ -199,6 +200,7 @@ typedef struct {
UINT64 Base; UINT64 Base;
UINT32 OverflowInterruptGsiv; UINT32 OverflowInterruptGsiv;
UINT32 NodeReference; UINT32 NodeReference;
UINT64 Page1Base;
//EFI_ACPI_6_0_IO_REMAPPING_ID_TABLE OverflowInterruptMsiMapping[1]; //EFI_ACPI_6_0_IO_REMAPPING_ID_TABLE OverflowInterruptMsiMapping[1];
} EFI_ACPI_6_0_IO_REMAPPING_PMCG_NODE; } EFI_ACPI_6_0_IO_REMAPPING_PMCG_NODE;