diff options
author | LEROY Christophe <christophe.leroy@c-s.fr> | 2015-04-20 01:54:44 -0400 |
---|---|---|
committer | Scott Wood <scottwood@freescale.com> | 2015-06-02 22:37:26 -0400 |
commit | b821c5fe84829996e179bba5da30ee33fb8e9f9f (patch) | |
tree | 627da6fb7ff4a8042e992fa388e6b34b2d32f568 | |
parent | 2eb2fd95001e93c611034f494c7254350ff94d2a (diff) |
powerpc/8xx: Use SPRG2 instead of DAR for saving r3
We now have SPRG2 available as in it not used anymore for saving CR, so we don't
need to crash DAR anymore for saving r3 for CPU6 ERRATA handling.
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Scott Wood <scottwood@freescale.com>
-rw-r--r-- | arch/powerpc/kernel/head_8xx.S | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S index 150d03f79ad8..ba2dc53cd5a1 100644 --- a/arch/powerpc/kernel/head_8xx.S +++ b/arch/powerpc/kernel/head_8xx.S | |||
@@ -309,7 +309,7 @@ SystemCall: | |||
309 | 309 | ||
310 | InstructionTLBMiss: | 310 | InstructionTLBMiss: |
311 | #ifdef CONFIG_8xx_CPU6 | 311 | #ifdef CONFIG_8xx_CPU6 |
312 | mtspr SPRN_DAR, r3 | 312 | mtspr SPRN_SPRG_SCRATCH2, r3 |
313 | #endif | 313 | #endif |
314 | EXCEPTION_PROLOG_0 | 314 | EXCEPTION_PROLOG_0 |
315 | 315 | ||
@@ -362,8 +362,7 @@ InstructionTLBMiss: | |||
362 | 362 | ||
363 | /* Restore registers */ | 363 | /* Restore registers */ |
364 | #ifdef CONFIG_8xx_CPU6 | 364 | #ifdef CONFIG_8xx_CPU6 |
365 | mfspr r3, SPRN_DAR | 365 | mfspr r3, SPRN_SPRG_SCRATCH2 |
366 | mtspr SPRN_DAR, r11 /* Tag DAR */ | ||
367 | #endif | 366 | #endif |
368 | EXCEPTION_EPILOG_0 | 367 | EXCEPTION_EPILOG_0 |
369 | rfi | 368 | rfi |
@@ -371,7 +370,7 @@ InstructionTLBMiss: | |||
371 | . = 0x1200 | 370 | . = 0x1200 |
372 | DataStoreTLBMiss: | 371 | DataStoreTLBMiss: |
373 | #ifdef CONFIG_8xx_CPU6 | 372 | #ifdef CONFIG_8xx_CPU6 |
374 | mtspr SPRN_DAR, r3 | 373 | mtspr SPRN_SPRG_SCRATCH2, r3 |
375 | #endif | 374 | #endif |
376 | EXCEPTION_PROLOG_0 | 375 | EXCEPTION_PROLOG_0 |
377 | mfcr r10 | 376 | mfcr r10 |
@@ -438,7 +437,7 @@ DataStoreTLBMiss: | |||
438 | 437 | ||
439 | /* Restore registers */ | 438 | /* Restore registers */ |
440 | #ifdef CONFIG_8xx_CPU6 | 439 | #ifdef CONFIG_8xx_CPU6 |
441 | mfspr r3, SPRN_DAR | 440 | mfspr r3, SPRN_SPRG_SCRATCH2 |
442 | #endif | 441 | #endif |
443 | mtspr SPRN_DAR, r11 /* Tag DAR */ | 442 | mtspr SPRN_DAR, r11 /* Tag DAR */ |
444 | EXCEPTION_EPILOG_0 | 443 | EXCEPTION_EPILOG_0 |