Skip to content

Commit

Permalink
powerpc/64: Move initial base and TOC pointer calculation
Browse files Browse the repository at this point in the history
A later change moves the non-prom case to run at the virtual address
earlier, which calls for virtual TOC and kernel base. Split these two
calculations for prom and non-prom to make that change simpler.

Signed-off-by: Nicholas Piggin <[email protected]>
[mpe: Retain relative_toc call for start_initialization_book3e]
Signed-off-by: Michael Ellerman <[email protected]>
Link: https://msgid.link/[email protected]
  • Loading branch information
npiggin authored and mpe committed Apr 20, 2023
1 parent 40f7b52 commit 4f18b9e
Showing 1 changed file with 22 additions and 9 deletions.
31 changes: 22 additions & 9 deletions arch/powerpc/kernel/head_64.S
Original file line number Diff line number Diff line change
Expand Up @@ -515,15 +515,6 @@ __start_initialization_multiplatform:
/* Zero r13 (paca) so early program check / mce don't use it */
li r13,0

/* Get TOC pointer (current runtime address) */
bl relative_toc

/* find out where we are now */
bcl 20,31,$+4
0: mflr r26 /* r26 = runtime addr here */
addis r26,r26,(_stext - 0b)@ha
addi r26,r26,(_stext - 0b)@l /* current runtime base addr */

/*
* Are we booted from a PROM Of-type client-interface ?
*/
Expand All @@ -540,16 +531,38 @@ __start_initialization_multiplatform:
mr r29,r9
#endif

/* Get TOC pointer (current runtime address) */
bl relative_toc

#ifdef CONFIG_PPC_BOOK3E_64
bl start_initialization_book3e
#else
bl start_initialization_book3s
#endif /* CONFIG_PPC_BOOK3E_64 */

/* Get TOC pointer */
bl relative_toc

/* find out where we are now */
bcl 20,31,$+4
0: mflr r26 /* r26 = runtime addr here */
addis r26,r26,(_stext - 0b)@ha
addi r26,r26,(_stext - 0b)@l /* current runtime base addr */

b __after_prom_start

__REF
__boot_from_prom:
#ifdef CONFIG_PPC_OF_BOOT_TRAMPOLINE
/* Get TOC pointer */
bl relative_toc

/* find out where we are now */
bcl 20,31,$+4
0: mflr r26 /* r26 = runtime addr here */
addis r26,r26,(_stext - 0b)@ha
addi r26,r26,(_stext - 0b)@l /* current runtime base addr */

/* Save parameters */
mr r31,r3
mr r30,r4
Expand Down

0 comments on commit 4f18b9e

Please sign in to comment.