diff options
Diffstat (limited to 'arch/powerpc/platforms/iseries/exception.S')
-rw-r--r-- | arch/powerpc/platforms/iseries/exception.S | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/powerpc/platforms/iseries/exception.S b/arch/powerpc/platforms/iseries/exception.S index 5381038f0881..c775cd4b3d6e 100644 --- a/arch/powerpc/platforms/iseries/exception.S +++ b/arch/powerpc/platforms/iseries/exception.S | |||
@@ -38,11 +38,19 @@ | |||
38 | 38 | ||
39 | .globl system_reset_iSeries | 39 | .globl system_reset_iSeries |
40 | system_reset_iSeries: | 40 | system_reset_iSeries: |
41 | mfspr r13,SPRN_SPRG3 /* Get paca address */ | 41 | mfspr r13,SPRN_SPRG3 /* Get alpaca address */ |
42 | LOAD_REG_IMMEDIATE(r23, alpaca) | ||
43 | li r0,ALPACA_SIZE | ||
44 | sub r23,r13,r23 | ||
45 | divdu r23,r23,r0 /* r23 has cpu number */ | ||
46 | LOAD_REG_IMMEDIATE(r13, paca) | ||
47 | mulli r0,r23,PACA_SIZE | ||
48 | add r13,r13,r0 | ||
49 | mtspr SPRN_SPRG3,r13 /* Save it away for the future */ | ||
42 | mfmsr r24 | 50 | mfmsr r24 |
43 | ori r24,r24,MSR_RI | 51 | ori r24,r24,MSR_RI |
44 | mtmsrd r24 /* RI on */ | 52 | mtmsrd r24 /* RI on */ |
45 | lhz r24,PACAPACAINDEX(r13) /* Get processor # */ | 53 | mr r24,r23 |
46 | cmpwi 0,r24,0 /* Are we processor 0? */ | 54 | cmpwi 0,r24,0 /* Are we processor 0? */ |
47 | bne 1f | 55 | bne 1f |
48 | b .__start_initialization_iSeries /* Start up the first processor */ | 56 | b .__start_initialization_iSeries /* Start up the first processor */ |