diff options
Diffstat (limited to 'arch/powerpc/kernel/head_32.S')
-rw-r--r-- | arch/powerpc/kernel/head_32.S | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S index fc2132942754..829c3fe7c5a2 100644 --- a/arch/powerpc/kernel/head_32.S +++ b/arch/powerpc/kernel/head_32.S | |||
@@ -244,8 +244,8 @@ __secondary_hold_acknowledge: | |||
244 | * task's thread_struct. | 244 | * task's thread_struct. |
245 | */ | 245 | */ |
246 | #define EXCEPTION_PROLOG \ | 246 | #define EXCEPTION_PROLOG \ |
247 | mtspr SPRN_SPRG0,r10; \ | 247 | mtspr SPRN_SPRG_SCRATCH0,r10; \ |
248 | mtspr SPRN_SPRG1,r11; \ | 248 | mtspr SPRN_SPRG_SCRATCH1,r11; \ |
249 | mfcr r10; \ | 249 | mfcr r10; \ |
250 | EXCEPTION_PROLOG_1; \ | 250 | EXCEPTION_PROLOG_1; \ |
251 | EXCEPTION_PROLOG_2 | 251 | EXCEPTION_PROLOG_2 |
@@ -255,7 +255,7 @@ __secondary_hold_acknowledge: | |||
255 | andi. r11,r11,MSR_PR; \ | 255 | andi. r11,r11,MSR_PR; \ |
256 | tophys(r11,r1); /* use tophys(r1) if kernel */ \ | 256 | tophys(r11,r1); /* use tophys(r1) if kernel */ \ |
257 | beq 1f; \ | 257 | beq 1f; \ |
258 | mfspr r11,SPRN_SPRG3; \ | 258 | mfspr r11,SPRN_SPRG_THREAD; \ |
259 | lwz r11,THREAD_INFO-THREAD(r11); \ | 259 | lwz r11,THREAD_INFO-THREAD(r11); \ |
260 | addi r11,r11,THREAD_SIZE; \ | 260 | addi r11,r11,THREAD_SIZE; \ |
261 | tophys(r11,r11); \ | 261 | tophys(r11,r11); \ |
@@ -267,9 +267,9 @@ __secondary_hold_acknowledge: | |||
267 | stw r10,_CCR(r11); /* save registers */ \ | 267 | stw r10,_CCR(r11); /* save registers */ \ |
268 | stw r12,GPR12(r11); \ | 268 | stw r12,GPR12(r11); \ |
269 | stw r9,GPR9(r11); \ | 269 | stw r9,GPR9(r11); \ |
270 | mfspr r10,SPRN_SPRG0; \ | 270 | mfspr r10,SPRN_SPRG_SCRATCH0; \ |
271 | stw r10,GPR10(r11); \ | 271 | stw r10,GPR10(r11); \ |
272 | mfspr r12,SPRN_SPRG1; \ | 272 | mfspr r12,SPRN_SPRG_SCRATCH1; \ |
273 | stw r12,GPR11(r11); \ | 273 | stw r12,GPR11(r11); \ |
274 | mflr r10; \ | 274 | mflr r10; \ |
275 | stw r10,_LINK(r11); \ | 275 | stw r10,_LINK(r11); \ |
@@ -355,11 +355,11 @@ i##n: \ | |||
355 | * -- paulus. | 355 | * -- paulus. |
356 | */ | 356 | */ |
357 | . = 0x200 | 357 | . = 0x200 |
358 | mtspr SPRN_SPRG0,r10 | 358 | mtspr SPRN_SPRG_SCRATCH0,r10 |
359 | mtspr SPRN_SPRG1,r11 | 359 | mtspr SPRN_SPRG_SCRATCH1,r11 |
360 | mfcr r10 | 360 | mfcr r10 |
361 | #ifdef CONFIG_PPC_CHRP | 361 | #ifdef CONFIG_PPC_CHRP |
362 | mfspr r11,SPRN_SPRG2 | 362 | mfspr r11,SPRN_SPRG_RTAS |
363 | cmpwi 0,r11,0 | 363 | cmpwi 0,r11,0 |
364 | bne 7f | 364 | bne 7f |
365 | #endif /* CONFIG_PPC_CHRP */ | 365 | #endif /* CONFIG_PPC_CHRP */ |
@@ -367,7 +367,7 @@ i##n: \ | |||
367 | 7: EXCEPTION_PROLOG_2 | 367 | 7: EXCEPTION_PROLOG_2 |
368 | addi r3,r1,STACK_FRAME_OVERHEAD | 368 | addi r3,r1,STACK_FRAME_OVERHEAD |
369 | #ifdef CONFIG_PPC_CHRP | 369 | #ifdef CONFIG_PPC_CHRP |
370 | mfspr r4,SPRN_SPRG2 | 370 | mfspr r4,SPRN_SPRG_RTAS |
371 | cmpwi cr1,r4,0 | 371 | cmpwi cr1,r4,0 |
372 | bne cr1,1f | 372 | bne cr1,1f |
373 | #endif | 373 | #endif |
@@ -485,7 +485,7 @@ InstructionTLBMiss: | |||
485 | mfspr r3,SPRN_IMISS | 485 | mfspr r3,SPRN_IMISS |
486 | lis r1,PAGE_OFFSET@h /* check if kernel address */ | 486 | lis r1,PAGE_OFFSET@h /* check if kernel address */ |
487 | cmplw 0,r1,r3 | 487 | cmplw 0,r1,r3 |
488 | mfspr r2,SPRN_SPRG3 | 488 | mfspr r2,SPRN_SPRG_THREAD |
489 | li r1,_PAGE_USER|_PAGE_PRESENT /* low addresses tested as user */ | 489 | li r1,_PAGE_USER|_PAGE_PRESENT /* low addresses tested as user */ |
490 | lwz r2,PGDIR(r2) | 490 | lwz r2,PGDIR(r2) |
491 | bge- 112f | 491 | bge- 112f |
@@ -559,7 +559,7 @@ DataLoadTLBMiss: | |||
559 | mfspr r3,SPRN_DMISS | 559 | mfspr r3,SPRN_DMISS |
560 | lis r1,PAGE_OFFSET@h /* check if kernel address */ | 560 | lis r1,PAGE_OFFSET@h /* check if kernel address */ |
561 | cmplw 0,r1,r3 | 561 | cmplw 0,r1,r3 |
562 | mfspr r2,SPRN_SPRG3 | 562 | mfspr r2,SPRN_SPRG_THREAD |
563 | li r1,_PAGE_USER|_PAGE_PRESENT /* low addresses tested as user */ | 563 | li r1,_PAGE_USER|_PAGE_PRESENT /* low addresses tested as user */ |
564 | lwz r2,PGDIR(r2) | 564 | lwz r2,PGDIR(r2) |
565 | bge- 112f | 565 | bge- 112f |
@@ -598,12 +598,12 @@ END_FTR_SECTION_IFCLR(CPU_FTR_NEED_COHERENT) | |||
598 | mtcrf 0x80,r2 | 598 | mtcrf 0x80,r2 |
599 | BEGIN_MMU_FTR_SECTION | 599 | BEGIN_MMU_FTR_SECTION |
600 | li r0,1 | 600 | li r0,1 |
601 | mfspr r1,SPRN_SPRG4 | 601 | mfspr r1,SPRN_SPRG_603_LRU |
602 | rlwinm r2,r3,20,27,31 /* Get Address bits 15:19 */ | 602 | rlwinm r2,r3,20,27,31 /* Get Address bits 15:19 */ |
603 | slw r0,r0,r2 | 603 | slw r0,r0,r2 |
604 | xor r1,r0,r1 | 604 | xor r1,r0,r1 |
605 | srw r0,r1,r2 | 605 | srw r0,r1,r2 |
606 | mtspr SPRN_SPRG4,r1 | 606 | mtspr SPRN_SPRG_603_LRU,r1 |
607 | mfspr r2,SPRN_SRR1 | 607 | mfspr r2,SPRN_SRR1 |
608 | rlwimi r2,r0,31-14,14,14 | 608 | rlwimi r2,r0,31-14,14,14 |
609 | mtspr SPRN_SRR1,r2 | 609 | mtspr SPRN_SRR1,r2 |
@@ -643,7 +643,7 @@ DataStoreTLBMiss: | |||
643 | mfspr r3,SPRN_DMISS | 643 | mfspr r3,SPRN_DMISS |
644 | lis r1,PAGE_OFFSET@h /* check if kernel address */ | 644 | lis r1,PAGE_OFFSET@h /* check if kernel address */ |
645 | cmplw 0,r1,r3 | 645 | cmplw 0,r1,r3 |
646 | mfspr r2,SPRN_SPRG3 | 646 | mfspr r2,SPRN_SPRG_THREAD |
647 | li r1,_PAGE_RW|_PAGE_USER|_PAGE_PRESENT /* access flags */ | 647 | li r1,_PAGE_RW|_PAGE_USER|_PAGE_PRESENT /* access flags */ |
648 | lwz r2,PGDIR(r2) | 648 | lwz r2,PGDIR(r2) |
649 | bge- 112f | 649 | bge- 112f |
@@ -678,12 +678,12 @@ END_FTR_SECTION_IFCLR(CPU_FTR_NEED_COHERENT) | |||
678 | mtcrf 0x80,r2 | 678 | mtcrf 0x80,r2 |
679 | BEGIN_MMU_FTR_SECTION | 679 | BEGIN_MMU_FTR_SECTION |
680 | li r0,1 | 680 | li r0,1 |
681 | mfspr r1,SPRN_SPRG4 | 681 | mfspr r1,SPRN_SPRG_603_LRU |
682 | rlwinm r2,r3,20,27,31 /* Get Address bits 15:19 */ | 682 | rlwinm r2,r3,20,27,31 /* Get Address bits 15:19 */ |
683 | slw r0,r0,r2 | 683 | slw r0,r0,r2 |
684 | xor r1,r0,r1 | 684 | xor r1,r0,r1 |
685 | srw r0,r1,r2 | 685 | srw r0,r1,r2 |
686 | mtspr SPRN_SPRG4,r1 | 686 | mtspr SPRN_SPRG_603_LRU,r1 |
687 | mfspr r2,SPRN_SRR1 | 687 | mfspr r2,SPRN_SRR1 |
688 | rlwimi r2,r0,31-14,14,14 | 688 | rlwimi r2,r0,31-14,14,14 |
689 | mtspr SPRN_SRR1,r2 | 689 | mtspr SPRN_SRR1,r2 |
@@ -864,9 +864,9 @@ __secondary_start: | |||
864 | tophys(r4,r2) | 864 | tophys(r4,r2) |
865 | addi r4,r4,THREAD /* phys address of our thread_struct */ | 865 | addi r4,r4,THREAD /* phys address of our thread_struct */ |
866 | CLR_TOP32(r4) | 866 | CLR_TOP32(r4) |
867 | mtspr SPRN_SPRG3,r4 | 867 | mtspr SPRN_SPRG_THREAD,r4 |
868 | li r3,0 | 868 | li r3,0 |
869 | mtspr SPRN_SPRG2,r3 /* 0 => not in RTAS */ | 869 | mtspr SPRN_SPRG_RTAS,r3 /* 0 => not in RTAS */ |
870 | 870 | ||
871 | /* enable MMU and jump to start_secondary */ | 871 | /* enable MMU and jump to start_secondary */ |
872 | li r4,MSR_KERNEL | 872 | li r4,MSR_KERNEL |
@@ -947,9 +947,9 @@ start_here: | |||
947 | tophys(r4,r2) | 947 | tophys(r4,r2) |
948 | addi r4,r4,THREAD /* init task's THREAD */ | 948 | addi r4,r4,THREAD /* init task's THREAD */ |
949 | CLR_TOP32(r4) | 949 | CLR_TOP32(r4) |
950 | mtspr SPRN_SPRG3,r4 | 950 | mtspr SPRN_SPRG_THREAD,r4 |
951 | li r3,0 | 951 | li r3,0 |
952 | mtspr SPRN_SPRG2,r3 /* 0 => not in RTAS */ | 952 | mtspr SPRN_SPRG_RTAS,r3 /* 0 => not in RTAS */ |
953 | 953 | ||
954 | /* stack */ | 954 | /* stack */ |
955 | lis r1,init_thread_union@ha | 955 | lis r1,init_thread_union@ha |