git: 124b5dbf5c09 - main - arm64: Add more CPU MIDR values
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 23 Jun 2025 13:20:05 UTC
The branch main has been updated by andrew:
URL: https://cgit.FreeBSD.org/src/commit/?id=124b5dbf5c09a17251b75f6b96c9ab7b218eee7f
commit 124b5dbf5c09a17251b75f6b96c9ab7b218eee7f
Author: Andrew Turner <andrew@FreeBSD.org>
AuthorDate: 2025-06-23 12:28:36 +0000
Commit: Andrew Turner <andrew@FreeBSD.org>
CommitDate: 2025-06-23 12:55:24 +0000
arm64: Add more CPU MIDR values
Found in Linux and https://github.com/arm-software/data
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D50726
---
sys/arm64/arm64/identcpu.c | 28 ++++++++++++++++++++++++++--
sys/arm64/include/cpu.h | 20 +++++++++++++++++++-
2 files changed, 45 insertions(+), 3 deletions(-)
diff --git a/sys/arm64/arm64/identcpu.c b/sys/arm64/arm64/identcpu.c
index 72ef94531f54..123aeeb090dd 100644
--- a/sys/arm64/arm64/identcpu.c
+++ b/sys/arm64/arm64/identcpu.c
@@ -218,19 +218,28 @@ static const struct cpu_parts cpu_parts_arm[] = {
{ CPU_PART_CORTEX_A76AE, "Cortex-A76AE" },
{ CPU_PART_CORTEX_A77, "Cortex-A77" },
{ CPU_PART_CORTEX_A78, "Cortex-A78" },
+ { CPU_PART_CORTEX_A78AE, "Cortex-A78AE" },
{ CPU_PART_CORTEX_A78C, "Cortex-A78C" },
{ CPU_PART_CORTEX_A510, "Cortex-A510" },
+ { CPU_PART_CORTEX_A520, "Cortex-A520" },
{ CPU_PART_CORTEX_A710, "Cortex-A710" },
{ CPU_PART_CORTEX_A715, "Cortex-A715" },
+ { CPU_PART_CORTEX_A720, "Cortex-A720" },
+ { CPU_PART_CORTEX_A725, "Cortex-A725" },
+ { CPU_PART_CORTEX_X925, "Cortex-A925" },
{ CPU_PART_CORTEX_X1, "Cortex-X1" },
{ CPU_PART_CORTEX_X1C, "Cortex-X1C" },
{ CPU_PART_CORTEX_X2, "Cortex-X2" },
{ CPU_PART_CORTEX_X3, "Cortex-X3" },
+ { CPU_PART_CORTEX_X4, "Cortex-X4" },
{ CPU_PART_NEOVERSE_E1, "Neoverse-E1" },
{ CPU_PART_NEOVERSE_N1, "Neoverse-N1" },
{ CPU_PART_NEOVERSE_N2, "Neoverse-N2" },
+ { CPU_PART_NEOVERSE_N3, "Neoverse-N3" },
{ CPU_PART_NEOVERSE_V1, "Neoverse-V1" },
{ CPU_PART_NEOVERSE_V2, "Neoverse-V2" },
+ { CPU_PART_NEOVERSE_V3, "Neoverse-V3" },
+ { CPU_PART_NEOVERSE_V3AE, "Neoverse-V3AE" },
CPU_PART_NONE,
};
@@ -241,12 +250,25 @@ static const struct cpu_parts cpu_parts_cavium[] = {
CPU_PART_NONE,
};
-/* APM / Ampere */
+/* APM (now Ampere) */
static const struct cpu_parts cpu_parts_apm[] = {
{ CPU_PART_EMAG8180, "eMAG 8180" },
CPU_PART_NONE,
};
+/* Ampere */
+static const struct cpu_parts cpu_parts_ampere[] = {
+ { CPU_PART_AMPERE1, "AmpereOne AC03" },
+ { CPU_PART_AMPERE1A, "AmpereOne AC04" },
+ CPU_PART_NONE,
+};
+
+/* Microsoft */
+static const struct cpu_parts cpu_parts_microsoft[] = {
+ { CPU_PART_AZURE_COBALT_100, "Azure Cobalt 100" },
+ CPU_PART_NONE,
+};
+
/* Qualcomm */
static const struct cpu_parts cpu_parts_qcom[] = {
{ CPU_PART_KRYO400_GOLD, "Kryo 400 Gold" },
@@ -280,7 +302,7 @@ static const struct cpu_parts cpu_parts_none[] = {
* Implementers table.
*/
const struct cpu_implementers cpu_implementers[] = {
- { CPU_IMPL_AMPERE, "Ampere", cpu_parts_none },
+ { CPU_IMPL_AMPERE, "Ampere", cpu_parts_ampere },
{ CPU_IMPL_APPLE, "Apple", cpu_parts_apple },
{ CPU_IMPL_APM, "APM", cpu_parts_apm },
{ CPU_IMPL_ARM, "ARM", cpu_parts_arm },
@@ -289,9 +311,11 @@ const struct cpu_implementers cpu_implementers[] = {
{ CPU_IMPL_DEC, "DEC", cpu_parts_none },
{ CPU_IMPL_FREESCALE, "Freescale", cpu_parts_none },
{ CPU_IMPL_FUJITSU, "Fujitsu", cpu_parts_none },
+ { CPU_IMPL_HISILICON, "HiSilicon", cpu_parts_none },
{ CPU_IMPL_INFINEON, "IFX", cpu_parts_none },
{ CPU_IMPL_INTEL, "Intel", cpu_parts_none },
{ CPU_IMPL_MARVELL, "Marvell", cpu_parts_none },
+ { CPU_IMPL_MICROSOFT, "Microsoft", cpu_parts_microsoft },
{ CPU_IMPL_NVIDIA, "NVIDIA", cpu_parts_none },
{ CPU_IMPL_QUALCOMM, "Qualcomm", cpu_parts_qcom },
CPU_IMPLEMENTER_NONE,
diff --git a/sys/arm64/include/cpu.h b/sys/arm64/include/cpu.h
index 4ef01e9a47ed..935e3754bf25 100644
--- a/sys/arm64/include/cpu.h
+++ b/sys/arm64/include/cpu.h
@@ -75,6 +75,7 @@
#define CPU_IMPL_CAVIUM 0x43
#define CPU_IMPL_DEC 0x44
#define CPU_IMPL_FUJITSU 0x46
+#define CPU_IMPL_HISILICON 0x48
#define CPU_IMPL_INFINEON 0x49
#define CPU_IMPL_FREESCALE 0x4D
#define CPU_IMPL_NVIDIA 0x4E
@@ -84,6 +85,7 @@
#define CPU_IMPL_APPLE 0x61
#define CPU_IMPL_INTEL 0x69
#define CPU_IMPL_AMPERE 0xC0
+#define CPU_IMPL_MICROSOFT 0x6D
/* ARM Part numbers */
#define CPU_PART_FOUNDATION 0xD00
@@ -103,6 +105,7 @@
#define CPU_PART_AEM_V8 0xD0F
#define CPU_PART_NEOVERSE_V1 0xD40
#define CPU_PART_CORTEX_A78 0xD41
+#define CPU_PART_CORTEX_A78AE 0xD42
#define CPU_PART_CORTEX_A65AE 0xD43
#define CPU_PART_CORTEX_X1 0xD44
#define CPU_PART_CORTEX_A510 0xD46
@@ -115,6 +118,14 @@
#define CPU_PART_CORTEX_A715 0xD4D
#define CPU_PART_CORTEX_X3 0xD4E
#define CPU_PART_NEOVERSE_V2 0xD4F
+#define CPU_PART_CORTEX_A520 0xD80
+#define CPU_PART_CORTEX_A720 0xD81
+#define CPU_PART_CORTEX_X4 0xD82
+#define CPU_PART_NEOVERSE_V3AE 0xD83
+#define CPU_PART_NEOVERSE_V3 0xD84
+#define CPU_PART_CORTEX_X925 0xD85
+#define CPU_PART_CORTEX_A725 0xD87
+#define CPU_PART_NEOVERSE_N3 0xD8E
/* Cavium Part numbers */
#define CPU_PART_THUNDERX 0x0A1
@@ -127,9 +138,16 @@
#define CPU_REV_THUNDERX2_0 0x00
-/* APM / Ampere Part Number */
+/* APM (now Ampere) Part number */
#define CPU_PART_EMAG8180 0x000
+/* Ampere Part numbers */
+#define CPU_PART_AMPERE1 0xAC3
+#define CPU_PART_AMPERE1A 0xAC4
+
+/* Microsoft Part numbers */
+#define CPU_PART_AZURE_COBALT_100 0xD49
+
/* Qualcomm */
#define CPU_PART_KRYO400_GOLD 0x804
#define CPU_PART_KRYO400_SILVER 0x805