We are bringing up a custom board based on the LS1043AXE8QQB and all JTAG operations have started returning errors, preventing further progress. The symptoms are very similar to https://community.nxp.com/t5/Layerscape/LS1012A-QSPI-Flashing-Problem-on-Custom-Board/m-p/1052911
When trying to connect from CodeWarrior, the flash programmer fails to launch, even with USE_SAFE_RCW. When we run diagnostics we see errors like IR Scan failing:

Sometimes it gets past there and shows:

We have reduced the JTAG speed (from 16000 to 10000 and even 1000) with no apparent effect. We also tried swapping to a different TAP and JTAG cable. This TAP/cable work on other devices (and were working on this device earlier).
When we try to flash the device from gdb instead of CodeWarrior, we see:
(gdb) Starting flash programmer services...
Starting local server...
Successfully started gdb server 127.0.0.1:45000
Set gdb remote timeout to 7200
Connecting to target...
Using LS1043A SoC
Using CWTAP 192.168.5.116
Using jtag speed 16000
Connecting to probe...
connected successfully
Successfully connected to probe
Initializing target...
Running init script c:\freescale\cw4net_v2020.06\cw_armv8\armv8\gdb_extensions\flash\scripts/../../../../Config/boards/LS1043A_RDB_init.py
RCW error encountered. In order to diagnose the error temporarily change the board configuration switches to ignore the assertion of the RESET_REQ_B signal. Please refer to board reference manual in order to locate the appropriate switch that controls this behavior.
Error: fail to initialize target
Our design disconnects RESET_REQ_B from PORESET_B anyway, so we are already ignoring that. If we modify the LS1043A_RDB_init.py script referenced there to USE_SAFE_RCW, we get the same error we see in CodeWarrior's flash programmer, which is:
[Failed to write memory at address 0x2016002c on core CortexA53#0.
Core CortexA53#0 not found on the JTAG chain. Please verify that the Reset Configuration Word is correct, or enable RCW Override in the initialization file.]
Our design does not have an easy way to change cfg_rcw_src to 0 – in the past we've always accomplished the same effect by using USE_SAFE_RCW in the CodeWarrior Target Initialization File, but that is no longer working.
We had been using the flash programmer without issues on this device successfully many times before we got into this state. The noteworthy change leading up to this issue is that I flashed a bl2 image built for the LS1043AQDS instead of the LS1043ARDB-based ones we had been using before. This is a custom board but its configuration is based largely on the RDB, except for the boot device. I tried the QDS bl2 because our design is shared with a LS1046A design which uses QSPI boot, and we noticed in the Layerscape SDK User Guide (rev 20.12) table 27 that the LS1043ARDB does not support QSPI boot. We also see that there is no "qspiboot" variant for the RCW for the LS1043ARDB in source: https://source.codeaurora.org/external/qoriq/qoriq-components/rcw/tree/ls1043ardb/RR_FQPP_1455 but we do see qspiboot variants in the LS1043AQDS source: https://source.codeaurora.org/external/qoriq/qoriq-components/rcw/tree/ls1043aqds/RR_SSPH_3358
Questions:
- Is there something about the QDS RCW that would explain why flashing that bl2 put this device into such a bad state?
- Do you have ideas/suggestions we haven't tried to get it out of the bad state?
- Does the LS1043A work with QSPI boot? In other words if we got past this RCW/JTAG issue, would we still be stuck because the 1043 can't boot QSPI anyway?