diff options
author | Jayachandran C <jayachandranc@netlogicmicro.com> | 2011-05-11 02:34:58 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2011-05-19 04:55:39 -0400 |
commit | a7117c6bddcbfff2fa237a14a853b32cb94bf59a (patch) | |
tree | 3a81d4194766dedf274985047022d3441074a3db /arch/mips/kernel/cpu-probe.c | |
parent | 61c4f2c81c61f73549928dfd9f3e8f26aa36a8cf (diff) |
MIPS: Netlogic XLR/XLS processor IDs.
Add Netlogic Microsystems company ID and processor IDs for XLR
and XLS processors for CPU probe. Add CPU_XLR to cpu_type_enum.
Signed-off-by: Jayachandran C <jayachandranc@netlogicmicro.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/2367/
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 | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c index f65d4c8c65a6..c7b7eb24e277 100644 --- a/arch/mips/kernel/cpu-probe.c +++ b/arch/mips/kernel/cpu-probe.c | |||
@@ -988,6 +988,59 @@ static inline void cpu_probe_ingenic(struct cpuinfo_mips *c, unsigned int cpu) | |||
988 | } | 988 | } |
989 | } | 989 | } |
990 | 990 | ||
991 | static inline void cpu_probe_netlogic(struct cpuinfo_mips *c, int cpu) | ||
992 | { | ||
993 | decode_configs(c); | ||
994 | |||
995 | c->options = (MIPS_CPU_TLB | | ||
996 | MIPS_CPU_4KEX | | ||
997 | MIPS_CPU_COUNTER | | ||
998 | MIPS_CPU_DIVEC | | ||
999 | MIPS_CPU_WATCH | | ||
1000 | MIPS_CPU_EJTAG | | ||
1001 | MIPS_CPU_LLSC); | ||
1002 | |||
1003 | switch (c->processor_id & 0xff00) { | ||
1004 | case PRID_IMP_NETLOGIC_XLR732: | ||
1005 | case PRID_IMP_NETLOGIC_XLR716: | ||
1006 | case PRID_IMP_NETLOGIC_XLR532: | ||
1007 | case PRID_IMP_NETLOGIC_XLR308: | ||
1008 | case PRID_IMP_NETLOGIC_XLR532C: | ||
1009 | case PRID_IMP_NETLOGIC_XLR516C: | ||
1010 | case PRID_IMP_NETLOGIC_XLR508C: | ||
1011 | case PRID_IMP_NETLOGIC_XLR308C: | ||
1012 | c->cputype = CPU_XLR; | ||
1013 | __cpu_name[cpu] = "Netlogic XLR"; | ||
1014 | break; | ||
1015 | |||
1016 | case PRID_IMP_NETLOGIC_XLS608: | ||
1017 | case PRID_IMP_NETLOGIC_XLS408: | ||
1018 | case PRID_IMP_NETLOGIC_XLS404: | ||
1019 | case PRID_IMP_NETLOGIC_XLS208: | ||
1020 | case PRID_IMP_NETLOGIC_XLS204: | ||
1021 | case PRID_IMP_NETLOGIC_XLS108: | ||
1022 | case PRID_IMP_NETLOGIC_XLS104: | ||
1023 | case PRID_IMP_NETLOGIC_XLS616B: | ||
1024 | case PRID_IMP_NETLOGIC_XLS608B: | ||
1025 | case PRID_IMP_NETLOGIC_XLS416B: | ||
1026 | case PRID_IMP_NETLOGIC_XLS412B: | ||
1027 | case PRID_IMP_NETLOGIC_XLS408B: | ||
1028 | case PRID_IMP_NETLOGIC_XLS404B: | ||
1029 | c->cputype = CPU_XLR; | ||
1030 | __cpu_name[cpu] = "Netlogic XLS"; | ||
1031 | break; | ||
1032 | |||
1033 | default: | ||
1034 | printk(KERN_INFO "Unknown Netlogic chip id [%02x]!\n", | ||
1035 | c->processor_id); | ||
1036 | c->cputype = CPU_XLR; | ||
1037 | break; | ||
1038 | } | ||
1039 | |||
1040 | c->isa_level = MIPS_CPU_ISA_M64R1; | ||
1041 | c->tlbsize = ((read_c0_config1() >> 25) & 0x3f) + 1; | ||
1042 | } | ||
1043 | |||
991 | #ifdef CONFIG_64BIT | 1044 | #ifdef CONFIG_64BIT |
992 | /* For use by uaccess.h */ | 1045 | /* For use by uaccess.h */ |
993 | u64 __ua_limit; | 1046 | u64 __ua_limit; |
@@ -1035,6 +1088,9 @@ __cpuinit void cpu_probe(void) | |||
1035 | case PRID_COMP_INGENIC: | 1088 | case PRID_COMP_INGENIC: |
1036 | cpu_probe_ingenic(c, cpu); | 1089 | cpu_probe_ingenic(c, cpu); |
1037 | break; | 1090 | break; |
1091 | case PRID_COMP_NETLOGIC: | ||
1092 | cpu_probe_netlogic(c, cpu); | ||
1093 | break; | ||
1038 | } | 1094 | } |
1039 | 1095 | ||
1040 | BUG_ON(!__cpu_name[cpu]); | 1096 | BUG_ON(!__cpu_name[cpu]); |