Signed-off-by: Joakim Tjernlund <joakim.tjernl...@transmode.se> --- arch/ppc/kernel/head_8xx.S | 22 +++++++++++++++------- 1 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/arch/ppc/kernel/head_8xx.S b/arch/ppc/kernel/head_8xx.S index 8e3fe40..439e7f2 100644 --- a/arch/ppc/kernel/head_8xx.S +++ b/arch/ppc/kernel/head_8xx.S @@ -368,15 +368,19 @@ InstructionTLBMiss: * for this "segment." */ tophys(r21,r21) - ori r21,r21,1 /* Set valid bit */ - DO_8xx_CPU6(0x2b80, r3) - mtspr MI_TWC, r21 /* Set segment attributes */ beq- 2f /* If zero, don't try to find a pte */ DO_8xx_CPU6(0x3b80, r3) mtspr MD_TWC, r21 /* Load pte table base address */ - mfspr r21, MD_TWC /* ....and get the pte address */ - lwz r20, 0(r21) /* Get the pte */ + mfspr r20, MD_TWC /* ....and get the pte address */ + lwz r20, 0(r20) /* Get the pte */ + + ori r21, r21, MI_SVALID /* Set valid bit */ + /* Copy PSE to PS bits(8MB) */ + rlwimi r21, r20, 0, _PAGE_PSE + rlwimi r21, r20, 32-1, _PAGE_PSE>>1 + DO_8xx_CPU6(0x2b80, r3) + mtspr MI_TWC, r21 /* Set segment attributes */ #ifndef NO_SWAP /* if !swap, you can delete this */ andi. r21, r20, _PAGE_ACCESSED /* test ACCESSED bit */ @@ -446,7 +450,9 @@ DataStoreTLBMiss: * this into the Linux pgd/pmd and load it in the operation * above. */ - rlwimi r21, r20, 0, _PAGE_GUARDED + rlwimi r21, r20, 0, _PAGE_GUARDED | _PAGE_PSE + /* Copy PSE to PS bits(8MB), combine with GUARDED above */ + rlwimi r21, r20, 32-1, _PAGE_PSE>>1 /* Insert the WriteThru flag into the TWC from the Linux PTE. * It is bit 25 in the Linux PTE and bit 30 in the TWC */ @@ -589,7 +595,9 @@ DARFixed: /* Insert the Guarded flag into the TWC from the Linux PTE. * It is bit 27 of both the Linux PTE and the TWC */ - rlwimi r21, r20, 0, _PAGE_GUARDED + rlwimi r21, r20, 0, _PAGE_GUARDED | _PAGE_PSE + /* Copy PSE to PS bits(8MB), combine with GUARDED above */ + rlwimi r21, r20, 32-1, _PAGE_PSE>>1 /* Insert the WriteThru flag into the TWC from the Linux PTE. * It is bit 25 in the Linux PTE and bit 30 in the TWC */ -- 1.7.3.4 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev