diff options
author | Becky Bruce <becky.bruce@freescale.com> | 2008-09-24 12:01:24 -0400 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2008-09-24 17:29:44 -0400 |
commit | 4ee7084eb11e00eb02dc8435fd18273a61ffa9bf (patch) | |
tree | f9f147f0293bc33e2962ac1c1aa5bbcbd9c0edce /arch/powerpc/kernel/head_32.S | |
parent | 9a62c05180ff55fdaa517370c6f077402820406c (diff) |
POWERPC: Allow 32-bit hashed pgtable code to support 36-bit physical
This rearranges a bit of code, and adds support for
36-bit physical addressing for configs that use a
hashed page table. The 36b physical support is not
enabled by default on any config - it must be
explicitly enabled via the config system.
This patch *only* expands the page table code to accomodate
large physical addresses on 32-bit systems and enables the
PHYS_64BIT config option for 86xx. It does *not*
allow you to boot a board with more than about 3.5GB of
RAM - for that, SWIOTLB support is also required (and
coming soon).
Signed-off-by: Becky Bruce <becky.bruce@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel/head_32.S')
-rw-r--r-- | arch/powerpc/kernel/head_32.S | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S index 8bb657519299..a6de6dbc5ed8 100644 --- a/arch/powerpc/kernel/head_32.S +++ b/arch/powerpc/kernel/head_32.S | |||
@@ -369,13 +369,13 @@ i##n: \ | |||
369 | DataAccess: | 369 | DataAccess: |
370 | EXCEPTION_PROLOG | 370 | EXCEPTION_PROLOG |
371 | mfspr r10,SPRN_DSISR | 371 | mfspr r10,SPRN_DSISR |
372 | stw r10,_DSISR(r11) | ||
372 | andis. r0,r10,0xa470 /* weird error? */ | 373 | andis. r0,r10,0xa470 /* weird error? */ |
373 | bne 1f /* if not, try to put a PTE */ | 374 | bne 1f /* if not, try to put a PTE */ |
374 | mfspr r4,SPRN_DAR /* into the hash table */ | 375 | mfspr r4,SPRN_DAR /* into the hash table */ |
375 | rlwinm r3,r10,32-15,21,21 /* DSISR_STORE -> _PAGE_RW */ | 376 | rlwinm r3,r10,32-15,21,21 /* DSISR_STORE -> _PAGE_RW */ |
376 | bl hash_page | 377 | bl hash_page |
377 | 1: stw r10,_DSISR(r11) | 378 | 1: lwz r5,_DSISR(r11) /* get DSISR value */ |
378 | mr r5,r10 | ||
379 | mfspr r4,SPRN_DAR | 379 | mfspr r4,SPRN_DAR |
380 | EXC_XFER_EE_LITE(0x300, handle_page_fault) | 380 | EXC_XFER_EE_LITE(0x300, handle_page_fault) |
381 | 381 | ||