In a PCB design using MIMXRT1021DAF5A, it is observed that our firmware runs but crashes into boot ROM, where execution appears to get "stuck" at address 0x00209C66. The watchdog is active when this occurs, so would expect any issue which triggers this to action a simple reset of the MCU, rather than becoming trapped in the boot ROM.
The running firmware is programmed into QSPI flash chip but code is loaded into RAM at start-up by a boot loader program, from where it is executed. The design includes a display screen, and interface data for this remains in QSPI flash, from where it is loaded during firmware execution, as required, using the FlexSPI interface.
It is notable that the observed crash most frequently occurs when one or more LPUART interfaces on the device are active, in particular LPUART2. There are 3 of these interfaces being used in the project, to read/write serial data over RS485 links. If the software tasks associated with these LPUARTs are disabled within firmware, the crash is not seen to occur.
A screenshot is attached showing the CPU registers, giving the execution location within boot ROM after the crash occurs. This is obtained from the CrossStudio debugger environment, with a Segger J-Link connected to the PCB where the firmware is running. Unfortunately, due to the the nature of the "crash" into the boot ROM, it is not possible to determine state of firmware immediately before the crash occurs, or what may be causing this.
Could anyone offer some guidance on further investigations for this issue? Have similar issues been reported on this MCU or other MCU, perhaps related to documented (or undocumented) errata? In particular, it is interesting that the crash seems to be related to LPUART usage.
Thanks for any assistance with this issue.