Difference between revisions of "i.MXRT1060"
(Created page with "__TOC__ = Flash Programming = NXP's iMXRT105x family features a Cortex-M7 core without internal flash but with support for QSPI and HyperFlash through a so called FLEXSPI co...") |
|||
(16 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
+ | 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. |
||
+ | |||
__TOC__ |
__TOC__ |
||
+ | == ROM Bootloader == |
||
+ | The i.MXRT1060 devices feature a [[ROM Bootloader]]. This requires specific adjustments to the application image in order for the device to boot and operate correctly.<br> |
||
− | = Flash Programming = |
||
+ | Detailed information on the flash image structure expected by the target device can be found in the corresponding target reference manual.<br> |
||
− | NXP's iMXRT105x 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. |
||
+ | An example application for the MIMXRT1060-EVK which satisfies the can be found here: |
||
− | == Minimum requirements == |
||
+ | [[NXP_MIMXRT1060-EVK#Example_Project | NXP MIMXRT1060-EVK example project]] |
||
+ | |||
+ | == Flash Programming == |
||
+ | 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 select the desired flash loader. 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. |
||
+ | |||
+ | === Requirements === |
||
* 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. |
* 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. |
||
− | == Enable Flashloader == |
||
+ | The purpose of the RAM banks can be configured through the FlexRAM-controller. |
||
− | ===QSPI Flash=== |
||
+ | 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. |
||
+ | |||
+ | === Available flash loaders === |
||
+ | ==== iMXRT106x ==== |
||
+ | J-Link comes with multiple selectable FLEXSPI flashloaders for i.MXRT106x devices. There are [[J-Link_Multiple_Flashloader#Command_line_parameter|several options]] to select a different loader than the default one. |
||
+ | |||
+ | {| class="wikitable" |
||
+ | |- |
||
+ | ! Loader name !! Pin configuration !! Notes |
||
+ | |- |
||
+ | | HyperFlash || FLEXSPIB_DATA03 = GPIO_SD_B1_00<br>FLEXSPIB_DATA02 = GPIO_SD_B1_01<br>FLEXSPIB_DATA01 = GPIO_SD_B1_02<br>FLEXSPIB_DATA00 = GPIO_SD_B1_03<br>FLEXSPIB_SCLK = GPIO_SD_B1_04<br>FLEXSPIA_DQS = GPIO_SD_B1_05<br>FLEXSPIA_SS0_B = GPIO_SD_B1_06<br>FLEXSPIA_SCLK = GPIO_SD_B1_07<br>FLEXSPIA_DATA00 = GPIO_SD_B1_08<br>FLEXSPIA_DATA01 = GPIO_SD_B1_09<br>FLEXSPIA_DATA02 = GPIO_SD_B1_10<br>FLEXSPIA_DATA03 = GPIO_SD_B1_11 || Default loader for <br> MIMXRT106A-ALEXA<br>MIMXRT106ADVL6A<br>MIMXRT106CDVL6A<br>MIMXRT106FDVL6A<br>MIMXRT106LDVL6A<br>MIMXRT106SDVL6A<br> |
||
+ | |- |
||
+ | | QSPI || FLEXSPIB_DATA03 = GPIO_SD_B1_00<br>FLEXSPIB_DATA02 = GPIO_SD_B1_01<br>FLEXSPIB_DATA01 = GPIO_SD_B1_02<br>FLEXSPIB_DATA00 = GPIO_SD_B1_03<br>FLEXSPIB_SCLK = GPIO_SD_B1_04<br>FLEXSPIA_DQS = GPIO_SD_B1_05<br>FLEXSPIA_SS0_B = GPIO_SD_B1_06<br>FLEXSPIA_SCLK = GPIO_SD_B1_07<br>FLEXSPIA_DATA00 = GPIO_SD_B1_08<br>FLEXSPIA_DATA01 = GPIO_SD_B1_09<br>FLEXSPIA_DATA02 = GPIO_SD_B1_10<br>FLEXSPIA_DATA03 = GPIO_SD_B1_11 || Default loader for <br> MIMXRT1061xxx5A<br>MIMXRT1061xxx5B<br>MIMXRT1061xxx6A<br>MIMXRT1061xxx6B<br>MIMXRT1062xxx5A<br>MIMXRT1062xxx5B<br>MIMXRT1062xxx6A<br>MIMXRT1062xxx6B<br>MIMXRT106A-ALEXA2 |
||
+ | |} |
||
+ | {{Note|Between V7.70d and V7.82c the default loader for MIMXRT1061xxx5A, MIMXRT1061xxx5B, MIMXRT1061xxx6A, MIMXRT1061xxx6B, MIMXRT1062xxx5A, MIMXRT1062xxx5B, MIMXRT1062xxx6A, MIMXRT1062xxx6B and MIMXRT106A-ALEXA2 was mistakenly set to HyperFlash. This issue has been fixed with V7.82d.}} |
||
− | ===Hyper Flash=== |
||
− | 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'' chapter in the J-Link User Manual (UM08001). |
||
+ | ==== iMXRT1064 ==== |
||
− | #Open the JLinkDevices.xml (e.g. '''C:\Program Files (x86)\SEGGER\JLink_V640\JLinkDevices.xml''' |
||
+ | For iMXRT1064 currently only QSPI configuration is supported. |
||
− | #Search the desired iMXRT <Device> entry |
||
+ | {| class="wikitable" |
||
− | #Change ''Loader="Devices/NXP/iMXRT106x/NXP_iMXRT106x_QSPI.elf"'' to ''Loader="Devices/NXP/iMXRT105x/NXP_iMXRT105x_HyperFlash.elf"'' Yes you need to select the HyperFlash Loader from iMXRT105x, iMXRT105x and iMXRT106x use the same Hyperflash configuration. |
||
+ | |- |
||
− | #Save the JLinkDevices.xml |
||
+ | ! Loader name !! Pin configuration !! Notes |
||
− | From now, the J-Link software uses the HyperFlash RAMCode instead of the QSPI RAMCode for the flash download. |
||
+ | |- |
||
+ | | QSPI || FLEXSPIB_DATA03 = GPIO_SD_B1_00<br>FLEXSPIB_DATA02 = GPIO_SD_B1_01<br>FLEXSPIB_DATA01 = GPIO_SD_B1_02<br>FLEXSPIB_DATA00 = GPIO_SD_B1_03<br>FLEXSPIB_SCLK = GPIO_SD_B1_04<br>FLEXSPIA_DQS = GPIO_SD_B1_05<br>FLEXSPIA_SS0_B = GPIO_SD_B1_06<br>FLEXSPIA_SCLK = GPIO_SD_B1_07<br>FLEXSPIA_DATA00 = GPIO_SD_B1_08<br>FLEXSPIA_DATA01 = GPIO_SD_B1_09<br>FLEXSPIA_DATA02 = GPIO_SD_B1_10<br>FLEXSPIA_DATA03 = GPIO_SD_B1_11 || Default loader |
||
+ | |} |
||
+ | =Evaluation Boards= |
||
− | '''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. |
||
+ | * [[NXP MIMXRT1060-EVK]] |
||
+ | * [[NXP MIMXRT1060-EVKC]] |
Latest revision as of 11:21, 12 December 2022
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.
Contents
ROM Bootloader
The i.MXRT1060 devices feature a ROM Bootloader. This requires specific adjustments to the application image in order for the device to boot and operate correctly.
Detailed information on the flash image structure expected by the target device can be found in the corresponding target reference manual.
An example application for the MIMXRT1060-EVK which satisfies the can be found here:
NXP MIMXRT1060-EVK example project
Flash Programming
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 select the desired flash loader. 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.
Requirements
- 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.
Available flash loaders
iMXRT106x
J-Link comes with multiple selectable FLEXSPI flashloaders for i.MXRT106x devices. There are several options to select a different loader than the default one.
Loader name | Pin configuration | Notes |
---|---|---|
HyperFlash | FLEXSPIB_DATA03 = GPIO_SD_B1_00 FLEXSPIB_DATA02 = GPIO_SD_B1_01 FLEXSPIB_DATA01 = GPIO_SD_B1_02 FLEXSPIB_DATA00 = GPIO_SD_B1_03 FLEXSPIB_SCLK = GPIO_SD_B1_04 FLEXSPIA_DQS = GPIO_SD_B1_05 FLEXSPIA_SS0_B = GPIO_SD_B1_06 FLEXSPIA_SCLK = GPIO_SD_B1_07 FLEXSPIA_DATA00 = GPIO_SD_B1_08 FLEXSPIA_DATA01 = GPIO_SD_B1_09 FLEXSPIA_DATA02 = GPIO_SD_B1_10 FLEXSPIA_DATA03 = GPIO_SD_B1_11 |
Default loader for MIMXRT106A-ALEXA MIMXRT106ADVL6A MIMXRT106CDVL6A MIMXRT106FDVL6A MIMXRT106LDVL6A MIMXRT106SDVL6A |
QSPI | FLEXSPIB_DATA03 = GPIO_SD_B1_00 FLEXSPIB_DATA02 = GPIO_SD_B1_01 FLEXSPIB_DATA01 = GPIO_SD_B1_02 FLEXSPIB_DATA00 = GPIO_SD_B1_03 FLEXSPIB_SCLK = GPIO_SD_B1_04 FLEXSPIA_DQS = GPIO_SD_B1_05 FLEXSPIA_SS0_B = GPIO_SD_B1_06 FLEXSPIA_SCLK = GPIO_SD_B1_07 FLEXSPIA_DATA00 = GPIO_SD_B1_08 FLEXSPIA_DATA01 = GPIO_SD_B1_09 FLEXSPIA_DATA02 = GPIO_SD_B1_10 FLEXSPIA_DATA03 = GPIO_SD_B1_11 |
Default loader for MIMXRT1061xxx5A MIMXRT1061xxx5B MIMXRT1061xxx6A MIMXRT1061xxx6B MIMXRT1062xxx5A MIMXRT1062xxx5B MIMXRT1062xxx6A MIMXRT1062xxx6B MIMXRT106A-ALEXA2 |
Between V7.70d and V7.82c the default loader for MIMXRT1061xxx5A, MIMXRT1061xxx5B, MIMXRT1061xxx6A, MIMXRT1061xxx6B, MIMXRT1062xxx5A, MIMXRT1062xxx5B, MIMXRT1062xxx6A, MIMXRT1062xxx6B and MIMXRT106A-ALEXA2 was mistakenly set to HyperFlash. This issue has been fixed with V7.82d.
iMXRT1064
For iMXRT1064 currently only QSPI configuration is supported.
Loader name | Pin configuration | Notes |
---|---|---|
QSPI | FLEXSPIB_DATA03 = GPIO_SD_B1_00 FLEXSPIB_DATA02 = GPIO_SD_B1_01 FLEXSPIB_DATA01 = GPIO_SD_B1_02 FLEXSPIB_DATA00 = GPIO_SD_B1_03 FLEXSPIB_SCLK = GPIO_SD_B1_04 FLEXSPIA_DQS = GPIO_SD_B1_05 FLEXSPIA_SS0_B = GPIO_SD_B1_06 FLEXSPIA_SCLK = GPIO_SD_B1_07 FLEXSPIA_DATA00 = GPIO_SD_B1_08 FLEXSPIA_DATA01 = GPIO_SD_B1_09 FLEXSPIA_DATA02 = GPIO_SD_B1_10 FLEXSPIA_DATA03 = GPIO_SD_B1_11 |
Default loader |