The branch main has been updated by andrew:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=124b5dbf5c09a17251b75f6b96c9ab7b218eee7f

commit 124b5dbf5c09a17251b75f6b96c9ab7b218eee7f
Author:     Andrew Turner <and...@freebsd.org>
AuthorDate: 2025-06-23 12:28:36 +0000
Commit:     Andrew Turner <and...@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

Reply via email to