diff options
| -rw-r--r-- | arch/powerpc/kernel/head_44x.S | 9 | ||||
| -rw-r--r-- | include/asm-powerpc/pgtable-ppc32.h | 7 |
2 files changed, 15 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/head_44x.S b/arch/powerpc/kernel/head_44x.S index b84ec6a2fc94..c2b9dc4fce5d 100644 --- a/arch/powerpc/kernel/head_44x.S +++ b/arch/powerpc/kernel/head_44x.S | |||
| @@ -653,7 +653,14 @@ finish_tlb_load: | |||
| 653 | rlwimi r10, r11, 0, 26, 26 /* UX = HWEXEC & USER */ | 653 | rlwimi r10, r11, 0, 26, 26 /* UX = HWEXEC & USER */ |
| 654 | 654 | ||
| 655 | rlwimi r12, r10, 0, 26, 31 /* Insert static perms */ | 655 | rlwimi r12, r10, 0, 26, 31 /* Insert static perms */ |
| 656 | rlwinm r12, r12, 0, 20, 15 /* Clear U0-U3 */ | 656 | |
| 657 | /* | ||
| 658 | * Clear U0-U3 and WL1 IL1I IL1D IL2I IL2D bits which are added | ||
| 659 | * on newer 440 cores like the 440x6 used on AMCC 460EX/460GT (see | ||
| 660 | * include/asm-powerpc/pgtable-ppc32.h for details). | ||
| 661 | */ | ||
| 662 | rlwinm r12, r12, 0, 20, 10 | ||
| 663 | |||
| 657 | tlbwe r12, r13, PPC44x_TLB_ATTRIB /* Write ATTRIB */ | 664 | tlbwe r12, r13, PPC44x_TLB_ATTRIB /* Write ATTRIB */ |
| 658 | 665 | ||
| 659 | /* Done...restore registers and get out of here. | 666 | /* Done...restore registers and get out of here. |
diff --git a/include/asm-powerpc/pgtable-ppc32.h b/include/asm-powerpc/pgtable-ppc32.h index 7c97b5a08d08..c08e714d0c42 100644 --- a/include/asm-powerpc/pgtable-ppc32.h +++ b/include/asm-powerpc/pgtable-ppc32.h | |||
| @@ -209,6 +209,13 @@ extern int icache_44x_need_flush; | |||
| 209 | * 0 1 2 3 4 ... 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 209 | * 0 1 2 3 4 ... 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
| 210 | * - - - - - - U0 U1 U2 U3 W I M G E - UX UW UR SX SW SR | 210 | * - - - - - - U0 U1 U2 U3 W I M G E - UX UW UR SX SW SR |
| 211 | * | 211 | * |
| 212 | * Newer 440 cores (440x6 as used on AMCC 460EX/460GT) have additional | ||
| 213 | * TLB2 storage attibute fields. Those are: | ||
| 214 | * | ||
| 215 | * TLB2: | ||
| 216 | * 0...10 11 12 13 14 15 16...31 | ||
| 217 | * no change WL1 IL1I IL1D IL2I IL2D no change | ||
| 218 | * | ||
| 212 | * There are some constrains and options, to decide mapping software bits | 219 | * There are some constrains and options, to decide mapping software bits |
| 213 | * into TLB entry. | 220 | * into TLB entry. |
| 214 | * | 221 | * |
