aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/relocate_kernel.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/kernel/relocate_kernel.S')
-rw-r--r--arch/mips/kernel/relocate_kernel.S19
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/mips/kernel/relocate_kernel.S b/arch/mips/kernel/relocate_kernel.S
index 0b108587f065..e4142c5f7c2b 100644
--- a/arch/mips/kernel/relocate_kernel.S
+++ b/arch/mips/kernel/relocate_kernel.S
@@ -78,7 +78,19 @@ done:
78 LONG_S zero,(t0) 78 LONG_S zero,(t0)
79#endif 79#endif
80 80
81#ifdef CONFIG_CPU_CAVIUM_OCTEON
82 /* We need to flush I-cache before jumping to new kernel.
83 * Unfortunatelly, this code is cpu-specific.
84 */
85 .set push
86 .set noreorder
87 syncw
88 syncw
89 synci 0($0)
90 .set pop
91#else
81 sync 92 sync
93#endif
82 /* jump to kexec_start_address */ 94 /* jump to kexec_start_address */
83 j s1 95 j s1
84 END(relocate_new_kernel) 96 END(relocate_new_kernel)
@@ -110,7 +122,14 @@ LEAF(kexec_smp_wait)
1101: LONG_L s0, (t0) 1221: LONG_L s0, (t0)
111 bne s0, zero,1b 123 bne s0, zero,1b
112 124
125#ifdef CONFIG_CPU_CAVIUM_OCTEON
126 .set push
127 .set noreorder
128 synci 0($0)
129 .set pop
130#else
113 sync 131 sync
132#endif
114 j s1 133 j s1
115 END(kexec_smp_wait) 134 END(kexec_smp_wait)
116#endif 135#endif