aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/head_32.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kernel/head_32.S')
-rw-r--r--arch/powerpc/kernel/head_32.S10
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S
index 8bb65751929..0c326823c6d 100644
--- a/arch/powerpc/kernel/head_32.S
+++ b/arch/powerpc/kernel/head_32.S
@@ -110,6 +110,12 @@ __start:
110#ifdef CONFIG_PPC_MULTIPLATFORM 110#ifdef CONFIG_PPC_MULTIPLATFORM
111 cmpwi 0,r5,0 111 cmpwi 0,r5,0
112 beq 1f 112 beq 1f
113
114 /* find out where we are now */
115 bcl 20,31,$+4
1160: mflr r8 /* r8 = runtime addr here */
117 addis r8,r8,(_stext - 0b)@ha
118 addi r8,r8,(_stext - 0b)@l /* current runtime base addr */
113 bl prom_init 119 bl prom_init
114 trap 120 trap
115#endif 121#endif
@@ -369,13 +375,13 @@ i##n: \
369DataAccess: 375DataAccess:
370 EXCEPTION_PROLOG 376 EXCEPTION_PROLOG
371 mfspr r10,SPRN_DSISR 377 mfspr r10,SPRN_DSISR
378 stw r10,_DSISR(r11)
372 andis. r0,r10,0xa470 /* weird error? */ 379 andis. r0,r10,0xa470 /* weird error? */
373 bne 1f /* if not, try to put a PTE */ 380 bne 1f /* if not, try to put a PTE */
374 mfspr r4,SPRN_DAR /* into the hash table */ 381 mfspr r4,SPRN_DAR /* into the hash table */
375 rlwinm r3,r10,32-15,21,21 /* DSISR_STORE -> _PAGE_RW */ 382 rlwinm r3,r10,32-15,21,21 /* DSISR_STORE -> _PAGE_RW */
376 bl hash_page 383 bl hash_page
3771: stw r10,_DSISR(r11) 3841: lwz r5,_DSISR(r11) /* get DSISR value */
378 mr r5,r10
379 mfspr r4,SPRN_DAR 385 mfspr r4,SPRN_DAR
380 EXC_XFER_EE_LITE(0x300, handle_page_fault) 386 EXC_XFER_EE_LITE(0x300, handle_page_fault)
381 387