aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Hibbits <jhibbits@FreeBSD.org>2024-10-11 21:03:12 +0000
committerJustin Hibbits <jhibbits@FreeBSD.org>2024-10-24 02:07:20 +0000
commitf9f006df1535dfcaa4764c3c4a67f66a05c7db7f (patch)
tree9e153b1b01c66fb9ad24dfff338c88961c318890
parent4f55ea6b592647ac8718166c0053fac048cde602 (diff)
powerpc: Add nominal support for POWER10 and POWER11
(cherry picked from commit 1e434da3b065ef96b389e5e0b604ae05a51e794e)
-rw-r--r--sys/powerpc/include/cpu.h2
-rw-r--r--sys/powerpc/include/spr.h2
-rw-r--r--sys/powerpc/powerpc/cpu.c18
3 files changed, 22 insertions, 0 deletions
diff --git a/sys/powerpc/include/cpu.h b/sys/powerpc/include/cpu.h
index 02ff42877f0e..35b32566484c 100644
--- a/sys/powerpc/include/cpu.h
+++ b/sys/powerpc/include/cpu.h
@@ -90,6 +90,8 @@ extern u_long cpu_features2;
#define PPC_FEATURE2_DARN 0x00200000
#define PPC_FEATURE2_SCV 0x00100000
#define PPC_FEATURE2_HTM_NOSUSPEND 0x00080000
+#define PPC_FEATURE2_ARCH_3_1 0x00040000
+#define PPC_FEATURE2_MMA 0x00020000
#define PPC_FEATURE_BITMASK \
"\20" \
diff --git a/sys/powerpc/include/spr.h b/sys/powerpc/include/spr.h
index 751a9e8184b6..5bb3858b0fb5 100644
--- a/sys/powerpc/include/spr.h
+++ b/sys/powerpc/include/spr.h
@@ -220,7 +220,9 @@
#define IBMPOWER9 0x004e
#define MPC860 0x0050
#define IBMCELLBE 0x0070
+#define IBMPOWER10 0x0080
#define MPC8240 0x0081
+#define IBMPOWER11 0x0082
#define PA6T 0x0090
#define IBM405GP 0x4011
#define IBM405L 0x4161
diff --git a/sys/powerpc/powerpc/cpu.c b/sys/powerpc/powerpc/cpu.c
index 19907e3973e7..f73ed25c8924 100644
--- a/sys/powerpc/powerpc/cpu.c
+++ b/sys/powerpc/powerpc/cpu.c
@@ -192,6 +192,24 @@ static const struct cputab models[] = {
PPC_FEATURE2_ISEL | PPC_FEATURE2_TAR | PPC_FEATURE2_HAS_VEC_CRYPTO |
PPC_FEATURE2_ARCH_3_00 | PPC_FEATURE2_HAS_IEEE128 |
PPC_FEATURE2_DARN, cpu_powerx_setup },
+ { "IBM POWER10", IBMPOWER10, REVFMT_MAJMIN,
+ PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU |
+ PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP | PPC_FEATURE_ARCH_2_05 |
+ PPC_FEATURE_ARCH_2_06 | PPC_FEATURE_HAS_VSX | PPC_FEATURE_TRUE_LE,
+ PPC_FEATURE2_ARCH_2_07 | PPC_FEATURE2_DSCR | PPC_FEATURE2_EBB |
+ PPC_FEATURE2_ISEL | PPC_FEATURE2_TAR | PPC_FEATURE2_HAS_VEC_CRYPTO |
+ PPC_FEATURE2_ARCH_3_00 | PPC_FEATURE2_HAS_IEEE128 |
+ PPC_FEATURE2_DARN | PPC_FEATURE2_ARCH_3_1 | PPC_FEATURE2_MMA,
+ cpu_powerx_setup },
+ { "IBM POWER11", IBMPOWER11, REVFMT_MAJMIN,
+ PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU |
+ PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP | PPC_FEATURE_ARCH_2_05 |
+ PPC_FEATURE_ARCH_2_06 | PPC_FEATURE_HAS_VSX | PPC_FEATURE_TRUE_LE,
+ PPC_FEATURE2_ARCH_2_07 | PPC_FEATURE2_DSCR | PPC_FEATURE2_EBB |
+ PPC_FEATURE2_ISEL | PPC_FEATURE2_TAR | PPC_FEATURE2_HAS_VEC_CRYPTO |
+ PPC_FEATURE2_ARCH_3_00 | PPC_FEATURE2_HAS_IEEE128 |
+ PPC_FEATURE2_DARN | PPC_FEATURE2_ARCH_3_1 | PPC_FEATURE2_MMA,
+ cpu_powerx_setup },
{ "Motorola PowerPC 7400", MPC7400, REVFMT_MAJMIN,
PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, 0, cpu_6xx_setup },
{ "Motorola PowerPC 7410", MPC7410, REVFMT_MAJMIN,
  翻译: