I have bricked an ls1012ardb board. I have purchased a CodeWarrior Tap and appropriate probe tip. Is there a document detailing the specific process needed to un-brick this board?
Hello Dean Mehler,
As normal, when the demo board released to the customer, there is valid software on QSPI Flash, you could connect the target board to your PC through serial with baud rate at 115200.
If u-boot is destroyed, but RCW on the target is still valid, you could refer to the first section in this document Use CodeWarrior for ARMv8 to Debug U-boot and Linux Kernel and Bring up Bare Boards to do flash programming.
If both u-boot and RCW are destroyed, please refer to the following procedure to do images recovery instead of using CodeWarrior IDE, because there is a limitation in the current CodeWarrior for ARMv8.
1. Please configure switch setting on target board to use hard-coded RCW.
2. Please use the attached script to replace the one in C:\Freescale\CW4NET_v2016.01\CW_ARMv8\ARMv8\gdb_extensions\flash\cwflash.py. Probably you need to modify this script according to your requirement. For example, you use other connection type, the default is CodeWarrior TAP with USB connection. 3. Please put images files in C:\Freescale\CW4NET_v2016.01\CW_ARMv8\ARMv8\gdb\bin. 4. Open gdb console in C:\Freescale\CW4NET_v2016.01_armv8\CW_ARMv8\ARMv8\gdb\bin\aarch64-fsl-gdb.exe, please execute the following commands to do flash programming. source ../../gdb_extensions/flash/cwflash.py fl_unprotect 0x0 0x4000000 fl_write 0x0 rcw_800_swap.bin --erase fl_write 0x100000 u-boot-spl_swap.bin --erase fl_write 0x200000 u-boot_swap.bin --erase
Have a great day,TIC
-----------------------------------------------------------------------------------------------------------------------Note: If this post answers your question, please click the Correct Answer button. Thank you!-----------------------------------------------------------------------------------------------------------------------
Hello Yiping Wang,
The evaluation version of CW that I downloaded this week from the NXP web site is CW4NET_v2015.08. Is this version compatible with your instructions? Also, LS1012A is not listed as an option on the GDB hardware debugging, target configuration screen. What course of action here?
This version CodeWarrior is too old.
Please download CodeWarrior for ARMv8 from CodeWarrior ARMv8 64 bit|NXP , then use the online updater to upgrade the software to the latest version.
After install CodeWarrior for ARMv8 2016.01, please open the panel from Help->Install New Software->Available Software Site, check ARMv8 Eclipse Update Site, click the drop down list at "Work with", select "ARMv8 Eclipse Update Site - http://freescale.com/lgfiles/updates/Eclipse/11.2.0/com.freescale.armv8_win", then select "CodeWarrior Updates" to follow the installation wizards to do online updating step by step.
Hello yiping wang,
I followed your instructions with some issues.
I am connecting to CWTAP via USB but I also tried (for this step) the ethernet connection, which gave the same error.
In trying to re-flash just the U-boot as you suggested in "use the first section of "Use CodeWarrior for ARMv8 to Debug U-boot and Linux Kernel and Bring up Bare Boards",
I was unsuccessful (Test name - IR SCAN, more info - IR length measure failed) but noticed the CWTAP RUN/PAUSE LED was solid orange (mixed mode).
NXP documentation suggests bad power but this is the NXP dev board powered with the NXP power supply, so I assumed the RCW was also overwritten.
So I moved on to your second suggestion"If both u-boot and RCW are destroyed".
In step one, my LS1012A RDB switch 1 was set to 0xD4 not 0xA6 as suggested in the "code warrior get started" document.
Before I erroneously overwrote the flash the board was working (it would boot to Linux) with this setting.
I set switch1 to 0x26 as indicated in "code warrior get started" (page 9).
I accomplished steps 2 and 3 as you indicated. I made no changes to cwflash.py, since my connection to CW TAP was USB.
When I attempted step 4 "Opne GDB console" that did open but when I entered "source ../../gdb_extensions/flash/cwflash.py", I received the following output:
(gdb) source ../../gdb_extensions/flash/cwflash.py
Starting flash programmer services...
Starting local server...
Successfully started gdb server 127.0.0.1:45003.
Set gdb remote timeout to 7200
Connecting to target...
Using LS1012A SoC
Using CWTAP connected to local usb port
Using jtag speed 16000
Connecting to probe...
Successfully connected to probe
Running init script /opt/Freescale/CW4NET_v2017.03/CW_ARMv8/ARMv8/gdb_extensions/flash/scripts/../../../../Config/boards/LS1012A_RDB_init.py
ccs:Subcore error encountered during multicore operation
File "../../gdb_extensions/flash/cwflash.py", line 109, in fp_initialization
File "/opt/Freescale/CW4NET_v2017.03/CW_ARMv8/ARMv8/gdb_extensions/flash/../flash/scripts/services.py", line 151, in start_fp_services
return instance.invoke(argument, False)
File "/opt/Freescale/CW4NET_v2017.03/CW_ARMv8/ARMv8/gdb_extensions/flash/../flash/scripts/services.py", line 108, in invoke
ret = self.start_service(argument)
File "/opt/Freescale/CW4NET_v2017.03/CW_ARMv8/ARMv8/gdb_extensions/flash/../flash/scripts/services.py", line 122, in start_service
ret = start(args)
File "/opt/Freescale/CW4NET_v2017.03/CW_ARMv8/ARMv8/gdb_extensions/flash/../flash/scripts/flash_init.py", line 294, in start
if internal_start(args) is False:
File "/opt/Freescale/CW4NET_v2017.03/CW_ARMv8/ARMv8/gdb_extensions/flash/../flash/scripts/flash_init.py", line 67, in internal_start
if internal_initialize_target(args) is False:
File "/opt/Freescale/CW4NET_v2017.03/CW_ARMv8/ARMv8/gdb_extensions/flash/../flash/scripts/flash_init.py", line 269, in internal_initialize_target
File "/opt/Freescale/CW4NET_v2017.03/CW_ARMv8/ARMv8/gdb_extensions/flash/scripts/../../../../Config/boards/LS1012A_RDB_init.py", line 305, in run_init_file
File "/opt/Freescale/CW4NET_v2017.03/CW_ARMv8/ARMv8/gdb_extensions/flash/scripts/../../../../Config/boards/LS1012A_RDB_init.py", line 93, in Reset
gdb.execute("py-reset %d" % user_reset_delay)
gdb.error: Error occurred in Python command: Protocol error with Rcmd
I didn't get as far as erasing and re-writting the flash, but if we get that far, can you supply known good image files for RCW and U-boot.
Hello yipping wang,
Also, I am connecting CWTAP probe to J11 on ls1012a RDB. Thank for your help.
First let us check the basic connection between CodeWarrior and the target board, please refer to the document Use CodeWarrior for ARMv8 to Debug U-boot and Linux Kernel and Bring up Bare Boards to configure "useSafeRCW = True" in CW init script to try whether CW can connect to the target board. This option is used to switch to hard-coded RCW on the target board.
If the connection fails, enabling Protocol logging can provide us important information to diagnose the problem. You can do this by going to Window > Preferences > Target Connection Configuration > Logging Configuration > Logging level : Debug, Enable logging to Eclipse console.
Please capture the "Protocol logging Console" and send it to me to do more investigation.
Hello Yiping Wang
I accomplished step one of your instructions ("usingSafeRCW = True") and CW didn't connect to the LS1012a RDB.
Still using "usingSafeRCW = True" I tried to perform step 2 but could not find a "Logging Configuration" selection under "Target Connection Configuration".
When running step one, I received the following error:
Memory access failed.
Additional error details:
I selected diagnose and got the attached (screen shot).
Retrieving data ...