Commit 9c7d5768 authored by Leonid Yegoshin's avatar Leonid Yegoshin Committed by Markos Chandras

MIPS: kernel: traps: Add MIPS R6 related definitions

Add MIPS R6 support to cache and ftlb exceptions, as well as
to the hwrena and ebase register configuration.
Signed-off-by: default avatarLeonid Yegoshin <Leonid.Yegoshin@imgtec.com>
Signed-off-by: default avatarMarkos Chandras <markos.chandras@imgtec.com>
parent 515a6393
...@@ -1649,7 +1649,7 @@ asmlinkage void cache_parity_error(void) ...@@ -1649,7 +1649,7 @@ asmlinkage void cache_parity_error(void)
printk("Decoded c0_cacheerr: %s cache fault in %s reference.\n", printk("Decoded c0_cacheerr: %s cache fault in %s reference.\n",
reg_val & (1<<30) ? "secondary" : "primary", reg_val & (1<<30) ? "secondary" : "primary",
reg_val & (1<<31) ? "data" : "insn"); reg_val & (1<<31) ? "data" : "insn");
if (cpu_has_mips_r2 && if ((cpu_has_mips_r2_r6) &&
((current_cpu_data.processor_id & 0xff0000) == PRID_COMP_MIPS)) { ((current_cpu_data.processor_id & 0xff0000) == PRID_COMP_MIPS)) {
pr_err("Error bits: %s%s%s%s%s%s%s%s\n", pr_err("Error bits: %s%s%s%s%s%s%s%s\n",
reg_val & (1<<29) ? "ED " : "", reg_val & (1<<29) ? "ED " : "",
...@@ -1689,7 +1689,7 @@ asmlinkage void do_ftlb(void) ...@@ -1689,7 +1689,7 @@ asmlinkage void do_ftlb(void)
unsigned int reg_val; unsigned int reg_val;
/* For the moment, report the problem and hang. */ /* For the moment, report the problem and hang. */
if (cpu_has_mips_r2 && if ((cpu_has_mips_r2_r6) &&
((current_cpu_data.processor_id & 0xff0000) == PRID_COMP_MIPS)) { ((current_cpu_data.processor_id & 0xff0000) == PRID_COMP_MIPS)) {
pr_err("FTLB error exception, cp0_ecc=0x%08x:\n", pr_err("FTLB error exception, cp0_ecc=0x%08x:\n",
read_c0_ecc()); read_c0_ecc());
...@@ -1978,7 +1978,7 @@ static void configure_hwrena(void) ...@@ -1978,7 +1978,7 @@ static void configure_hwrena(void)
{ {
unsigned int hwrena = cpu_hwrena_impl_bits; unsigned int hwrena = cpu_hwrena_impl_bits;
if (cpu_has_mips_r2) if (cpu_has_mips_r2_r6)
hwrena |= 0x0000000f; hwrena |= 0x0000000f;
if (!noulri && cpu_has_userlocal) if (!noulri && cpu_has_userlocal)
...@@ -2022,7 +2022,7 @@ void per_cpu_trap_init(bool is_boot_cpu) ...@@ -2022,7 +2022,7 @@ void per_cpu_trap_init(bool is_boot_cpu)
* o read IntCtl.IPTI to determine the timer interrupt * o read IntCtl.IPTI to determine the timer interrupt
* o read IntCtl.IPPCI to determine the performance counter interrupt * o read IntCtl.IPPCI to determine the performance counter interrupt
*/ */
if (cpu_has_mips_r2) { if (cpu_has_mips_r2_r6) {
cp0_compare_irq_shift = CAUSEB_TI - CAUSEB_IP; cp0_compare_irq_shift = CAUSEB_TI - CAUSEB_IP;
cp0_compare_irq = (read_c0_intctl() >> INTCTLB_IPTI) & 7; cp0_compare_irq = (read_c0_intctl() >> INTCTLB_IPTI) & 7;
cp0_perfcount_irq = (read_c0_intctl() >> INTCTLB_IPPCI) & 7; cp0_perfcount_irq = (read_c0_intctl() >> INTCTLB_IPPCI) & 7;
...@@ -2113,7 +2113,7 @@ void __init trap_init(void) ...@@ -2113,7 +2113,7 @@ void __init trap_init(void)
#else #else
ebase = CKSEG0; ebase = CKSEG0;
#endif #endif
if (cpu_has_mips_r2) if (cpu_has_mips_r2_r6)
ebase += (read_c0_ebase() & 0x3ffff000); ebase += (read_c0_ebase() & 0x3ffff000);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment