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.
Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
---
Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c | 5 ++++-
Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c | 7 +++++--
Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c | 18 ++++++++++++++++++
3 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c
index b7e2238fb39c..fe3c88672d7e 100644
--- a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c
+++ b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c
@@ -33,7 +33,8 @@
"RdV1Mc\0" \
"RdN2\0" \
"RdN2Cfg1\0" \
- "RdN2Cfg2\0"
+ "RdN2Cfg2\0" \
+ "RdV2\0"
typedef enum {
ManufacturerName = 1,
@@ -71,6 +72,8 @@ STATIC GUID mSmbiosUid[] = {
{0xa4941d3d, 0xfac3, 0x4ace, {0x9a, 0x7e, 0xce, 0x26, 0x76, 0x64, 0x5e, 0xda}},
/* Rd-N2-Cfg2 */
{0xd2946d07, 0x8057, 0x4c26, {0xbf, 0x53, 0x78, 0xa6, 0x5b, 0xe1, 0xc1, 0x60}},
+ /* Rd-V2 */
+ {0x3b1180a3, 0x0744, 0x4194, {0xae, 0x2e, 0xed, 0xa5, 0xbc, 0x2e, 0x43, 0x45}},
};
/* System information */
diff --git a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c
index b59172cf1cb9..0f403e41a3c7 100644
--- a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c
+++ b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation.c
@@ -27,7 +27,7 @@
#define SOCKET_TYPE_BASE 3
#define SOCKET_TYPE_NUM 1
#define PROCESSOR_VERSION_BASE (SOCKET_TYPE_BASE + SOCKET_TYPE_NUM)
-#define PROCESSOR_VERSION_NUM 10
+#define PROCESSOR_VERSION_NUM 11
#define SERIAL_NUMBER_BASE (PROCESSOR_VERSION_BASE + PROCESSOR_VERSION_NUM)
#define TYPE4_STRINGS \
"0x000\0" /* Part Number */ \
@@ -43,6 +43,7 @@
"Neoverse-N2\0" \
"Neoverse-N2\0" \
"Neoverse-N2\0" \
+ "Neoverse-V2\0" \
"000-0\0" /* Serial number */ \
"783-3\0" \
"786-1\0" \
@@ -52,7 +53,8 @@
"78A-2\0" \
"7B7-1\0" \
"7B6-1\0" \
- "7B7-1\0"
+ "7B7-1\0" \
+ "7F2-1\0"
typedef enum {
PartNumber = 1,
@@ -178,6 +180,7 @@ InstallType4ProcessorInformation (
break;
case RdN2:
case RdN2Cfg1:
+ case RdV2:
mArmRdSmbiosType4.Base.CoreCount = CoreCount;
mArmRdSmbiosType4.Base.EnabledCoreCount = CoreCount;
mArmRdSmbiosType4.Base.ThreadCount = CoreCount;
diff --git a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c
index b71ce721e2e8..d65ae9520679 100644
--- a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c
+++ b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c
@@ -334,6 +334,24 @@ InstallType7CacheInformation (
mArmRdSmbiosType7[4].Base.InstalledSize2 = 8192; // 8MB SLC
mArmRdSmbiosType7[4].Base.Associativity = CacheAssociativity16Way;
break;
+ case RdV2:
+ /* L1 instruction cache */
+ mArmRdSmbiosType7[0].Base.MaximumCacheSize2 = 64; // 64KB
+ mArmRdSmbiosType7[0].Base.InstalledSize2 = 64; // 64KB
+ mArmRdSmbiosType7[0].Base.Associativity = CacheAssociativity4Way;
+ /* L1 data cache */
+ mArmRdSmbiosType7[1].Base.MaximumCacheSize2 = 64; // 64KB
+ mArmRdSmbiosType7[1].Base.InstalledSize2 = 64; // 64KB
+ mArmRdSmbiosType7[1].Base.Associativity = CacheAssociativity4Way;
+ /* L2 cache */
+ mArmRdSmbiosType7[2].Base.MaximumCacheSize2 = 2048; // 2MB
+ mArmRdSmbiosType7[2].Base.InstalledSize2 = 2048; // 2MB
+ mArmRdSmbiosType7[2].Base.Associativity = CacheAssociativity8Way;
+ /* System level cache */
+ mArmRdSmbiosType7[4].Base.MaximumCacheSize2 = 32768; // 32MB SLC
+ mArmRdSmbiosType7[4].Base.InstalledSize2 = 32768; // 32MB SLC
+ mArmRdSmbiosType7[4].Base.Associativity = CacheAssociativity16Way;
+ break;
}
/* Install valid cache information tables */
--
2.34.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#112524): https://edk2.groups.io/g/devel/message/112524
Mute This Topic: https://groups.io/mt/103168058/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
On Thu, Dec 14, 2023 at 11:41 AM Pranav Madhu <pranav.madhu@arm.com> wrote:
>
> 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.
>
> Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
> ---
> Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.c
> | 5 ++++-
>
> Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformation
> .c | 7 +++++--
> Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c
> | 18 ++++++++++++++++++
> 3 files changed, 27 insertions(+), 3 deletions(-)
>
> diff --git
> a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.
> c
> b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation
> .c
> index b7e2238fb39c..fe3c88672d7e 100644
> ---
> a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation.
> c
> +++
> b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type1SystemInformation
> .c
> @@ -33,7 +33,8 @@
> "RdV1Mc\0" \
> "RdN2\0" \
> "RdN2Cfg1\0" \
> - "RdN2Cfg2\0"
> + "RdN2Cfg2\0" \
> + "RdV2\0"
>
> typedef enum {
> ManufacturerName = 1,
> @@ -71,6 +72,8 @@ STATIC GUID mSmbiosUid[] = {
> {0xa4941d3d, 0xfac3, 0x4ace, {0x9a, 0x7e, 0xce, 0x26, 0x76, 0x64, 0x5e,
> 0xda}},
> /* Rd-N2-Cfg2 */
> {0xd2946d07, 0x8057, 0x4c26, {0xbf, 0x53, 0x78, 0xa6, 0x5b, 0xe1, 0xc1,
> 0x60}},
> + /* Rd-V2 */
> + {0x3b1180a3, 0x0744, 0x4194, {0xae, 0x2e, 0xed, 0xa5, 0xbc, 0x2e, 0x43,
> 0x45}},
> };
>
> /* System information */
> diff --git
> a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformati
> on.c
> b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformati
> on.c
> index b59172cf1cb9..0f403e41a3c7 100644
> ---
> a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformati
> on.c
> +++
> b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type4ProcessorInformati
> on.c
> @@ -27,7 +27,7 @@
> #define SOCKET_TYPE_BASE 3
> #define SOCKET_TYPE_NUM 1
> #define PROCESSOR_VERSION_BASE (SOCKET_TYPE_BASE +
> SOCKET_TYPE_NUM)
> -#define PROCESSOR_VERSION_NUM 10
> +#define PROCESSOR_VERSION_NUM 11
> #define SERIAL_NUMBER_BASE (PROCESSOR_VERSION_BASE +
> PROCESSOR_VERSION_NUM)
> #define TYPE4_STRINGS \
> "0x000\0" /* Part Number */ \
> @@ -43,6 +43,7 @@
> "Neoverse-N2\0" \
> "Neoverse-N2\0" \
> "Neoverse-N2\0" \
> + "Neoverse-V2\0" \
> "000-0\0" /* Serial number */ \
> "783-3\0" \
> "786-1\0" \
> @@ -52,7 +53,8 @@
> "78A-2\0" \
> "7B7-1\0" \
> "7B6-1\0" \
> - "7B7-1\0"
> + "7B7-1\0" \
> + "7F2-1\0"
>
> typedef enum {
> PartNumber = 1,
> @@ -178,6 +180,7 @@ InstallType4ProcessorInformation (
> break;
> case RdN2:
> case RdN2Cfg1:
> + case RdV2:
> mArmRdSmbiosType4.Base.CoreCount = CoreCount;
> mArmRdSmbiosType4.Base.EnabledCoreCount = CoreCount;
> mArmRdSmbiosType4.Base.ThreadCount = CoreCount;
> diff --git
> a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c
> b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.
> c
> index b71ce721e2e8..d65ae9520679 100644
> ---
> a/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.c
> +++
> b/Platform/ARM/SgiPkg/Drivers/SmbiosPlatformDxe/Type7CacheInformation.
> c
> @@ -334,6 +334,24 @@ InstallType7CacheInformation (
> mArmRdSmbiosType7[4].Base.InstalledSize2 = 8192; // 8MB SLC
> mArmRdSmbiosType7[4].Base.Associativity = CacheAssociativity16Way;
> break;
> + case RdV2:
> + /* L1 instruction cache */
> + mArmRdSmbiosType7[0].Base.MaximumCacheSize2 = 64; // 64KB
> + mArmRdSmbiosType7[0].Base.InstalledSize2 = 64; // 64KB
> + mArmRdSmbiosType7[0].Base.Associativity = CacheAssociativity4Way;
> + /* L1 data cache */
> + mArmRdSmbiosType7[1].Base.MaximumCacheSize2 = 64; // 64KB
> + mArmRdSmbiosType7[1].Base.InstalledSize2 = 64; // 64KB
> + mArmRdSmbiosType7[1].Base.Associativity = CacheAssociativity4Way;
> + /* L2 cache */
> + mArmRdSmbiosType7[2].Base.MaximumCacheSize2 = 2048; // 2MB
> + mArmRdSmbiosType7[2].Base.InstalledSize2 = 2048; // 2MB
> + mArmRdSmbiosType7[2].Base.Associativity = CacheAssociativity8Way;
> + /* System level cache */
> + mArmRdSmbiosType7[4].Base.MaximumCacheSize2 = 32768; // 32MB SLC
> + mArmRdSmbiosType7[4].Base.InstalledSize2 = 32768; // 32MB SLC
> + mArmRdSmbiosType7[4].Base.Associativity = CacheAssociativity16Way;
> + break;
> }
>
> /* Install valid cache information tables */
> --
> 2.34.1
Reviewed-by: Thomas Abraham <thomas.abraham@arm.com>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#112535): https://edk2.groups.io/g/devel/message/112535
Mute This Topic: https://groups.io/mt/103168058/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2026 Red Hat, Inc.