[MIPS] Always do the ARC64_TWIDDLE_PC thing.
Always jump to the place where the kernel is linked to. This helps where the bootloaders/proms ignores the start address inside the ELF header. Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
d85714d81c
commit
15ad838d28
2 changed files with 13 additions and 12 deletions
|
@ -27,16 +27,6 @@
|
|||
|
||||
#include <kernel-entry-init.h>
|
||||
|
||||
.macro ARC64_TWIDDLE_PC
|
||||
#if defined(CONFIG_ARC64) || defined(CONFIG_MAPPED_KERNEL)
|
||||
/* We get launched at a XKPHYS address but the kernel is linked to
|
||||
run at a KSEG0 address, so jump there. */
|
||||
PTR_LA t0, \@f
|
||||
jr t0
|
||||
\@:
|
||||
#endif
|
||||
.endm
|
||||
|
||||
/*
|
||||
* inputs are the text nasid in t1, data nasid in t2.
|
||||
*/
|
||||
|
@ -157,7 +147,11 @@ NESTED(kernel_entry, 16, sp) # kernel entry point
|
|||
|
||||
setup_c0_status_pri
|
||||
|
||||
ARC64_TWIDDLE_PC
|
||||
/* We might not get launched at the address the kernel is linked to,
|
||||
so we jump there. */
|
||||
PTR_LA t0, 0f
|
||||
jr t0
|
||||
0:
|
||||
|
||||
#ifdef CONFIG_MIPS_MT_SMTC
|
||||
/*
|
||||
|
|
|
@ -46,7 +46,14 @@
|
|||
lh t1, KV_RO_NASID_OFFSET(t0)
|
||||
lh t2, KV_RW_NASID_OFFSET(t0)
|
||||
MAPPED_KERNEL_SETUP_TLB
|
||||
ARC64_TWIDDLE_PC
|
||||
|
||||
/*
|
||||
* We might not get launched at the address the kernel is linked to,
|
||||
* so we jump there.
|
||||
*/
|
||||
PTR_LA t0, 0f
|
||||
jr t0
|
||||
0:
|
||||
.endm
|
||||
|
||||
#endif /* __ASM_MACH_IP27_KERNEL_ENTRY_H */
|
||||
|
|
Loading…
Reference in a new issue