I tried below command to wake up a custom LS1046a system by UART. But it didn't work. How do I wake up a LS1046a system from UART?
root@localhost:~# echo enabled > /sys/devices/platform/soc/21c0500.serial/tty/ttyS0/power/wakeup
root@localhost:~# echo enabled > /sys/devices/platform/soc/21c0600.serial/tty/ttyS1/power/wakeup
root@localhost:~# echo enabled > /sys/devices/platform/soc/21d0500.serial/tty/ttyS2/power/wakeup
root@localhost:~# echo enabled > /sys/devices/platform/soc/21d0600.serial/tty/ttyS3/power/wakeup
root@localhost:~# echo mem > /sys/power/state
Hi ufedor,
There is no any modification needed for DUART to wake up LS1046a on LSDK1909
Which DTS you are using?
The DTS for LS1046A Freeway
Which NXP LSDK is used?
Have you modified corresponding UART branch of the DTS to support wakeup?
fsl,rcpm-wakeup = <&rcpm 0x20000>;
Hi ufedor,
LSDK 20.04
Adding rcpm-wakeup in DTS doesn't work.
This is DUART1, NOT LPUART1. Is it possible to wake up a LS1046A system from DUART1? How?
Cheers,
Mason
UART is not mentioned as LPM20 wakeup source - refer to the QorIQ LS1046A Reference Manual, Table 13-4. Device RCPM Mode: Entry and Exit for Power Management.
Hi ufedor,
Duart1 is able to wake up LS1046A from low power mode with LSDK 1909. Please see below text. But Duart1 cannot wake up LS1046A with LSDK2004. Is this a LSDK2004 bug?
NXP LSDK 1909 main
root@localhost:~# echo enabled > /sys/devices/platform/soc/21c0500.serial/tty/ttyS0/power/wakeup
root@localhost:~# echo mem > /sys/power/state
[ 46.537633] PM: suspend entry (deep)
[ 46.541213] PM: Syncing filesystems ... done.
[ 46.580423] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 46.588505] OOM killer disabled.
[ 46.591771] Freezing remaining freezable tasks ... (elapsed 0.003 seconds) done.
[ 46.602314] Suspending console(s) (use no_console_suspend to debug)
duart
[ 46.608640] rcpm 1ee208c.rcpm: ttyS0 doesn't refer to this rcpm
[ 46.608642] rcpm 1ee208c.rcpm: 1-1 doesn't refer to this rcpm
[ 46.646634] Disabling non-boot CPUs ...
[ 46.673579] IRQ 56: no longer affine to CPU1
[ 46.673583] IRQ 60: no longer affine to CPU1
[ 46.673585] IRQ 64: no longer affine to CPU1
[ 46.673607] CPU1: shutdown
[ 46.693392] psci: Retrying again to check for CPU kill
[ 46.693395] psci: CPU1 killed.
[ 46.729562] IRQ 57: no longer affine to CPU2
[ 46.729566] IRQ 61: no longer affine to CPU2
[ 46.729568] IRQ 65: no longer affine to CPU2
[ 46.729592] CPU2: shutdown
[ 46.749391] psci: Retrying again to check for CPU kill
[ 46.749394] psci: CPU2 killed.
[ 46.769547] IRQ 58: no longer affine to CPU3
[ 46.769550] IRQ 62: no longer affine to CPU3
[ 46.769553] IRQ 66: no longer affine to CPU3
[ 46.769576] CPU3: shutdown
[ 46.789397] psci: Retrying again to check for CPU kill
[ 46.789400] psci: CPU3 killed.
[ 46.791052] Enabling non-boot CPUs ...
[ 46.792013] Detected PIPT I-cache on CPU1
[ 46.792050] CPU1: Booted secondary processor 0x0000000001 [0x410fd082]
[ 46.792192] cache: parent cpu1 should not be sleeping
[ 46.792308] CPU1 is up
[ 46.792910] Detected PIPT I-cache on CPU2
[ 46.792927] CPU2: Booted secondary processor 0x0000000002 [0x410fd082]
[ 46.793020] cache: parent cpu2 should not be sleeping
[ 46.793123] CPU2 is up
[ 46.793754] Detected PIPT I-cache on CPU3
[ 46.793771] CPU3: Booted secondary processor 0x0000000003 [0x410fd082]
[ 46.793877] cache: parent cpu3 should not be sleeping
[ 46.793973] CPU3 is up
You wrote:
> Adding rcpm-wakeup in DTS doesn't work.
How this is implemented with LSDK 1909?