mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-06 10:57:46 +00:00
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>
This commit is contained in:
parent
61c4f2c81c
commit
a7117c6bdd
2 changed files with 83 additions and 0 deletions
|
@ -33,6 +33,7 @@
|
|||
#define PRID_COMP_TOSHIBA 0x070000
|
||||
#define PRID_COMP_LSI 0x080000
|
||||
#define PRID_COMP_LEXRA 0x0b0000
|
||||
#define PRID_COMP_NETLOGIC 0x0c0000
|
||||
#define PRID_COMP_CAVIUM 0x0d0000
|
||||
#define PRID_COMP_INGENIC 0xd00000
|
||||
|
||||
|
@ -141,6 +142,31 @@
|
|||
|
||||
#define PRID_IMP_JZRISC 0x0200
|
||||
|
||||
/*
|
||||
* These are the PRID's for when 23:16 == PRID_COMP_NETLOGIC
|
||||
*/
|
||||
#define PRID_IMP_NETLOGIC_XLR732 0x0000
|
||||
#define PRID_IMP_NETLOGIC_XLR716 0x0200
|
||||
#define PRID_IMP_NETLOGIC_XLR532 0x0900
|
||||
#define PRID_IMP_NETLOGIC_XLR308 0x0600
|
||||
#define PRID_IMP_NETLOGIC_XLR532C 0x0800
|
||||
#define PRID_IMP_NETLOGIC_XLR516C 0x0a00
|
||||
#define PRID_IMP_NETLOGIC_XLR508C 0x0b00
|
||||
#define PRID_IMP_NETLOGIC_XLR308C 0x0f00
|
||||
#define PRID_IMP_NETLOGIC_XLS608 0x8000
|
||||
#define PRID_IMP_NETLOGIC_XLS408 0x8800
|
||||
#define PRID_IMP_NETLOGIC_XLS404 0x8c00
|
||||
#define PRID_IMP_NETLOGIC_XLS208 0x8e00
|
||||
#define PRID_IMP_NETLOGIC_XLS204 0x8f00
|
||||
#define PRID_IMP_NETLOGIC_XLS108 0xce00
|
||||
#define PRID_IMP_NETLOGIC_XLS104 0xcf00
|
||||
#define PRID_IMP_NETLOGIC_XLS616B 0x4000
|
||||
#define PRID_IMP_NETLOGIC_XLS608B 0x4a00
|
||||
#define PRID_IMP_NETLOGIC_XLS416B 0x4400
|
||||
#define PRID_IMP_NETLOGIC_XLS412B 0x4c00
|
||||
#define PRID_IMP_NETLOGIC_XLS408B 0x4e00
|
||||
#define PRID_IMP_NETLOGIC_XLS404B 0x4f00
|
||||
|
||||
/*
|
||||
* Definitions for 7:0 on legacy processors
|
||||
*/
|
||||
|
@ -234,6 +260,7 @@ enum cpu_type_enum {
|
|||
*/
|
||||
CPU_5KC, CPU_20KC, CPU_25KF, CPU_SB1, CPU_SB1A, CPU_LOONGSON2,
|
||||
CPU_CAVIUM_OCTEON, CPU_CAVIUM_OCTEON_PLUS, CPU_CAVIUM_OCTEON2,
|
||||
CPU_XLR,
|
||||
|
||||
CPU_LAST
|
||||
};
|
||||
|
|
|
@ -988,6 +988,59 @@ static inline void cpu_probe_ingenic(struct cpuinfo_mips *c, unsigned int cpu)
|
|||
}
|
||||
}
|
||||
|
||||
static inline void cpu_probe_netlogic(struct cpuinfo_mips *c, int cpu)
|
||||
{
|
||||
decode_configs(c);
|
||||
|
||||
c->options = (MIPS_CPU_TLB |
|
||||
MIPS_CPU_4KEX |
|
||||
MIPS_CPU_COUNTER |
|
||||
MIPS_CPU_DIVEC |
|
||||
MIPS_CPU_WATCH |
|
||||
MIPS_CPU_EJTAG |
|
||||
MIPS_CPU_LLSC);
|
||||
|
||||
switch (c->processor_id & 0xff00) {
|
||||
case PRID_IMP_NETLOGIC_XLR732:
|
||||
case PRID_IMP_NETLOGIC_XLR716:
|
||||
case PRID_IMP_NETLOGIC_XLR532:
|
||||
case PRID_IMP_NETLOGIC_XLR308:
|
||||
case PRID_IMP_NETLOGIC_XLR532C:
|
||||
case PRID_IMP_NETLOGIC_XLR516C:
|
||||
case PRID_IMP_NETLOGIC_XLR508C:
|
||||
case PRID_IMP_NETLOGIC_XLR308C:
|
||||
c->cputype = CPU_XLR;
|
||||
__cpu_name[cpu] = "Netlogic XLR";
|
||||
break;
|
||||
|
||||
case PRID_IMP_NETLOGIC_XLS608:
|
||||
case PRID_IMP_NETLOGIC_XLS408:
|
||||
case PRID_IMP_NETLOGIC_XLS404:
|
||||
case PRID_IMP_NETLOGIC_XLS208:
|
||||
case PRID_IMP_NETLOGIC_XLS204:
|
||||
case PRID_IMP_NETLOGIC_XLS108:
|
||||
case PRID_IMP_NETLOGIC_XLS104:
|
||||
case PRID_IMP_NETLOGIC_XLS616B:
|
||||
case PRID_IMP_NETLOGIC_XLS608B:
|
||||
case PRID_IMP_NETLOGIC_XLS416B:
|
||||
case PRID_IMP_NETLOGIC_XLS412B:
|
||||
case PRID_IMP_NETLOGIC_XLS408B:
|
||||
case PRID_IMP_NETLOGIC_XLS404B:
|
||||
c->cputype = CPU_XLR;
|
||||
__cpu_name[cpu] = "Netlogic XLS";
|
||||
break;
|
||||
|
||||
default:
|
||||
printk(KERN_INFO "Unknown Netlogic chip id [%02x]!\n",
|
||||
c->processor_id);
|
||||
c->cputype = CPU_XLR;
|
||||
break;
|
||||
}
|
||||
|
||||
c->isa_level = MIPS_CPU_ISA_M64R1;
|
||||
c->tlbsize = ((read_c0_config1() >> 25) & 0x3f) + 1;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_64BIT
|
||||
/* For use by uaccess.h */
|
||||
u64 __ua_limit;
|
||||
|
@ -1035,6 +1088,9 @@ __cpuinit void cpu_probe(void)
|
|||
case PRID_COMP_INGENIC:
|
||||
cpu_probe_ingenic(c, cpu);
|
||||
break;
|
||||
case PRID_COMP_NETLOGIC:
|
||||
cpu_probe_netlogic(c, cpu);
|
||||
break;
|
||||
}
|
||||
|
||||
BUG_ON(!__cpu_name[cpu]);
|
||||
|
|
Loading…
Reference in a new issue