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 | |
| 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>
| -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); |
