Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 00be0f30 authored by Ralf Baechle's avatar Ralf Baechle
Browse files

[MIPS] Kexec: Fix several 64-bit bugs.

parent 1065932f
Loading
Loading
Loading
Loading
+40 −38
Original line number Diff line number Diff line
@@ -14,9 +14,7 @@
#include <asm/stackframe.h>
#include <asm/addrspace.h>

	.globl relocate_new_kernel
relocate_new_kernel:

LEAF(relocate_new_kernel)
	PTR_L		s0, kexec_indirection_page
	PTR_L		s1, kexec_start_address

@@ -54,9 +52,9 @@ copy_word:
	/* copy page word by word */
	REG_L		s5, (s2)
	REG_S		s5, (s4)
	INT_ADD	s4, s4, SZREG
	INT_ADD	s2, s2, SZREG
	INT_SUB	s6, s6, 1
	PTR_ADD		s4, s4, SZREG
	PTR_ADD		s2, s2, SZREG
	LONG_SUB	s6, s6, 1
	beq		s6, zero, process_entry
	b		copy_word
	b		process_entry
@@ -64,17 +62,21 @@ copy_word:
done:
	/* jump to kexec_start_address */
	j		s1
	END(relocate_new_kernel)

	.globl kexec_start_address
kexec_start_address:
	.long	0x0
	EXPORT(kexec_start_address)
	PTR		0x0
	.size		kexec_start_address, PTRSIZE

	.globl kexec_indirection_page
kexec_indirection_page:
	.long	0x0
	EXPORT(kexec_indirection_page)
	PTR		0
	.size		kexec_indirection_page, PTRSIZE

relocate_new_kernel_end:

	.globl relocate_new_kernel_size
relocate_new_kernel_size:
	.long relocate_new_kernel_end - relocate_new_kernel
	EXPORT(relocate_new_kernel_size)
	PTR		relocate_new_kernel_end - relocate_new_kernel
	.size		relocate_new_kernel_size, PTRSIZE