Hi everyone,
I'm working on bring-up for a custom board using the i.MX8M Plus (i.MX8MP) and encountering an issue with JTAG debug access. I'm using a Segger J-Link debugger and connecting directly to the JTAG interface (TCK, TMS, TDI, TDO, nRESET, VTref, GND). The physical connections are verified and correct.
Here's the issue:
If the SoC is powered on without any bootable device present (e.g., no eMMC, SD, or USB boot), JTAG fails to connect — the debugger cannot detect the CPU.
However, if the SoC boots any firmware (even just U-Boot), JTAG becomes responsive afterwards, and I can connect, halt, and debug as expected.
This suggests that JTAG is not operational at cold boot unless some firmware runs first. That seems a bit counter-intuitive for low-level bring-up.
My Questions:
Why is the JTAG/DAP interface not available immediately after power-on reset?
Is there something in the Boot ROM or clocks/power/IOMUX setup that needs to be configured first before JTAG can function?
Is this behavior documented somewhere in the Reference Manual or other official documentation?
Any insights or guidance would be appreciated!
Thanks,
Yorker Hazan.