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).
Given the error I was receiving, I purchased a FRDM1012A board since it's JTAG circuit is the same as that of the LS1012a RDB. My hope was to prove either the LS1012a RDB was bad or the CWTAP was bad. I connected the CWTAP and probe to J9 of the FRDM and followed the Quick Start for CodeWarrior TAP documentation. The CWTAP did display Blinking GREEN TX/RX LED and the Solid RED RUN/PAUSE LED. I ran debug under CodeWarrior and was able to connect to the LS1012aRDB. I received an error message about "wrong Language".
However, since that first connection I have not been able to get CWTAP to connect since. Every attempt results in the RUN/PAUSE LED solid orange. This happens is I have the Ethernet connection to the host, the USB connection to the host, or the CWTAP just powered with its enclosed standalone power cable. This is the same behavior displayed by the LS1012a RDB board.
The quick start for the CodeWarrior TAP seems to indicate the CWTAP should blink green (TX/RX) when powered and show solid RED (RUN/PAUSE) when the target is powered, regardless for whether or not CodeWarrior itself is running.
At this point I'm not sure how to proceed. Whatever help you can offer will be appreciated.
I uninstalled all of CodeWarrior and then re-installed it. Now the new FRDM1012A connects to CodeWarrior via CWTAP repeatably . However, the LS1012a RDB still does not connect. I want to retry your instructions regarding "if the RCW is destroyed" but failing that, I must assume the board is bad do to hardware failure and not a bad flash write. Thank you very much for all your help and patients.
In your screenshot, it seems that there is JTAG hardware connection problem.
If configuring "usingSafeRCW = True " in CW initialization file to configure the target board to use hard-coded RCW, the problem remains, you have to consider the hardware problem.
I have verified that using your instructions “for when the RCW is destroyed”, also results in a connection error (“Protocol error with Rcmd”). Behavior of the CWTAP is the same as when I tried through CodeWarrior. So, as in my earlier e-mail and your latest e-mail, I think we must conclude the development board has a hardware failure. Again I thank you for your help and patients.
Retrieving data ...