Hello, we are encountering a bit of a problem with a JLINK probe / JLINK commander on a custom board which uses the IMXRT1170 Rev B processor. JLINK only has device IMXRT1170 Rev "A" as a supported device, for which most of the functionality works. However, there is one important difference regarding how the chip boots up initially. NXP actually has a pretty good explanation of the issue in the header of the reset script they use for their probes:
1 REM ======================================
2 REM Copyright 2020-2023 NXP
3 REM All rights reserved.
4 REM SPDX-License-Identifier: BSD-3-Clause
5 REM ======================================
100 REM IMXRT1170 Reset script
110 REM When RT1170 Rev B is reset via SYSRESET_REQ under debugger control, bootROM will
120 REM not boot an existent flash application, instead it will enter a debug loop at a
130 REM fixed PC address (0x00223104). The debugger then needs to initialise the execution
140 REM context in order to jump to the user application.
150 REM RT1170 Rev A does not present this functionality, so it is allowed to continue
160 REM the booting process without any other intervention post reset.
Right now, we must program our board once using the LPC-Link probe and NXP software, and then we can successfully program it forever using the JLINK. If we don't do the initial progamming with the LPC-Link probe, we get the characteristic debug PC address of 0x00223104 and code does not execute. The JLINK is not initializing the execution context correctly for the Rev B IMXRT1170.
I have two questions 1) when does SEGGER plan to support rev B of the IMX RT1170? and 2) Does anyone have a workaround we can use in the meantime to initalize the execution context correctly the first time we program? Thank you.
1 REM ======================================
2 REM Copyright 2020-2023 NXP
3 REM All rights reserved.
4 REM SPDX-License-Identifier: BSD-3-Clause
5 REM ======================================
100 REM IMXRT1170 Reset script
110 REM When RT1170 Rev B is reset via SYSRESET_REQ under debugger control, bootROM will
120 REM not boot an existent flash application, instead it will enter a debug loop at a
130 REM fixed PC address (0x00223104). The debugger then needs to initialise the execution
140 REM context in order to jump to the user application.
150 REM RT1170 Rev A does not present this functionality, so it is allowed to continue
160 REM the booting process without any other intervention post reset.
Right now, we must program our board once using the LPC-Link probe and NXP software, and then we can successfully program it forever using the JLINK. If we don't do the initial progamming with the LPC-Link probe, we get the characteristic debug PC address of 0x00223104 and code does not execute. The JLINK is not initializing the execution context correctly for the Rev B IMXRT1170.
I have two questions 1) when does SEGGER plan to support rev B of the IMX RT1170? and 2) Does anyone have a workaround we can use in the meantime to initalize the execution context correctly the first time we program? Thank you.