aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/cputable.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kernel/cputable.c')
-rw-r--r--arch/powerpc/kernel/cputable.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
index f247fc6ad12d..d8d669308403 100644
--- a/arch/powerpc/kernel/cputable.c
+++ b/arch/powerpc/kernel/cputable.c
@@ -53,6 +53,8 @@ extern void __setup_cpu_ppc970MP(unsigned long offset, struct cpu_spec* spec);
53extern void __setup_cpu_pa6t(unsigned long offset, struct cpu_spec* spec); 53extern void __setup_cpu_pa6t(unsigned long offset, struct cpu_spec* spec);
54extern void __restore_cpu_pa6t(void); 54extern void __restore_cpu_pa6t(void);
55extern void __restore_cpu_ppc970(void); 55extern void __restore_cpu_ppc970(void);
56extern void __setup_cpu_power7(unsigned long offset, struct cpu_spec* spec);
57extern void __restore_cpu_power7(void);
56#endif /* CONFIG_PPC64 */ 58#endif /* CONFIG_PPC64 */
57 59
58/* This table only contains "desktop" CPUs, it need to be filled with embedded 60/* This table only contains "desktop" CPUs, it need to be filled with embedded
@@ -69,6 +71,9 @@ extern void __restore_cpu_ppc970(void);
69#define COMMON_USER_POWER6 (COMMON_USER_PPC64 | PPC_FEATURE_ARCH_2_05 |\ 71#define COMMON_USER_POWER6 (COMMON_USER_PPC64 | PPC_FEATURE_ARCH_2_05 |\
70 PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP | \ 72 PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP | \
71 PPC_FEATURE_TRUE_LE) 73 PPC_FEATURE_TRUE_LE)
74#define COMMON_USER_POWER7 (COMMON_USER_PPC64 | PPC_FEATURE_ARCH_2_06 |\
75 PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP | \
76 PPC_FEATURE_TRUE_LE)
72#define COMMON_USER_PA6T (COMMON_USER_PPC64 | PPC_FEATURE_PA6T |\ 77#define COMMON_USER_PA6T (COMMON_USER_PPC64 | PPC_FEATURE_PA6T |\
73 PPC_FEATURE_TRUE_LE | \ 78 PPC_FEATURE_TRUE_LE | \
74 PPC_FEATURE_HAS_ALTIVEC_COMP) 79 PPC_FEATURE_HAS_ALTIVEC_COMP)
@@ -381,6 +386,26 @@ static struct cpu_spec __initdata cpu_specs[] = {
381 .machine_check = machine_check_generic, 386 .machine_check = machine_check_generic,
382 .platform = "power6", 387 .platform = "power6",
383 }, 388 },
389 { /* Power7 */
390 .pvr_mask = 0xffff0000,
391 .pvr_value = 0x003f0000,
392 .cpu_name = "POWER7",
393 .cpu_features = CPU_FTRS_POWER7,
394 .cpu_user_features = COMMON_USER_POWER7,
395 .icache_bsize = 128,
396 .dcache_bsize = 128,
397 .num_pmcs = 6,
398 .pmc_type = PPC_PMC_IBM,
399 .cpu_setup = __setup_cpu_power7,
400 .cpu_restore = __restore_cpu_power7,
401 .oprofile_cpu_type = "ppc64/power7",
402 .oprofile_type = PPC_OPROFILE_POWER4,
403 .oprofile_mmcra_sihv = POWER6_MMCRA_SIHV,
404 .oprofile_mmcra_sipr = POWER6_MMCRA_SIPR,
405 .oprofile_mmcra_clear = POWER6_MMCRA_THRM |
406 POWER6_MMCRA_OTHER,
407 .platform = "power7",
408 },
384 { /* Cell Broadband Engine */ 409 { /* Cell Broadband Engine */
385 .pvr_mask = 0xffff0000, 410 .pvr_mask = 0xffff0000,
386 .pvr_value = 0x00700000, 411 .pvr_value = 0x00700000,