#4981 BLOC Never A: Suspend can hang if SCI happens at the wrong time.

Zarro Boogs per Child bugtracker at laptop.org
Fri Nov 16 16:46:03 EST 2007


#4981: Suspend can hang if SCI happens at the wrong time.
---------------------------------+------------------------------------------
 Reporter:  wmb at firmworks.com    |       Owner:  wmb at firmworks.com
     Type:  defect               |      Status:  new              
 Priority:  blocker              |   Milestone:  Never Assigned   
Component:  ofw - open firmware  |     Version:                   
 Keywords:                       |    Verified:  0                
---------------------------------+------------------------------------------
 Jordan Crouse pointed out that, if the 5536 sees a wakeup event after
 interrupts are disabled but before the code tells the 5536 to turn off the
 power, the power-off won't actually happen.

 The result of this would be that the system gets stuck in an infinite loop
 right after the "turn off the power instruction".

 The fix for this it twofold:

 a) The OFW suspend code should not loop indefinitely, but rather should
 spin for a finite number of times (Jordan suggests 0xfff spins of a
 "loopa" loop with a nop in the body), then if that loop finishes, turn the
 memory back on and invoke the resume code.

 b) The kernel should tell the EC that suspend is imminent, and the EC
 should avoid generating wakeup events from a period of time thereafter,
 thus giving the suspend sequence time to complete.

-- 
Ticket URL: <http://dev.laptop.org/ticket/4981>
One Laptop Per Child <http://dev.laptop.org>
OLPC bug tracking system



More information about the Bugs mailing list