diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2011-04-14 18:32:01 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2011-04-26 23:02:02 -0400 |
commit | 76b4eda866c4936af8d696f040abea56bf688e16 (patch) | |
tree | 8b4b6279353fa3d726e5fa95822f0e05b27456c7 /arch/powerpc/kernel/cputable.c | |
parent | 411e689d929d5fc2e9066e30de55e8bcdbd573ad (diff) |
powerpc: Add A2 cpu support
Add the cputable entry, regs and setup & restore entries for
the PowerPC A2 core.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel/cputable.c')
-rw-r--r-- | arch/powerpc/kernel/cputable.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index b65b4908d3c7..3d7b65ad4962 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c | |||
@@ -62,10 +62,12 @@ extern void __setup_cpu_745x(unsigned long offset, struct cpu_spec* spec); | |||
62 | extern void __setup_cpu_ppc970(unsigned long offset, struct cpu_spec* spec); | 62 | extern void __setup_cpu_ppc970(unsigned long offset, struct cpu_spec* spec); |
63 | extern void __setup_cpu_ppc970MP(unsigned long offset, struct cpu_spec* spec); | 63 | extern void __setup_cpu_ppc970MP(unsigned long offset, struct cpu_spec* spec); |
64 | extern void __setup_cpu_pa6t(unsigned long offset, struct cpu_spec* spec); | 64 | extern void __setup_cpu_pa6t(unsigned long offset, struct cpu_spec* spec); |
65 | extern void __setup_cpu_a2(unsigned long offset, struct cpu_spec* spec); | ||
65 | extern void __restore_cpu_pa6t(void); | 66 | extern void __restore_cpu_pa6t(void); |
66 | extern void __restore_cpu_ppc970(void); | 67 | extern void __restore_cpu_ppc970(void); |
67 | extern void __setup_cpu_power7(unsigned long offset, struct cpu_spec* spec); | 68 | extern void __setup_cpu_power7(unsigned long offset, struct cpu_spec* spec); |
68 | extern void __restore_cpu_power7(void); | 69 | extern void __restore_cpu_power7(void); |
70 | extern void __restore_cpu_a2(void); | ||
69 | #endif /* CONFIG_PPC64 */ | 71 | #endif /* CONFIG_PPC64 */ |
70 | #if defined(CONFIG_E500) | 72 | #if defined(CONFIG_E500) |
71 | extern void __setup_cpu_e5500(unsigned long offset, struct cpu_spec* spec); | 73 | extern void __setup_cpu_e5500(unsigned long offset, struct cpu_spec* spec); |
@@ -2011,7 +2013,26 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
2011 | #endif /* CONFIG_PPC32 */ | 2013 | #endif /* CONFIG_PPC32 */ |
2012 | #endif /* CONFIG_E500 */ | 2014 | #endif /* CONFIG_E500 */ |
2013 | 2015 | ||
2014 | #ifdef CONFIG_PPC_BOOK3E_64 | 2016 | #ifdef CONFIG_PPC_A2 |
2017 | { /* Standard A2 (>= DD2) + FPU core */ | ||
2018 | .pvr_mask = 0xffff0000, | ||
2019 | .pvr_value = 0x00480000, | ||
2020 | .cpu_name = "A2 (>= DD2)", | ||
2021 | .cpu_features = CPU_FTRS_A2, | ||
2022 | .cpu_user_features = COMMON_USER_PPC64, | ||
2023 | .mmu_features = MMU_FTR_TYPE_3E | MMU_FTR_USE_TLBILX | | ||
2024 | MMU_FTR_USE_TLBIVAX_BCAST | | ||
2025 | MMU_FTR_LOCK_BCAST_INVAL | | ||
2026 | MMU_FTR_USE_TLBRSRV | | ||
2027 | MMU_FTR_USE_PAIRED_MAS, | ||
2028 | .icache_bsize = 64, | ||
2029 | .dcache_bsize = 64, | ||
2030 | .num_pmcs = 0, | ||
2031 | .cpu_setup = __setup_cpu_a2, | ||
2032 | .cpu_restore = __restore_cpu_a2, | ||
2033 | .machine_check = machine_check_generic, | ||
2034 | .platform = "ppca2", | ||
2035 | }, | ||
2015 | { /* This is a default entry to get going, to be replaced by | 2036 | { /* This is a default entry to get going, to be replaced by |
2016 | * a real one at some stage | 2037 | * a real one at some stage |
2017 | */ | 2038 | */ |
@@ -2032,7 +2053,7 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
2032 | .machine_check = machine_check_generic, | 2053 | .machine_check = machine_check_generic, |
2033 | .platform = "power6", | 2054 | .platform = "power6", |
2034 | }, | 2055 | }, |
2035 | #endif | 2056 | #endif /* CONFIG_PPC_A2 */ |
2036 | }; | 2057 | }; |
2037 | 2058 | ||
2038 | static struct cpu_spec the_cpu_spec; | 2059 | static struct cpu_spec the_cpu_spec; |