Thread (3 messages) 3 messages, 2 authors, 2012-10-28

Re: Power Management issues in MPC8313 processor

From: Scott Wood <hidden>
Date: 2012-10-27 00:28:05

On 10/25/2012 05:07:01 PM, Srivatsan Canchivaram wrote:
Hi,
=20
=20
I have a modem with a Freescale MPC8313E processor. I am trying to =20
enable
power savings in the processor by placing it in Standby mode and =20
resume
normal operation with a Wake-On-LAN magic packet.
=20
=20
Following the directions in the Freescale Power Management app note, I
enabled Power Management Support in the Linux kernel and device tree
configurations.
=20
=20
I ran the following command on the board:
=20
echo standby > /sys/power/state
=20
=20
This caused the console to hang and there was no further response to
keyboard inputs. I enabled =E2=80=98no_console_suspend=E2=80=99 in the ke=
rnel and =20
when I
loaded the new build and enabled standby mode, I observed an Oops =20
trace:
=20
=20
=20
RASCOM_QCU.7.0.0013 $ echo standby > /sys/power/state
=20
<6>PM: Syncing fFreezing user space processes ... ilesystems ... =20
<7>PM:
Entering standby sleep
=20
Unable to handle kernel paging request for instruction fetch
=20
Faulting instruction address: 0x616d6570
=20
Oops: Kernel access of bad area, sig: 11 [#1]
=20
MPC831x RDB
=20
Modules linked in: dsp rcspi modem i2c_mpc thermal_sys lm92 hwmon =20
[last
unloaded: modem]
=20
NIP: 616d6570 LR: c0165224 CTR: 616d6573
=20
REGS: cd087d30 TRAP: 0400   Not tainted  (2.6.27)
=20
MSR: 20001032 <ME,IR,DR>  CR: 28002024  XER: 20000000
=20
TASK =3D cc312400[1196] 'echo' THREAD: cd086000
=20
GPR00: 00000002 cd087de0 cc312400 cf821800 cd087de8 00000002 c06e0000
c06da4a0
=20
GPR08: c06da948 616d6573 00003fff c06c6308 28002022 10091248 0fffc000
100050b8
=20
GPR16: 1008a270 10068810 100687c8 10068814 00000000 1008c284 1008c294
c0246180
=20
GPR24: c02ab9e4 c02ab9dc c06cc4f4 00000006 cd087e08 00000002 c06c595c
cf821808
=20
NIP [616d6570] 0x616d6570
=20
LR [c0165224] platform_pm_suspend_noirq+0x84/0x88
What kernel are you using?  platform_pm_suspend_noirq was removed by =20
this commit:

commit 9b39e73d0c2b265a7f8748b0e9a9f09be84079a8
Author: Rafael J. Wysocki [off-list ref]
Date:   Sun Dec 18 00:34:24 2011 +0100

     PM / Sleep: Remove forward-only callbacks from platform bus type

     The forward-only PM callbacks provided by the platform bus type are
     not necessary any more, because the PM core executes driver =20
callbacks
     when the corresponding subsystem callbacks are not present, so drop
     them.

     Signed-off-by: Rafael J. Wysocki [off-list ref]

It seems that a driver's pm ops are getting corrupted -- maybe used =20
after freeing?  Have you tried enabling slab/slub debug?

Can you instrument the code to see if there are any fields in the =20
device struct that aren't corrupt, that could point out which device =20
this is?
I found another thread that dealt with Power Management issues on the
Freescale MPC8313 processor:
=20
https://lists.ozlabs.org/pipermail/linuxppc-dev/2012-January/095240.html
=20
The resolution of this issue seems to be related to the JTAG TRST pin =20
being
disabled. This is not relevant in my case as the TRST on my board is
already inactive.
If you were seeing that, you'd see a hang rather than an oops.

-Scott=
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help