diff options
author | Michael Neuling <mikey@neuling.org> | 2012-10-30 15:34:15 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2012-11-14 21:00:45 -0500 |
commit | 71e184972456a8095657e80fd1470a3857b441a0 (patch) | |
tree | ce0664e3750cb16c693525f9391aae5723873703 | |
parent | aec937b1ee6d7b28499d50ea6df1b2fe9edee91b (diff) |
powerpc: POWER8 cputable entry
Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-rw-r--r-- | arch/powerpc/include/asm/cputable.h | 12 | ||||
-rw-r--r-- | arch/powerpc/include/asm/mmu.h | 1 | ||||
-rw-r--r-- | arch/powerpc/include/asm/reg.h | 1 | ||||
-rw-r--r-- | arch/powerpc/kernel/cputable.c | 21 |
4 files changed, 33 insertions, 2 deletions
diff --git a/arch/powerpc/include/asm/cputable.h b/arch/powerpc/include/asm/cputable.h index 21a0687b8c4d..76f81bd64f1d 100644 --- a/arch/powerpc/include/asm/cputable.h +++ b/arch/powerpc/include/asm/cputable.h | |||
@@ -401,6 +401,14 @@ extern const char *powerpc_base_platform; | |||
401 | CPU_FTR_DSCR | CPU_FTR_SAO | CPU_FTR_ASYM_SMT | \ | 401 | CPU_FTR_DSCR | CPU_FTR_SAO | CPU_FTR_ASYM_SMT | \ |
402 | CPU_FTR_STCX_CHECKS_ADDRESS | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \ | 402 | CPU_FTR_STCX_CHECKS_ADDRESS | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \ |
403 | CPU_FTR_ICSWX | CPU_FTR_CFAR | CPU_FTR_HVMODE | CPU_FTR_VMX_COPY) | 403 | CPU_FTR_ICSWX | CPU_FTR_CFAR | CPU_FTR_HVMODE | CPU_FTR_VMX_COPY) |
404 | #define CPU_FTRS_POWER8 (CPU_FTR_USE_TB | CPU_FTR_LWSYNC | \ | ||
405 | CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_CTRL | CPU_FTR_ARCH_206 |\ | ||
406 | CPU_FTR_MMCRA | CPU_FTR_SMT | \ | ||
407 | CPU_FTR_COHERENT_ICACHE | \ | ||
408 | CPU_FTR_PURR | CPU_FTR_SPURR | CPU_FTR_REAL_LE | \ | ||
409 | CPU_FTR_DSCR | CPU_FTR_SAO | \ | ||
410 | CPU_FTR_STCX_CHECKS_ADDRESS | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \ | ||
411 | CPU_FTR_ICSWX | CPU_FTR_CFAR | CPU_FTR_HVMODE | CPU_FTR_VMX_COPY) | ||
404 | #define CPU_FTRS_CELL (CPU_FTR_USE_TB | CPU_FTR_LWSYNC | \ | 412 | #define CPU_FTRS_CELL (CPU_FTR_USE_TB | CPU_FTR_LWSYNC | \ |
405 | CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_CTRL | \ | 413 | CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_CTRL | \ |
406 | CPU_FTR_ALTIVEC_COMP | CPU_FTR_MMCRA | CPU_FTR_SMT | \ | 414 | CPU_FTR_ALTIVEC_COMP | CPU_FTR_MMCRA | CPU_FTR_SMT | \ |
@@ -421,8 +429,8 @@ extern const char *powerpc_base_platform; | |||
421 | #define CPU_FTRS_POSSIBLE \ | 429 | #define CPU_FTRS_POSSIBLE \ |
422 | (CPU_FTRS_POWER3 | CPU_FTRS_RS64 | CPU_FTRS_POWER4 | \ | 430 | (CPU_FTRS_POWER3 | CPU_FTRS_RS64 | CPU_FTRS_POWER4 | \ |
423 | CPU_FTRS_PPC970 | CPU_FTRS_POWER5 | CPU_FTRS_POWER6 | \ | 431 | CPU_FTRS_PPC970 | CPU_FTRS_POWER5 | CPU_FTRS_POWER6 | \ |
424 | CPU_FTRS_POWER7 | CPU_FTRS_CELL | CPU_FTRS_PA6T | \ | 432 | CPU_FTRS_POWER7 | CPU_FTRS_POWER8 | CPU_FTRS_CELL | \ |
425 | CPU_FTR_VSX) | 433 | CPU_FTRS_PA6T | CPU_FTR_VSX) |
426 | #endif | 434 | #endif |
427 | #else | 435 | #else |
428 | enum { | 436 | enum { |
diff --git a/arch/powerpc/include/asm/mmu.h b/arch/powerpc/include/asm/mmu.h index 5e38eedea218..691fd8aca939 100644 --- a/arch/powerpc/include/asm/mmu.h +++ b/arch/powerpc/include/asm/mmu.h | |||
@@ -101,6 +101,7 @@ | |||
101 | #define MMU_FTRS_POWER5 MMU_FTRS_POWER4 | MMU_FTR_LOCKLESS_TLBIE | 101 | #define MMU_FTRS_POWER5 MMU_FTRS_POWER4 | MMU_FTR_LOCKLESS_TLBIE |
102 | #define MMU_FTRS_POWER6 MMU_FTRS_POWER4 | MMU_FTR_LOCKLESS_TLBIE | 102 | #define MMU_FTRS_POWER6 MMU_FTRS_POWER4 | MMU_FTR_LOCKLESS_TLBIE |
103 | #define MMU_FTRS_POWER7 MMU_FTRS_POWER4 | MMU_FTR_LOCKLESS_TLBIE | 103 | #define MMU_FTRS_POWER7 MMU_FTRS_POWER4 | MMU_FTR_LOCKLESS_TLBIE |
104 | #define MMU_FTRS_POWER8 MMU_FTRS_POWER4 | MMU_FTR_LOCKLESS_TLBIE | ||
104 | #define MMU_FTRS_CELL MMU_FTRS_DEFAULT_HPTE_ARCH_V2 | \ | 105 | #define MMU_FTRS_CELL MMU_FTRS_DEFAULT_HPTE_ARCH_V2 | \ |
105 | MMU_FTR_CI_LARGE_PAGE | 106 | MMU_FTR_CI_LARGE_PAGE |
106 | #define MMU_FTRS_PA6T MMU_FTRS_DEFAULT_HPTE_ARCH_V2 | \ | 107 | #define MMU_FTRS_PA6T MMU_FTRS_DEFAULT_HPTE_ARCH_V2 | \ |
diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h index d24c14163966..7b44a6e3e0f0 100644 --- a/arch/powerpc/include/asm/reg.h +++ b/arch/powerpc/include/asm/reg.h | |||
@@ -1029,6 +1029,7 @@ | |||
1029 | #define PVR_970MP 0x0044 | 1029 | #define PVR_970MP 0x0044 |
1030 | #define PVR_970GX 0x0045 | 1030 | #define PVR_970GX 0x0045 |
1031 | #define PVR_POWER7p 0x004A | 1031 | #define PVR_POWER7p 0x004A |
1032 | #define PVR_POWER8 0x004B | ||
1032 | #define PVR_BE 0x0070 | 1033 | #define PVR_BE 0x0070 |
1033 | #define PVR_PA6T 0x0090 | 1034 | #define PVR_PA6T 0x0090 |
1034 | 1035 | ||
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index 361f6d91ab1b..216ff845caf8 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c | |||
@@ -96,6 +96,10 @@ extern void __restore_cpu_e5500(void); | |||
96 | PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP | \ | 96 | PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP | \ |
97 | PPC_FEATURE_TRUE_LE | \ | 97 | PPC_FEATURE_TRUE_LE | \ |
98 | PPC_FEATURE_PSERIES_PERFMON_COMPAT) | 98 | PPC_FEATURE_PSERIES_PERFMON_COMPAT) |
99 | #define COMMON_USER_POWER8 (COMMON_USER_PPC64 | PPC_FEATURE_ARCH_2_06 |\ | ||
100 | PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP | \ | ||
101 | PPC_FEATURE_TRUE_LE | \ | ||
102 | PPC_FEATURE_PSERIES_PERFMON_COMPAT) | ||
99 | #define COMMON_USER_PA6T (COMMON_USER_PPC64 | PPC_FEATURE_PA6T |\ | 103 | #define COMMON_USER_PA6T (COMMON_USER_PPC64 | PPC_FEATURE_PA6T |\ |
100 | PPC_FEATURE_TRUE_LE | \ | 104 | PPC_FEATURE_TRUE_LE | \ |
101 | PPC_FEATURE_HAS_ALTIVEC_COMP) | 105 | PPC_FEATURE_HAS_ALTIVEC_COMP) |
@@ -465,6 +469,23 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
465 | .cpu_restore = __restore_cpu_power7, | 469 | .cpu_restore = __restore_cpu_power7, |
466 | .platform = "power7+", | 470 | .platform = "power7+", |
467 | }, | 471 | }, |
472 | { /* Power8 */ | ||
473 | .pvr_mask = 0xffff0000, | ||
474 | .pvr_value = 0x004b0000, | ||
475 | .cpu_name = "POWER8 (raw)", | ||
476 | .cpu_features = CPU_FTRS_POWER8, | ||
477 | .cpu_user_features = COMMON_USER_POWER8, | ||
478 | .mmu_features = MMU_FTRS_POWER8, | ||
479 | .icache_bsize = 128, | ||
480 | .dcache_bsize = 128, | ||
481 | .num_pmcs = 6, | ||
482 | .pmc_type = PPC_PMC_IBM, | ||
483 | .oprofile_cpu_type = "ppc64/power8", | ||
484 | .oprofile_type = PPC_OPROFILE_POWER4, | ||
485 | .cpu_setup = __setup_cpu_power8, | ||
486 | .cpu_restore = __restore_cpu_power8, | ||
487 | .platform = "power8", | ||
488 | }, | ||
468 | { /* Cell Broadband Engine */ | 489 | { /* Cell Broadband Engine */ |
469 | .pvr_mask = 0xffff0000, | 490 | .pvr_mask = 0xffff0000, |
470 | .pvr_value = 0x00700000, | 491 | .pvr_value = 0x00700000, |