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.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
index 19599ef352bc..c60bbec25c1f 100644
--- a/arch/powerpc/kernel/cputable.c
+++ b/arch/powerpc/kernel/cputable.c
@@ -74,7 +74,9 @@ extern void __restore_cpu_a2(void);
74#endif /* CONFIG_PPC64 */ 74#endif /* CONFIG_PPC64 */
75#if defined(CONFIG_E500) 75#if defined(CONFIG_E500)
76extern void __setup_cpu_e5500(unsigned long offset, struct cpu_spec* spec); 76extern void __setup_cpu_e5500(unsigned long offset, struct cpu_spec* spec);
77extern void __setup_cpu_e6500(unsigned long offset, struct cpu_spec* spec);
77extern void __restore_cpu_e5500(void); 78extern void __restore_cpu_e5500(void);
79extern void __restore_cpu_e6500(void);
78#endif /* CONFIG_E500 */ 80#endif /* CONFIG_E500 */
79 81
80/* This table only contains "desktop" CPUs, it need to be filled with embedded 82/* This table only contains "desktop" CPUs, it need to be filled with embedded
@@ -96,10 +98,14 @@ extern void __restore_cpu_e5500(void);
96 PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP | \ 98 PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP | \
97 PPC_FEATURE_TRUE_LE | \ 99 PPC_FEATURE_TRUE_LE | \
98 PPC_FEATURE_PSERIES_PERFMON_COMPAT) 100 PPC_FEATURE_PSERIES_PERFMON_COMPAT)
101#define COMMON_USER2_POWER7 (PPC_FEATURE2_DSCR)
99#define COMMON_USER_POWER8 (COMMON_USER_PPC64 | PPC_FEATURE_ARCH_2_06 |\ 102#define COMMON_USER_POWER8 (COMMON_USER_PPC64 | PPC_FEATURE_ARCH_2_06 |\
100 PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP | \ 103 PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP | \
101 PPC_FEATURE_TRUE_LE | \ 104 PPC_FEATURE_TRUE_LE | \
102 PPC_FEATURE_PSERIES_PERFMON_COMPAT) 105 PPC_FEATURE_PSERIES_PERFMON_COMPAT)
106#define COMMON_USER2_POWER8 (PPC_FEATURE2_ARCH_2_07 | \
107 PPC_FEATURE2_HTM_COMP | PPC_FEATURE2_DSCR | \
108 PPC_FEATURE2_ISEL | PPC_FEATURE2_TAR)
103#define COMMON_USER_PA6T (COMMON_USER_PPC64 | PPC_FEATURE_PA6T |\ 109#define COMMON_USER_PA6T (COMMON_USER_PPC64 | PPC_FEATURE_PA6T |\
104 PPC_FEATURE_TRUE_LE | \ 110 PPC_FEATURE_TRUE_LE | \
105 PPC_FEATURE_HAS_ALTIVEC_COMP) 111 PPC_FEATURE_HAS_ALTIVEC_COMP)
@@ -426,6 +432,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
426 .cpu_name = "POWER7 (architected)", 432 .cpu_name = "POWER7 (architected)",
427 .cpu_features = CPU_FTRS_POWER7, 433 .cpu_features = CPU_FTRS_POWER7,
428 .cpu_user_features = COMMON_USER_POWER7, 434 .cpu_user_features = COMMON_USER_POWER7,
435 .cpu_user_features2 = COMMON_USER2_POWER7,
429 .mmu_features = MMU_FTRS_POWER7, 436 .mmu_features = MMU_FTRS_POWER7,
430 .icache_bsize = 128, 437 .icache_bsize = 128,
431 .dcache_bsize = 128, 438 .dcache_bsize = 128,
@@ -441,6 +448,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
441 .cpu_name = "POWER8 (architected)", 448 .cpu_name = "POWER8 (architected)",
442 .cpu_features = CPU_FTRS_POWER8, 449 .cpu_features = CPU_FTRS_POWER8,
443 .cpu_user_features = COMMON_USER_POWER8, 450 .cpu_user_features = COMMON_USER_POWER8,
451 .cpu_user_features2 = COMMON_USER2_POWER8,
444 .mmu_features = MMU_FTRS_POWER8, 452 .mmu_features = MMU_FTRS_POWER8,
445 .icache_bsize = 128, 453 .icache_bsize = 128,
446 .dcache_bsize = 128, 454 .dcache_bsize = 128,
@@ -456,6 +464,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
456 .cpu_name = "POWER7 (raw)", 464 .cpu_name = "POWER7 (raw)",
457 .cpu_features = CPU_FTRS_POWER7, 465 .cpu_features = CPU_FTRS_POWER7,
458 .cpu_user_features = COMMON_USER_POWER7, 466 .cpu_user_features = COMMON_USER_POWER7,
467 .cpu_user_features2 = COMMON_USER2_POWER7,
459 .mmu_features = MMU_FTRS_POWER7, 468 .mmu_features = MMU_FTRS_POWER7,
460 .icache_bsize = 128, 469 .icache_bsize = 128,
461 .dcache_bsize = 128, 470 .dcache_bsize = 128,
@@ -473,6 +482,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
473 .cpu_name = "POWER7+ (raw)", 482 .cpu_name = "POWER7+ (raw)",
474 .cpu_features = CPU_FTRS_POWER7, 483 .cpu_features = CPU_FTRS_POWER7,
475 .cpu_user_features = COMMON_USER_POWER7, 484 .cpu_user_features = COMMON_USER_POWER7,
485 .cpu_user_features = COMMON_USER2_POWER7,
476 .mmu_features = MMU_FTRS_POWER7, 486 .mmu_features = MMU_FTRS_POWER7,
477 .icache_bsize = 128, 487 .icache_bsize = 128,
478 .dcache_bsize = 128, 488 .dcache_bsize = 128,
@@ -490,6 +500,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
490 .cpu_name = "POWER8 (raw)", 500 .cpu_name = "POWER8 (raw)",
491 .cpu_features = CPU_FTRS_POWER8, 501 .cpu_features = CPU_FTRS_POWER8,
492 .cpu_user_features = COMMON_USER_POWER8, 502 .cpu_user_features = COMMON_USER_POWER8,
503 .cpu_user_features2 = COMMON_USER2_POWER8,
493 .mmu_features = MMU_FTRS_POWER8, 504 .mmu_features = MMU_FTRS_POWER8,
494 .icache_bsize = 128, 505 .icache_bsize = 128,
495 .dcache_bsize = 128, 506 .dcache_bsize = 128,
@@ -1993,6 +2004,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
1993 .cpu_user_features = COMMON_USER_BOOKE | 2004 .cpu_user_features = COMMON_USER_BOOKE |
1994 PPC_FEATURE_HAS_SPE_COMP | 2005 PPC_FEATURE_HAS_SPE_COMP |
1995 PPC_FEATURE_HAS_EFP_SINGLE_COMP, 2006 PPC_FEATURE_HAS_EFP_SINGLE_COMP,
2007 .cpu_user_features2 = PPC_FEATURE2_ISEL,
1996 .mmu_features = MMU_FTR_TYPE_FSL_E, 2008 .mmu_features = MMU_FTR_TYPE_FSL_E,
1997 .icache_bsize = 32, 2009 .icache_bsize = 32,
1998 .dcache_bsize = 32, 2010 .dcache_bsize = 32,
@@ -2012,6 +2024,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
2012 PPC_FEATURE_HAS_SPE_COMP | 2024 PPC_FEATURE_HAS_SPE_COMP |
2013 PPC_FEATURE_HAS_EFP_SINGLE_COMP | 2025 PPC_FEATURE_HAS_EFP_SINGLE_COMP |
2014 PPC_FEATURE_HAS_EFP_DOUBLE_COMP, 2026 PPC_FEATURE_HAS_EFP_DOUBLE_COMP,
2027 .cpu_user_features2 = PPC_FEATURE2_ISEL,
2015 .mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS, 2028 .mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS,
2016 .icache_bsize = 32, 2029 .icache_bsize = 32,
2017 .dcache_bsize = 32, 2030 .dcache_bsize = 32,
@@ -2028,6 +2041,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
2028 .cpu_name = "e500mc", 2041 .cpu_name = "e500mc",
2029 .cpu_features = CPU_FTRS_E500MC, 2042 .cpu_features = CPU_FTRS_E500MC,
2030 .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, 2043 .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
2044 .cpu_user_features2 = PPC_FEATURE2_ISEL,
2031 .mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS | 2045 .mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS |
2032 MMU_FTR_USE_TLBILX, 2046 MMU_FTR_USE_TLBILX,
2033 .icache_bsize = 64, 2047 .icache_bsize = 64,
@@ -2046,6 +2060,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
2046 .cpu_name = "e5500", 2060 .cpu_name = "e5500",
2047 .cpu_features = CPU_FTRS_E5500, 2061 .cpu_features = CPU_FTRS_E5500,
2048 .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, 2062 .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
2063 .cpu_user_features2 = PPC_FEATURE2_ISEL,
2049 .mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS | 2064 .mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS |
2050 MMU_FTR_USE_TLBILX, 2065 MMU_FTR_USE_TLBILX,
2051 .icache_bsize = 64, 2066 .icache_bsize = 64,
@@ -2065,7 +2080,9 @@ static struct cpu_spec __initdata cpu_specs[] = {
2065 .pvr_value = 0x80400000, 2080 .pvr_value = 0x80400000,
2066 .cpu_name = "e6500", 2081 .cpu_name = "e6500",
2067 .cpu_features = CPU_FTRS_E6500, 2082 .cpu_features = CPU_FTRS_E6500,
2068 .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, 2083 .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU |
2084 PPC_FEATURE_HAS_ALTIVEC_COMP,
2085 .cpu_user_features2 = PPC_FEATURE2_ISEL,
2069 .mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS | 2086 .mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS |
2070 MMU_FTR_USE_TLBILX, 2087 MMU_FTR_USE_TLBILX,
2071 .icache_bsize = 64, 2088 .icache_bsize = 64,
@@ -2073,9 +2090,9 @@ static struct cpu_spec __initdata cpu_specs[] = {
2073 .num_pmcs = 4, 2090 .num_pmcs = 4,
2074 .oprofile_cpu_type = "ppc/e6500", 2091 .oprofile_cpu_type = "ppc/e6500",
2075 .oprofile_type = PPC_OPROFILE_FSL_EMB, 2092 .oprofile_type = PPC_OPROFILE_FSL_EMB,
2076 .cpu_setup = __setup_cpu_e5500, 2093 .cpu_setup = __setup_cpu_e6500,
2077#ifndef CONFIG_PPC32 2094#ifndef CONFIG_PPC32
2078 .cpu_restore = __restore_cpu_e5500, 2095 .cpu_restore = __restore_cpu_e6500,
2079#endif 2096#endif
2080 .machine_check = machine_check_e500mc, 2097 .machine_check = machine_check_e500mc,
2081 .platform = "ppce6500", 2098 .platform = "ppce6500",