:p
atchew
Login
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] -=-=-=-=-=-=-=-=-=-=-=-
Changes since V3: - Removed author's signed-off on the patches, which is owned by another author. 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 gitlb 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 (#114438): https://edk2.groups.io/g/devel/message/114438 Mute This Topic: https://groups.io/mt/103959443/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: 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 (#114439): https://edk2.groups.io/g/devel/message/114439 Mute This Topic: https://groups.io/mt/103959444/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: 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 (#114440): https://edk2.groups.io/g/devel/message/114440 Mute This Topic: https://groups.io/mt/103959446/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 (#114441): https://edk2.groups.io/g/devel/message/114441 Mute This Topic: https://groups.io/mt/103959447/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: 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 (#114442): https://edk2.groups.io/g/devel/message/114442 Mute This Topic: https://groups.io/mt/103959449/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: 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 (#114443): https://edk2.groups.io/g/devel/message/114443 Mute This Topic: https://groups.io/mt/103959451/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: 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 (#114444): https://edk2.groups.io/g/devel/message/114444 Mute This Topic: https://groups.io/mt/103959453/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-