In the latest kernel 4.9 (imx_4.9.11_1.0.0_ga), the WOL is failing. It is working fine on 4.1(imx_4.1.15_2.0.0_ga).
Does anyone has a fix or can point to the root cause of the problem on that? I can reproduce it on the sabre along in other platforms.
In order to enable the WOL support, I use the command "ethtool -s eth0 wol g" to allow the reception of WOL frames, I check it is enabled with "cat /sys/class/net/eth0/power/wakeup" and then put the device into sleep mode with "echo mem > /sys/power/state".
In order to wake up the system with a WOL packet, use etherwake using DUT mac, it is, "etherwake -i eth0 <MAC_ADDR>"
I added some debug messages and everything seems correct.
# ethtool -s eth0 wol g
# cat /sys/class/net/eth0/power/wakeup
# echo mem > /sys/power/state
PM: Syncing filesystems ... done.
PM: Preparing system for mem sleep
Freezing user space processes ... (elapsed 0.001 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
PM: Entering mem sleep
PM: suspend of devices complete after 93.672 msecs
PM: suspend devices took 0.100 seconds
PM: late suspend of devices complete after 0.981 msecs
PM: noirq suspend of devices complete after 0.999 msecs
Disabling non-boot CPUs ...