Debug i.MX 8QuadMax M4 Processor
In this topic:
•Preparing an SD card with provided boot images
•Using boot image where all application cores are booted
•Using boot image where only M4_0 core is booted
This topic describes how to debug i.MX 8QuadMax M4 Processor cores using boot image where all application cores are booted and using boot image where only M4_0 core is booted.
Beside application cores, NXP i.MX 8 devices feature two dedicated controller cores:
•System controller (SCU)
•Security controller (SECO)
After reset only controller cores are started while the application cores remain in reset. Proper powering and configuring of both controller cores will initialize booting of the application cores. Both controller cores ROMs and firmwares facilitate the booting of the application cores. While the internal ROM code (typically) cannot be altered, the firmware can be adjusted to the target board requirements.
•winIDEA 9.21.17 or newer
•BlueBox
•CoreSight Debug Adapter
•Boot medium (e.g. SD card) with a boot image to boot up the cores
To create a boot image tailored to your custom board contact Technical support and provide SECO and SCU Firmware. |
The SD card must be programmed with the appropriate boot image that boots at least one application core. To program SD card with Linux use the following command:
sudo dd if=<path_to_image> of=<path_to_SD_card_device> bs=1M |
•path_to_image - Path to binary image.
•path_to_SD_card_device - Path to SD card device enumerated in Linux, usually something like /dev/sdd.
This is not a path to the partition, but to the device. |
Example of such image is provided with NXP i.MX 8QuadMax winIDEA example:
imx8qm_nxpmek_minimal_RAM_A53_M4.bin |
This provided image:
•Is tailored to be used with NXP i.MX 8QuadMax Multisensory Enablement Kit (MEK) board.
•Boots A53_0, M4_0 and M4_1 application cores with branch-to-itself instructions.
winIDEA configuration differs for specific use cases. Two most common use cases are described:
•Using boot image where all application cores are booted.
•Using boot image where only M4_0 core is booted.
Download the application(s) via winIDEA (which downloads directly to RAM). |
Open the primary winIDEA which will connect to the A53_0 core. |
Press Run in this instance of winIDEA. |
Open Debug | Core M4_0 to connect to the M4_0 core. |
Perform Reset | Download in the second instance of winIDEA. |
It is recommended to use an image that boots all cores, because it provides a better user experience. |
Open the primary winIDEA. |
Configure the initialization via the Hardware | CPU Options | Reset | Initialization before Programming | Initialize | arrow button | Parameters for iMX8. |
Configure parameters. |
•g_waitM4_0 - Set to 1.
•g_waitM4_1 - Set to 0.
Configure options in Hardware | CPU Options | Cores | M4_0. |
•Debug entry type - Catch.
•Preset PC after stopped in init - Preset to Entry Point.
Perform Download or Attach in the primary winIDEA to connect to the Cortex-A35 core. |
Open Debug | Core M4_0 to connect to the M4_0 core. |
Perform Reset | Download in the second instance of winIDEA. |