In case entry from the bootloader isn't "clean"

Signed-off-by: Benjamin Herrenschmidt <b...@kernel.crashing.org>
---
 arch/powerpc/kernel/cpu_setup_power7.S |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/kernel/cpu_setup_power7.S 
b/arch/powerpc/kernel/cpu_setup_power7.S
index 2390f6f..4f9a93f 100644
--- a/arch/powerpc/kernel/cpu_setup_power7.S
+++ b/arch/powerpc/kernel/cpu_setup_power7.S
@@ -25,7 +25,10 @@ _GLOBAL(__setup_cpu_power7)
        bl      __init_hvmode_206
        mtlr    r11
        beqlr
+       li      r0,0
+       mtspr   SPRN_LPID,r0
        bl      __init_LPCR
+       bl      __init_TLB
        mtlr    r11
        blr
 
@@ -34,7 +37,10 @@ _GLOBAL(__restore_cpu_power7)
        mfmsr   r3
        rldicl. r0,r3,4,63
        beqlr
+       li      r0,0
+       mtspr   SPRN_LPID,r0
        bl      __init_LPCR
+       bl      __init_TLB
        mtlr    r11
        blr
 
@@ -71,3 +77,15 @@ __init_LPCR:
        mtspr   SPRN_LPCR,r3
        isync
        blr
+
+__init_TLB:
+       /* Clear the TLB */
+       li      r6,128
+       mtctr   r6
+       li      r7,0xc00        /* IS field = 0b11 */
+       ptesync
+2:     tlbiel  r7
+       addi    r7,r7,0x1000
+       bdnz    2b
+       ptesync
+1:     blr
-- 
1.7.1

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to