Re: [PATCH] PPC: Enable the Watchdog vector for 405

From
Josh Boyer <hidden>
Date
2012-10-01 12:16:32
Reply to
Jason Gunthorpe, 2012-09-30
On Sun, Sep 30, 2012 at 7:27 PM, Jason Gunthorpe
[off-list ref] wrote:
Move the body of the PIT exception out of line to make room.
What boards did you test this on?  What driver are you using for the
watchdog?
quoted hunk ↗ jump to hunk
Signed-off-by: Jason Gunthorpe <redacted>
---
 arch/powerpc/kernel/head_40x.S |   26 +++++++++++++-------------
 arch/powerpc/kernel/traps.c    |    2 +-
 2 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/arch/powerpc/kernel/head_40x.S b/arch/powerpc/kernel/head_40x.S
index 4989661..7edd7b1 100644
--- a/arch/powerpc/kernel/head_40x.S
+++ b/arch/powerpc/kernel/head_40x.S
@@ -431,29 +431,19 @@ label:

 /* 0x1000 - Programmable Interval Timer (PIT) Exception */
        START_EXCEPTION(0x1000, Decrementer)
-       NORMAL_EXCEPTION_PROLOG
-       lis     r0,TSR_PIS@h
-       mtspr   SPRN_TSR,r0             /* Clear the PIT exception */
-       addi    r3,r1,STACK_FRAME_OVERHEAD
-       EXC_XFER_LITE(0x1000, timer_interrupt)
+       b pit_longer

-#if 0
 /* NOTE:
- * FIT and WDT handlers are not implemented yet.
+ * FIT handler is not implemented yet.
  */

 /* 0x1010 - Fixed Interval Timer (FIT) Exception
 */
-       STND_EXCEPTION(0x1010,  FITException,           unknown_exception)
+//     STND_EXCEPTION(0x1010,  FITException,           unknown_exception)
Please just move the #endif for the #if 0 up instead of putting a C++
style comment here.
quoted hunk ↗ jump to hunk
 /* 0x1020 - Watchdog Timer (WDT) Exception
 */
-#ifdef CONFIG_BOOKE_WDT
        CRITICAL_EXCEPTION(0x1020, WDTException, WatchdogException)
-#else
-       CRITICAL_EXCEPTION(0x1020, WDTException, unknown_exception)
-#endif
-#endif
Please leave this wrapped in CONFIG_BOOKE_WDT.  I don't agree with
unconditionally enabling this for every 405 chip out there.
quoted hunk ↗ jump to hunk
 /* 0x1100 - Data TLB Miss Exception
  * As the name implies, translation is not in the MMU, so search the
@@ -738,6 +728,16 @@ label:
                (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), \
                NOCOPY, crit_transfer_to_handler, ret_from_crit_exc)

+       /* Programmable Interval Timer (PIT) Exception. The PIT runs into
+          the space reserved for other exceptions, so we branch down
+          to here. */
+pit_longer:
+       NORMAL_EXCEPTION_PROLOG
+       lis     r0,TSR_PIS@h
+       mtspr   SPRN_TSR,r0             /* Clear the PIT exception */
+       addi    r3,r1,STACK_FRAME_OVERHEAD
+       EXC_XFER_LITE(0x1000, timer_interrupt)
+
 /*
  * The other Data TLB exceptions bail out to this point
  * if they can't resolve the lightweight TLB fault.
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
index ae0843f..0701ec1 100644
--- a/arch/powerpc/kernel/traps.c
+++ b/arch/powerpc/kernel/traps.c
@@ -1514,7 +1514,7 @@ void unrecoverable_exception(struct pt_regs *regs)
        die("Unrecoverable exception", regs, SIGABRT);
 }

-#ifdef CONFIG_BOOKE_WDT
+#if defined(CONFIG_BOOKE_WDT) | defined(CONFIG_40x)
Pretty sure you meant || here?  Thought if you just enable the existing
config option, I don't think you'd need to edit this file at all.

josh
Thread (7 messages) 7 messages, 3 authors, last reply 2012-10-05
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help