#9420 BLOC 1.5-F11: Crash on resume
Zarro Boogs per Child
bugtracker at laptop.org
Wed Oct 28 15:09:58 EDT 2009
#9420: Crash on resume
--------------------------------+-------------------------------------------
Reporter: cjb | Owner: dsaxena
Type: defect | Status: new
Priority: blocker | Milestone: 1.5-F11
Component: kernel | Version: not specified
Resolution: | Keywords:
Next_action: diagnose | Verified: 0
Deployment_affected: | Blockedby:
Blocking: |
--------------------------------+-------------------------------------------
Comment(by wmb at firmworks.com):
One possibility is DRAM bitrot. That can happen if the DRAMs are kicked
out of self-refresh in the late stages of the hardware's entry-to-S3
sequence. Here's what happens:
a) The OS initiates the enter-S3 sequence by writing 0x2400 to I/O port
0x404 (that's standard ACPI procedure).
b) The hardware puts the DRAMs in self-refresh mode and begins the power
sequencing necessary to go to sleep.
c) Before everything is asleep, a DMA cycle hits the memory controller,
which forces the DRAMs to exit self-refresh mode. Such a DMA cycle could
come from any number of sources, including USB descriptor polling,
graphics accelerator activity, display refresh, etc.
d) The power eventually goes away from the CPU and memory controller, but
the DRAMs are no long self-refreshing, so they lose data gradually during
the sleeping period.
In the OFW suspend test framework, the last thing I do before writing to
I/O port 0x404 is to turn off the bus mastering enable bits in all of the
PCI configuration headers, thus ensuring that those devices cannot issue
DMA cycles.
--
Ticket URL: <http://dev.laptop.org/ticket/9420#comment:8>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system
More information about the Bugs
mailing list