summaryrefslogtreecommitdiffstats
path: root/arch/mips64/kernel
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-06-06 23:40:17 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-06-06 23:40:17 +0000
commit11b69ef72c58ca6e230af3dce5e16dedd907d21e (patch)
tree1acf86d070940b02a3682b4744fa518e69ccd7b7 /arch/mips64/kernel
parent335aa2be513556ef9bf9db05976e43af2fff2018 (diff)
*** empty log message ***
Diffstat (limited to 'arch/mips64/kernel')
-rw-r--r--arch/mips64/kernel/head.S25
1 files changed, 13 insertions, 12 deletions
diff --git a/arch/mips64/kernel/head.S b/arch/mips64/kernel/head.S
index e9dfb8e05..87db8483d 100644
--- a/arch/mips64/kernel/head.S
+++ b/arch/mips64/kernel/head.S
@@ -1,5 +1,4 @@
-/* $Id: head.S,v 1.6 2000/03/27 21:05:04 ulfc Exp $
- *
+/*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
@@ -21,6 +20,16 @@
#include <asm/stackframe.h>
#include <asm/pgtable.h>
+ .macro ARC64_TWIDDLE_PC
+#ifdef CONFIG_ARC64
+ /* We get launched at a XKPHYS address but the kernel is linked to
+ run at a KSEG0 address, so jump there. */
+ la t0, \@f
+ jr t0
+\@:
+#endif
+ .endm
+
.text
EXPORT(stext) # used for profiling
@@ -35,11 +44,7 @@ NESTED(kernel_entry, 16, sp) # kernel entry point
jal mapped_kernel_setup_tlb
-#ifdef CONFIG_ARC64
- la t0, 1f
- jr t0
-1:
-#endif
+ ARC64_TWIDDLE_PC
/* Note that all firmware passed argument registers still
have their values. */
@@ -103,11 +108,7 @@ NESTED(mapped_kernel_setup_tlb, 16, sp)
NESTED(bootstrap, 16, sp)
jal mapped_kernel_setup_tlb
-#ifdef CONFIG_ARC64
- la t0, 1f
- jr t0
-1:
-#endif
+ ARC64_TWIDDLE_PC
CLI
mfc0 t0, CP0_STATUS
li t1, ~(ST0_CU1|ST0_CU2|ST0_CU3)