diff options
author | Markos Chandras <markos.chandras@imgtec.com> | 2014-01-21 04:52:23 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2014-03-26 18:09:20 -0400 |
commit | d0ba3544a5ca185f69688fa0b51b187d3e78e31a (patch) | |
tree | 2c537ab9bdd08db76db94290dfd91884674c0915 | |
parent | 2f284eac283704429f94c828d98a370c4a8f8926 (diff) |
MIPS: malta: Add support for SMP EVA
Allow secondary cores to program their segment control registers
during smp bootstrap code. This enables EVA on Malta SMP
configurations
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
-rw-r--r-- | arch/mips/include/asm/mach-malta/kernel-entry-init.h | 6 | ||||
-rw-r--r-- | arch/mips/kernel/head.S | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/arch/mips/include/asm/mach-malta/kernel-entry-init.h b/arch/mips/include/asm/mach-malta/kernel-entry-init.h index 9bace9c746d4..7c5e17a17849 100644 --- a/arch/mips/include/asm/mach-malta/kernel-entry-init.h +++ b/arch/mips/include/asm/mach-malta/kernel-entry-init.h | |||
@@ -154,6 +154,12 @@ nonsc_processor: | |||
154 | * Do SMP slave processor setup necessary before we can safely execute C code. | 154 | * Do SMP slave processor setup necessary before we can safely execute C code. |
155 | */ | 155 | */ |
156 | .macro smp_slave_setup | 156 | .macro smp_slave_setup |
157 | #ifdef CONFIG_EVA | ||
158 | sync | ||
159 | ehb | ||
160 | mfc0 t1, CP0_CONFIG | ||
161 | eva_entry | ||
162 | #endif | ||
157 | .endm | 163 | .endm |
158 | 164 | ||
159 | #endif /* __ASM_MACH_MIPS_KERNEL_ENTRY_INIT_H */ | 165 | #endif /* __ASM_MACH_MIPS_KERNEL_ENTRY_INIT_H */ |
diff --git a/arch/mips/kernel/head.S b/arch/mips/kernel/head.S index 7b6a5b3e3acf..e712dcf18b2d 100644 --- a/arch/mips/kernel/head.S +++ b/arch/mips/kernel/head.S | |||
@@ -175,8 +175,8 @@ NESTED(smp_bootstrap, 16, sp) | |||
175 | DMT 10 # dmt t2 /* t0, t1 are used by CLI and setup_c0_status() */ | 175 | DMT 10 # dmt t2 /* t0, t1 are used by CLI and setup_c0_status() */ |
176 | jal mips_ihb | 176 | jal mips_ihb |
177 | #endif /* CONFIG_MIPS_MT_SMTC */ | 177 | #endif /* CONFIG_MIPS_MT_SMTC */ |
178 | setup_c0_status_sec | ||
179 | smp_slave_setup | 178 | smp_slave_setup |
179 | setup_c0_status_sec | ||
180 | #ifdef CONFIG_MIPS_MT_SMTC | 180 | #ifdef CONFIG_MIPS_MT_SMTC |
181 | andi t2, t2, VPECONTROL_TE | 181 | andi t2, t2, VPECONTROL_TE |
182 | beqz t2, 2f | 182 | beqz t2, 2f |