This article coverst the NXP i.MXRT1060 family devices. As for all i.MXRT10xx devices, JTAG is not active per default. Instead SWD can be used. To activate JTAG on this target device eFuses must be set. For more information see the corresponding target reference manual.
NXP's iMXRT106x family features a Cortex-M7 core without internal flash but with support for QSPI and HyperFlash through a so called FLEXSPI controller. NXP's official evaluation board, the MIMXRT1050 EVK is shipped with a 512Mbit Hyper Flash device by default. Alternatively, a QSPI flash can be mounted but several board modifications (removing the hyper flash, adding resistors, etc...) are required. As both flashes are accessed through the same memory mapped address space, either the HyperFlash or the QSPI flash RAMCode needs to be used for memory accesses to this area. Please find below further information how to enable the desired flash algorithm (RAMCode). Official flash programming support has been added in J-Link software version V6.31d.
Resetting the device in the init steps may lead to problems when programming in standalone mode.
- Min. J-Link software version V6.40 (release) is required. Later versions will also work. Earlier versions do not support flash programming on this device.
In order to be able to program a i.MXRT106x device, we expect that the first 0x10000 bytes of the RAM are configured to execute instructions from. The purpose of the RAM banks can be configured through the FlexRAM-controller. In case you have a different configuration of the RAM banks, which is not compatible with our assumption, please contact us.
By default, the QSPI Flash algorithm is selected in the J-Link software. No additional steps are required.
To enable the Hyperflash support in the J-Link software, the JLinkDevices.xml needs to be modified. For further information regarding the JLinkDevices.xml, please refer to the Open Flashloader description here.
- Open the JLinkDevices.xml (e.g. C:\Program Files (x86)\SEGGER\JLink_V640\JLinkDevices.xml
- Search the desired iMXRT <Device> entry
- Change Loader="Devices/NXP/iMXRT106x/NXP_iMXRT106x_QSPI.elf" to Loader="Devices/NXP/iMXRT105x/NXP_iMXRT105x_HyperFlash.elf"
or add the desired iMXRT <Device> if missing to JLinkDevice.xml file, like this:
<Device> <ChipInfo Vendor="NXP" Name="MIMXRT1064xxx6A" Core="JLINK_CORE_CORTEX_M7" /> <FlashBankInfo Name="Hyperflash" BaseAddr="0x60000000" MaxSize="0x04000000" Loader="Devices/NXP/iMXRT105x/NXP_iMXRT105x_HyperFlash.elf" LoaderType="FLASH_ALGO_TYPE_OPEN" /> </Device>
Yes you need to select the HyperFlash Loader from iMXRT105x, as iMXRT105x and iMXRT106x use the same Hyperflash configuration.
- Save the JLinkDevices.xml
From now, the J-Link software uses the HyperFlash RAMCode instead of the QSPI RAMCode for the flash download.
NOTE: Please note that several hardware modifications needs to be done on the evaluation board to enable Hyperflash programming / booting from Hyperflash. For further information regarding this, please refer to NXPs board user manual.