diff options
Diffstat (limited to 'arch/powerpc/kernel/cputable.c')
-rw-r--r-- | arch/powerpc/kernel/cputable.c | 25 |
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); | |||
53 | extern void __setup_cpu_pa6t(unsigned long offset, struct cpu_spec* spec); | 53 | extern void __setup_cpu_pa6t(unsigned long offset, struct cpu_spec* spec); |
54 | extern void __restore_cpu_pa6t(void); | 54 | extern void __restore_cpu_pa6t(void); |
55 | extern void __restore_cpu_ppc970(void); | 55 | extern void __restore_cpu_ppc970(void); |
56 | extern void __setup_cpu_power7(unsigned long offset, struct cpu_spec* spec); | ||
57 | extern 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, |