For a Project we bought SOMs of the verdin-am62
We wanted to implement mcu only sleepmode and encountered problems with the MCU in the processor saying it received 149 over IPC while it should say 1.
Initially we thought it was a software version issue and a problem where the version of the TI MCU+ SDK differs from the TI Processor SDK, but this is not the problem as our versions match, and the MCU software works on 1 SOM.
After a lot of trial and error we figured we’d switch the SOM with another one and on that one the MCU only mode sleep worked.
On The nonworking SOM the MCU receives 149 over IPC and the processor eventually resets, likely due to the watchdog triggering.
On a working SOM the MCU receives 1 over IPC and the processor eventually resumes from suspend due to MCU wakeup trigger.
The MCU firmware is setup such that it triggers a wakeup after waiting on a timer for a certain time.
I used the same SD-card and mallow board for testing the SOMs, the mallow-board is V1.1C
We don’t understand why this is happening, but both SOMs are exactly the same, the Same Version (V1.2A), same processor markings (didn’t look any further then that).
Is this a hardware issue?
Is there some kind of voltage or oscillator that is unstable or an race/edge condition?
We Are hoping you could help us further with this, as we depend on this MCU only sleep mode to work.
The two SOMs in question are marked as follows:
Verdin AM62 S 512MB WB IT
V1.2A
The serial numbers are:
15599560 (Not Working)
15599343 (Working)
Build System
Everything is Build with Yocto and the following versions were used:
export YOCTO_RELEASE="scarthgap"
export YOCTO_VERSION=refs/tags/7.2.0
export MACHINE="verdin-am62"
export DISTRO="tdx-xwayland"
export IMAGE="tdx-reference-minimal-image"
Working SOM info (15599343)
tdx-info
Software summary
------------------------------------------------------------
Bootloader: U-Boot
Kernel version: 6.6.129-7.2.0-devel #1 SMP PREEMPT Wed Apr 1 11:47:27 UTC 2026
Kernel command line: root=PARTUUID=076c4a2a-01 ro rootwait console=tty1 console=ttyS2,115200 no_console_suspend rauc.slot=A
Distro name: NAME="TDX Wayland with XWayland"
Distro version: VERSION_ID=7.2.0-devel-20251204100250-build.0
Distro variant: -
Hostname: verdin-am62-15599343
------------------------------------------------------------
Hardware info
------------------------------------------------------------
HW model: Toradex Verdin AM62 WB on Verdin Development Board
Toradex version: 0072 V1.2A
Serial number: 15599343
Processor arch: aarch64
------------------------------------------------------------
suspend commands
echo 100 > /sys/devices/system/cpu/cpu0/power/pm_qos_resume_latency_us
echo mem > /sys/power/state
processor console output
root@verdin-am62-15599343:~# echo 100 > /sys/devices/system/cpu/cpu0/power/pm_qos_resume_latency_us
root@verdin-am62-15599343:~# echo mem > /sys/power/state
[ 408.417982] PM: suspend entry (deep)
[ 408.502152] Filesystems sync: 0.073 seconds
[ 408.533584] Freezing user space processes
[ 408.547271] Freezing user space processes completed (elapsed 0.004 seconds)
[ 408.561325] OOM killer disabled.
[ 408.564602] Freezing remaining freezable tasks
[ 408.578771] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
[ 408.623971] am65-cpsw-nuss 8000000.ethernet eth0: Link is Down
[ 408.654732] ti-sci 44043000.system-controller: ti_sci_cmd_set_device_constraint: device: 117: state: 1: ret 0
[ 408.673938] spark-led spi0.0: Attempted to sync while suspend
[ 408.673962] ti-sci 44043000.system-controller: ti_sci_cmd_set_device_constraint: device: 178: state: 1: ret 0
[ 408.709320] ti-sci 44043000.system-controller: ti_sci_cmd_set_device_constraint: device: 179: state: 1: ret 0
[ 408.729614] ti-sci 44043000.system-controller: ti_sci_cmd_set_latency_constraint: latency: 100: state: 1: ret 0
[[ 411.644470] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 19
[ 411.676145] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:00] driver [TI DP83867] (irq=360)
[ 411.697891] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-rxid link mode
[ 411.722978] usb-conn-gpio connector: repeated role: device
[ 411.829024] OOM killer enabled.
[ 411.837280] Restarting tasks ... done.
[ 411.861909] random: crng reseeded on system resumption
[ 411.879780] k3-m4-rproc 5000000.m4fss: Core is on in resume
[ 411.901165] k3-m4-rproc 5000000.m4fss: received echo reply from 5000000.m4fss
root@verdin-am62-15599343:~# [ 411.913685] PM: suspend exit
[ 414.650577] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
root@verdin-am62-15599343:~#
mcu serial output
[LPM DMTIMER WAKEUP] Remote Core waiting for messages at end point 13 ... !!!
[LPM DMTIMER WAKEUP] Remote Core waiting for messages at end point 14 ... !!!
[LPM DMTIMER WAKEUP] Next MCU mode is 1
[LPM DMTIMER WAKEUP] Suspend request to MCU-only mode received
[LPM DMTIMER WAKEUP] Starting the timer.
[LPM DMTIMER WAKEUP] Once it expires, will resume the kernel from MCU only mode
[LPM DMTIMER WAKEUP] In while 0!
[LPM DMTIMER WAKEUP] Main domain resumed due to MCU DMTIMER 10
[LPM DMTIMER WAKEUP] Ticks: 10003, increment: 10
Non Working SOM info (15599560)
tdx-info
Software summary
------------------------------------------------------------
Bootloader: U-Boot
Kernel version: 6.6.129-7.2.0-devel #1 SMP PREEMPT Wed Apr 1 11:47:27 UTC 2026
Kernel command line: root=PARTUUID=076c4a2a-01 ro rootwait console=tty1 console=ttyS2,115200 no_console_suspend rauc.slot=A
Distro name: NAME="TDX Wayland with XWayland"
Distro version: VERSION_ID=7.2.0-devel-20251204100250-build.0
Distro variant: -
Hostname: verdin-am62-15599343
------------------------------------------------------------
Hardware info
------------------------------------------------------------
HW model: Toradex Verdin AM62 WB on Verdin Development Board
Toradex version: 0072 V1.2A
Serial number: 15599560
Processor arch: aarch64
------------------------------------------------------------
suspend commands
echo 100 > /sys/devices/system/cpu/cpu0/power/pm_qos_resume_latency_us
echo mem > /sys/power/state
processor console output
root@verdin-am62-15599343:~# echo 100 > /sys/devices/system/cpu/cpu0/power/pm_qos_resume_latency_us
root@verdin-am62-15599343:~# echo mem > /sys/power/state
[ 295.169009] PM: suspend entry (deep)
[ 295.189457] Filesystems sync: 0.009 seconds
[ 295.215453] Freezing user space processes
[ 295.226955] Freezing user space processes completed (elapsed 0.011 seconds)
[ 295.226977] OOM killer disabled.
[ 295.226981] Freezing remaining freezable tasks
[ 295.239774] Freezing remaining freezable tasks completed (elapsed 0.012 seconds)
[ 295.306039] am65-cpsw-nuss 8000000.ethernet eth0: Link is Down
[ 295.351301] spark-led spi0.0: Attempted to sync while suspend
System hangs at this point
mcu serial output
[LPM DMTIMER WAKEUP] Remote Core waiting for messages at end point 13 ... !!!
[LPM DMTIMER WAKEUP] Remote Core waiting for messages at end point 14 ... !!!
[LPM DMTIMER WAKEUP] Next MCU mode is 149
System hangs at this point
both reports above show the same hostname with the same serial number because the same sd-card was used, tdx-info Serial does show a difference.
Also Noticed that the working one shows line such as:
[ 408.654732] ti-sci 44043000.system-controller: ti_sci_cmd_set_device_constraint: device: 117: state: 1: ret 0
The non working doesn’t and this might be a divergence ?
Additionally i thought it had to do with the r5f core too, which showed it didn’t have mboxes, so i added this to my device tree overlays:
/ {
compatible = "toradex,verdin-am62";
};
&mailbox0_cluster0 {
status = "okay";
mbox_r5_0: mbox-r5-0 {
ti,mbox-rx = <2 0 0>;
ti,mbox-tx = <3 0 0>;
};
};
&wkup_r5fss0_core0 {
mboxes = <&mailbox0_cluster0 &mbox_r5_0>;
memory-region = <&wkup_r5fss0_core0_dma_memory_region>,
<&wkup_r5fss0_core0_memory_region>;
};
I will attach the binary for the MCU firmware and the source.
Another issue we ran into was TI documentation mentioning setting pm_qos_resume_latency_us to 100000 in newer docs while we had to set it to 100 which was mentioned in older docs.
Older Docs
Newer Docs