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

Commit 573819e3 authored by Nicholas Piggin's avatar Nicholas Piggin Committed by Michael Ellerman
Browse files

powerpc/64: Change the way relocation copy is calculated



With a subsequent patch to put text into different sections,
(_end - _stext) can no longer be computed at link time to determine
the end of the copy. Instead, calculate it at runtime with
(copy_to_here - _stext) + (_end - copy_to_here).

Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent be642c34
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -628,11 +628,16 @@ __after_prom_start:
	bctr

.balign 8
p_end:	.llong	_end - _stext
p_end: .llong _end - copy_to_here

4:	/* Now copy the rest of the kernel up to _end */
	addis	r5,r26,(p_end - _stext)@ha
	ld	r5,(p_end - _stext)@l(r5)	/* get _end */
4:
	/*
	 * Now copy the rest of the kernel up to _end, add
	 * _end - copy_to_here to the copy limit and run again.
	 */
	addis   r8,r26,(p_end - _stext)@ha
	ld      r8,(p_end - _stext)@l(r8)
	add	r5,r5,r8
5:	bl	copy_and_flush		/* copy the rest */

9:	b	start_here_multiplatform