diff options
author | Maxime Bizon <mbizon@freebox.fr> | 2009-08-18 08:23:37 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2009-09-17 14:07:52 -0400 |
commit | 0de663ef8627f35fda9106a8faaca512f29e493e (patch) | |
tree | 99e6b080199dae6ee2ced2edb91c5e29b1298c2f /arch/mips | |
parent | 512254ba8383c5dd7eca6819d0da1ce2fe9ede47 (diff) |
MIPS: BCM63xx: Add Broadcom 63xx CPU definitions.
Todo: Nothing ever detects CPU_BCM6338 but the code tests for it anyway.
Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips')
-rw-r--r-- | arch/mips/include/asm/cpu.h | 7 | ||||
-rw-r--r-- | arch/mips/kernel/cpu-probe.c | 23 | ||||
-rw-r--r-- | arch/mips/mm/tlbex.c | 4 |
3 files changed, 34 insertions, 0 deletions
diff --git a/arch/mips/include/asm/cpu.h b/arch/mips/include/asm/cpu.h index 3bdc0e3d89cc..4b96d1a36056 100644 --- a/arch/mips/include/asm/cpu.h +++ b/arch/mips/include/asm/cpu.h | |||
@@ -113,6 +113,12 @@ | |||
113 | 113 | ||
114 | #define PRID_IMP_BCM4710 0x4000 | 114 | #define PRID_IMP_BCM4710 0x4000 |
115 | #define PRID_IMP_BCM3302 0x9000 | 115 | #define PRID_IMP_BCM3302 0x9000 |
116 | #define PRID_IMP_BCM6338 0x9000 | ||
117 | #define PRID_IMP_BCM6345 0x8000 | ||
118 | #define PRID_IMP_BCM6348 0x9100 | ||
119 | #define PRID_IMP_BCM4350 0xA000 | ||
120 | #define PRID_REV_BCM6358 0x0010 | ||
121 | #define PRID_REV_BCM6368 0x0030 | ||
116 | 122 | ||
117 | /* | 123 | /* |
118 | * These are the PRID's for when 23:16 == PRID_COMP_CAVIUM | 124 | * These are the PRID's for when 23:16 == PRID_COMP_CAVIUM |
@@ -210,6 +216,7 @@ enum cpu_type_enum { | |||
210 | */ | 216 | */ |
211 | CPU_4KC, CPU_4KEC, CPU_4KSC, CPU_24K, CPU_34K, CPU_1004K, CPU_74K, | 217 | CPU_4KC, CPU_4KEC, CPU_4KSC, CPU_24K, CPU_34K, CPU_1004K, CPU_74K, |
212 | CPU_ALCHEMY, CPU_PR4450, CPU_BCM3302, CPU_BCM4710, | 218 | CPU_ALCHEMY, CPU_PR4450, CPU_BCM3302, CPU_BCM4710, |
219 | CPU_BCM6338, CPU_BCM6345, CPU_BCM6348, CPU_BCM6358, | ||
213 | 220 | ||
214 | /* | 221 | /* |
215 | * MIPS64 class processors | 222 | * MIPS64 class processors |
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c index 4579d5c12da9..f709657e4dcd 100644 --- a/arch/mips/kernel/cpu-probe.c +++ b/arch/mips/kernel/cpu-probe.c | |||
@@ -156,6 +156,9 @@ void __init check_wait(void) | |||
156 | case CPU_25KF: | 156 | case CPU_25KF: |
157 | case CPU_PR4450: | 157 | case CPU_PR4450: |
158 | case CPU_BCM3302: | 158 | case CPU_BCM3302: |
159 | case CPU_BCM6338: | ||
160 | case CPU_BCM6348: | ||
161 | case CPU_BCM6358: | ||
159 | case CPU_CAVIUM_OCTEON: | 162 | case CPU_CAVIUM_OCTEON: |
160 | cpu_wait = r4k_wait; | 163 | cpu_wait = r4k_wait; |
161 | break; | 164 | break; |
@@ -854,6 +857,7 @@ static inline void cpu_probe_broadcom(struct cpuinfo_mips *c, unsigned int cpu) | |||
854 | decode_configs(c); | 857 | decode_configs(c); |
855 | switch (c->processor_id & 0xff00) { | 858 | switch (c->processor_id & 0xff00) { |
856 | case PRID_IMP_BCM3302: | 859 | case PRID_IMP_BCM3302: |
860 | /* same as PRID_IMP_BCM6338 */ | ||
857 | c->cputype = CPU_BCM3302; | 861 | c->cputype = CPU_BCM3302; |
858 | __cpu_name[cpu] = "Broadcom BCM3302"; | 862 | __cpu_name[cpu] = "Broadcom BCM3302"; |
859 | break; | 863 | break; |
@@ -861,6 +865,25 @@ static inline void cpu_probe_broadcom(struct cpuinfo_mips *c, unsigned int cpu) | |||
861 | c->cputype = CPU_BCM4710; | 865 | c->cputype = CPU_BCM4710; |
862 | __cpu_name[cpu] = "Broadcom BCM4710"; | 866 | __cpu_name[cpu] = "Broadcom BCM4710"; |
863 | break; | 867 | break; |
868 | case PRID_IMP_BCM6345: | ||
869 | c->cputype = CPU_BCM6345; | ||
870 | __cpu_name[cpu] = "Broadcom BCM6345"; | ||
871 | break; | ||
872 | case PRID_IMP_BCM6348: | ||
873 | c->cputype = CPU_BCM6348; | ||
874 | __cpu_name[cpu] = "Broadcom BCM6348"; | ||
875 | break; | ||
876 | case PRID_IMP_BCM4350: | ||
877 | switch (c->processor_id & 0xf0) { | ||
878 | case PRID_REV_BCM6358: | ||
879 | c->cputype = CPU_BCM6358; | ||
880 | __cpu_name[cpu] = "Broadcom BCM6358"; | ||
881 | break; | ||
882 | default: | ||
883 | c->cputype = CPU_UNKNOWN; | ||
884 | break; | ||
885 | } | ||
886 | break; | ||
864 | } | 887 | } |
865 | } | 888 | } |
866 | 889 | ||
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c index bc66f57f3257..bb1719a55d22 100644 --- a/arch/mips/mm/tlbex.c +++ b/arch/mips/mm/tlbex.c | |||
@@ -321,6 +321,10 @@ static void __cpuinit build_tlb_write_entry(u32 **p, struct uasm_label **l, | |||
321 | case CPU_BCM3302: | 321 | case CPU_BCM3302: |
322 | case CPU_BCM4710: | 322 | case CPU_BCM4710: |
323 | case CPU_LOONGSON2: | 323 | case CPU_LOONGSON2: |
324 | case CPU_BCM6338: | ||
325 | case CPU_BCM6345: | ||
326 | case CPU_BCM6348: | ||
327 | case CPU_BCM6358: | ||
324 | case CPU_R5500: | 328 | case CPU_R5500: |
325 | if (m4kc_tlbp_war()) | 329 | if (m4kc_tlbp_war()) |
326 | uasm_i_nop(p); | 330 | uasm_i_nop(p); |