Reviewed-by: levi.yun <yeoreum....@arm.com>

On 05/01/2024 15:38, Prabin CA via groups.io wrote:
The Neoverse RD-N2-Cfg3 platform is a variant of RD-N2 platform with a
different mesh size and GIC ITS count. As part of the initial platform
support, add the corresponding platform and flash description files.
Use PcdPlatformVariant for the RD-N2-Cfg3 platform to specify the
platform variant. RD-N2-Cfg3 has 12 GIC ITS blocks when compared to the
other RD-N2 variants that have 6 GIC ITS blocks.

Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subraman...@arm.com>
Signed-off-by: Prabin CA <prabin...@arm.com>
---
  Platform/ARM/SgiPkg/RdN2Cfg3/RdN2Cfg3.dsc                                     
| 58 ++++++++++++++++++++
  Platform/ARM/SgiPkg/AcpiTables/RdN2AcpiTables.inf                             
|  3 +-
  Platform/ARM/SgiPkg/AcpiTables/{RdN2AcpiTables.inf => RdN2Cfg3AcpiTables.inf} 
| 15 ++---
  Platform/ARM/SgiPkg/AcpiTables/RdN2/Madt.aslc                                 
| 14 ++++-
  Platform/ARM/SgiPkg/RdN2Cfg3/RdN2Cfg3.fdf.inc                                 
| 10 ++++
  5 files changed, 88 insertions(+), 12 deletions(-)

diff --git a/Platform/ARM/SgiPkg/RdN2Cfg3/RdN2Cfg3.dsc 
b/Platform/ARM/SgiPkg/RdN2Cfg3/RdN2Cfg3.dsc
new file mode 100644
index 000000000000..88293b236a32
--- /dev/null
+++ b/Platform/ARM/SgiPkg/RdN2Cfg3/RdN2Cfg3.dsc
@@ -0,0 +1,58 @@
+#
+#  Copyright (c) 2024, ARM Limited. All rights reserved.
+#
+#  SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+
+################################################################################
+#
+# Defines Section - statements that will be processed to create a Makefile.
+#
+################################################################################
+[Defines]
+  PLATFORM_NAME                  = RdN2Cfg3
+  PLATFORM_GUID                  = b890ba7d-a256-4820-9d3a-655acbb737c9
+  PLATFORM_VERSION               = 0.1
+  DSC_SPECIFICATION              = 0x0001001B
+  OUTPUT_DIRECTORY               = Build/$(PLATFORM_NAME)
+  SUPPORTED_ARCHITECTURES        = AARCH64
+  BUILD_TARGETS                  = NOOPT|DEBUG|RELEASE
+  SKUID_IDENTIFIER               = DEFAULT
+  FLASH_DEFINITION               = Platform/ARM/SgiPkg/SgiPlatform.fdf
+  BOARD_DXE_FV_COMPONENTS        = 
Platform/ARM/SgiPkg/RdN2Cfg3/RdN2Cfg3.fdf.inc
+  BUILD_NUMBER                   = 1
+
+# include common definitions from SgiPlatform.dsc
+!include Platform/ARM/SgiPkg/SgiPlatform.dsc.inc
+!include Platform/ARM/SgiPkg/SgiMemoryMap2.dsc.inc
+
+# include common/basic libraries from MdePkg.
+!include MdePkg/MdeLibs.dsc.inc
+
+################################################################################
+#
+# Pcd Section - list of all EDK II PCD Entries defined by this Platform
+#
+################################################################################
+
+[PcdsFixedAtBuild.common]
+  # GIC configurations
+  gArmTokenSpaceGuid.PcdGicDistributorBase|0x30000000
+  gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x30300000
+  gArmSgiTokenSpaceGuid.PcdGicSize|0x400000
+
+  # ARM Cores and Clusters
+  gArmPlatformTokenSpaceGuid.PcdCoreCount|1
+  gArmPlatformTokenSpaceGuid.PcdClusterCount|16
+
+  # RdN2Cfg3 is the third variant from RdN2 Platform
+  gArmSgiTokenSpaceGuid.PcdPlatformVariant|3
+
+################################################################################
+#
+# Components Section - list of all EDK II Modules needed by this Platform
+#
+################################################################################
+
+[Components.common]
+  Platform/ARM/SgiPkg/AcpiTables/RdN2Cfg3AcpiTables.inf
diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdN2AcpiTables.inf 
b/Platform/ARM/SgiPkg/AcpiTables/RdN2AcpiTables.inf
index 8025ef58171b..afc38385c051 100644
--- a/Platform/ARM/SgiPkg/AcpiTables/RdN2AcpiTables.inf
+++ b/Platform/ARM/SgiPkg/AcpiTables/RdN2AcpiTables.inf
@@ -1,7 +1,7 @@
  ## @file
  #  ACPI table data and ASL sources required to boot the platform.
  #
-#  Copyright (c) 2020 - 2023, Arm Ltd. All rights reserved.
+#  Copyright (c) 2020 - 2024, Arm Ltd. All rights reserved.
  #
  #  SPDX-License-Identifier: BSD-2-Clause-Patent
  #
@@ -67,6 +67,7 @@ [FixedPcd]
    gArmSgiTokenSpaceGuid.PcdMaxAddressBitsPerChip
    gArmSgiTokenSpaceGuid.PcdOscLpiEnable
    gArmSgiTokenSpaceGuid.PcdOscCppcEnable
+  gArmSgiTokenSpaceGuid.PcdPlatformVariant
    gArmSgiTokenSpaceGuid.PcdSp804DualTimerBaseAddress
    gArmSgiTokenSpaceGuid.PcdSp804DualTimerSize
    gArmSgiTokenSpaceGuid.PcdSp804DualTimerInterrupt
diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdN2AcpiTables.inf 
b/Platform/ARM/SgiPkg/AcpiTables/RdN2Cfg3AcpiTables.inf
similarity index 90%
copy from Platform/ARM/SgiPkg/AcpiTables/RdN2AcpiTables.inf
copy to Platform/ARM/SgiPkg/AcpiTables/RdN2Cfg3AcpiTables.inf
index 8025ef58171b..a703d5a994f7 100644
--- a/Platform/ARM/SgiPkg/AcpiTables/RdN2AcpiTables.inf
+++ b/Platform/ARM/SgiPkg/AcpiTables/RdN2Cfg3AcpiTables.inf
@@ -1,7 +1,7 @@
  ## @file
  #  ACPI table data and ASL sources required to boot the platform.
  #
-#  Copyright (c) 2020 - 2023, Arm Ltd. All rights reserved.
+#  Copyright (c) 2024, Arm Ltd. All rights reserved.
  #
  #  SPDX-License-Identifier: BSD-2-Clause-Patent
  #
@@ -9,7 +9,7 @@

  [Defines]
    INF_VERSION                    = 0x0001001A
-  BASE_NAME                      = RdN2AcpiTables
+  BASE_NAME                      = RdN2Cfg3AcpiTables
    FILE_GUID                      = c712719a-0aaf-438c-9cdd-35ab4d60207d  # 
gArmSgiAcpiTablesGuid
    MODULE_TYPE                    = USER_DEFINED
    VERSION_STRING                 = 1.0
@@ -18,16 +18,13 @@ [Sources]
    Dbg2.aslc
    Fadt.aslc
    Gtdt.aslc
-  Iort.aslc
-  Mcfg.aslc
    RdN2/Dsdt.asl
    RdN2/Madt.aslc
    RdN2/Pptt.aslc
    Spcr.aslc
-  Ssdt.asl
+  SsdtRos.asl
    SsdtEvents.asl
    SsdtIoVirtSocExp.asl
-  SsdtRos.asl
    SsdtRosVirtioP9.asl

  [Packages]
@@ -56,17 +53,17 @@ [FixedPcd]
    gArmTokenSpaceGuid.PcdPciBusMin
    gArmTokenSpaceGuid.PcdPciBusMax

-  gArmSgiTokenSpaceGuid.PcdChipCount
    gArmSgiTokenSpaceGuid.PcdGpioController0BaseAddress
    gArmSgiTokenSpaceGuid.PcdGpioController0Size
    gArmSgiTokenSpaceGuid.PcdGpioController0Interrupt
    gArmSgiTokenSpaceGuid.PcdGtFrame0Gsiv
    gArmSgiTokenSpaceGuid.PcdGtFrame1Gsiv
+  gArmSgiTokenSpaceGuid.PcdOscLpiEnable
+  gArmSgiTokenSpaceGuid.PcdOscCppcEnable
    gArmSgiTokenSpaceGuid.PcdIoVirtSocExpBlk0Base
    gArmSgiTokenSpaceGuid.PcdIoVirtSocExpBlkUartEnable
    gArmSgiTokenSpaceGuid.PcdMaxAddressBitsPerChip
-  gArmSgiTokenSpaceGuid.PcdOscLpiEnable
-  gArmSgiTokenSpaceGuid.PcdOscCppcEnable
+  gArmSgiTokenSpaceGuid.PcdPlatformVariant
    gArmSgiTokenSpaceGuid.PcdSp804DualTimerBaseAddress
    gArmSgiTokenSpaceGuid.PcdSp804DualTimerSize
    gArmSgiTokenSpaceGuid.PcdSp804DualTimerInterrupt
diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdN2/Madt.aslc 
b/Platform/ARM/SgiPkg/AcpiTables/RdN2/Madt.aslc
index cdf8b3f2e953..5fba3fa7d020 100644
--- a/Platform/ARM/SgiPkg/AcpiTables/RdN2/Madt.aslc
+++ b/Platform/ARM/SgiPkg/AcpiTables/RdN2/Madt.aslc
@@ -6,7 +6,7 @@
    CPU interface, redistributor, distributor and ITS blocks on the Rd-N2 
platform
    is included in this table.

-  Copyright (c) 2020 - 2022, Arm Limited. All rights reserved.
+  Copyright (c) 2020 - 2024, Arm Limited. All rights reserved.

    SPDX-License-Identifier: BSD-2-Clause-Patent

@@ -23,6 +23,8 @@
  #define CORE_CNT   (FixedPcdGet32 (PcdClusterCount) * \
                        FixedPcdGet32 (PcdCoreCount))

+#define ITS_CNT ((FixedPcdGet32(PcdPlatformVariant) == 3) ? 12 : 6)
+
  // Multiple APIC Description Table
  #pragma pack (1)

@@ -31,7 +33,7 @@ typedef struct {
    EFI_ACPI_6_4_GIC_STRUCTURE                            
GicInterfaces[CORE_CNT];
    EFI_ACPI_6_4_GIC_DISTRIBUTOR_STRUCTURE                GicDistributor;
    EFI_ACPI_6_4_GICR_STRUCTURE                           GicRedistributor;
-  EFI_ACPI_6_4_GIC_ITS_STRUCTURE                        GicIts[6];
+  EFI_ACPI_6_4_GIC_ITS_STRUCTURE                        GicIts[ITS_CNT];
  } EFI_ACPI_6_4_MULTIPLE_APIC_DESCRIPTION_TABLE;

  #pragma pack ()
@@ -134,6 +136,14 @@ STATIC EFI_ACPI_6_4_MULTIPLE_APIC_DESCRIPTION_TABLE Madt = 
{
      EFI_ACPI_6_4_GIC_ITS_INIT(3, 0x30100000),
      EFI_ACPI_6_4_GIC_ITS_INIT(4, 0x30140000),
      EFI_ACPI_6_4_GIC_ITS_INIT(5, 0x30180000),
+#if (FixedPcdGet32 (PcdPlatformVariant) == 3)
+    EFI_ACPI_6_4_GIC_ITS_INIT(6, 0x301C0000),
+    EFI_ACPI_6_4_GIC_ITS_INIT(7, 0x30200000),
+    EFI_ACPI_6_4_GIC_ITS_INIT(8, 0x30240000),
+    EFI_ACPI_6_4_GIC_ITS_INIT(9, 0x30280000),
+    EFI_ACPI_6_4_GIC_ITS_INIT(10, 0x302C0000),
+    EFI_ACPI_6_4_GIC_ITS_INIT(11, 0x30180000),
+#endif
    },
  };

diff --git a/Platform/ARM/SgiPkg/RdN2Cfg3/RdN2Cfg3.fdf.inc 
b/Platform/ARM/SgiPkg/RdN2Cfg3/RdN2Cfg3.fdf.inc
new file mode 100644
index 000000000000..77288ab1ad93
--- /dev/null
+++ b/Platform/ARM/SgiPkg/RdN2Cfg3/RdN2Cfg3.fdf.inc
@@ -0,0 +1,10 @@
+#
+#  Copyright (c) 2024, ARM Limited. All rights reserved.
+#
+#  SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+
+# Per-platform additional content of the DXE phase firmware volume
+
+  # ACPI support
+  INF RuleOverride=ACPITABLE 
Platform/ARM/SgiPkg/AcpiTables/RdN2Cfg3AcpiTables.inf

IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113380): https://edk2.groups.io/g/devel/message/113380
Mute This Topic: https://groups.io/mt/103544573/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to