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>
---
The changes can be seen at:
https://github.com/samimujawar/edk2/tree/253_iort_update_v1
Notes:
v1:
- Updated for IORT Specification Revision D. [SAMI]
MdePkg/Include/IndustryStandard/IoRemappingTable.h | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/MdePkg/Include/IndustryStandard/IoRemappingTable.h b/MdePkg/Include/IndustryStandard/IoRemappingTable.h
index 2e5cb45d7e2ffd4a0559ef706b71874843e3fdbd..389f352c2fbc725e5e9a881a73adc306035dc0de 100644
--- a/MdePkg/Include/IndustryStandard/IoRemappingTable.h
+++ b/MdePkg/Include/IndustryStandard/IoRemappingTable.h
@@ -1,7 +1,7 @@
/** @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) 2018, ARM Limited. All rights reserved.<BR>
@@ -123,6 +123,8 @@ typedef struct {
UINT32 AtsAttribute;
UINT32 PciSegmentNumber;
+ UINT8 MemoryAddressSize;
+ UINT8 Reserved1[3];
} EFI_ACPI_6_0_IO_REMAPPING_RC_NODE;
///
@@ -185,8 +187,7 @@ typedef struct {
UINT32 Pri;
UINT32 Gerr;
UINT32 Sync;
- UINT8 ProximityDomain;
- UINT8 Reserved1[3];
+ UINT32 ProximityDomain;
UINT32 DeviceIdMappingIndex;
} EFI_ACPI_6_0_IO_REMAPPING_SMMU3_NODE;
@@ -199,6 +200,7 @@ typedef struct {
UINT64 Base;
UINT32 OverflowInterruptGsiv;
UINT32 NodeReference;
+ UINT64 Page1Base;
//EFI_ACPI_6_0_IO_REMAPPING_ID_TABLE OverflowInterruptMsiMapping[1];
} EFI_ACPI_6_0_IO_REMAPPING_PMCG_NODE;
--
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
On 26 April 2018 at 17:41, Sami Mujawar <sami.mujawar@arm.com> wrote:
> 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: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> ---
> The changes can be seen at:
> https://github.com/samimujawar/edk2/tree/253_iort_update_v1
>
> Notes:
> v1:
> - Updated for IORT Specification Revision D. [SAMI]
>
> MdePkg/Include/IndustryStandard/IoRemappingTable.h | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/MdePkg/Include/IndustryStandard/IoRemappingTable.h b/MdePkg/Include/IndustryStandard/IoRemappingTable.h
> index 2e5cb45d7e2ffd4a0559ef706b71874843e3fdbd..389f352c2fbc725e5e9a881a73adc306035dc0de 100644
> --- a/MdePkg/Include/IndustryStandard/IoRemappingTable.h
> +++ b/MdePkg/Include/IndustryStandard/IoRemappingTable.h
> @@ -1,7 +1,7 @@
> /** @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) 2018, ARM Limited. All rights reserved.<BR>
> @@ -123,6 +123,8 @@ typedef struct {
>
> UINT32 AtsAttribute;
> UINT32 PciSegmentNumber;
> + UINT8 MemoryAddressSize;
> + UINT8 Reserved1[3];
> } EFI_ACPI_6_0_IO_REMAPPING_RC_NODE;
>
> ///
> @@ -185,8 +187,7 @@ typedef struct {
> UINT32 Pri;
> UINT32 Gerr;
> UINT32 Sync;
> - UINT8 ProximityDomain;
> - UINT8 Reserved1[3];
> + UINT32 ProximityDomain;
> UINT32 DeviceIdMappingIndex;
> } EFI_ACPI_6_0_IO_REMAPPING_SMMU3_NODE;
>
> @@ -199,6 +200,7 @@ typedef struct {
> UINT64 Base;
> UINT32 OverflowInterruptGsiv;
> UINT32 NodeReference;
> + UINT64 Page1Base;
> //EFI_ACPI_6_0_IO_REMAPPING_ID_TABLE OverflowInterruptMsiMapping[1];
> } EFI_ACPI_6_0_IO_REMAPPING_PMCG_NODE;
>
> --
> 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'
>
>
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
© 2016 - 2026 Red Hat, Inc.