:p
atchew
Login
Changes since V1: - Addressed comments from Sami 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 (#113289): https://edk2.groups.io/g/devel/message/113289 Mute This Topic: https://groups.io/mt/103544562/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc +++ b/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc @@ -XXX,XX +XXX,XX @@ [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 (#113290): https://edk2.groups.io/g/devel/message/113290 Mute This Topic: https://groups.io/mt/103544563/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc +++ b/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc @@ -XXX,XX +XXX,XX @@ [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 (#113291): https://edk2.groups.io/g/devel/message/113291 Mute This Topic: https://groups.io/mt/103544564/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc +++ b/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc @@ -XXX,XX +XXX,XX @@ [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 (#113292): https://edk2.groups.io/g/devel/message/113292 Mute This Topic: https://groups.io/mt/103544570/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/SgiPlatform.dec +++ b/Platform/ARM/SgiPkg/SgiPlatform.dec @@ -XXX,XX +XXX,XX @@ # -# 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 # @@ -XXX,XX +XXX,XX @@ [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 (#113293): https://edk2.groups.io/g/devel/message/113293 Mute This Topic: https://groups.io/mt/103544572/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
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 XXXXXXX..XXXXXXX --- /dev/null +++ b/Platform/ARM/SgiPkg/RdN2Cfg3/RdN2Cfg3.dsc @@ -XXX,XX +XXX,XX @@ +# +# 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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdN2AcpiTables.inf +++ b/Platform/ARM/SgiPkg/AcpiTables/RdN2AcpiTables.inf @@ -XXX,XX +XXX,XX @@ ## @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 # @@ -XXX,XX +XXX,XX @@ [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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdN2AcpiTables.inf +++ b/Platform/ARM/SgiPkg/AcpiTables/RdN2Cfg3AcpiTables.inf @@ -XXX,XX +XXX,XX @@ ## @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 # @@ -XXX,XX +XXX,XX @@ [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 @@ -XXX,XX +XXX,XX @@ [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] @@ -XXX,XX +XXX,XX @@ [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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdN2/Madt.aslc +++ b/Platform/ARM/SgiPkg/AcpiTables/RdN2/Madt.aslc @@ -XXX,XX +XXX,XX @@ 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 @@ -XXX,XX +XXX,XX @@ #define CORE_CNT (FixedPcdGet32 (PcdClusterCount) * \ FixedPcdGet32 (PcdCoreCount)) +#define ITS_CNT ((FixedPcdGet32(PcdPlatformVariant) == 3) ? 12 : 6) + // Multiple APIC Description Table #pragma pack (1) @@ -XXX,XX +XXX,XX @@ 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 () @@ -XXX,XX +XXX,XX @@ 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 XXXXXXX..XXXXXXX --- /dev/null +++ b/Platform/ARM/SgiPkg/RdN2Cfg3/RdN2Cfg3.fdf.inc @@ -XXX,XX +XXX,XX @@ +# +# 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 (#113294): https://edk2.groups.io/g/devel/message/113294 Mute This Topic: https://groups.io/mt/103544573/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/Include/SgiPlatform.h +++ b/Platform/ARM/SgiPkg/Include/SgiPlatform.h @@ -XXX,XX +XXX,XX @@ /** @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 * @@ -XXX,XX +XXX,XX @@ #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 @@ -XXX,XX +XXX,XX @@ 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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c +++ b/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c @@ -XXX,XX +XXX,XX @@ /** @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 * @@ -XXX,XX +XXX,XX @@ 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 (#113295): https://edk2.groups.io/g/devel/message/113295 Mute This Topic: https://groups.io/mt/103544574/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c +++ b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c @@ -XXX,XX +XXX,XX @@ 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: @@ -XXX,XX +XXX,XX @@ "RdV1Mc\0" \ "RdN2\0" \ "RdN2Cfg1\0" \ - "RdN2Cfg2\0" + "RdN2Cfg2\0" \ + "RdV2\0" typedef enum { ManufacturerName = 1, @@ -XXX,XX +XXX,XX @@ 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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c +++ b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c @@ -XXX,XX +XXX,XX @@ 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: @@ -XXX,XX +XXX,XX @@ #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 */ \ @@ -XXX,XX +XXX,XX @@ "Neoverse-N2\0" \ "Neoverse-N2\0" \ "Neoverse-N2\0" \ + "Neoverse-V2\0" \ "000-0\0" /* Serial number */ \ "783-3\0" \ "786-1\0" \ @@ -XXX,XX +XXX,XX @@ "78A-2\0" \ "7B7-1\0" \ "7B6-1\0" \ - "7B7-1\0" + "7B7-1\0" \ + "7F2-1\0" typedef enum { PartNumber = 1, @@ -XXX,XX +XXX,XX @@ 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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c +++ b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c @@ -XXX,XX +XXX,XX @@ 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: @@ -XXX,XX +XXX,XX @@ 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 (#113296): https://edk2.groups.io/g/devel/message/113296 Mute This Topic: https://groups.io/mt/103544576/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
Changes since V2: - Removed the patch which introduce fno-stack-protector in the build flag Changes since V1: - Addressed comments from Sami 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 two patches that update support for existing platforms. The first patch in this series removes +nofp gcc option flag. The second 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 (2): 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 (#113732): https://edk2.groups.io/g/devel/message/113732 Mute This Topic: https://groups.io/mt/103682182/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc +++ b/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc @@ -XXX,XX +XXX,XX @@ [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 (#113733): https://edk2.groups.io/g/devel/message/113733 Mute This Topic: https://groups.io/mt/103682183/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc +++ b/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc @@ -XXX,XX +XXX,XX @@ [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 (#113734): https://edk2.groups.io/g/devel/message/113734 Mute This Topic: https://groups.io/mt/103682184/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/SgiPlatform.dec +++ b/Platform/ARM/SgiPkg/SgiPlatform.dec @@ -XXX,XX +XXX,XX @@ # -# 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 # @@ -XXX,XX +XXX,XX @@ [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 (#113735): https://edk2.groups.io/g/devel/message/113735 Mute This Topic: https://groups.io/mt/103682185/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
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 XXXXXXX..XXXXXXX --- /dev/null +++ b/Platform/ARM/SgiPkg/RdN2Cfg3/RdN2Cfg3.dsc @@ -XXX,XX +XXX,XX @@ +# +# 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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdN2AcpiTables.inf +++ b/Platform/ARM/SgiPkg/AcpiTables/RdN2AcpiTables.inf @@ -XXX,XX +XXX,XX @@ ## @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 # @@ -XXX,XX +XXX,XX @@ [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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdN2AcpiTables.inf +++ b/Platform/ARM/SgiPkg/AcpiTables/RdN2Cfg3AcpiTables.inf @@ -XXX,XX +XXX,XX @@ ## @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 # @@ -XXX,XX +XXX,XX @@ [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 @@ -XXX,XX +XXX,XX @@ [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] @@ -XXX,XX +XXX,XX @@ [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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdN2/Madt.aslc +++ b/Platform/ARM/SgiPkg/AcpiTables/RdN2/Madt.aslc @@ -XXX,XX +XXX,XX @@ 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 @@ -XXX,XX +XXX,XX @@ #define CORE_CNT (FixedPcdGet32 (PcdClusterCount) * \ FixedPcdGet32 (PcdCoreCount)) +#define ITS_CNT ((FixedPcdGet32(PcdPlatformVariant) == 3) ? 12 : 6) + // Multiple APIC Description Table #pragma pack (1) @@ -XXX,XX +XXX,XX @@ 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 () @@ -XXX,XX +XXX,XX @@ 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 XXXXXXX..XXXXXXX --- /dev/null +++ b/Platform/ARM/SgiPkg/RdN2Cfg3/RdN2Cfg3.fdf.inc @@ -XXX,XX +XXX,XX @@ +# +# 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 (#113736): https://edk2.groups.io/g/devel/message/113736 Mute This Topic: https://groups.io/mt/103682188/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/Include/SgiPlatform.h +++ b/Platform/ARM/SgiPkg/Include/SgiPlatform.h @@ -XXX,XX +XXX,XX @@ /** @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 * @@ -XXX,XX +XXX,XX @@ #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 @@ -XXX,XX +XXX,XX @@ 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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c +++ b/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c @@ -XXX,XX +XXX,XX @@ /** @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 * @@ -XXX,XX +XXX,XX @@ 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 (#113737): https://edk2.groups.io/g/devel/message/113737 Mute This Topic: https://groups.io/mt/103682190/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c +++ b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c @@ -XXX,XX +XXX,XX @@ 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: @@ -XXX,XX +XXX,XX @@ "RdV1Mc\0" \ "RdN2\0" \ "RdN2Cfg1\0" \ - "RdN2Cfg2\0" + "RdN2Cfg2\0" \ + "RdV2\0" typedef enum { ManufacturerName = 1, @@ -XXX,XX +XXX,XX @@ 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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c +++ b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c @@ -XXX,XX +XXX,XX @@ 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: @@ -XXX,XX +XXX,XX @@ #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 */ \ @@ -XXX,XX +XXX,XX @@ "Neoverse-N2\0" \ "Neoverse-N2\0" \ "Neoverse-N2\0" \ + "Neoverse-V2\0" \ "000-0\0" /* Serial number */ \ "783-3\0" \ "786-1\0" \ @@ -XXX,XX +XXX,XX @@ "78A-2\0" \ "7B7-1\0" \ "7B6-1\0" \ - "7B7-1\0" + "7B7-1\0" \ + "7F2-1\0" typedef enum { PartNumber = 1, @@ -XXX,XX +XXX,XX @@ 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 XXXXXXX..XXXXXXX 100644 --- a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c +++ b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c @@ -XXX,XX +XXX,XX @@ 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: @@ -XXX,XX +XXX,XX @@ 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 (#113738): https://edk2.groups.io/g/devel/message/113738 Mute This Topic: https://groups.io/mt/103682191/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-