diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/mips/include/asm/cpu-features.h | 3 | ||||
| -rw-r--r-- | arch/mips/include/asm/cpu.h | 1 | ||||
| -rw-r--r-- | arch/mips/include/asm/mipsregs.h | 1 | ||||
| -rw-r--r-- | arch/mips/kernel/cpu-probe.c | 6 |
4 files changed, 10 insertions, 1 deletions
diff --git a/arch/mips/include/asm/cpu-features.h b/arch/mips/include/asm/cpu-features.h index ca400f7c3f59..3af9aca65ab5 100644 --- a/arch/mips/include/asm/cpu-features.h +++ b/arch/mips/include/asm/cpu-features.h | |||
| @@ -95,6 +95,9 @@ | |||
| 95 | #ifndef cpu_has_smartmips | 95 | #ifndef cpu_has_smartmips |
| 96 | #define cpu_has_smartmips (cpu_data[0].ases & MIPS_ASE_SMARTMIPS) | 96 | #define cpu_has_smartmips (cpu_data[0].ases & MIPS_ASE_SMARTMIPS) |
| 97 | #endif | 97 | #endif |
| 98 | #ifndef cpu_has_rixi | ||
| 99 | #define cpu_has_rixi (cpu_data[0].options & MIPS_CPU_RIXI) | ||
| 100 | #endif | ||
| 98 | #ifndef kernel_uses_smartmips_rixi | 101 | #ifndef kernel_uses_smartmips_rixi |
| 99 | #define kernel_uses_smartmips_rixi 0 | 102 | #define kernel_uses_smartmips_rixi 0 |
| 100 | #endif | 103 | #endif |
diff --git a/arch/mips/include/asm/cpu.h b/arch/mips/include/asm/cpu.h index f21b7c04e95a..1037d54f0597 100644 --- a/arch/mips/include/asm/cpu.h +++ b/arch/mips/include/asm/cpu.h | |||
| @@ -319,6 +319,7 @@ enum cpu_type_enum { | |||
| 319 | #define MIPS_CPU_VINT 0x00080000 /* CPU supports MIPSR2 vectored interrupts */ | 319 | #define MIPS_CPU_VINT 0x00080000 /* CPU supports MIPSR2 vectored interrupts */ |
| 320 | #define MIPS_CPU_VEIC 0x00100000 /* CPU supports MIPSR2 external interrupt controller mode */ | 320 | #define MIPS_CPU_VEIC 0x00100000 /* CPU supports MIPSR2 external interrupt controller mode */ |
| 321 | #define MIPS_CPU_ULRI 0x00200000 /* CPU has ULRI feature */ | 321 | #define MIPS_CPU_ULRI 0x00200000 /* CPU has ULRI feature */ |
| 322 | #define MIPS_CPU_RIXI 0x00400000 /* CPU has TLB Read/eXec Inhibit */ | ||
| 322 | 323 | ||
| 323 | /* | 324 | /* |
| 324 | * CPU ASE encodings | 325 | * CPU ASE encodings |
diff --git a/arch/mips/include/asm/mipsregs.h b/arch/mips/include/asm/mipsregs.h index 7f87d824eeb0..4199dd3f8d54 100644 --- a/arch/mips/include/asm/mipsregs.h +++ b/arch/mips/include/asm/mipsregs.h | |||
| @@ -590,6 +590,7 @@ | |||
| 590 | #define MIPS_CONF3_VEIC (_ULCAST_(1) << 6) | 590 | #define MIPS_CONF3_VEIC (_ULCAST_(1) << 6) |
| 591 | #define MIPS_CONF3_LPA (_ULCAST_(1) << 7) | 591 | #define MIPS_CONF3_LPA (_ULCAST_(1) << 7) |
| 592 | #define MIPS_CONF3_DSP (_ULCAST_(1) << 10) | 592 | #define MIPS_CONF3_DSP (_ULCAST_(1) << 10) |
| 593 | #define MIPS_CONF3_RXI (_ULCAST_(1) << 12) | ||
| 593 | #define MIPS_CONF3_ULRI (_ULCAST_(1) << 13) | 594 | #define MIPS_CONF3_ULRI (_ULCAST_(1) << 13) |
| 594 | 595 | ||
| 595 | #define MIPS_CONF4_MMUSIZEEXT (_ULCAST_(255) << 0) | 596 | #define MIPS_CONF4_MMUSIZEEXT (_ULCAST_(255) << 0) |
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c index 1b51046191e8..0beb75fb3980 100644 --- a/arch/mips/kernel/cpu-probe.c +++ b/arch/mips/kernel/cpu-probe.c | |||
| @@ -421,8 +421,12 @@ static inline unsigned int decode_config3(struct cpuinfo_mips *c) | |||
| 421 | 421 | ||
| 422 | config3 = read_c0_config3(); | 422 | config3 = read_c0_config3(); |
| 423 | 423 | ||
| 424 | if (config3 & MIPS_CONF3_SM) | 424 | if (config3 & MIPS_CONF3_SM) { |
| 425 | c->ases |= MIPS_ASE_SMARTMIPS; | 425 | c->ases |= MIPS_ASE_SMARTMIPS; |
| 426 | c->options |= MIPS_CPU_RIXI; | ||
| 427 | } | ||
| 428 | if (config3 & MIPS_CONF3_RXI) | ||
| 429 | c->options |= MIPS_CPU_RIXI; | ||
| 426 | if (config3 & MIPS_CONF3_DSP) | 430 | if (config3 & MIPS_CONF3_DSP) |
| 427 | c->ases |= MIPS_ASE_DSP; | 431 | c->ases |= MIPS_ASE_DSP; |
| 428 | if (config3 & MIPS_CONF3_VINT) | 432 | if (config3 & MIPS_CONF3_VINT) |
