Hello,
since I’m stuck, I’d like to ask for help.
My problem is, that the output from M7 on UART4 stops as soon as I boot the A53.
I’m using a verdin imx8mp v1.1B 4GB IT SOM (Without BT/WiFi module) on a Dahlia v1.1D Carrier Board. OS is Yocto based on tdx-reference-minimal-image.
I want to develop a firmware for the M7 coprocessor and started with the hello world example.
If I stop the A53 application processor from booting it works just fine. I can see the M7 output on UART4 and can mirror back received data.
I have modified the u-boot-initial-env-sd in the TEZI Image to boot the M7:
bootcmd=run cm_boot; run distro_bootcmd
cm_boot=ext4load mmc 2:2 ${loadaddr} /var/lib/coprocessor/cm7_firmware.bin; cp.b ${loadaddr} 0x7e0000 20000; dcache flush; mw.w 0x550ff000 0 64;bootaux 0x7e0000
On every reboot I can see the M7 output on UART4 and get received characters mirrored back, but after the A53 boots the M7 communication on UART4 stops. From u-boot I get the following output on until the A53 boots:
U-Boot SPL 2024.07-7.0.0-devel+git.3f772959501c (Jul 01 2024 - 18:07:18 +0000)
DDR configured as dual rank
SEC0: RNG instantiated
Normal Boot
WDT: Started watchdog@30280000 with servicing every 1000ms (60s timeout)
Trying to boot from BOOTROM
Boot Stage: Primary boot
Find img info 0x4802f000, size 1068
Need continue download 1024
NOTICE: Do not release JR0 to NS as it can be used by HAB
NOTICE: BL31: v2.10.0 (release):automotive-14.0.0_2.1.0-dirty
NOTICE: BL31: Built : 10:04:22, May 29 2024
U-Boot 2024.07-7.0.0-devel+git.3f772959501c (Jul 01 2024 - 18:07:18 +0000)
CPU: Freescale i.MX8MP\[8\] rev1.1 1600 MHz (running at 1200 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 42C
Reset cause: POR
DRAM: 4 GiB
Core: 176 devices, 31 uclasses, devicetree: separate
WDT: Started watchdog@30280000 with servicing every 1000ms (60s timeout)
MMC: FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC… Reading from MMC(2)… OK
In: serial@30880000
Out: serial@30880000
Err: serial@30880000
Model: Toradex 0063 Verdin iMX8M Plus Quad 4GB IT V1.1B
Serial#: 15460392
Carrier: Toradex Dahlia V1.1D, Serial# 11415972
SEC0: RNG instantiated
Net: eth1: ethernet@30be0000, eth0: ethernet@30bf0000 \[PRIME\]
Hit any key to stop autoboot: 0
16956 bytes read in 1 ms (16.2 MiB/s)
## No elf image at address 0x007e0000
## Starting auxiliary core stack = 0x20020000, pc = 0x0000048D…
MMC: no card present
switch to partitions #0, OK
mmc2(part 0) is current device
Scanning mmc 2:1…
Found U-Boot script /boot.scr
5942 bytes read in 2 ms (2.8 MiB/s)
## Executing script at 50280000
Loading DeviceTree: imx8mp-verdin-nonwifi-dev.dtb
87354 bytes read in 2 ms (41.7 MiB/s)
1 bytes read in 2 ms (0 Bytes/s)
Working FDT set to 50200000
8107002 bytes read in 33 ms (234.3 MiB/s)
Bootargs: root=PARTUUID=97171a59-02 ro rootwait console=tty1 console=ttymxc2
Uncompressing Kernel Image to 0
## Flattened Device Tree blob at 50200000
Booting using the fdt blob at 0x50200000
Working FDT set to 50200000
Loading Device Tree to 00000000fea8e000, end 00000000feac6fff … OK
Working FDT set to fea8e000
Starting kernel …
I have created a device tree overlay as described here:
How To Run a Hello World on the Alternative Core (NXP) | Toradex Developer Center
I added the overlay to the overlays.txt file and could see via tdx-info -dt that the overlys was listed under “Overlays enabled”.
Because it didn’t work I moved on and noticed, that UART4 is already disabled in the “imx8mp-verdin-nonwifi” device tree (linux/arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi.dtsi at master · torvalds/linux · GitHub). Therefore, I disabled all overlays to ensure, that there is no faulty interaction between different overlays.
My output of tdx–info -dt is now:
Device tree
Device tree enabled: imx8mp-verdin-nonwifi-dev.dtb
Compatible string: toradex,verdin-imx8mp-nonwifi-devtoradex,verdin-imx8mp-nonwifitoradex,verdin-imx8mpfsl,imx8mp
Device trees available:
imx8mp-verdin-nonwifi-dahlia.dtb
imx8mp-verdin-nonwifi-dev.dtb
imx8mp-verdin-nonwifi-ivy.dtb
imx8mp-verdin-nonwifi-mallow.dtb
imx8mp-verdin-nonwifi-yavia.dtb
imx8mp-verdin-wifi-dahlia.dtb
imx8mp-verdin-wifi-dev.dtb
imx8mp-verdin-wifi-ivy.dtb
imx8mp-verdin-wifi-mallow.dtb
imx8mp-verdin-wifi-yavia.dtb
Device tree overlays
Overlays enabled: -
Overlays available: verdin-imx8mp-unirouter_overlay.dtbo
I still have the same behaviour:
On every reboot I can see the M7 output on UART4 and get received characters mirrored back, but after the A53 boots the M7 communication on UART4 stops.
I don’t know what I’m doing wrong, and I’d appreciate any help