diff options
author | Steven J. Hill <Steven.Hill@imgtec.com> | 2015-02-26 19:16:38 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2015-03-19 12:39:49 -0400 |
commit | c5b367835cfc7a8ef53b9670a409ffcc95194344 (patch) | |
tree | 23a6be89021f93b09bb0f2340bc995c21bcab79b /arch/mips/kernel | |
parent | be0c37c985eddc46d0d67543898c086f60460e2e (diff) |
MIPS: Add support for XPA.
Add support for extended physical addressing (XPA) so that
32-bit platforms can access equal to or greater than 40 bits
of physical addresses.
NOTE:
1) XPA and EVA are not the same and cannot be used
simultaneously.
2) If you configure your kernel for XPA, the PTEs
and all address sizes become 64-bit.
3) Your platform MUST have working HIGHMEM support.
Signed-off-by: Steven J. Hill <Steven.Hill@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/9355/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel')
-rw-r--r-- | arch/mips/kernel/cpu-probe.c | 4 | ||||
-rw-r--r-- | arch/mips/kernel/proc.c | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c index 48dfb9de853d..ac96817d1f99 100644 --- a/arch/mips/kernel/cpu-probe.c +++ b/arch/mips/kernel/cpu-probe.c | |||
@@ -516,6 +516,10 @@ static inline unsigned int decode_config5(struct cpuinfo_mips *c) | |||
516 | c->options |= MIPS_CPU_MAAR; | 516 | c->options |= MIPS_CPU_MAAR; |
517 | if (config5 & MIPS_CONF5_LLB) | 517 | if (config5 & MIPS_CONF5_LLB) |
518 | c->options |= MIPS_CPU_RW_LLB; | 518 | c->options |= MIPS_CPU_RW_LLB; |
519 | #ifdef CONFIG_XPA | ||
520 | if (config5 & MIPS_CONF5_MVH) | ||
521 | c->options |= MIPS_CPU_XPA; | ||
522 | #endif | ||
519 | 523 | ||
520 | return config5 & MIPS_CONF_M; | 524 | return config5 & MIPS_CONF_M; |
521 | } | 525 | } |
diff --git a/arch/mips/kernel/proc.c b/arch/mips/kernel/proc.c index 130af7d26a9c..298b2b773d12 100644 --- a/arch/mips/kernel/proc.c +++ b/arch/mips/kernel/proc.c | |||
@@ -120,6 +120,7 @@ static int show_cpuinfo(struct seq_file *m, void *v) | |||
120 | if (cpu_has_msa) seq_printf(m, "%s", " msa"); | 120 | if (cpu_has_msa) seq_printf(m, "%s", " msa"); |
121 | if (cpu_has_eva) seq_printf(m, "%s", " eva"); | 121 | if (cpu_has_eva) seq_printf(m, "%s", " eva"); |
122 | if (cpu_has_htw) seq_printf(m, "%s", " htw"); | 122 | if (cpu_has_htw) seq_printf(m, "%s", " htw"); |
123 | if (cpu_has_xpa) seq_printf(m, "%s", " xpa"); | ||
123 | seq_printf(m, "\n"); | 124 | seq_printf(m, "\n"); |
124 | 125 | ||
125 | if (cpu_has_mmips) { | 126 | if (cpu_has_mmips) { |