diff options
Diffstat (limited to 'arch/mips/kernel/cpu-probe.c')
-rw-r--r-- | arch/mips/kernel/cpu-probe.c | 62 |
1 files changed, 33 insertions, 29 deletions
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c index b9378cd0ce0d..f7faa3fb79b2 100644 --- a/arch/mips/kernel/cpu-probe.c +++ b/arch/mips/kernel/cpu-probe.c | |||
@@ -181,10 +181,10 @@ void __init check_wait(void) | |||
181 | case CPU_5KC: | 181 | case CPU_5KC: |
182 | case CPU_25KF: | 182 | case CPU_25KF: |
183 | case CPU_PR4450: | 183 | case CPU_PR4450: |
184 | case CPU_BCM3302: | 184 | case CPU_BMIPS3300: |
185 | case CPU_BCM6338: | 185 | case CPU_BMIPS4350: |
186 | case CPU_BCM6348: | 186 | case CPU_BMIPS4380: |
187 | case CPU_BCM6358: | 187 | case CPU_BMIPS5000: |
188 | case CPU_CAVIUM_OCTEON: | 188 | case CPU_CAVIUM_OCTEON: |
189 | case CPU_CAVIUM_OCTEON_PLUS: | 189 | case CPU_CAVIUM_OCTEON_PLUS: |
190 | case CPU_CAVIUM_OCTEON2: | 190 | case CPU_CAVIUM_OCTEON2: |
@@ -903,33 +903,37 @@ static inline void cpu_probe_broadcom(struct cpuinfo_mips *c, unsigned int cpu) | |||
903 | { | 903 | { |
904 | decode_configs(c); | 904 | decode_configs(c); |
905 | switch (c->processor_id & 0xff00) { | 905 | switch (c->processor_id & 0xff00) { |
906 | case PRID_IMP_BCM3302: | 906 | case PRID_IMP_BMIPS32: |
907 | /* same as PRID_IMP_BCM6338 */ | 907 | c->cputype = CPU_BMIPS32; |
908 | c->cputype = CPU_BCM3302; | 908 | __cpu_name[cpu] = "Broadcom BMIPS32"; |
909 | __cpu_name[cpu] = "Broadcom BCM3302"; | 909 | break; |
910 | break; | 910 | case PRID_IMP_BMIPS3300: |
911 | case PRID_IMP_BCM4710: | 911 | case PRID_IMP_BMIPS3300_ALT: |
912 | c->cputype = CPU_BCM4710; | 912 | case PRID_IMP_BMIPS3300_BUG: |
913 | __cpu_name[cpu] = "Broadcom BCM4710"; | 913 | c->cputype = CPU_BMIPS3300; |
914 | break; | 914 | __cpu_name[cpu] = "Broadcom BMIPS3300"; |
915 | case PRID_IMP_BCM6345: | 915 | break; |
916 | c->cputype = CPU_BCM6345; | 916 | case PRID_IMP_BMIPS43XX: { |
917 | __cpu_name[cpu] = "Broadcom BCM6345"; | 917 | int rev = c->processor_id & 0xff; |
918 | |||
919 | if (rev >= PRID_REV_BMIPS4380_LO && | ||
920 | rev <= PRID_REV_BMIPS4380_HI) { | ||
921 | c->cputype = CPU_BMIPS4380; | ||
922 | __cpu_name[cpu] = "Broadcom BMIPS4380"; | ||
923 | } else { | ||
924 | c->cputype = CPU_BMIPS4350; | ||
925 | __cpu_name[cpu] = "Broadcom BMIPS4350"; | ||
926 | } | ||
918 | break; | 927 | break; |
919 | case PRID_IMP_BCM6348: | 928 | } |
920 | c->cputype = CPU_BCM6348; | 929 | case PRID_IMP_BMIPS5000: |
921 | __cpu_name[cpu] = "Broadcom BCM6348"; | 930 | c->cputype = CPU_BMIPS5000; |
931 | __cpu_name[cpu] = "Broadcom BMIPS5000"; | ||
932 | c->options |= MIPS_CPU_ULRI; | ||
922 | break; | 933 | break; |
923 | case PRID_IMP_BCM4350: | 934 | case PRID_IMP_BMIPS4KC: |
924 | switch (c->processor_id & 0xf0) { | 935 | c->cputype = CPU_4KC; |
925 | case PRID_REV_BCM6358: | 936 | __cpu_name[cpu] = "MIPS 4Kc"; |
926 | c->cputype = CPU_BCM6358; | ||
927 | __cpu_name[cpu] = "Broadcom BCM6358"; | ||
928 | break; | ||
929 | default: | ||
930 | c->cputype = CPU_UNKNOWN; | ||
931 | break; | ||
932 | } | ||
933 | break; | 937 | break; |
934 | } | 938 | } |
935 | } | 939 | } |