public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-devel] [edk2-platforms][PATCH v1 0/7] Platform/Sgi: Add support for RD-N2-Cfg3 and RD-V2 platform
@ 2024-01-04 18:49 Prabin CA
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 1/7] Platform/Sgi: remove +nofp gcc option flag Prabin CA
                   ` (11 more replies)
  0 siblings, 12 replies; 14+ messages in thread
From: Prabin CA @ 2024-01-04 18:49 UTC (permalink / raw)
  To: devel; +Cc: Ard Biesheuvel, Leif Lindholm, Sami Mujawar, Prabin CA

This patch series introduces support for two reference design platforms-
RD-N2-Cfg3 and RD-V2. The RD-N2-Cfg3 FVP platform is a variant of RD-N2
platform with a different mesh size and GIC ITS count. It is based on
the Neoverse N2 CPUs and includes 16xMP1 CPUs. RD-N2-Cfg3 has 12 GIC ITS
blocks, 6 more than the other RD-N2 variants.

The Neoverse RD-V2 FVP platform includes 16xMP1 Neoverse V2 CPUs and
each CPU has 64KB of L1 instruction/data cache, 2MB of L2 cache and 32MB
of system level cache. The system architecture of the RD-V2 platform is
similar to the RD-N2 platform, except for the CPU and L2 cache size. So
existing RD-N2 SMBIOS support is extended for RD-V2 platform to reuse
rest of the RD-N2 SMBIOS configuration for the RD-V2 platform.

In addition to patches that introduce support for these two platforms,
there are three patches that update support for existing platforms. The
first patch in this series removes +nofp gcc option flag. The second
patch adds no-stack-protector flag to the gcc build option for the StMM
builds. The third patch adds VariableFlashInfoLib to the common dsc
file.

Link to github branch with the patches in this series -
https://gitlab.arm.com/infra-solutions/reference-design/platsw/edk2-platforms/-/tree/topics/rdn2cfg3_rdv2_updates

Omkar Anand Kulkarni (1):
  Platform/Sgi: remove +nofp gcc option flag

Prabin CA (3):
  Platform/Sgi: add no-stack-protector flag for StMM builds
  Platform/Sgi: Add a PCD to specify platform variant
  Platform/Sgi: Add support for RD-N2-Cfg3 platform

Pranav Madhu (2):
  Platform/Sgi: Define RD-V2 platform id values
  Platform/Sgi: Extend SMBIOS support for RD-V2 platform

Vijayenthiran Subramaniam (1):
  Platform/Sgi: Add VariableFlashInfoLib to fix missing dependency

 Platform/ARM/SgiPkg/SgiPlatform.dec                                           |  5 +-
 Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc                                     |  3 +-
 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/Include/SgiPlatform.h                                     |  7 ++-
 Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c        |  7 ++-
 Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c     |  9 ++-
 Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c         | 20 ++++++-
 Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c                         |  8 ++-
 Platform/ARM/SgiPkg/AcpiTables/RdN2/Madt.aslc                                 | 14 ++++-
 Platform/ARM/SgiPkg/RdN2Cfg3/RdN2Cfg3.fdf.inc                                 | 10 ++++
 12 files changed, 136 insertions(+), 23 deletions(-)
 create mode 100644 Platform/ARM/SgiPkg/RdN2Cfg3/RdN2Cfg3.dsc
 copy Platform/ARM/SgiPkg/AcpiTables/{RdN2AcpiTables.inf => RdN2Cfg3AcpiTables.inf} (90%)
 create mode 100644 Platform/ARM/SgiPkg/RdN2Cfg3/RdN2Cfg3.fdf.inc

-- 
2.34.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113187): https://edk2.groups.io/g/devel/message/113187
Mute This Topic: https://groups.io/mt/103528419/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 14+ messages in thread

* [edk2-devel] [edk2-platforms][PATCH v1 1/7] Platform/Sgi: remove +nofp gcc option flag
  2024-01-04 18:49 [edk2-devel] [edk2-platforms][PATCH v1 0/7] Platform/Sgi: Add support for RD-N2-Cfg3 and RD-V2 platform Prabin CA
@ 2024-01-04 18:49 ` Prabin CA
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 2/7] Platform/Sgi: add no-stack-protector flag for StMM builds Prabin CA
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Prabin CA @ 2024-01-04 18:49 UTC (permalink / raw)
  To: devel; +Cc: Ard Biesheuvel, Leif Lindholm, Sami Mujawar, Prabin CA

From: Omkar Anand Kulkarni <omkar.kulkarni@arm.com>

The software executing at a higher privileged level on the reference
design platforms have been updated to allow software executing at EL1
and EL0 to access the Advanced SIMD and floating-point registers (FPEN
field of CPACR_EL1 system register is programmed to allow access). So,
remove the use of +nofp gcc build option flag.

Signed-off-by: Omkar Anand Kulkarni <omkar.kulkarni@arm.com>
Signed-off-by: Prabin CA <prabin.ca@arm.com>
---
 Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc b/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc
index ae0ff7247a6a..ab54b3b25f4c 100644
--- a/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc
+++ b/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc
@@ -145,5 +145,5 @@ [Components.AARCH64]
 #
 ###################################################################################################
 [BuildOptions.AARCH64]
-  GCC:*_*_*_CC_FLAGS = -mstrict-align -march=armv8-a+nofp -D DISABLE_NEW_DEPRECATED_INTERFACES
+  GCC:*_*_*_CC_FLAGS = -mstrict-align -march=armv8-a -D DISABLE_NEW_DEPRECATED_INTERFACES
   GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
-- 
2.34.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113188): https://edk2.groups.io/g/devel/message/113188
Mute This Topic: https://groups.io/mt/103528420/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [edk2-devel] [edk2-platforms][PATCH v1 2/7] Platform/Sgi: add no-stack-protector flag for StMM builds
  2024-01-04 18:49 [edk2-devel] [edk2-platforms][PATCH v1 0/7] Platform/Sgi: Add support for RD-N2-Cfg3 and RD-V2 platform Prabin CA
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 1/7] Platform/Sgi: remove +nofp gcc option flag Prabin CA
@ 2024-01-04 18:49 ` Prabin CA
  2024-01-04 18:53   ` Rebecca Cran via groups.io
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 3/7] Platform/Sgi: Add VariableFlashInfoLib to fix missing dependency Prabin CA
                   ` (9 subsequent siblings)
  11 siblings, 1 reply; 14+ messages in thread
From: Prabin CA @ 2024-01-04 18:49 UTC (permalink / raw)
  To: devel; +Cc: Ard Biesheuvel, Leif Lindholm, Sami Mujawar, Prabin CA

Add the no-stack-protector compiler flag to allow StandaloneMM builds
on both AArch64 and x86 host. Without this flag, the link stage fails
with the following errors on multiple files when built with gcc
(Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0:

undefined reference to `__stack_chk_guard'
undefined reference to `__stack_chk_fail'

Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
Signed-off-by: Prabin CA <prabin.ca@arm.com>
---
 Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc b/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc
index ab54b3b25f4c..2a8c678c0816 100644
--- a/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc
+++ b/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc
@@ -145,5 +145,5 @@ [Components.AARCH64]
 #
 ###################################################################################################
 [BuildOptions.AARCH64]
-  GCC:*_*_*_CC_FLAGS = -mstrict-align -march=armv8-a -D DISABLE_NEW_DEPRECATED_INTERFACES
+  GCC:*_*_*_CC_FLAGS = -mstrict-align -march=armv8-a -fno-stack-protector -D DISABLE_NEW_DEPRECATED_INTERFACES
   GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
-- 
2.34.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113189): https://edk2.groups.io/g/devel/message/113189
Mute This Topic: https://groups.io/mt/103528421/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [edk2-devel] [edk2-platforms][PATCH v1 3/7] Platform/Sgi: Add VariableFlashInfoLib to fix missing dependency
  2024-01-04 18:49 [edk2-devel] [edk2-platforms][PATCH v1 0/7] Platform/Sgi: Add support for RD-N2-Cfg3 and RD-V2 platform Prabin CA
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 1/7] Platform/Sgi: remove +nofp gcc option flag Prabin CA
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 2/7] Platform/Sgi: add no-stack-protector flag for StMM builds Prabin CA
@ 2024-01-04 18:49 ` Prabin CA
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 4/7] Platform/Sgi: Add a PCD to specify platform variant Prabin CA
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Prabin CA @ 2024-01-04 18:49 UTC (permalink / raw)
  To: devel; +Cc: Ard Biesheuvel, Leif Lindholm, Sami Mujawar, Prabin CA

From: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3479

A recent change in MdeModulePkg [1] introduced VariableFlashInfoLib as a
dependency to support dynamic variable flash information. Add an
instance for the library class VariableFlashInfoLib in
SgiPlatformMm.dsc.inc to resolve this dependency.

[1]: https://github.com/tianocore/edk2/commit/8db39c60cdf35e0a53ccdbccf7e152ab41f54f4c

Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
Signed-off-by: Prabin CA <prabin.ca@arm.com>
---
 Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc b/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc
index 2a8c678c0816..5cc33e9f4af8 100644
--- a/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc
+++ b/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc
@@ -70,6 +70,7 @@ [LibraryClasses.common.MM_STANDALONE]
   SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
   TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
   VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf
+  VariableFlashInfoLib|MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.inf
   SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf
 !endif
 
-- 
2.34.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113190): https://edk2.groups.io/g/devel/message/113190
Mute This Topic: https://groups.io/mt/103528424/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [edk2-devel] [edk2-platforms][PATCH v1 4/7] Platform/Sgi: Add a PCD to specify platform variant
  2024-01-04 18:49 [edk2-devel] [edk2-platforms][PATCH v1 0/7] Platform/Sgi: Add support for RD-N2-Cfg3 and RD-V2 platform Prabin CA
                   ` (2 preceding siblings ...)
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 3/7] Platform/Sgi: Add VariableFlashInfoLib to fix missing dependency Prabin CA
@ 2024-01-04 18:49 ` Prabin CA
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 4/7] Platform/Sgi: Define RD-V2 platform id values Prabin CA
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Prabin CA @ 2024-01-04 18:49 UTC (permalink / raw)
  To: devel; +Cc: Ard Biesheuvel, Leif Lindholm, Sami Mujawar, Prabin CA

A new PCD named PcdPlatformVariant is introduced to specify the variant
number of a platform. This PCD can be used to select platform variant
specific configurations. The default value of this PCD is 0 which
selects the base variant.

Signed-off-by: Prabin CA <prabin.ca@arm.com>
---
 Platform/ARM/SgiPkg/SgiPlatform.dec | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/Platform/ARM/SgiPkg/SgiPlatform.dec b/Platform/ARM/SgiPkg/SgiPlatform.dec
index 1613cc01981e..103dff8471a7 100644
--- a/Platform/ARM/SgiPkg/SgiPlatform.dec
+++ b/Platform/ARM/SgiPkg/SgiPlatform.dec
@@ -1,5 +1,5 @@
 #
-#  Copyright (c) 2018 - 2023, Arm Limited. All rights reserved.
+#  Copyright (c) 2018 - 2024, Arm Limited. All rights reserved.
 #
 #  SPDX-License-Identifier: BSD-2-Clause-Patent
 #
@@ -51,8 +51,9 @@ [PcdsFixedAtBuild]
   gArmSgiTokenSpaceGuid.PcdVirtioP9Size|0x00000000|UINT32|0x00000029
   gArmSgiTokenSpaceGuid.PcdVirtioP9Interrupt|0x00000000|UINT32|0x0000002A
 
-  # Chip count on the platform
+  # Chip count on the platform and platform variant
   gArmSgiTokenSpaceGuid.PcdChipCount|1|UINT32|0x0000000B
+  gArmSgiTokenSpaceGuid.PcdPlatformVariant|0|UINT32|0x0000002D
 
   # GIC
   gArmSgiTokenSpaceGuid.PcdGicSize|0|UINT64|0x0000000A
-- 
2.34.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113191): https://edk2.groups.io/g/devel/message/113191
Mute This Topic: https://groups.io/mt/103528425/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [edk2-devel] [edk2-platforms][PATCH v1 4/7] Platform/Sgi: Define RD-V2 platform id values
  2024-01-04 18:49 [edk2-devel] [edk2-platforms][PATCH v1 0/7] Platform/Sgi: Add support for RD-N2-Cfg3 and RD-V2 platform Prabin CA
                   ` (3 preceding siblings ...)
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 4/7] Platform/Sgi: Add a PCD to specify platform variant Prabin CA
@ 2024-01-04 18:49 ` Prabin CA
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 5/7] Platform/Sgi: Add support for RD-N2-Cfg3 platform Prabin CA
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Prabin CA @ 2024-01-04 18:49 UTC (permalink / raw)
  To: devel; +Cc: Ard Biesheuvel, Leif Lindholm, Sami Mujawar, Prabin CA

From: Pranav Madhu <pranav.madhu@arm.com>

Add RD-V2 platform identification values including the part number
and configuration number. This information will be used in populating
the SMBIOS tables.

Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
Signed-off-by: Prabin CA <prabin.ca@arm.com>
---
 Platform/ARM/SgiPkg/Include/SgiPlatform.h             | 7 ++++++-
 Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c | 8 +++++++-
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/Platform/ARM/SgiPkg/Include/SgiPlatform.h b/Platform/ARM/SgiPkg/Include/SgiPlatform.h
index e83853664c4c..6fa39d407bc9 100644
--- a/Platform/ARM/SgiPkg/Include/SgiPlatform.h
+++ b/Platform/ARM/SgiPkg/Include/SgiPlatform.h
@@ -1,6 +1,6 @@
 /** @file
 *
-*  Copyright (c) 2018 - 2022, Arm Limited. All rights reserved.
+*  Copyright (c) 2018 - 2024, Arm Limited. All rights reserved.
 *
 *  SPDX-License-Identifier: BSD-2-Clause-Patent
 *
@@ -47,6 +47,10 @@
 #define RD_N2_PART_NUM                            0x7B7
 #define RD_N2_CONF_ID                             0x1
 
+// RD-V2 Platform Identification values
+#define RD_V2_PART_NUM                            0x7F2
+#define RD_V2_CONF_ID                             0x1
+
 #define SGI_CONFIG_MASK                           0x0F
 #define SGI_CONFIG_SHIFT                          0x1C
 #define SGI_PART_NUM_MASK                         0xFFF
@@ -85,6 +89,7 @@ typedef enum {
   RdN2,
   RdN2Cfg1,
   RdN2Cfg2,
+  RdV2,
 } ARM_RD_PRODUCT_ID;
 
 // Arm ProductId look-up table
diff --git a/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c b/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c
index fa006320025b..14b06796ae9c 100644
--- a/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c
+++ b/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c
@@ -1,6 +1,6 @@
 /** @file
 *
-*  Copyright (c) 2018 - 2022, Arm Limited. All rights reserved.
+*  Copyright (c) 2018 - 2024, Arm Limited. All rights reserved.
 *
 *  SPDX-License-Identifier: BSD-2-Clause-Patent
 *
@@ -79,6 +79,12 @@ STATIC CONST SGI_PRODUCT_ID_LOOKUP SgiProductIdLookup[] = {
     RD_N2_CONF_ID,
     1
   },
+  {
+    RdV2,
+    RD_V2_PART_NUM,
+    RD_V2_CONF_ID,
+    0
+  },
 };
 
 EFI_BOOT_MODE
-- 
2.34.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113192): https://edk2.groups.io/g/devel/message/113192
Mute This Topic: https://groups.io/mt/103528429/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [edk2-devel] [edk2-platforms][PATCH v1 5/7] Platform/Sgi: Add support for RD-N2-Cfg3 platform
  2024-01-04 18:49 [edk2-devel] [edk2-platforms][PATCH v1 0/7] Platform/Sgi: Add support for RD-N2-Cfg3 and RD-V2 platform Prabin CA
                   ` (4 preceding siblings ...)
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 4/7] Platform/Sgi: Define RD-V2 platform id values Prabin CA
@ 2024-01-04 18:49 ` Prabin CA
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 5/7] Platform/Sgi: Extend SMBIOS support for RD-V2 platform Prabin CA
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Prabin CA @ 2024-01-04 18:49 UTC (permalink / raw)
  To: devel; +Cc: Ard Biesheuvel, Leif Lindholm, Sami Mujawar, Prabin CA

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.subramaniam@arm.com>
Signed-off-by: Prabin CA <prabin.ca@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
-- 
2.34.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113193): https://edk2.groups.io/g/devel/message/113193
Mute This Topic: https://groups.io/mt/103528432/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [edk2-devel] [edk2-platforms][PATCH v1 5/7] Platform/Sgi: Extend SMBIOS support for RD-V2 platform
  2024-01-04 18:49 [edk2-devel] [edk2-platforms][PATCH v1 0/7] Platform/Sgi: Add support for RD-N2-Cfg3 and RD-V2 platform Prabin CA
                   ` (5 preceding siblings ...)
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 5/7] Platform/Sgi: Add support for RD-N2-Cfg3 platform Prabin CA
@ 2024-01-04 18:49 ` Prabin CA
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 6/7] Platform/Sgi: Add a PCD to specify platform variant Prabin CA
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Prabin CA @ 2024-01-04 18:49 UTC (permalink / raw)
  To: devel; +Cc: Ard Biesheuvel, Leif Lindholm, Sami Mujawar, Prabin CA

From: Pranav Madhu <pranav.madhu@arm.com>

The Neoverse RD-V2 FVP platform includes 16 CPUs and each CPU has 64KB
of L1 instruction/data cache, 2MB of L2 cache and 32MB of system level
cache. Extend the SMBIOS support for RD-V2 platform with this
configuration and reuse rest of the RD-N2 SMBIOS configuration for the
RD-V2 platform.

Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
Signed-off-by: Prabin CA <prabin.ca@arm.com>
---
 Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c    |  7 +++++--
 Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c |  9 ++++++---
 Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c     | 20 +++++++++++++++++++-
 3 files changed, 30 insertions(+), 6 deletions(-)

diff --git a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c
index b7e2238fb39c..edf2a5f63c63 100644
--- a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c
+++ b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c
@@ -5,7 +5,7 @@
   Reference Design platforms. Type 1 table defines attributes of the
   overall system such as manufacturer, product name, UUID etc.
 
-  Copyright (c) 2021 - 2022, Arm Limited. All rights reserved.
+  Copyright (c) 2021 - 2024, Arm Limited. All rights reserved.
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
   @par Specification Reference:
@@ -33,7 +33,8 @@
   "RdV1Mc\0"                                            \
   "RdN2\0"                                              \
   "RdN2Cfg1\0"                                          \
-  "RdN2Cfg2\0"
+  "RdN2Cfg2\0"                                          \
+  "RdV2\0"
 
 typedef enum {
   ManufacturerName = 1,
@@ -71,6 +72,8 @@ STATIC GUID mSmbiosUid[] = {
   {0xa4941d3d, 0xfac3, 0x4ace, {0x9a, 0x7e, 0xce, 0x26, 0x76, 0x64, 0x5e, 0xda}},
   /* Rd-N2-Cfg2    */
   {0xd2946d07, 0x8057, 0x4c26, {0xbf, 0x53, 0x78, 0xa6, 0x5b, 0xe1, 0xc1, 0x60}},
+  /* Rd-V2         */
+  {0x3b1180a3, 0x0744, 0x4194, {0xae, 0x2e, 0xed, 0xa5, 0xbc, 0x2e, 0x43, 0x45}},
 };
 
 /* System information */
diff --git a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c
index b59172cf1cb9..ee269f707714 100644
--- a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c
+++ b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c
@@ -6,7 +6,7 @@
   family, processor id, maximum operating frequency, and other information
   related to the processor.
 
-  Copyright (c) 2021 - 2022, Arm Limited. All rights reserved.
+  Copyright (c) 2021 - 2024, Arm Limited. All rights reserved.
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
   @par Specification Reference:
@@ -27,7 +27,7 @@
 #define SOCKET_TYPE_BASE        3
 #define SOCKET_TYPE_NUM         1
 #define PROCESSOR_VERSION_BASE  (SOCKET_TYPE_BASE + SOCKET_TYPE_NUM)
-#define PROCESSOR_VERSION_NUM   10
+#define PROCESSOR_VERSION_NUM   11
 #define SERIAL_NUMBER_BASE      (PROCESSOR_VERSION_BASE + PROCESSOR_VERSION_NUM)
 #define TYPE4_STRINGS                                   \
   "0x000\0"                     /* Part Number */       \
@@ -43,6 +43,7 @@
   "Neoverse-N2\0"                                       \
   "Neoverse-N2\0"                                       \
   "Neoverse-N2\0"                                       \
+  "Neoverse-V2\0"                                       \
   "000-0\0"                     /* Serial number */     \
   "783-3\0"                                             \
   "786-1\0"                                             \
@@ -52,7 +53,8 @@
   "78A-2\0"                                             \
   "7B7-1\0"                                             \
   "7B6-1\0"                                             \
-  "7B7-1\0"
+  "7B7-1\0"                                             \
+  "7F2-1\0"
 
 typedef enum {
   PartNumber = 1,
@@ -178,6 +180,7 @@ InstallType4ProcessorInformation (
     break;
   case RdN2:
   case RdN2Cfg1:
+  case RdV2:
     mArmRdSmbiosType4.Base.CoreCount = CoreCount;
     mArmRdSmbiosType4.Base.EnabledCoreCount = CoreCount;
     mArmRdSmbiosType4.Base.ThreadCount = CoreCount;
diff --git a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c
index b71ce721e2e8..4af72919a3f1 100644
--- a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c
+++ b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c
@@ -6,7 +6,7 @@
   implemented, cache configuration, ways of associativity and other
   information related to cache memory installed.
 
-  Copyright (c) 2021 - 2022, Arm Limited. All rights reserved.
+  Copyright (c) 2021 - 2024, Arm Limited. All rights reserved.
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
   @par Specification Reference:
@@ -334,6 +334,24 @@ InstallType7CacheInformation (
     mArmRdSmbiosType7[4].Base.InstalledSize2 = 8192;     // 8MB SLC
     mArmRdSmbiosType7[4].Base.Associativity = CacheAssociativity16Way;
     break;
+  case RdV2:
+    /* L1 instruction cache */
+    mArmRdSmbiosType7[0].Base.MaximumCacheSize2 = 64;    // 64KB
+    mArmRdSmbiosType7[0].Base.InstalledSize2 = 64;       // 64KB
+    mArmRdSmbiosType7[0].Base.Associativity = CacheAssociativity4Way;
+    /* L1 data cache */
+    mArmRdSmbiosType7[1].Base.MaximumCacheSize2 = 64;    // 64KB
+    mArmRdSmbiosType7[1].Base.InstalledSize2 = 64;       // 64KB
+    mArmRdSmbiosType7[1].Base.Associativity = CacheAssociativity4Way;
+    /* L2 cache */
+    mArmRdSmbiosType7[2].Base.MaximumCacheSize2 = 2048;  // 2MB
+    mArmRdSmbiosType7[2].Base.InstalledSize2 = 2048;     // 2MB
+    mArmRdSmbiosType7[2].Base.Associativity = CacheAssociativity8Way;
+    /* System level cache */
+    mArmRdSmbiosType7[4].Base.MaximumCacheSize2 = 32768; // 32MB SLC
+    mArmRdSmbiosType7[4].Base.InstalledSize2 = 32768;    // 32MB SLC
+    mArmRdSmbiosType7[4].Base.Associativity = CacheAssociativity16Way;
+    break;
   }
 
   /* Install valid cache information tables */
-- 
2.34.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113194): https://edk2.groups.io/g/devel/message/113194
Mute This Topic: https://groups.io/mt/103528435/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [edk2-devel] [edk2-platforms][PATCH v1 6/7] Platform/Sgi: Add a PCD to specify platform variant
  2024-01-04 18:49 [edk2-devel] [edk2-platforms][PATCH v1 0/7] Platform/Sgi: Add support for RD-N2-Cfg3 and RD-V2 platform Prabin CA
                   ` (6 preceding siblings ...)
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 5/7] Platform/Sgi: Extend SMBIOS support for RD-V2 platform Prabin CA
@ 2024-01-04 18:49 ` Prabin CA
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 6/7] Platform/Sgi: Define RD-V2 platform id values Prabin CA
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Prabin CA @ 2024-01-04 18:49 UTC (permalink / raw)
  To: devel; +Cc: Ard Biesheuvel, Leif Lindholm, Sami Mujawar, Prabin CA

A new PCD named PcdPlatformVariant is introduced to specify the variant
number of a platform. This PCD can be used to select platform variant
specific configurations. The default value of this PCD is 0 which
selects the base variant.

Signed-off-by: Prabin CA <prabin.ca@arm.com>
---
 Platform/ARM/SgiPkg/SgiPlatform.dec | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/Platform/ARM/SgiPkg/SgiPlatform.dec b/Platform/ARM/SgiPkg/SgiPlatform.dec
index 1613cc01981e..103dff8471a7 100644
--- a/Platform/ARM/SgiPkg/SgiPlatform.dec
+++ b/Platform/ARM/SgiPkg/SgiPlatform.dec
@@ -1,5 +1,5 @@
 #
-#  Copyright (c) 2018 - 2023, Arm Limited. All rights reserved.
+#  Copyright (c) 2018 - 2024, Arm Limited. All rights reserved.
 #
 #  SPDX-License-Identifier: BSD-2-Clause-Patent
 #
@@ -51,8 +51,9 @@ [PcdsFixedAtBuild]
   gArmSgiTokenSpaceGuid.PcdVirtioP9Size|0x00000000|UINT32|0x00000029
   gArmSgiTokenSpaceGuid.PcdVirtioP9Interrupt|0x00000000|UINT32|0x0000002A
 
-  # Chip count on the platform
+  # Chip count on the platform and platform variant
   gArmSgiTokenSpaceGuid.PcdChipCount|1|UINT32|0x0000000B
+  gArmSgiTokenSpaceGuid.PcdPlatformVariant|0|UINT32|0x0000002D
 
   # GIC
   gArmSgiTokenSpaceGuid.PcdGicSize|0|UINT64|0x0000000A
-- 
2.34.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113195): https://edk2.groups.io/g/devel/message/113195
Mute This Topic: https://groups.io/mt/103528436/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [edk2-devel] [edk2-platforms][PATCH v1 6/7] Platform/Sgi: Define RD-V2 platform id values
  2024-01-04 18:49 [edk2-devel] [edk2-platforms][PATCH v1 0/7] Platform/Sgi: Add support for RD-N2-Cfg3 and RD-V2 platform Prabin CA
                   ` (7 preceding siblings ...)
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 6/7] Platform/Sgi: Add a PCD to specify platform variant Prabin CA
@ 2024-01-04 18:49 ` Prabin CA
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 7/7] Platform/Sgi: Add support for RD-N2-Cfg3 platform Prabin CA
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: Prabin CA @ 2024-01-04 18:49 UTC (permalink / raw)
  To: devel; +Cc: Ard Biesheuvel, Leif Lindholm, Sami Mujawar, Prabin CA

From: Pranav Madhu <pranav.madhu@arm.com>

Add RD-V2 platform identification values including the part number
and configuration number. This information will be used in populating
the SMBIOS tables.

Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
Signed-off-by: Prabin CA <prabin.ca@arm.com>
---
 Platform/ARM/SgiPkg/Include/SgiPlatform.h             | 7 ++++++-
 Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c | 8 +++++++-
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/Platform/ARM/SgiPkg/Include/SgiPlatform.h b/Platform/ARM/SgiPkg/Include/SgiPlatform.h
index e83853664c4c..6fa39d407bc9 100644
--- a/Platform/ARM/SgiPkg/Include/SgiPlatform.h
+++ b/Platform/ARM/SgiPkg/Include/SgiPlatform.h
@@ -1,6 +1,6 @@
 /** @file
 *
-*  Copyright (c) 2018 - 2022, Arm Limited. All rights reserved.
+*  Copyright (c) 2018 - 2024, Arm Limited. All rights reserved.
 *
 *  SPDX-License-Identifier: BSD-2-Clause-Patent
 *
@@ -47,6 +47,10 @@
 #define RD_N2_PART_NUM                            0x7B7
 #define RD_N2_CONF_ID                             0x1
 
+// RD-V2 Platform Identification values
+#define RD_V2_PART_NUM                            0x7F2
+#define RD_V2_CONF_ID                             0x1
+
 #define SGI_CONFIG_MASK                           0x0F
 #define SGI_CONFIG_SHIFT                          0x1C
 #define SGI_PART_NUM_MASK                         0xFFF
@@ -85,6 +89,7 @@ typedef enum {
   RdN2,
   RdN2Cfg1,
   RdN2Cfg2,
+  RdV2,
 } ARM_RD_PRODUCT_ID;
 
 // Arm ProductId look-up table
diff --git a/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c b/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c
index fa006320025b..14b06796ae9c 100644
--- a/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c
+++ b/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c
@@ -1,6 +1,6 @@
 /** @file
 *
-*  Copyright (c) 2018 - 2022, Arm Limited. All rights reserved.
+*  Copyright (c) 2018 - 2024, Arm Limited. All rights reserved.
 *
 *  SPDX-License-Identifier: BSD-2-Clause-Patent
 *
@@ -79,6 +79,12 @@ STATIC CONST SGI_PRODUCT_ID_LOOKUP SgiProductIdLookup[] = {
     RD_N2_CONF_ID,
     1
   },
+  {
+    RdV2,
+    RD_V2_PART_NUM,
+    RD_V2_CONF_ID,
+    0
+  },
 };
 
 EFI_BOOT_MODE
-- 
2.34.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113196): https://edk2.groups.io/g/devel/message/113196
Mute This Topic: https://groups.io/mt/103528437/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [edk2-devel] [edk2-platforms][PATCH v1 7/7] Platform/Sgi: Add support for RD-N2-Cfg3 platform
  2024-01-04 18:49 [edk2-devel] [edk2-platforms][PATCH v1 0/7] Platform/Sgi: Add support for RD-N2-Cfg3 and RD-V2 platform Prabin CA
                   ` (8 preceding siblings ...)
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 6/7] Platform/Sgi: Define RD-V2 platform id values Prabin CA
@ 2024-01-04 18:49 ` Prabin CA
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 7/7] Platform/Sgi: Extend SMBIOS support for RD-V2 platform Prabin CA
  2024-01-05  8:58 ` [edk2-devel] [edk2-platforms][PATCH v1 0/7] Platform/Sgi: Add support for RD-N2-Cfg3 and " Sami Mujawar
  11 siblings, 0 replies; 14+ messages in thread
From: Prabin CA @ 2024-01-04 18:49 UTC (permalink / raw)
  To: devel; +Cc: Ard Biesheuvel, Leif Lindholm, Sami Mujawar, Prabin CA

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.subramaniam@arm.com>
Signed-off-by: Prabin CA <prabin.ca@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
-- 
2.34.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113197): https://edk2.groups.io/g/devel/message/113197
Mute This Topic: https://groups.io/mt/103528438/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [edk2-devel] [edk2-platforms][PATCH v1 7/7] Platform/Sgi: Extend SMBIOS support for RD-V2 platform
  2024-01-04 18:49 [edk2-devel] [edk2-platforms][PATCH v1 0/7] Platform/Sgi: Add support for RD-N2-Cfg3 and RD-V2 platform Prabin CA
                   ` (9 preceding siblings ...)
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 7/7] Platform/Sgi: Add support for RD-N2-Cfg3 platform Prabin CA
@ 2024-01-04 18:49 ` Prabin CA
  2024-01-05  8:58 ` [edk2-devel] [edk2-platforms][PATCH v1 0/7] Platform/Sgi: Add support for RD-N2-Cfg3 and " Sami Mujawar
  11 siblings, 0 replies; 14+ messages in thread
From: Prabin CA @ 2024-01-04 18:49 UTC (permalink / raw)
  To: devel; +Cc: Ard Biesheuvel, Leif Lindholm, Sami Mujawar, Prabin CA

From: Pranav Madhu <pranav.madhu@arm.com>

The Neoverse RD-V2 FVP platform includes 16 CPUs and each CPU has 64KB
of L1 instruction/data cache, 2MB of L2 cache and 32MB of system level
cache. Extend the SMBIOS support for RD-V2 platform with this
configuration and reuse rest of the RD-N2 SMBIOS configuration for the
RD-V2 platform.

Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
Signed-off-by: Prabin CA <prabin.ca@arm.com>
---
 Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c    |  7 +++++--
 Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c |  9 ++++++---
 Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c     | 20 +++++++++++++++++++-
 3 files changed, 30 insertions(+), 6 deletions(-)

diff --git a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c
index b7e2238fb39c..edf2a5f63c63 100644
--- a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c
+++ b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c
@@ -5,7 +5,7 @@
   Reference Design platforms. Type 1 table defines attributes of the
   overall system such as manufacturer, product name, UUID etc.
 
-  Copyright (c) 2021 - 2022, Arm Limited. All rights reserved.
+  Copyright (c) 2021 - 2024, Arm Limited. All rights reserved.
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
   @par Specification Reference:
@@ -33,7 +33,8 @@
   "RdV1Mc\0"                                            \
   "RdN2\0"                                              \
   "RdN2Cfg1\0"                                          \
-  "RdN2Cfg2\0"
+  "RdN2Cfg2\0"                                          \
+  "RdV2\0"
 
 typedef enum {
   ManufacturerName = 1,
@@ -71,6 +72,8 @@ STATIC GUID mSmbiosUid[] = {
   {0xa4941d3d, 0xfac3, 0x4ace, {0x9a, 0x7e, 0xce, 0x26, 0x76, 0x64, 0x5e, 0xda}},
   /* Rd-N2-Cfg2    */
   {0xd2946d07, 0x8057, 0x4c26, {0xbf, 0x53, 0x78, 0xa6, 0x5b, 0xe1, 0xc1, 0x60}},
+  /* Rd-V2         */
+  {0x3b1180a3, 0x0744, 0x4194, {0xae, 0x2e, 0xed, 0xa5, 0xbc, 0x2e, 0x43, 0x45}},
 };
 
 /* System information */
diff --git a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c
index b59172cf1cb9..ee269f707714 100644
--- a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c
+++ b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c
@@ -6,7 +6,7 @@
   family, processor id, maximum operating frequency, and other information
   related to the processor.
 
-  Copyright (c) 2021 - 2022, Arm Limited. All rights reserved.
+  Copyright (c) 2021 - 2024, Arm Limited. All rights reserved.
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
   @par Specification Reference:
@@ -27,7 +27,7 @@
 #define SOCKET_TYPE_BASE        3
 #define SOCKET_TYPE_NUM         1
 #define PROCESSOR_VERSION_BASE  (SOCKET_TYPE_BASE + SOCKET_TYPE_NUM)
-#define PROCESSOR_VERSION_NUM   10
+#define PROCESSOR_VERSION_NUM   11
 #define SERIAL_NUMBER_BASE      (PROCESSOR_VERSION_BASE + PROCESSOR_VERSION_NUM)
 #define TYPE4_STRINGS                                   \
   "0x000\0"                     /* Part Number */       \
@@ -43,6 +43,7 @@
   "Neoverse-N2\0"                                       \
   "Neoverse-N2\0"                                       \
   "Neoverse-N2\0"                                       \
+  "Neoverse-V2\0"                                       \
   "000-0\0"                     /* Serial number */     \
   "783-3\0"                                             \
   "786-1\0"                                             \
@@ -52,7 +53,8 @@
   "78A-2\0"                                             \
   "7B7-1\0"                                             \
   "7B6-1\0"                                             \
-  "7B7-1\0"
+  "7B7-1\0"                                             \
+  "7F2-1\0"
 
 typedef enum {
   PartNumber = 1,
@@ -178,6 +180,7 @@ InstallType4ProcessorInformation (
     break;
   case RdN2:
   case RdN2Cfg1:
+  case RdV2:
     mArmRdSmbiosType4.Base.CoreCount = CoreCount;
     mArmRdSmbiosType4.Base.EnabledCoreCount = CoreCount;
     mArmRdSmbiosType4.Base.ThreadCount = CoreCount;
diff --git a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c
index b71ce721e2e8..4af72919a3f1 100644
--- a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c
+++ b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c
@@ -6,7 +6,7 @@
   implemented, cache configuration, ways of associativity and other
   information related to cache memory installed.
 
-  Copyright (c) 2021 - 2022, Arm Limited. All rights reserved.
+  Copyright (c) 2021 - 2024, Arm Limited. All rights reserved.
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
   @par Specification Reference:
@@ -334,6 +334,24 @@ InstallType7CacheInformation (
     mArmRdSmbiosType7[4].Base.InstalledSize2 = 8192;     // 8MB SLC
     mArmRdSmbiosType7[4].Base.Associativity = CacheAssociativity16Way;
     break;
+  case RdV2:
+    /* L1 instruction cache */
+    mArmRdSmbiosType7[0].Base.MaximumCacheSize2 = 64;    // 64KB
+    mArmRdSmbiosType7[0].Base.InstalledSize2 = 64;       // 64KB
+    mArmRdSmbiosType7[0].Base.Associativity = CacheAssociativity4Way;
+    /* L1 data cache */
+    mArmRdSmbiosType7[1].Base.MaximumCacheSize2 = 64;    // 64KB
+    mArmRdSmbiosType7[1].Base.InstalledSize2 = 64;       // 64KB
+    mArmRdSmbiosType7[1].Base.Associativity = CacheAssociativity4Way;
+    /* L2 cache */
+    mArmRdSmbiosType7[2].Base.MaximumCacheSize2 = 2048;  // 2MB
+    mArmRdSmbiosType7[2].Base.InstalledSize2 = 2048;     // 2MB
+    mArmRdSmbiosType7[2].Base.Associativity = CacheAssociativity8Way;
+    /* System level cache */
+    mArmRdSmbiosType7[4].Base.MaximumCacheSize2 = 32768; // 32MB SLC
+    mArmRdSmbiosType7[4].Base.InstalledSize2 = 32768;    // 32MB SLC
+    mArmRdSmbiosType7[4].Base.Associativity = CacheAssociativity16Way;
+    break;
   }
 
   /* Install valid cache information tables */
-- 
2.34.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113198): https://edk2.groups.io/g/devel/message/113198
Mute This Topic: https://groups.io/mt/103528439/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [edk2-devel] [edk2-platforms][PATCH v1 2/7] Platform/Sgi: add no-stack-protector flag for StMM builds
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 2/7] Platform/Sgi: add no-stack-protector flag for StMM builds Prabin CA
@ 2024-01-04 18:53   ` Rebecca Cran via groups.io
  0 siblings, 0 replies; 14+ messages in thread
From: Rebecca Cran via groups.io @ 2024-01-04 18:53 UTC (permalink / raw)
  To: devel, prabin.ca; +Cc: Ard Biesheuvel, Leif Lindholm, Sami Mujawar

Wouldn't it be better to add the Stack Protector library 
(MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf) instead of 
disabling it?

-- 
Rebecca Cran


On 1/4/2024 11:49 AM, Prabin CA via groups.io wrote:
> Add the no-stack-protector compiler flag to allow StandaloneMM builds
> on both AArch64 and x86 host. Without this flag, the link stage fails
> with the following errors on multiple files when built with gcc
> (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0:
> 
> undefined reference to `__stack_chk_guard'
> undefined reference to `__stack_chk_fail'
> 
> Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
> Signed-off-by: Prabin CA <prabin.ca@arm.com>
> ---
>   Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc b/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc
> index ab54b3b25f4c..2a8c678c0816 100644
> --- a/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc
> +++ b/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc
> @@ -145,5 +145,5 @@ [Components.AARCH64]
>   #
>   ###################################################################################################
>   [BuildOptions.AARCH64]
> -  GCC:*_*_*_CC_FLAGS = -mstrict-align -march=armv8-a -D DISABLE_NEW_DEPRECATED_INTERFACES
> +  GCC:*_*_*_CC_FLAGS = -mstrict-align -march=armv8-a -fno-stack-protector -D DISABLE_NEW_DEPRECATED_INTERFACES
>     GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113199): https://edk2.groups.io/g/devel/message/113199
Mute This Topic: https://groups.io/mt/103528421/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [edk2-devel] [edk2-platforms][PATCH v1 0/7] Platform/Sgi: Add support for RD-N2-Cfg3 and RD-V2 platform
  2024-01-04 18:49 [edk2-devel] [edk2-platforms][PATCH v1 0/7] Platform/Sgi: Add support for RD-N2-Cfg3 and RD-V2 platform Prabin CA
                   ` (10 preceding siblings ...)
  2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 7/7] Platform/Sgi: Extend SMBIOS support for RD-V2 platform Prabin CA
@ 2024-01-05  8:58 ` Sami Mujawar
  11 siblings, 0 replies; 14+ messages in thread
From: Sami Mujawar @ 2024-01-05  8:58 UTC (permalink / raw)
  To: Prabin CA, devel@edk2.groups.io; +Cc: Ard Biesheuvel, Leif Lindholm, nd

Hi Prabin,

There are 2 patches each in this series numbered 4/7, 5/7, 6/7 , 7/7. This is very confusing.

[edk2-platforms][PATCH v1 7/7] Platform/Sgi: Extend SMBIOS support for RD-V2 platform
[edk2-platforms][PATCH v1 7/7] Platform/Sgi: Add support for RD-N2-Cfg3 platform
[edk2-platforms][PATCH v1 6/7] Platform/Sgi: Define RD-V2 platform id values
[edk2-platforms][PATCH v1 6/7] Platform/Sgi: Add a PCD to specify platform variant
[edk2-platforms][PATCH v1 5/7] Platform/Sgi: Extend SMBIOS support for RD-V2 platform
[edk2-platforms][PATCH v1 5/7] Platform/Sgi: Add support for RD-N2-Cfg3 platform
[edk2-platforms][PATCH v1 4/7] Platform/Sgi: Define RD-V2 platform id values
[edk2-platforms][PATCH v1 4/7] Platform/Sgi: Add a PCD to specify platform variant


I will not review this series until this is fixed. It will just be more chaotic.
Can you fix this and send a v2, please? 

Regards,

Sami Mujawar	

On 04/01/2024, 18:49, "Prabin CA" <prabin.ca@arm.com <mailto:prabin.ca@arm.com>> wrote:


This patch series introduces support for two reference design platforms-
RD-N2-Cfg3 and RD-V2. The RD-N2-Cfg3 FVP platform is a variant of RD-N2
platform with a different mesh size and GIC ITS count. It is based on
the Neoverse N2 CPUs and includes 16xMP1 CPUs. RD-N2-Cfg3 has 12 GIC ITS
blocks, 6 more than the other RD-N2 variants.


The Neoverse RD-V2 FVP platform includes 16xMP1 Neoverse V2 CPUs and
each CPU has 64KB of L1 instruction/data cache, 2MB of L2 cache and 32MB
of system level cache. The system architecture of the RD-V2 platform is
similar to the RD-N2 platform, except for the CPU and L2 cache size. So
existing RD-N2 SMBIOS support is extended for RD-V2 platform to reuse
rest of the RD-N2 SMBIOS configuration for the RD-V2 platform.


In addition to patches that introduce support for these two platforms,
there are three patches that update support for existing platforms. The
first patch in this series removes +nofp gcc option flag. The second
patch adds no-stack-protector flag to the gcc build option for the StMM
builds. The third patch adds VariableFlashInfoLib to the common dsc
file.


Link to github branch with the patches in this series -
https://gitlab.arm.com/infra-solutions/reference-design/platsw/edk2-platforms/-/tree/topics/rdn2cfg3_rdv2_updates <https://gitlab.arm.com/infra-solutions/reference-design/platsw/edk2-platforms/-/tree/topics/rdn2cfg3_rdv2_updates>


Omkar Anand Kulkarni (1):
Platform/Sgi: remove +nofp gcc option flag


Prabin CA (3):
Platform/Sgi: add no-stack-protector flag for StMM builds
Platform/Sgi: Add a PCD to specify platform variant
Platform/Sgi: Add support for RD-N2-Cfg3 platform


Pranav Madhu (2):
Platform/Sgi: Define RD-V2 platform id values
Platform/Sgi: Extend SMBIOS support for RD-V2 platform


Vijayenthiran Subramaniam (1):
Platform/Sgi: Add VariableFlashInfoLib to fix missing dependency


Platform/ARM/SgiPkg/SgiPlatform.dec | 5 +-
Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc | 3 +-
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/Include/SgiPlatform.h | 7 ++-
Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c | 7 ++-
Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c | 9 ++-
Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c | 20 ++++++-
Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c | 8 ++-
Platform/ARM/SgiPkg/AcpiTables/RdN2/Madt.aslc | 14 ++++-
Platform/ARM/SgiPkg/RdN2Cfg3/RdN2Cfg3.fdf.inc | 10 ++++
12 files changed, 136 insertions(+), 23 deletions(-)
create mode 100644 Platform/ARM/SgiPkg/RdN2Cfg3/RdN2Cfg3.dsc
copy Platform/ARM/SgiPkg/AcpiTables/{RdN2AcpiTables.inf => RdN2Cfg3AcpiTables.inf} (90%)
create mode 100644 Platform/ARM/SgiPkg/RdN2Cfg3/RdN2Cfg3.fdf.inc


-- 
2.34.1







-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113231): https://edk2.groups.io/g/devel/message/113231
Mute This Topic: https://groups.io/mt/103528419/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2024-01-05  8:58 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-04 18:49 [edk2-devel] [edk2-platforms][PATCH v1 0/7] Platform/Sgi: Add support for RD-N2-Cfg3 and RD-V2 platform Prabin CA
2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 1/7] Platform/Sgi: remove +nofp gcc option flag Prabin CA
2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 2/7] Platform/Sgi: add no-stack-protector flag for StMM builds Prabin CA
2024-01-04 18:53   ` Rebecca Cran via groups.io
2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 3/7] Platform/Sgi: Add VariableFlashInfoLib to fix missing dependency Prabin CA
2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 4/7] Platform/Sgi: Add a PCD to specify platform variant Prabin CA
2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 4/7] Platform/Sgi: Define RD-V2 platform id values Prabin CA
2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 5/7] Platform/Sgi: Add support for RD-N2-Cfg3 platform Prabin CA
2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 5/7] Platform/Sgi: Extend SMBIOS support for RD-V2 platform Prabin CA
2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 6/7] Platform/Sgi: Add a PCD to specify platform variant Prabin CA
2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 6/7] Platform/Sgi: Define RD-V2 platform id values Prabin CA
2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 7/7] Platform/Sgi: Add support for RD-N2-Cfg3 platform Prabin CA
2024-01-04 18:49 ` [edk2-devel] [edk2-platforms][PATCH v1 7/7] Platform/Sgi: Extend SMBIOS support for RD-V2 platform Prabin CA
2024-01-05  8:58 ` [edk2-devel] [edk2-platforms][PATCH v1 0/7] Platform/Sgi: Add support for RD-N2-Cfg3 and " Sami Mujawar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox