panda u-boot breaks system suspend
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
u-boot-linaro (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
Linaro u-boot for 13.04 causes system suspend failure on OMAP4/Panda platforms. Specifically, the ABE powerdomain fails to hit its target low-power state:
[ 20.402557] PM: Syncing filesystems ... done.
[ 20.432525] Freezing user space processes ... (elapsed 0.01 seconds) done.
[ 20.456542] Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done.
[ 20.476501] Suspending console(s) (use no_console_suspend to debug)
[ 20.496398] PM: suspend of devices complete after 10.192 msecs
[ 20.499481] PM: late suspend of devices complete after 3.082 msecs
[ 20.503021] PM: noirq suspend of devices complete after 3.448 msecs
[ 20.503021] Disabling non-boot CPUs ...
[ 20.507781] CPU1: shutdown
[ 20.511413] Powerdomain (abe_pwrdm) didn't enter target state 1
[ 20.511413] Powerdomain (abe_pwrdm) didn't enter target state 1
[ 20.511413] Could not enter target state in pm_suspend
[ 20.511413] A possible cause could be an old bootloader - try u-boot >= v2012.07
[ 20.511413] hw-breakpoint: Failed to enable monitor mode on CPU 0.
[ 20.511657] Enabling non-boot CPUs ...
[ 20.513854] CPU1: Booted secondary processor
[ 20.514617] CPU1 is up
[ 20.516479] PM: noirq resume of devices complete after 0.396 msecs
[ 20.516479] PM: early resume of devices complete after 0.001 msecs
[ 20.899078] PM: resume of devices complete after 382.598 msecs
[ 20.992797] Restarting tasks ... done.
Vanilla mainline u-boot with the same tag (v2013.01-rc1) does not have this problem, so something specific to the Linaro u-boot configuration is causing this.
u-boot versions since v2012.07 have removed the clock initialization for lots of clocks that u-boot should not have been initializing and which were causing kernel PM issues due to IP blocks left in improper states.
I don't know where the linaro u-boot repo is for panda, but Is suspect that one of the diffs vs mainline u-boot is that the "enable all clocks" option has been re-enabled in include/ configs/ omap4_common. h:
#define CONFIG_ SYS_CLOCKS_ ENABLE_ ALL
This option is known to break OMAP4 PM and should not be enabled.