Skip to contentSkip to conversation

pm-core broken

DISCUSSION Nishanth Menon 3 participants 8 messages Dec 16, 2010 1 message not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw

Hi Kevin,

Just fyi, I tested pm-core(no patches of mine) against SDP3430(ES3.1) and Beagle Rev C1(ES3.0) (that is the only board I could dig up): both fail - I think basically <3630 is broken atm!.

Beagleboard:
with omap2plus_defconfig + MLO, u-boot.bin from
http://www.angstrom-distribution.org/demo/beagleboard/
filesystem is a minimal busybox that I had built and init=/bin/sh to prevent any other apps running in the background - I use the same on SDP3630 and 3430 platforms.

branch: pm-core (from your tree).
defconfig: omap2plus_defconfig - no changes other than disable RM680 board - currently causes a build failure.

test script - same one I had send to ML earlier today replica here: http://pastebin.mozilla.org/889933

log:

# ./suspend-idle.sh 

mount: no /proc/mounts

[   12.493682] PM: Syncing filesystems ... done. 
[   12.749114] Freezing user space processes ... (elapsed 0.01 seconds) done.
[   12.774780] Freezing remaining freezable tasks ... (elapsed 0.02 seconds) don

e.

[   12.807891] Suspending console(s) (use no_console_suspend to debug) 
[   12.930480] PM: suspend of devices complete after 111.450 msecs 
[   12.933990] omap_device: i2c_omap.1: new worst case deactivate latency 0: 152

587

[   12.934234] PM: late suspend of devices complete after 3.692 msecs 
[   12.934295] Disabling non-boot CPUs ... 
[   12.934906] PM: Resume timer in 5.000 secs (163840 ticks at 32768 ticks/sec.)
[   12.935119] omap_device: omap-hsuart.1: new worst case deactivate latency 0:

30517

[   17.848388] omap_device: omap-hsuart.0: new worst case activate latency 0: 91

552

[   17.848541] Powerdomain (core_pwrdm) didn't enter target state 0 
[   17.848571] Powerdomain (dss_pwrdm) didn't enter target state 0 
[   17.848602] Could not enter target state in pm_suspend 
[   17.850952] PM: early resume of devices complete after 1.983 msecs 
[   18.238128] PM: resume of devices complete after 386.688 msecs 
[   18.321746] Restarting tasks ... done. 

SUSPEND:OFF test | FAIL | OFF: 0->0| RET:0 ->0 (6 sec)

[   19.755401] PM: Syncing filesystems ... done. 
[   19.801116] Freezing user space processes ... (elapsed 0.02 seconds) done.
[   19.829406] Freezing remaining freezable tasks ... (elapsed 0.02 seconds) don

e.

[   19.861419] Suspending console(s) (use no_console_suspend to debug) 
[   19.984863] PM: suspend of devices complete after 112.487 msecs 
[   19.988281] PM: late suspend of devices complete after 3.387 msecs 
[   19.988311] Disabling non-boot CPUs ... 
[   19.988616] PM: Resume timer in 5.000 secs (163840 ticks at 32768 ticks/sec.)
[   24.853942] Powerdomain (core_pwrdm) didn't enter target state 1 
[   24.853942] Powerdomain (dss_pwrdm) didn't enter target state 1 
[   24.853973] Could not enter target state in pm_suspend 
[   24.855926] PM: early resume of devices complete after 1.739 msecs 
[   25.243804] PM: resume of devices complete after 387.634 msecs 
[   25.303649] Restarting tasks ... done. 

SUSPEND:RET test | FAIL | OFF: 0->0| RET:0 ->0 (7 sec)

IDLE:OFF test | FAIL | OFF: 0->0| RET:0 ->0 (21 sec)

IDLE:RET test | FAIL | OFF: 0->0| RET:0 ->0 (21 sec)

usbhost_pwrdm (RET),OFF:2,RET:3,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 sgx_pwrdm (OFF),OFF:1,RET:0,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 per_pwrdm (ON),OFF:15,RET:22,INA:0,ON:38,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 dss_pwrdm (ON),OFF:0,RET:0,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0

cam_pwrdm (RET),OFF:2,RET:3,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 core_pwrdm (ON),OFF:0,RET:0,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0,RET-ME MBANK2-OFF:0

neon_pwrdm (ON),OFF:15,RET:30,INA:0,ON:46,RET-LOGIC-OFF:0

mpu_pwrdm (ON),OFF:15,RET:30,INA:0,ON:46,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 iva2_pwrdm (RET),OFF:2,RET:3,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0,RET-M EMBANK2-OFF:0,RET-MEMBANK3-OFF:0,RET-MEMBANK4-OFF:0

per_clkdm->per_pwrdm (9)

usbhost_clkdm->usbhost_pwrdm (0)

cam_clkdm->cam_pwrdm (0)

dss_clkdm->dss_pwrdm (0)

core_l4_clkdm->core_pwrdm (11)

core_l3_clkdm->core_pwrdm (4)

d2d_clkdm->core_pwrdm (0)

sgx_clkdm->sgx_pwrdm (0)

iva2_clkdm->iva2_pwrdm (0)

neon_clkdm->neon_pwrdm (0)

mpu_clkdm->mpu_pwrdm (0)

prm_clkdm->wkup_pwrdm (0)

cm_clkdm->core_pwrdm (0)

SUSPEND:OFF test | FAIL | OFF: 0->0| RET:0 ->0 (6 sec)

SUSPEND:RET test | FAIL | OFF: 0->0| RET:0 ->0 (7 sec)

IDLE:OFF test | FAIL | OFF: 0->0| RET:0 ->0 (21 sec)

IDLE:RET test | FAIL | OFF: 0->0| RET:0 ->0 (21 sec)

# cat /sys/kernel/debug/pm_debug/registers/current 

MOD: CM_IVA2 (48014000)

04 => 00000037 20 => 00000001 34 => 00000001 40 => 0009680c

44 => 00000001 48 => 00000003

MOD: CM_OCP (48004800)

00 => 00000010 10 => 00000001

MOD: CM_MPU (48004900)

04 => 00000037 24 => 00000001 34 => 00000001 40 => 0011f40c

44 => 00000001 48 => 00000003 4c => 00000001

MOD: CM_CORE (48004a00)

00 => 00006000 10 => 0103e042 20 => ffff9fbd 24 => 0000001f

28 => 0000000d 30 => fffffed9 34 => 0000001f 38 => 0000000c

40 => 0000030a 48 => 0000003f 4c => 00000003

MOD: CM_SGX (48004b00)

20 => 00000001 40 => 00000002 48 => 00000003

MOD: CM_WKUP (48004c00)

10 => 0000002e 20 => 000002f1 30 => 0000003f 40 => 00000015

MOD: CM_CCR (48004d00)

00 => f0371037 04 => 00000031 20 => 00000a0b 30 => 00000009

34 => 00000001 40 => 094c0c00 44 => 0001b00c 48 => 00000009

4c => 0000780c 50 => 00000001 70 => 00000003

MOD: CM_DSS (48004e00)

20 => 00000002 30 => 00000001 40 => 00001002 48 => 00000003

4c => 00000001

MOD: CM_CAM (48004f00)

20 => 00000001 30 => 00000001 40 => 00000004 48 => 00000003

MOD: CM_PER (48005000)

00 => 00000800 10 => 0003e800 20 => 000017ff 30 => 0003ffff

40 => 000000ff 44 => 00000006 48 => 00000003 4c => 00000001

MOD: CM_EMU (48005100)

40 => 03020a50 48 => 00000002 4c => 00000001

MOD: CM_NEON (48005300)

48 => 00000003

MOD: CM_USB (48005400)

20 => 00000003 30 => 00000001 48 => 00000003

MOD: PRM_IVA2 (48316000)

50 => 00000007 e0 => 00ff0f05 e4 => 00000555 e8 => 00000555

f8 => 00000002

MOD: PRM_OCP (48306800)

04 => 00000010 14 => 00000001 18 => 00000050 1c => 00000201

MOD: PRM_MPU (48306900)

58 => 00000004 d4 => 00000012 e0 => 00030105 e4 => 000000c7

e8 => 00000045

MOD: PRM_CORE (48306a00)

58 => 00000300 a0 => c33ffe18 a4 => c33ffe18 e0 => 000f0305

e4 => 000000f7 e8 => 000000f7 f0 => 00000004 f8 => 00000004

MOD: PRM_SGX (48306b00)

e0 => 00030104

MOD: PRM_WKUP (48306c00)

a0 => 0000000b a4 => 0000010b

MOD: PRM_CCR (48306d00)

40 => 00000003

MOD: PRM_DSS (48306e00)

a0 => 00000001 e0 => 00030105 e4 => 00000003 e8 => 00000003

MOD: PRM_CAM (48306f00)

58 => 00000001 e0 => 00030105 e4 => 00000001 e8 => 00000001

MOD: PRM_PER (48307000)

58 => 00000004 a0 => 0003e807 a4 => 0003e807 c8 => 00000006

e0 => 00030105 e4 => 00000007 e8 => 00000005

MOD: PRM_EMU (48307100)

58 => 00000004 e4 => 00000103

MOD: PRM_GLBL (48307200)

38 => 00000018 54 => 00001006 58 => 00000001 64 => 00000050

70 => 00000088 9c => 0000000a c4 => 00000001 e4 => 00000001

MOD: PRM_NEON (48307300)

58 => 00000004 c8 => 00000002 e0 => 00000005 e4 => 00000003

e8 => 00000001

MOD: PRM_USB (48307400)

58 => 00000004 a0 => 00000001 a4 => 00000001 a8 => 00000001

e0 => 00030105 e4 => 00000001 e8 => 00000001

Signature · 2 lines
Regards,
Nishanth Menon
#2 lore raw
Quoted 7 lines

-----Original Message-----
From: [email protected] [mailto:linux-omap- [email protected]] On Behalf Of Nishanth Menon
Sent: Thursday, December 16, 2010 7:57 AM
To: Kevin H; [email protected]
Subject: pm-core broken

Quoted 6 lines

Hi Kevin,

Just fyi, I tested pm-core(no patches of mine) against SDP3430(ES3.1) and Beagle Rev C1(ES3.0) (that is the only board I could dig up): both fail - I think basically <3630 is broken atm!.

[Hiremath, Vaibhav] Nishant,

I am also seeing similar behavior on OMAP3EVM (AM/DM3730), where it does fail with message "Powerdomain (core_pwrdm) didn't enter target state 0". But somehow I am not seeing issues with DSS power domain, not sure what could be happening.

Thanks,
Vaibhav

Quoted 305 lines

Beagleboard:
with omap2plus_defconfig + MLO, u-boot.bin from
http://www.angstrom-distribution.org/demo/beagleboard/
filesystem is a minimal busybox that I had built and init=/bin/sh to prevent any other apps running in the background - I use the same on SDP3630 and 3430 platforms.

branch: pm-core (from your tree).
defconfig: omap2plus_defconfig - no changes other than disable RM680 board - currently causes a build failure.

test script - same one I had send to ML earlier today replica here: http://pastebin.mozilla.org/889933

log:

# ./suspend-idle.sh

mount: no /proc/mounts

[   12.493682] PM: Syncing filesystems ... done.
[   12.749114] Freezing user space processes ... (elapsed 0.01 seconds)
done.
[   12.774780] Freezing remaining freezable tasks ... (elapsed 0.02

seconds) don
e.

[   12.807891] Suspending console(s) (use no_console_suspend to debug)
[   12.930480] PM: suspend of devices complete after 111.450 msecs
[   12.933990] omap_device: i2c_omap.1: new worst case deactivate

latency 0: 152
587

[   12.934234] PM: late suspend of devices complete after 3.692 msecs
[   12.934295] Disabling non-boot CPUs ...
[   12.934906] PM: Resume timer in 5.000 secs (163840 ticks at 32768
ticks/sec.)
[   12.935119] omap_device: omap-hsuart.1: new worst case deactivate

latency 0:
30517

[   17.848388] omap_device: omap-hsuart.0: new worst case activate

latency 0: 91
552

[   17.848541] Powerdomain (core_pwrdm) didn't enter target state 0
[   17.848571] Powerdomain (dss_pwrdm) didn't enter target state 0
[   17.848602] Could not enter target state in pm_suspend
[   17.850952] PM: early resume of devices complete after 1.983 msecs
[   18.238128] PM: resume of devices complete after 386.688 msecs
[   18.321746] Restarting tasks ... done.

SUSPEND:OFF test | FAIL | OFF: 0->0| RET:0 ->0 (6 sec)

[   19.755401] PM: Syncing filesystems ... done.
[   19.801116] Freezing user space processes ... (elapsed 0.02 seconds)
done.
[   19.829406] Freezing remaining freezable tasks ... (elapsed 0.02

seconds) don
e.

[   19.861419] Suspending console(s) (use no_console_suspend to debug)
[   19.984863] PM: suspend of devices complete after 112.487 msecs
[   19.988281] PM: late suspend of devices complete after 3.387 msecs
[   19.988311] Disabling non-boot CPUs ...
[   19.988616] PM: Resume timer in 5.000 secs (163840 ticks at 32768
ticks/sec.)
[   24.853942] Powerdomain (core_pwrdm) didn't enter target state 1
[   24.853942] Powerdomain (dss_pwrdm) didn't enter target state 1
[   24.853973] Could not enter target state in pm_suspend
[   24.855926] PM: early resume of devices complete after 1.739 msecs
[   25.243804] PM: resume of devices complete after 387.634 msecs
[   25.303649] Restarting tasks ... done.

SUSPEND:RET test | FAIL | OFF: 0->0| RET:0 ->0 (7 sec)

IDLE:OFF test | FAIL | OFF: 0->0| RET:0 ->0 (21 sec)

IDLE:RET test | FAIL | OFF: 0->0| RET:0 ->0 (21 sec)

usbhost_pwrdm (RET),OFF:2,RET:3,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 sgx_pwrdm (OFF),OFF:1,RET:0,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 per_pwrdm (ON),OFF:15,RET:22,INA:0,ON:38,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 dss_pwrdm (ON),OFF:0,RET:0,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0

cam_pwrdm (RET),OFF:2,RET:3,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 core_pwrdm (ON),OFF:0,RET:0,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0,RET-ME MBANK2-OFF:0

neon_pwrdm (ON),OFF:15,RET:30,INA:0,ON:46,RET-LOGIC-OFF:0

mpu_pwrdm (ON),OFF:15,RET:30,INA:0,ON:46,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 iva2_pwrdm (RET),OFF:2,RET:3,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0,RET-M EMBANK2-OFF:0,RET-MEMBANK3-OFF:0,RET-MEMBANK4-OFF:0

per_clkdm->per_pwrdm (9)

usbhost_clkdm->usbhost_pwrdm (0)

cam_clkdm->cam_pwrdm (0)

dss_clkdm->dss_pwrdm (0)

core_l4_clkdm->core_pwrdm (11)

core_l3_clkdm->core_pwrdm (4)

d2d_clkdm->core_pwrdm (0)

sgx_clkdm->sgx_pwrdm (0)

iva2_clkdm->iva2_pwrdm (0)

neon_clkdm->neon_pwrdm (0)

mpu_clkdm->mpu_pwrdm (0)

prm_clkdm->wkup_pwrdm (0)

cm_clkdm->core_pwrdm (0)

SUSPEND:OFF test | FAIL | OFF: 0->0| RET:0 ->0 (6 sec)

SUSPEND:RET test | FAIL | OFF: 0->0| RET:0 ->0 (7 sec)

IDLE:OFF test | FAIL | OFF: 0->0| RET:0 ->0 (21 sec)

IDLE:RET test | FAIL | OFF: 0->0| RET:0 ->0 (21 sec)

# cat /sys/kernel/debug/pm_debug/registers/current

MOD: CM_IVA2 (48014000)

   04 => 00000037  20 => 00000001  34 => 00000001  40 => 0009680c

   44 => 00000001  48 => 00000003

MOD: CM_OCP (48004800)

   00 => 00000010  10 => 00000001

MOD: CM_MPU (48004900)

   04 => 00000037  24 => 00000001  34 => 00000001  40 => 0011f40c

   44 => 00000001  48 => 00000003  4c => 00000001

MOD: CM_CORE (48004a00)

   00 => 00006000  10 => 0103e042  20 => ffff9fbd  24 => 0000001f

   28 => 0000000d  30 => fffffed9  34 => 0000001f  38 => 0000000c

   40 => 0000030a  48 => 0000003f  4c => 00000003

MOD: CM_SGX (48004b00)

   20 => 00000001  40 => 00000002  48 => 00000003

MOD: CM_WKUP (48004c00)

   10 => 0000002e  20 => 000002f1  30 => 0000003f  40 => 00000015

MOD: CM_CCR (48004d00)

   00 => f0371037  04 => 00000031  20 => 00000a0b  30 => 00000009

   34 => 00000001  40 => 094c0c00  44 => 0001b00c  48 => 00000009

   4c => 0000780c  50 => 00000001  70 => 00000003

MOD: CM_DSS (48004e00)

   20 => 00000002  30 => 00000001  40 => 00001002  48 => 00000003

   4c => 00000001

MOD: CM_CAM (48004f00)

   20 => 00000001  30 => 00000001  40 => 00000004  48 => 00000003

MOD: CM_PER (48005000)

   00 => 00000800  10 => 0003e800  20 => 000017ff  30 => 0003ffff

   40 => 000000ff  44 => 00000006  48 => 00000003  4c => 00000001

MOD: CM_EMU (48005100)

   40 => 03020a50  48 => 00000002  4c => 00000001

MOD: CM_NEON (48005300)

   48 => 00000003

MOD: CM_USB (48005400)

   20 => 00000003  30 => 00000001  48 => 00000003

MOD: PRM_IVA2 (48316000)

   50 => 00000007  e0 => 00ff0f05  e4 => 00000555  e8 => 00000555

   f8 => 00000002

MOD: PRM_OCP (48306800)

   04 => 00000010  14 => 00000001  18 => 00000050  1c => 00000201

MOD: PRM_MPU (48306900)

   58 => 00000004  d4 => 00000012  e0 => 00030105  e4 => 000000c7

   e8 => 00000045

MOD: PRM_CORE (48306a00)

   58 => 00000300  a0 => c33ffe18  a4 => c33ffe18  e0 => 000f0305

   e4 => 000000f7  e8 => 000000f7  f0 => 00000004  f8 => 00000004

MOD: PRM_SGX (48306b00)

   e0 => 00030104

MOD: PRM_WKUP (48306c00)

   a0 => 0000000b  a4 => 0000010b

MOD: PRM_CCR (48306d00)

   40 => 00000003

MOD: PRM_DSS (48306e00)

   a0 => 00000001  e0 => 00030105  e4 => 00000003  e8 => 00000003

MOD: PRM_CAM (48306f00)

   58 => 00000001  e0 => 00030105  e4 => 00000001  e8 => 00000001

MOD: PRM_PER (48307000)

   58 => 00000004  a0 => 0003e807  a4 => 0003e807  c8 => 00000006

   e0 => 00030105  e4 => 00000007  e8 => 00000005

MOD: PRM_EMU (48307100)

   58 => 00000004  e4 => 00000103

MOD: PRM_GLBL (48307200)

   38 => 00000018  54 => 00001006  58 => 00000001  64 => 00000050

   70 => 00000088  9c => 0000000a  c4 => 00000001  e4 => 00000001

MOD: PRM_NEON (48307300)

   58 => 00000004  c8 => 00000002  e0 => 00000005  e4 => 00000003

   e8 => 00000001

MOD: PRM_USB (48307400)

   58 => 00000004  a0 => 00000001  a4 => 00000001  a8 => 00000001

   e0 => 00030105  e4 => 00000001  e8 => 00000001

--
Regards,
Nishanth Menon
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#3 lore raw

Hiremath, Vaibhav had written, on 12/15/2010 09:00 PM, the following:

Quoted 9 lines
Quoted 9 lines

-----Original Message-----
From: [email protected] [mailto:linux-omap- [email protected]] On Behalf Of Nishanth Menon
Sent: Thursday, December 16, 2010 7:57 AM
To: Kevin H; [email protected]
Subject: pm-core broken

Hi Kevin,

Quoted 7 lines
Quoted 4 lines

Just fyi, I tested pm-core(no patches of mine) against SDP3430(ES3.1) and Beagle Rev C1(ES3.0) (that is the only board I could dig up): both fail - I think basically <3630 is broken atm!.

[Hiremath, Vaibhav] Nishant,

I am also seeing similar behavior on OMAP3EVM (AM/DM3730), where it does fail with message "Powerdomain (core_pwrdm) didn't enter target state 0". But somehow I am not seeing issues with DSS power domain, not sure what could be happening.

Really curious now. my results with SDP3630:

http://pastebin.mozilla.org/890302

SUSPEND:OFF test | PASS | OFF: 0->1| RET:0 ->0 (7 sec)
SUSPEND:RET test | PASS | OFF: 1->1| RET:0 ->1 (6 sec)
IDLE:OFF test | PASS | OFF: 1->23| RET:1 ->1 (21 sec)
IDLE:RET test | PASS | OFF: 23->23| RET:1 ->23 (21 sec)

are you on k.org? can you run my script http://pastebin.mozilla.org/889933 and provide the results for EVM?

Signature · 2 lines
Regards,
Nishanth Menon
#4 lore raw
In reply to Nishanth Menon
Quoted 13 lines · Nishanth Menon

Hi Kevin,

Just fyi, I tested pm-core(no patches of mine) against SDP3430(ES3.1) and Beagle Rev C1(ES3.0) (that is the only board I could dig up): both fail - I think basically <3630 is broken atm!.

Beagleboard:
with omap2plus_defconfig + MLO, u-boot.bin from
http://www.angstrom-distribution.org/demo/beagleboard/
filesystem is a minimal busybox that I had built and init=/bin/sh to prevent any other apps running in the background - I use the same on SDP3630 and 3430 platforms.

Quoted 3 lines

branch: pm-core (from your tree).
defconfig: omap2plus_defconfig - no changes other than disable RM680 board - currently causes a build failure.

At least for Beagle (and I assume it's same for SDP, but don't have one to test with) the problem is that u-boot leaves the USB OTG block in a state that does not idle, and thus prevents CORE from hitting RET.

The solution: ensure the USB OTG block is reset.

Also in my tree, threre is an usb-otg-reset branch which you can merge with pm-core to test if this helps.

Until we have the USB OTG hwmod conversion merged, this temporary hack is needed. After conversion to hwmod, all hwmod will be reset during boot so we are not affected by bootloader (mis)behavior.

Kevin

Quoted 286 lines

test script - same one I had send to ML earlier today replica here: http://pastebin.mozilla.org/889933

log:

# ./suspend-idle.sh 

mount: no /proc/mounts

[   12.493682] PM: Syncing filesystems ... done. 
[   12.749114] Freezing user space processes ... (elapsed 0.01
seconds) done.
[   12.774780] Freezing remaining freezable tasks ... (elapsed 0.02

seconds) don
e.

[   12.807891] Suspending console(s) (use no_console_suspend to debug) 
[   12.930480] PM: suspend of devices complete after 111.450 msecs 
[   12.933990] omap_device: i2c_omap.1: new worst case deactivate

latency 0: 152
587

[   12.934234] PM: late suspend of devices complete after 3.692 msecs 
[   12.934295] Disabling non-boot CPUs ... 
[   12.934906] PM: Resume timer in 5.000 secs (163840 ticks at 32768
ticks/sec.)
[   12.935119] omap_device: omap-hsuart.1: new worst case deactivate

latency 0:
30517

[   17.848388] omap_device: omap-hsuart.0: new worst case activate

latency 0: 91
552

[   17.848541] Powerdomain (core_pwrdm) didn't enter target state 0 
[   17.848571] Powerdomain (dss_pwrdm) didn't enter target state 0 
[   17.848602] Could not enter target state in pm_suspend 
[   17.850952] PM: early resume of devices complete after 1.983 msecs 
[   18.238128] PM: resume of devices complete after 386.688 msecs 
[   18.321746] Restarting tasks ... done. 

SUSPEND:OFF test | FAIL | OFF: 0->0| RET:0 ->0 (6 sec)

[   19.755401] PM: Syncing filesystems ... done. 
[   19.801116] Freezing user space processes ... (elapsed 0.02
seconds) done.
[   19.829406] Freezing remaining freezable tasks ... (elapsed 0.02

seconds) don
e.

[   19.861419] Suspending console(s) (use no_console_suspend to debug) 
[   19.984863] PM: suspend of devices complete after 112.487 msecs 
[   19.988281] PM: late suspend of devices complete after 3.387 msecs 
[   19.988311] Disabling non-boot CPUs ... 
[   19.988616] PM: Resume timer in 5.000 secs (163840 ticks at 32768
ticks/sec.)
[   24.853942] Powerdomain (core_pwrdm) didn't enter target state 1 
[   24.853942] Powerdomain (dss_pwrdm) didn't enter target state 1 
[   24.853973] Could not enter target state in pm_suspend 
[   24.855926] PM: early resume of devices complete after 1.739 msecs 
[   25.243804] PM: resume of devices complete after 387.634 msecs 
[   25.303649] Restarting tasks ... done. 

SUSPEND:RET test | FAIL | OFF: 0->0| RET:0 ->0 (7 sec)

IDLE:OFF test | FAIL | OFF: 0->0| RET:0 ->0 (21 sec)

IDLE:RET test | FAIL | OFF: 0->0| RET:0 ->0 (21 sec)

usbhost_pwrdm (RET),OFF:2,RET:3,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 sgx_pwrdm (OFF),OFF:1,RET:0,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 per_pwrdm (ON),OFF:15,RET:22,INA:0,ON:38,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 dss_pwrdm (ON),OFF:0,RET:0,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0

cam_pwrdm (RET),OFF:2,RET:3,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 core_pwrdm (ON),OFF:0,RET:0,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0,RET-ME MBANK2-OFF:0

neon_pwrdm (ON),OFF:15,RET:30,INA:0,ON:46,RET-LOGIC-OFF:0

mpu_pwrdm (ON),OFF:15,RET:30,INA:0,ON:46,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 iva2_pwrdm (RET),OFF:2,RET:3,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0,RET-M EMBANK2-OFF:0,RET-MEMBANK3-OFF:0,RET-MEMBANK4-OFF:0

per_clkdm->per_pwrdm (9)

usbhost_clkdm->usbhost_pwrdm (0)

cam_clkdm->cam_pwrdm (0)

dss_clkdm->dss_pwrdm (0)

core_l4_clkdm->core_pwrdm (11)

core_l3_clkdm->core_pwrdm (4)

d2d_clkdm->core_pwrdm (0)

sgx_clkdm->sgx_pwrdm (0)

iva2_clkdm->iva2_pwrdm (0)

neon_clkdm->neon_pwrdm (0)

mpu_clkdm->mpu_pwrdm (0)

prm_clkdm->wkup_pwrdm (0)

cm_clkdm->core_pwrdm (0)

SUSPEND:OFF test | FAIL | OFF: 0->0| RET:0 ->0 (6 sec)

SUSPEND:RET test | FAIL | OFF: 0->0| RET:0 ->0 (7 sec)

IDLE:OFF test | FAIL | OFF: 0->0| RET:0 ->0 (21 sec)

IDLE:RET test | FAIL | OFF: 0->0| RET:0 ->0 (21 sec)

# cat /sys/kernel/debug/pm_debug/registers/current 

MOD: CM_IVA2 (48014000)

04 => 00000037 20 => 00000001 34 => 00000001 40 => 0009680c

44 => 00000001 48 => 00000003

MOD: CM_OCP (48004800)

00 => 00000010 10 => 00000001

MOD: CM_MPU (48004900)

04 => 00000037 24 => 00000001 34 => 00000001 40 => 0011f40c

44 => 00000001 48 => 00000003 4c => 00000001

MOD: CM_CORE (48004a00)

00 => 00006000 10 => 0103e042 20 => ffff9fbd 24 => 0000001f

28 => 0000000d 30 => fffffed9 34 => 0000001f 38 => 0000000c

40 => 0000030a 48 => 0000003f 4c => 00000003

MOD: CM_SGX (48004b00)

20 => 00000001 40 => 00000002 48 => 00000003

MOD: CM_WKUP (48004c00)

10 => 0000002e 20 => 000002f1 30 => 0000003f 40 => 00000015

MOD: CM_CCR (48004d00)

00 => f0371037 04 => 00000031 20 => 00000a0b 30 => 00000009

34 => 00000001 40 => 094c0c00 44 => 0001b00c 48 => 00000009

4c => 0000780c 50 => 00000001 70 => 00000003

MOD: CM_DSS (48004e00)

20 => 00000002 30 => 00000001 40 => 00001002 48 => 00000003

4c => 00000001

MOD: CM_CAM (48004f00)

20 => 00000001 30 => 00000001 40 => 00000004 48 => 00000003

MOD: CM_PER (48005000)

00 => 00000800 10 => 0003e800 20 => 000017ff 30 => 0003ffff

40 => 000000ff 44 => 00000006 48 => 00000003 4c => 00000001

MOD: CM_EMU (48005100)

40 => 03020a50 48 => 00000002 4c => 00000001

MOD: CM_NEON (48005300)

48 => 00000003

MOD: CM_USB (48005400)

20 => 00000003 30 => 00000001 48 => 00000003

MOD: PRM_IVA2 (48316000)

50 => 00000007 e0 => 00ff0f05 e4 => 00000555 e8 => 00000555

f8 => 00000002

MOD: PRM_OCP (48306800)

04 => 00000010 14 => 00000001 18 => 00000050 1c => 00000201

MOD: PRM_MPU (48306900)

58 => 00000004 d4 => 00000012 e0 => 00030105 e4 => 000000c7

e8 => 00000045

MOD: PRM_CORE (48306a00)

58 => 00000300 a0 => c33ffe18 a4 => c33ffe18 e0 => 000f0305

e4 => 000000f7 e8 => 000000f7 f0 => 00000004 f8 => 00000004

MOD: PRM_SGX (48306b00)

e0 => 00030104

MOD: PRM_WKUP (48306c00)

a0 => 0000000b a4 => 0000010b

MOD: PRM_CCR (48306d00)

40 => 00000003

MOD: PRM_DSS (48306e00)

a0 => 00000001 e0 => 00030105 e4 => 00000003 e8 => 00000003

MOD: PRM_CAM (48306f00)

58 => 00000001 e0 => 00030105 e4 => 00000001 e8 => 00000001

MOD: PRM_PER (48307000)

58 => 00000004 a0 => 0003e807 a4 => 0003e807 c8 => 00000006

e0 => 00030105 e4 => 00000007 e8 => 00000005

MOD: PRM_EMU (48307100)

58 => 00000004 e4 => 00000103

MOD: PRM_GLBL (48307200)

38 => 00000018 54 => 00001006 58 => 00000001 64 => 00000050

70 => 00000088 9c => 0000000a c4 => 00000001 e4 => 00000001

MOD: PRM_NEON (48307300)

58 => 00000004 c8 => 00000002 e0 => 00000005 e4 => 00000003

e8 => 00000001

MOD: PRM_USB (48307400)

58 => 00000004 a0 => 00000001 a4 => 00000001 a8 => 00000001

e0 => 00030105 e4 => 00000001 e8 => 00000001

#5 lore raw

Kevin Hilman had written, on 12/16/2010 10:36 AM, the following:

Quoted 23 lines
Quoted 13 lines · Nishanth Menon

Hi Kevin,

Just fyi, I tested pm-core(no patches of mine) against SDP3430(ES3.1) and Beagle Rev C1(ES3.0) (that is the only board I could dig up): both fail - I think basically <3630 is broken atm!.

Beagleboard:
with omap2plus_defconfig + MLO, u-boot.bin from
http://www.angstrom-distribution.org/demo/beagleboard/
filesystem is a minimal busybox that I had built and init=/bin/sh to prevent any other apps running in the background - I use the same on SDP3630 and 3430 platforms.

Quoted 3 lines

branch: pm-core (from your tree).
defconfig: omap2plus_defconfig - no changes other than disable RM680 board - currently causes a build failure.

At least for Beagle (and I assume it's same for SDP, but don't have one to test with) the problem is that u-boot leaves the USB OTG block in a state that does not idle, and thus prevents CORE from hitting RET.

Quoted 8 lines

The solution: ensure the USB OTG block is reset.

Also in my tree, threre is an usb-otg-reset branch which you can merge with pm-core to test if this helps.

Until we have the USB OTG hwmod conversion merged, this temporary hack is needed. After conversion to hwmod, all hwmod will be reset during boot so we are not affected by bootloader (mis)behavior.

Arrgh.. we have some sort of regression for .37 formal release (off will probably broken as a result without these patches no for mainline bootloaders/custom bootloaders that dont understand the dependency clearly?).

Anyways, with the 5 patches in usb-otg-reset - test results:
SDP3630 (ES1.0):

SUSPEND:OFF test | PASS | OFF: 0->1| RET:0 ->0 (8 sec)
SUSPEND:RET test | PASS | OFF: 1->1| RET:0 ->1 (6 sec)
IDLE:OFF test | PASS | OFF: 1->22| RET:1 ->1 (21 sec)
IDLE:RET test | PASS | OFF: 22->22| RET:1 ->24 (21 sec)

SDP3430 (ES3.1):
SUSPEND:OFF test | PASS | OFF: 0->1| RET:0 ->0 (7 sec)

SUSPEND:RET test | PASS | OFF: 1->1| RET:0 ->1 (6 sec)

IDLE:OFF test | PASS | OFF: 1->21| RET:1 ->1 (22 sec)

IDLE:RET test | PASS | OFF: 21->21| RET:1 ->23 (21 sec)

Beagle C1 (ES3.0):
SUSPEND:OFF test | FAIL | OFF: 0->0| RET:0 ->0 (6 sec)

SUSPEND:RET test | FAIL | OFF: 0->0| RET:0 ->0 (6 sec)

IDLE:OFF test | FAIL | OFF: 0->0| RET:0 ->0 (21 sec)

IDLE:RET test | FAIL | OFF: 0->0| RET:0 ->0 (21 sec)

Signature · 2 lines
Regards,
Nishanth Menon
#6 lore raw
Quoted 29 lines · Nishanth Menon

Kevin Hilman had written, on 12/16/2010 10:36 AM, the following:

Quoted 28 lines
Quoted 13 lines · Nishanth Menon

Hi Kevin,

Just fyi, I tested pm-core(no patches of mine) against SDP3430(ES3.1) and Beagle Rev C1(ES3.0) (that is the only board I could dig up): both fail - I think basically <3630 is broken atm!.

Beagleboard:
with omap2plus_defconfig + MLO, u-boot.bin from
http://www.angstrom-distribution.org/demo/beagleboard/
filesystem is a minimal busybox that I had built and init=/bin/sh to prevent any other apps running in the background - I use the same on SDP3630 and 3430 platforms.

Quoted 3 lines

branch: pm-core (from your tree).
defconfig: omap2plus_defconfig - no changes other than disable RM680 board - currently causes a build failure.

At least for Beagle (and I assume it's same for SDP, but don't have one to test with) the problem is that u-boot leaves the USB OTG block in a state that does not idle, and thus prevents CORE from hitting RET.

The solution: ensure the USB OTG block is reset.

Also in my tree, threre is an usb-otg-reset branch which you can merge with pm-core to test if this helps.

Quoted 8 lines
Quoted 3 lines

Until we have the USB OTG hwmod conversion merged, this temporary hack is needed. After conversion to hwmod, all hwmod will be reset during boot so we are not affected by bootloader (mis)behavior.

Arrgh.. we have some sort of regression for .37 formal release (off will probably broken as a result without these patches no for mainline bootloaders/custom bootloaders that dont understand the dependency clearly?).

Just to be clear, this is technically not a regression. This has always been true of mainline kernels since most IP blocks are not reset by the kernel.

Bootloaders for various boards have always done strange (a.k.a broken) things and left the HW in a state that cannot properly idle. The only solution is to ensure all IPs are fully reset on boot.

Quoted 13 lines

Anyways, with the 5 patches in usb-otg-reset - test results:
SDP3630 (ES1.0):

SUSPEND:OFF test | PASS | OFF: 0->1| RET:0 ->0 (8 sec)
SUSPEND:RET test | PASS | OFF: 1->1| RET:0 ->1 (6 sec)
IDLE:OFF test | PASS | OFF: 1->22| RET:1 ->1 (21 sec)
IDLE:RET test | PASS | OFF: 22->22| RET:1 ->24 (21 sec)

SDP3430 (ES3.1):

SUSPEND:OFF test | PASS | OFF: 0->1| RET:0 ->0 (7 sec) 
SUSPEND:RET test | PASS | OFF: 1->1| RET:0 ->1 (6 sec) 
IDLE:OFF test | PASS | OFF: 1->21| RET:1 ->1 (22 sec) 
IDLE:RET test | PASS | OFF: 21->21| RET:1 ->23 (21 sec)
Quoted 5 lines

Beagle C1 (ES3.0):

SUSPEND:OFF test | FAIL | OFF: 0->0| RET:0 ->0 (6 sec) 
SUSPEND:RET test | FAIL | OFF: 0->0| RET:0 ->0 (6 sec) 
IDLE:OFF test | FAIL | OFF: 0->0| RET:0 ->0 (21 sec) 
IDLE:RET test | FAIL | OFF: 0->0| RET:0 ->0 (21 sec)

Your Beagle u-boot must be leaving something else on besides OTG. I'm using a relatively recent u-boot

    U-Boot 2010.12-rc1 (Nov 16 2010 - 08:31:35)                                     

that I built from source for my Beagle C3 (ES3.0), and suspend/idle test works for me:

SUSPEND:OFF test | PASS | OFF: 0->1| RET:0 ->0 (6 sec)                          
SUSPEND:RET test | PASS | OFF: 1->1| RET:0 ->1 (6 sec)                          
IDLE:OFF test | PASS | OFF: 1->4| RET:1 ->4 (21 sec)                            
IDLE:RET test | PASS | OFF: 4->4| RET:4 ->11 (21 sec)                           

Is it still CORE that's not hitting RET for you?

Thanks,

Kevin

#7 lore raw

Kevin Hilman had written, on 12/16/2010 12:40 PM, the following:
[...]

Quoted 11 lines

Your Beagle u-boot must be leaving something else on besides OTG. I'm using a relatively recent u-boot

    U-Boot 2010.12-rc1 (Nov 16 2010 - 08:31:35)                                     

that I built from source for my Beagle C3 (ES3.0), and suspend/idle test works for me:

SUSPEND:OFF test | PASS | OFF: 0->1| RET:0 ->0 (6 sec) SUSPEND:RET test | PASS | OFF: 1->1| RET:0 ->1 (6 sec) IDLE:OFF test | PASS | OFF: 1->4| RET:1 ->4 (21 sec) IDLE:RET test | PASS | OFF: 4->4| RET:4 ->11 (21 sec)

Is it still CORE that's not hitting RET for you?

yeah, I just think I am darned blind! DSS power domain did not reach state on Beagle and am guessing that could be due to the evil bootloader I was using - anyways, hoping once Senthils' hwmod patches make in, it should be fixed as well.. unless someone has a reset of DSS clock patch or something.. similar to OTG. arrgh.. as far as I am concerned, problem known at least! for some reason, latest 201012-rc1|2|master etc u-boot.bin is goofing up on me.. will look at that later on if no one beats me to it.

Signature · 2 lines
Regards,
Nishanth Menon
#8 lore raw

Nishanth Menon had written, on 12/16/2010 02:15 PM, the following:

Quoted 11 lines

Kevin Hilman had written, on 12/16/2010 12:40 PM, the following:
[...]

Quoted 7 lines

Your Beagle u-boot must be leaving something else on besides OTG. I'm using a relatively recent u-boot

    U-Boot 2010.12-rc1 (Nov 16 2010 - 

08:31:35) that I built from source for my Beagle C3 (ES3.0), and suspend/idle test
works for me:

SUSPEND:OFF test | PASS | OFF: 0->1| RET:0 ->0 (6 sec) SUSPEND:RET test | PASS | OFF: 1->1| RET:0 ->1 (6 sec) IDLE:OFF test | PASS | OFF: 1->4| RET:1 ->4 (21 sec) IDLE:RET test | PASS | OFF: 4->4| RET:4 ->11 (21 sec) Is it still CORE that's not hitting RET for you?

yeah, I just think I am darned blind! DSS power domain did not reach state on Beagle and am guessing that could be due to the evil bootloader I was using - anyways, hoping once Senthils' hwmod patches make in, it should be fixed as well.. unless someone has a reset of DSS clock patch or something.. similar to OTG. arrgh.. as far as I am concerned, problem known at least! for some reason, latest 201012-rc1|2|master etc u-boot.bin is goofing up on me.. will look at that later on if no one beats me to it.

just to close the loop -> enabling CONFIG_OMAP2_DSS in my .config (thanks Kevin for the offline suggestion), at least suspend works for OFF and RET states. Idle path some how hangs up - for the moment, I guess I will leave it alone unless someone else would like to dig further..

Signature · 2 lines
Regards,
Nishanth Menon