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.ang...@arm.com> Signed-off-by: Vivek Gautam <vivek.gau...@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/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-