Hello,
I’ve just tested several bone-debian-8.* images for BBB and noticed a problem with suspend to memory mode.
Is it a known issue? Is there another image/kernel which operates correctly in power down modes?
For bone-debian-8.2-tester-2gb-armhf-2015-11-12-2gb.img suspend to memory hangs system, standby mode works fine:
Enable console messages, UBoot:
=> setenv optargs no_console_suspend=1
=> boot
root@beaglebone:~# cat /proc/cmdline
console=ttyO0,115200n8 no_console_suspend=1 root=UUID=45e51fc6-19e7-4a39-bff2-734546e10d2f ro rootfstype=ext4 rootwait coherent_pool=1M quiet cape_universal=enable
root@beaglebone:~# uname -r
4.1.12-ti-r29
root@beaglebone:~# cat /etc/dogtag
BeagleBoard.org Debian Image 2015-11-12
Show all kernel messages:
root@beaglebone:~# echo 8 > /proc/sys/kernel/printk
Test suspend to memory mode. BBB hangs and kernel dump message appears when it gets a wakeup event.
Use a SD card to trigger a wakeup event:
root@beaglebone:~# echo mem > /sys/power/state
[ 275.567690] PM: Syncing filesystems … done.
[ 275.590807] PM: Preparing system for mem sleep
[ 275.603246] Freezing user space processes … (elapsed 0.003 seconds) done.
[ 275.614407] Freezing remaining freezable tasks … (elapsed 0.001 seconds) done.
[ 275.624053] PM: Entering mem sleep
[ 275.754751] PM: suspend of devices complete after 124.271 msecs
[ 275.767141] PM: late suspend of devices complete after 6.014 msecs
[ 275.780004] PM: noirq suspend of devices complete after 6.562 msecs
[ 275.786358] Disabling non-boot CPUs …
[ 275.790405] PM: Successfully put all powerdomains to target state
[ 275.790405] PM: Wakeup source GPIO0
[ 275.810652] PM: noirq resume of devices complete after 19.995 msecs
[ 275.821805] PM: early resume of devices complete after 3.844 msecs
[ 276.251087] net eth0: initializing cpsw version 1.12 (0)
[ 276.259666] net eth0: phy found : id is : 0x7c0f1
[ 304.196649] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 23s! [bash:575]
[ 304.203783] Modules linked in: spidev c_can_platform spi_omap2_mcspi c_can can_dev pwm_tiecap tieqep pwm_tiehrpwm 8021q garp mrp stp llc pruss_remoteproc snd_soc_evm usb_f_acm u_serial usb_f_rndis g_muo
[ 304.235528] CPU: 0 PID: 575 Comm: bash Not tainted 4.1.12-ti-r29 #1
[ 304.241848] Hardware name: Generic AM33XX (Flattened Device Tree)
[ 304.247997] task: dc0d0f80 ti: dca7a000 task.ti: dca7a000
[ 304.253478] PC is at __do_softirq+0xc4/0x370
[ 304.257810] LR is at debug_smp_processor_id+0x20/0x24
[ 304.262915] pc : [] lr : [] psr: 20000113
[ 304.262915] sp : dca7bbd8 ip : 00000100 fp : dca7bc3c
[ 304.274470] r10: 00000002 r9 : dd832000 r8 : 00000001
[ 304.279740] r7 : 00000000 r6 : 00000010 r5 : 00000000 r4 : 00001080
[ 304.286319] r3 : 00000000 r2 : c0fba440 r1 : c0c441ac r0 : 00000000
[ 304.292903] Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
[ 304.300095] Control: 10c5387d Table: 9dbc8019 DAC: 00000015
[ 304.305897] CPU: 0 PID: 575 Comm: bash Not tainted 4.1.12-ti-r29 #1
[ 304.312211] Hardware name: Generic AM33XX (Flattened Device Tree)
[ 304.318413] [] (unwind_backtrace) from [] (show_stack+0x20/0x24)
[ 304.326242] [] (show_stack) from [] (dump_stack+0x8c/0xcc)
[ 304.333556] [] (dump_stack) from [] (show_regs+0x1c/0x20)
[ 304.340777] [] (show_regs) from [] (watchdog_timer_fn+0x290/0x2fc)
…
For bone-debian-8.3-lxqt-4gb-armhf-2016-01-24-4gb.img suspend to memory as well as standby mode hangs the system:
root@beaglebone:~# cat /proc/cmdline
console=ttyO0,115200n8 root=UUID=7311ae94-6c8d-4fae-8ed5-ff0c3f4d6a30 ro rootfstype=ext4 rootwait coherent_pool=1M quiet cape_universal=enable
Show all kernel messages:
root@beaglebone:~# echo 8 > /proc/sys/kernel/printk
UART0 SYSC register:
root@beaglebone:~# devmem2 0x44e09054
/dev/mem opened.
Memory mapped at address 0xb6f41000.
Value at address 0x44E09054 (0xb6f41054): 0xD
UART0 wakeup enable, WER register:
root@beaglebone:~# devmem2 0x44e0905c
/dev/mem opened.
Memory mapped at address 0xb6f05000.
Value at address 0x44E0905C (0xb6f0505c): 0xFF
root@beaglebone:~# echo enabled > /sys/devices/platform/ocp/44e09000.serial/tty/ttyS0/power/wakeup
root@beaglebone:~# echo enabled > /sys/devices/platform/ocp/44e09000.serial/power/wakeup
root@beaglebone:~# cat /sys/devices/platform/ocp/44e09000.serial/tty/ttyS0/power/wakeup
enabled
root@beaglebone:~# cat /sys/devices/platform/ocp/44e09000.serial/power/wakeup
enabled
root@beaglebone:~# echo standby > /sys/power/state
[ 1494.874271] PM: Syncing filesystems … done.
[ 1494.912154] PM: Preparing system for standby sleep
[ 1494.922552] Freezing user space processes … (elapsed 0.010 seconds) done.
[ 1494.940653] Freezing remaining freezable tasks … (elapsed 0.002 seconds) done.
[ 1494.950434] PM: Entering standby sleep
[ 1494.954377] Suspending console(s) (use no_console_suspend to debug)
At this moment system hangs and neither UART0 nor SD card can trigger a wakeup event.
However, for the sitara_linux_sdk_image_am335x.img on the same BBB everything works perfectly:
Arago Project http://arago-project.org am335x-evm /dev/ttyO0
Arago 2015.02 am335x-evm /dev/ttyO0
root@am335x-evm:~# uname -r
3.14.26-g2489c02
Check suspend to memory mode:
root@am335x-evm:~# echo 8 > /proc/sys/kernel/printk
root@am335x-evm:~# echo mem > /sys/power/state
[ 253.642637] PM: Syncing filesystems … done.
[ 253.651532] PM: Preparing system for mem sleep
[ 253.659600] Freezing user space processes … (elapsed 0.001 seconds) done.
[ 253.668380] Freezing remaining freezable tasks … (elapsed 0.001 seconds) done.
[ 253.677558] PM: Entering mem sleep
[ 253.681172] Suspending console(s) (use no_console_suspend to debug)
[ 253.799131] PM: suspend of devices complete after 110.294 msecs
[ 253.800157] PM: late suspend of devices complete after 0.992 msecs
[ 253.801521] PM: noirq suspend of devices complete after 1.335 msecs
[ 253.801649] PM: Successfully put all powerdomains to target state
[ 253.801649] PM: Wakeup source UART
[ 253.818376] PM: noirq resume of devices complete after 16.559 msecs
[ 253.819332] PM: early resume of devices complete after 0.755 msecs
[ 253.820276] net eth0: initializing cpsw version 1.12 (0)
[ 253.902468] net eth0: phy found : id is : 0x7c0f1
[ 253.902580] libphy: PHY 4a101000.mdio:01 not found
[ 253.902600] net eth0: phy 4a101000.mdio:01 not found on slave 1
[ 254.132123] PM: resume of devices complete after 312.744 msecs
[ 254.205581] PM: Finishing wakeup.
[ 254.209040] Restarting tasks … done.
root@am335x-evm:~#