summaryrefslogtreecommitdiff
path: root/arch/powerpc/kernel/exceptions-64e.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kernel/exceptions-64e.S')
-rw-r--r--arch/powerpc/kernel/exceptions-64e.S9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S
index 39308c7..5e6a242 100644
--- a/arch/powerpc/kernel/exceptions-64e.S
+++ b/arch/powerpc/kernel/exceptions-64e.S
@@ -444,6 +444,14 @@ END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
fixed_interval, .unknown_exception, ACK_FIT)
/* Watchdog Timer Interrupt */
+#ifdef CONFIG_FSL_ERRATUM_A_006184
+ START_EXCEPTION(watchdog)
+ mtspr SPRN_SPRG_CRIT_SCRATCH, r3
+ lis r3, TSR_WIS@h
+ mtspr SPRN_TSR, r3
+ mfspr r3, SPRN_SPRG_CRIT_SCRATCH
+ rfci
+#else
START_EXCEPTION(watchdog);
CRIT_EXCEPTION_PROLOG(0x9f0, BOOKE_INTERRUPT_WATCHDOG,
PROLOG_ADDITION_NONE)
@@ -454,6 +462,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
// bl .unknown_exception
// b ret_from_crit_except
b .
+#endif
/* System Call Interrupt */
START_EXCEPTION(system_call)