I am trying to get a debug connection to the Cortex-M33 on the iMX93EVK board, using a SEGGER J-Link. I want to be able to debug while Linux is running on the A55.
I tried debugging the hello_world demo app on the M33 while the A55 is in U-Boot, following the instructions in AN14120. The U-Boot commands:
fatload mmc 1:1 80000000 sdk20-app.bin
cp.b 0x80000000 0x201e0000 0x10000
bootaux 0x1ffe0000
start the firmware and the output shows up on the serial port. But when I try to connect using the SEGGER JLinkGDBServerExe it fails to find the device. The log shows this:
02-00000000-00-00000041-004D: TB9DF640 005:451.096 ******************************************************
02-00000000-00-00000041-004A: TB9DF640 005:451.097 J-Link script: i.MX93 Cortex-M33 core J-Link script
02-00000000-00-00000041-004D: TB9DF640 005:451.098 ******************************************************
02-00000000-00-00000042-0034: TB9DF640 005:451.523 InitTarget() end - Took 426us
02-00000000-00-00000042-004D: TB9DF640 005:452.146 TotalIRLen = ?, IRPrint = 0x..000000000000000000000000
02-00000000-00-00000044-005B: TB9DF640 005:453.793 Failed to identify target. Resetting via Reset pin and trying again.
It uses the iMX93 J-Link script but fails to connect to the target. Attach from VS Code (with MCUXpresso extension) also does not work.
I get the same result when I try to debug while the A55 is in Linux (after changing the kernel DTS to disable lpuart5).
Only when I put the BOOT_MODE to Cortex-M33 (Infinite Loop) can the J-Link find the device, and I can debug the demo app using VS Code.
Why doesn't the J-Link detect the target with the A55 in U-Boot or Linux?
Regards,
Sander