i.MX8MQ – Initial code loading without USB/UUU using

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX8MQ – Initial code loading without USB/UUU using

578 Views
ayse-yilmaz
Contributor II

Hello,

We are developing a custom embedded system using the NXP i.MX8MQ processor. Due to strict space constraints in our hardware design, we cannot expose a USB port in the final product.

System Summary:

Processor: i.MX8MQ

RAM: 4GB DDR4

Storage: External eMMC

Intended OS: Yocto Linux running on Cortex-A53

No initial bootloader or software flashed yet (fully blank system)

Available debug interface: JTAG (SEGGER J-Link)

Our main question is:

Can we use JTAG (via J-Link) to initialize DDR and load and execute code (such as U-Boot) in RAM without using USB or the internal boot ROM boot process (i.e., bypassing UUU tool)?

Or is it mandatory to use the USB OTG + UUU serial downloader at least once to load initial code to the system before we can boot from eMMC?

Thank you very much for your help.

0 Kudos
Reply
5 Replies

570 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello,

Yes you can use jtag or you can program the eMMC or SDcard separately.

regards

0 Kudos
Reply

551 Views
ayse-yilmaz
Contributor II

Hello,

Thank you for your support.

I found documentation related to loading firmware via JTAG on the M4 core, but I could not find similar documentation for the Cortex-A53 core.

Could you please provide or point me to any official documentation or resources about loading and running code on the Cortex-A53 core (i.MX8MQ) using JTAG (e.g., with SEGGER J-Link)?

Best regards,

 

502 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello,

one can look on

IDE - Debug, Compile and Build Tools (2)
SDK_2.3_MX8MQ_Beta_Patch(REV SDK2.3_MX8MQ_Beta)
(NXP provided IAR and Segger tool patch to support i.MX8MQuad device)

i.MX 8M Evaluation Kit|NXP 

for A53 supported  Lauterbach and ARM DS-5, for OpenOCD one can look at a53 support on

Programming Guide: OpenOCD + Eclipse + Jtag debug on Uboot & Linux 

 

Regards

0 Kudos
Reply

441 Views
ayse-yilmaz
Contributor II

Hello,

Thank you for the references.

I have checked the SDK and toolchain patch links as well as the OpenOCD documentation you mentioned, but I could not find a clear and complete example or guide showing how to:

      * Initialize DDR from JTAG on i.MX8MQ (Cortex-A53),

      * Load and execute U-Boot or any custom binary directly into A53 RAM via JTAG (e.g., with SEGGER J-Link),

      * Do this entirely without using the internal boot ROM mechanisms (i.e., without USB/Serial Downloader Mode).

Most available documentation seems to either:

     *  Target the Cortex-M4 core,

     *  Assume a bootloader is already present, or

     *  As in the reference you provided, demonstrate debugging U-Boot and kernel via JTAG only after they have been loaded through USB and the UUU tool, rather than performing a full bring-up from a blank device.

Could you please clarify if it is officially supported to boot Cortex-A53 code via JTAG (without USB), and if so, could you provide:

      * a direct application note, app guide, or example script (J-Link, Lauterbach, DS-5, or OpenOCD)

      * or any steps regarding DDR training, code upload, and A53 startup via JTAG?

This would be very helpful for bringing up our custom hardware which currently has no pre-flashed bootloader and no USB access.

Thank you again for your support.

Best regards,

Tags (1)
0 Kudos
Reply

425 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hi,

For JTAG and JLink scripts supporting Cortex-A53, may be recommended to apply to segger directly:

https://forum.segger.com/index.php/Thread/4447-SOLVED-Cortex-A53-support/
NXP uses Lauterbach Trace32 as debugger tool for Cortex-A53 cores.

 

Regards

0 Kudos
Reply