powerpc/64s: Refactor initialisation after prom
authorNicholas Piggin <npiggin@gmail.com>
Fri, 3 Feb 2023 11:38:57 +0000 (21:38 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 10 Feb 2023 11:17:36 +0000 (22:17 +1100)
Move some basic Book3S initialisation after prom to a function similar
to what Book3E looks like. Book3E returns from this function at the
virtual address mapping, and Book3S will do the same in a later change,
so making them look similar helps with that.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20230203113858.1152093-3-npiggin@gmail.com
arch/powerpc/kernel/head_64.S

index 7558ba4eb86429e4df0eab1c14c4f5b27bb461ae..5af2e473b1950a4a81a1ff1434d6b50384710161 100644 (file)
@@ -475,8 +475,30 @@ SYM_FUNC_START_LOCAL(__mmu_off)
        rfid
        b       .       /* prevent speculative execution */
 SYM_FUNC_END(__mmu_off)
-#endif
 
+start_initialization_book3s:
+       mflr    r25
+
+       /* Setup some critical 970 SPRs before switching MMU off */
+       mfspr   r0,SPRN_PVR
+       srwi    r0,r0,16
+       cmpwi   r0,0x39         /* 970 */
+       beq     1f
+       cmpwi   r0,0x3c         /* 970FX */
+       beq     1f
+       cmpwi   r0,0x44         /* 970MP */
+       beq     1f
+       cmpwi   r0,0x45         /* 970GX */
+       bne     2f
+1:     bl      __cpu_preinit_ppc970
+2:
+
+       /* Switch off MMU if not already off */
+       bl      __mmu_off
+
+       mtlr    r25
+       blr
+#endif
 
 /*
  * Here is our main kernel entry point. We support currently 2 kind of entries
@@ -523,26 +545,10 @@ __start_initialization_multiplatform:
 
 #ifdef CONFIG_PPC_BOOK3E_64
        bl      start_initialization_book3e
-       b       __after_prom_start
 #else
-       /* Setup some critical 970 SPRs before switching MMU off */
-       mfspr   r0,SPRN_PVR
-       srwi    r0,r0,16
-       cmpwi   r0,0x39         /* 970 */
-       beq     1f
-       cmpwi   r0,0x3c         /* 970FX */
-       beq     1f
-       cmpwi   r0,0x44         /* 970MP */
-       beq     1f
-       cmpwi   r0,0x45         /* 970GX */
-       bne     2f
-1:     bl      __cpu_preinit_ppc970
-2:
-
-       /* Switch off MMU if not already off */
-       bl      __mmu_off
-       b       __after_prom_start
+       bl      start_initialization_book3s
 #endif /* CONFIG_PPC_BOOK3E_64 */
+       b       __after_prom_start
 
 __REF
 __boot_from_prom: