diff options
author | Aurelien Jarno <aurelien@aurel32.net> | 2007-09-25 09:40:12 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2007-10-11 18:46:02 -0400 |
commit | 1c0c13eb935c95fd2ca0b0aca6dd4860487fb242 (patch) | |
tree | a274a6e2e56f519900fb35c544ddf279f38ca8d6 /arch/mips/kernel/cpu-probe.c | |
parent | ea202c632a52c4a83f1bd82d8d06bc8e04f2689a (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.c | 20 |
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 | ||
797 | static 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 = ¤t_cpu_data; | 815 | struct cpuinfo_mips *c = ¤t_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; |