[edk2-devel] [edk2-platforms][PATCH V1 1/6] Platform/Sgi: add PCDs for SMMUv3 base address and interrupts
Vivek Kumar Gautam
vivek.gautam at arm.com
Mon Feb 14 12:13:02 UTC 2022
The SMMUv3 node in IORT table requires interrupt vector information
of 4 programmable interrupts - Event, PRI, Global error, and Sync.
In addition to these interrupt vectors, DeviceID information is
required to support MSI interrupts using GIC ITS block. Add the
PCD entries for SMMUv3 base address, the interrupt vectors, and
the MSI DeviceID, and update SMMUv3 node to use these PCDs rather
than using hardcoded values.
Signed-off-by: Aditya Angadi <aditya.angadi at arm.com>
Signed-off-by: Vivek Gautam <vivek.gautam at arm.com>
---
Platform/ARM/SgiPkg/SgiPlatform.dec | 7 ++++++-
Platform/ARM/SgiPkg/SgiMemoryMap.dsc.inc | 6 +++++-
Platform/ARM/SgiPkg/SgiMemoryMap2.dsc.inc | 3 ++-
Platform/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf | 8 +++++++-
Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf | 8 +++++++-
Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf | 8 +++++++-
Platform/ARM/SgiPkg/AcpiTables/RdV1AcpiTables.inf | 8 +++++++-
Platform/ARM/SgiPkg/AcpiTables/RdV1McAcpiTables.inf | 8 +++++++-
Platform/ARM/SgiPkg/AcpiTables/Sgi575AcpiTables.inf | 8 +++++++-
Platform/ARM/SgiPkg/AcpiTables/Iort.aslc | 14 +++++++-------
10 files changed, 62 insertions(+), 16 deletions(-)
diff --git a/Platform/ARM/SgiPkg/SgiPlatform.dec b/Platform/ARM/SgiPkg/SgiPlatform.dec
index 8cd818a9bf64..05079743c452 100644
--- a/Platform/ARM/SgiPkg/SgiPlatform.dec
+++ b/Platform/ARM/SgiPkg/SgiPlatform.dec
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2018-2020, ARM Limited. All rights reserved.
+# Copyright (c) 2018-2022, ARM Limited. All rights reserved.
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -75,6 +75,11 @@
# SMMU
gArmSgiTokenSpaceGuid.PcdSmmuBase|0|UINT32|0x0000001D
gArmSgiTokenSpaceGuid.PcdSmmuSize|0|UINT32|0x0000001E
+ gArmSgiTokenSpaceGuid.PcdSmmuEventGsiv|0|UINT32|0x00000027
+ gArmSgiTokenSpaceGuid.PcdSmmuGErrorGsiv|0|UINT32|0x00000028
+ gArmSgiTokenSpaceGuid.PcdSmmuPriGsiv|0|UINT32|0x00000029
+ gArmSgiTokenSpaceGuid.PcdSmmuSyncGsiv|0|UINT32|0x0000002A
+ gArmSgiTokenSpaceGuid.PcdSmmuDevIDBase|0|UINT32|0x0000002B
# GPIO Controller
gArmSgiTokenSpaceGuid.PcdGpioController0BaseAddress|0|UINT32|0x0000001F
diff --git a/Platform/ARM/SgiPkg/SgiMemoryMap.dsc.inc b/Platform/ARM/SgiPkg/SgiMemoryMap.dsc.inc
index 76707be73d7b..6430af346404 100644
--- a/Platform/ARM/SgiPkg/SgiMemoryMap.dsc.inc
+++ b/Platform/ARM/SgiPkg/SgiMemoryMap.dsc.inc
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2020, ARM Limited. All rights reserved.
+# Copyright (c) 2020-2022, ARM Limited. All rights reserved.
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -59,6 +59,10 @@
# SMMU
gArmSgiTokenSpaceGuid.PcdSmmuBase|0x4F000000
gArmSgiTokenSpaceGuid.PcdSmmuSize|0x01000000
+ gArmSgiTokenSpaceGuid.PcdSmmuEventGsiv|260
+ gArmSgiTokenSpaceGuid.PcdSmmuGErrorGsiv|262
+ gArmSgiTokenSpaceGuid.PcdSmmuSyncGsiv|261
+ gArmSgiTokenSpaceGuid.PcdSmmuDevIDBase|0x10000
# GPIO Controller
gArmSgiTokenSpaceGuid.PcdGpioController0BaseAddress|0x1C1D0000
diff --git a/Platform/ARM/SgiPkg/SgiMemoryMap2.dsc.inc b/Platform/ARM/SgiPkg/SgiMemoryMap2.dsc.inc
index 2d612f9b9674..94be353ca3ab 100644
--- a/Platform/ARM/SgiPkg/SgiMemoryMap2.dsc.inc
+++ b/Platform/ARM/SgiPkg/SgiMemoryMap2.dsc.inc
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2020, ARM Limited. All rights reserved.
+# Copyright (c) 2020-2022, ARM Limited. All rights reserved.
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -59,6 +59,7 @@
# SMMU
gArmSgiTokenSpaceGuid.PcdSmmuBase|0x40000000
gArmSgiTokenSpaceGuid.PcdSmmuSize|0x10000000
+ gArmSgiTokenSpaceGuid.PcdSmmuDevIDBase|0x80000
# GPIO controller
gArmSgiTokenSpaceGuid.PcdGpioController0BaseAddress|0x0C1D0000
diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf b/Platform/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf
index 8c34c2fa73e4..0418b9ab2631 100644
--- a/Platform/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf
+++ b/Platform/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf
@@ -1,7 +1,7 @@
## @file
# ACPI table data and ASL sources required to boot the platform.
#
-# Copyright (c) 2018-2021, ARM Ltd. All rights reserved.
+# Copyright (c) 2018-2022, ARM Ltd. All rights reserved.
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -57,6 +57,12 @@
gArmSgiTokenSpaceGuid.PcdGpioController0Interrupt
gArmSgiTokenSpaceGuid.PcdGtFrame0Gsiv
gArmSgiTokenSpaceGuid.PcdGtFrame1Gsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuBase
+ gArmSgiTokenSpaceGuid.PcdSmmuEventGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuGErrorGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuPriGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuSyncGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuDevIDBase
gArmSgiTokenSpaceGuid.PcdSp804DualTimerBaseAddress
gArmSgiTokenSpaceGuid.PcdSp804DualTimerSize
gArmSgiTokenSpaceGuid.PcdSp804DualTimerInterrupt
diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf b/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf
index ce89aa93ea7b..600feb2453b7 100644
--- a/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf
+++ b/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf
@@ -1,7 +1,7 @@
## @file
# ACPI table data and ASL sources required to boot the platform.
#
-# Copyright (c) 2018-2021, ARM Ltd. All rights reserved.
+# Copyright (c) 2018-2022, ARM Ltd. All rights reserved.
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -58,6 +58,12 @@
gArmSgiTokenSpaceGuid.PcdGtFrame0Gsiv
gArmSgiTokenSpaceGuid.PcdGtFrame1Gsiv
gArmSgiTokenSpaceGuid.PcdOscLpiEnable
+ gArmSgiTokenSpaceGuid.PcdSmmuBase
+ gArmSgiTokenSpaceGuid.PcdSmmuEventGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuGErrorGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuPriGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuSyncGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuDevIDBase
gArmSgiTokenSpaceGuid.PcdSp804DualTimerBaseAddress
gArmSgiTokenSpaceGuid.PcdSp804DualTimerSize
gArmSgiTokenSpaceGuid.PcdSp804DualTimerInterrupt
diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf b/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf
index 1999bc1553e9..c11f5e35c536 100644
--- a/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf
+++ b/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf
@@ -1,7 +1,7 @@
## @file
# ACPI table data and ASL sources required to boot the platform.
#
-# Copyright (c) 2020-2021, ARM Ltd. All rights reserved.
+# Copyright (c) 2020-2022, ARM Ltd. All rights reserved.
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -67,6 +67,12 @@
gArmSgiTokenSpaceGuid.PcdGtFrame0Gsiv
gArmSgiTokenSpaceGuid.PcdGtFrame1Gsiv
gArmSgiTokenSpaceGuid.PcdOscLpiEnable
+ gArmSgiTokenSpaceGuid.PcdSmmuBase
+ gArmSgiTokenSpaceGuid.PcdSmmuEventGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuGErrorGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuPriGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuSyncGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuDevIDBase
gArmSgiTokenSpaceGuid.PcdSp804DualTimerBaseAddress
gArmSgiTokenSpaceGuid.PcdSp804DualTimerSize
gArmSgiTokenSpaceGuid.PcdSp804DualTimerInterrupt
diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdV1AcpiTables.inf b/Platform/ARM/SgiPkg/AcpiTables/RdV1AcpiTables.inf
index 97a87462932b..6afab12bef28 100644
--- a/Platform/ARM/SgiPkg/AcpiTables/RdV1AcpiTables.inf
+++ b/Platform/ARM/SgiPkg/AcpiTables/RdV1AcpiTables.inf
@@ -1,7 +1,7 @@
## @file
# ACPI table data and ASL sources required to boot the platform.
#
-# Copyright (c) 2020-2021, Arm Ltd. All rights reserved.
+# Copyright (c) 2020-2022, Arm Ltd. All rights reserved.
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -59,6 +59,12 @@
gArmSgiTokenSpaceGuid.PcdGtFrame1Gsiv
gArmSgiTokenSpaceGuid.PcdOscLpiEnable
gArmSgiTokenSpaceGuid.PcdOscCppcEnable
+ gArmSgiTokenSpaceGuid.PcdSmmuBase
+ gArmSgiTokenSpaceGuid.PcdSmmuEventGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuGErrorGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuPriGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuSyncGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuDevIDBase
gArmSgiTokenSpaceGuid.PcdSp804DualTimerBaseAddress
gArmSgiTokenSpaceGuid.PcdSp804DualTimerSize
gArmSgiTokenSpaceGuid.PcdSp804DualTimerInterrupt
diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdV1McAcpiTables.inf b/Platform/ARM/SgiPkg/AcpiTables/RdV1McAcpiTables.inf
index deaca3719ae4..d34ce2b77344 100644
--- a/Platform/ARM/SgiPkg/AcpiTables/RdV1McAcpiTables.inf
+++ b/Platform/ARM/SgiPkg/AcpiTables/RdV1McAcpiTables.inf
@@ -1,7 +1,7 @@
## @file
# ACPI table data and ASL sources required to boot the platform.
#
-# Copyright (c) 2020-2021, Arm Ltd. All rights reserved.
+# Copyright (c) 2020-2022, Arm Ltd. All rights reserved.
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -68,6 +68,12 @@
gArmSgiTokenSpaceGuid.PcdGtFrame1Gsiv
gArmSgiTokenSpaceGuid.PcdOscLpiEnable
gArmSgiTokenSpaceGuid.PcdOscCppcEnable
+ gArmSgiTokenSpaceGuid.PcdSmmuBase
+ gArmSgiTokenSpaceGuid.PcdSmmuEventGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuGErrorGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuPriGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuSyncGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuDevIDBase
gArmSgiTokenSpaceGuid.PcdSp804DualTimerBaseAddress
gArmSgiTokenSpaceGuid.PcdSp804DualTimerSize
gArmSgiTokenSpaceGuid.PcdSp804DualTimerInterrupt
diff --git a/Platform/ARM/SgiPkg/AcpiTables/Sgi575AcpiTables.inf b/Platform/ARM/SgiPkg/AcpiTables/Sgi575AcpiTables.inf
index a1bd71fde761..04d0a61d1794 100644
--- a/Platform/ARM/SgiPkg/AcpiTables/Sgi575AcpiTables.inf
+++ b/Platform/ARM/SgiPkg/AcpiTables/Sgi575AcpiTables.inf
@@ -1,7 +1,7 @@
## @file
# ACPI table data and ASL sources required to boot the platform.
#
-# Copyright (c) 2018 - 2021, ARM Ltd. All rights reserved.
+# Copyright (c) 2018 - 2022, ARM Ltd. All rights reserved.
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -58,6 +58,12 @@
gArmSgiTokenSpaceGuid.PcdGtFrame0Gsiv
gArmSgiTokenSpaceGuid.PcdGtFrame1Gsiv
gArmSgiTokenSpaceGuid.PcdOscLpiEnable
+ gArmSgiTokenSpaceGuid.PcdSmmuBase
+ gArmSgiTokenSpaceGuid.PcdSmmuEventGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuGErrorGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuPriGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuSyncGsiv
+ gArmSgiTokenSpaceGuid.PcdSmmuDevIDBase
gArmSgiTokenSpaceGuid.PcdSp804DualTimerBaseAddress
gArmSgiTokenSpaceGuid.PcdSp804DualTimerSize
gArmSgiTokenSpaceGuid.PcdSp804DualTimerInterrupt
diff --git a/Platform/ARM/SgiPkg/AcpiTables/Iort.aslc b/Platform/ARM/SgiPkg/AcpiTables/Iort.aslc
index fcc28a71c82e..462798664160 100644
--- a/Platform/ARM/SgiPkg/AcpiTables/Iort.aslc
+++ b/Platform/ARM/SgiPkg/AcpiTables/Iort.aslc
@@ -1,7 +1,7 @@
/** @file
* I/O Remapping Table (Iort)
*
-* Copyright (c) 2018, ARM Ltd. All rights reserved.
+* Copyright (c) 2018-2022, ARM Ltd. All rights reserved.
*
* SPDX-License-Identifier: BSD-2-Clause-Patent
*
@@ -86,15 +86,15 @@ ARM_EFI_ACPI_6_0_IO_REMAPPING_TABLE Iort =
2, // NumIdMapping
OFFSET_OF (ARM_EFI_ACPI_6_0_IO_REMAPPING_SMMU3_NODE, SmmuIdMap), // IdReference
},
- 0x4F000000, // Base address
+ FixedPcdGet32 (PcdSmmuBase), // Base address
EFI_ACPI_IORT_SMMUv3_FLAG_COHAC_OVERRIDE, // Flags
0, // Reserved
0, // VATOS address
EFI_ACPI_IORT_SMMUv3_MODEL_GENERIC, // SMMUv3 Model
- 260, // Event
- 0, // Pri
- 262, // Gerror
- 261, // Sync
+ FixedPcdGet32 (PcdSmmuEventGsiv), // Event
+ FixedPcdGet32 (PcdSmmuPriGsiv), // Pri
+ FixedPcdGet32 (PcdSmmuGErrorGsiv), // Gerror
+ FixedPcdGet32 (PcdSmmuSyncGsiv), // Sync
0, // Proximity domain
1, // DevIDMappingIndex
},
@@ -110,7 +110,7 @@ ARM_EFI_ACPI_6_0_IO_REMAPPING_TABLE Iort =
{
0x0, // InputBase
0x1, // NumIds
- 0x10000, // OutputBase
+ FixedPcdGet32 (PcdSmmuDevIDBase), // OutputBase
OFFSET_OF (ARM_EFI_ACPI_6_0_IO_REMAPPING_TABLE, ItsNode), // OutputReference
EFI_ACPI_IORT_ID_MAPPING_FLAGS_SINGLE, // Flags
},
--
2.17.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#86647): https://edk2.groups.io/g/devel/message/86647
Mute This Topic: https://groups.io/mt/89134661/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