aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/cpu-probe.c
diff options
context:
space:
mode:
authorAurelien Jarno <aurelien@aurel32.net>2007-09-25 09:40:12 -0400
committerRalf Baechle <ralf@linux-mips.org>2007-10-11 18:46:02 -0400
commit1c0c13eb935c95fd2ca0b0aca6dd4860487fb242 (patch)
treea274a6e2e56f519900fb35c544ddf279f38ca8d6 /arch/mips/kernel/cpu-probe.c
parentea202c632a52c4a83f1bd82d8d06bc8e04f2689a (diff)
[MIPS] Add support for BCM47XX CPUs.
Note that the BCM4710 does not support the wait instruction, this is not a mistake in the code. It originally comes from the OpenWrt patches. Cc: Michael Buesch <mb@bu3sch.de> Cc: Felix Fietkau <nbd@openwrt.org> Cc: Florian Schirmer <jolt@tuxbox.org> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel/cpu-probe.c')
-rw-r--r--arch/mips/kernel/cpu-probe.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
index 3e004161ebd5..97c03865c06a 100644
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
@@ -159,6 +159,7 @@ static inline void check_wait(void)
159 case CPU_5KC: 159 case CPU_5KC:
160 case CPU_25KF: 160 case CPU_25KF:
161 case CPU_PR4450: 161 case CPU_PR4450:
162 case CPU_BCM3302:
162 cpu_wait = r4k_wait; 163 cpu_wait = r4k_wait;
163 break; 164 break;
164 165
@@ -793,6 +794,22 @@ static inline void cpu_probe_philips(struct cpuinfo_mips *c)
793} 794}
794 795
795 796
797static inline void cpu_probe_broadcom(struct cpuinfo_mips *c)
798{
799 decode_configs(c);
800 switch (c->processor_id & 0xff00) {
801 case PRID_IMP_BCM3302:
802 c->cputype = CPU_BCM3302;
803 break;
804 case PRID_IMP_BCM4710:
805 c->cputype = CPU_BCM4710;
806 break;
807 default:
808 c->cputype = CPU_UNKNOWN;
809 break;
810 }
811}
812
796__init void cpu_probe(void) 813__init void cpu_probe(void)
797{ 814{
798 struct cpuinfo_mips *c = &current_cpu_data; 815 struct cpuinfo_mips *c = &current_cpu_data;
@@ -815,6 +832,9 @@ __init void cpu_probe(void)
815 case PRID_COMP_SIBYTE: 832 case PRID_COMP_SIBYTE:
816 cpu_probe_sibyte(c); 833 cpu_probe_sibyte(c);
817 break; 834 break;
835 case PRID_COMP_BROADCOM:
836 cpu_probe_broadcom(c);
837 break;
818 case PRID_COMP_SANDCRAFT: 838 case PRID_COMP_SANDCRAFT:
819 cpu_probe_sandcraft(c); 839 cpu_probe_sandcraft(c);
820 break; 840 break;