This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

UNIFLASH: How to use UNIFLASH CLI to Mass Erase CC2652RB with locked debug interface

Part Number: UNIFLASH
Other Parts Discussed in Thread: CC2652RB, CC1310

I need to use the CLI of Uniflash to perform a MassErase on a target. I can successfully do this using SmartRF Flash Programmer 2, but I can't use that. I need to use Uniflash CLI.

In the Uniflash CLI, it mentions that in order to do a MassErase on a device with a locked debug interface you must do this:

How do you specify custom="no" in a .ccxml file?   Can you give me the syntax for doing that?

Currently the CCXML file looks like this:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configurations XML_version="1.2" id="configurations_0">
<configuration XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
<instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe_0" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe_0" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
<connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
<instance XML_version="1.2" href="drivers/tixds510icepick_c.xml" id="drivers" xml="tixds510icepick_c.xml" xmlpath="drivers"/>
<instance XML_version="1.2" href="drivers/tixds510cs_dap.xml" id="drivers" xml="tixds510cs_dap.xml" xmlpath="drivers"/>
<instance XML_version="1.2" href="drivers/tixds510cortexM.xml" id="drivers" xml="tixds510cortexM.xml" xmlpath="drivers"/>
<property Type="choicelist" Value="1" id="Power Selection">
<choice Name="Probe supplied power" value="1">
<property Type="stringfield" Value="3.3" id="Voltage Level"/>
<property Type="choicelist" Value="1" id="Power Isolation"/>
</choice>
</property>
<property Type="choicelist" Value="1" id="JTAG Signal Isolation"/>
<property Type="choicelist" Value="4" id="SWD Mode Settings">
<choice Name="cJTAG (1149.7) 2-pin advanced modes" value="enable">
<property Type="choicelist" Value="1" id="XDS110 Aux Port"/>
</choice>
</property>
<property Type="choicelist" Value="0" id="Debug Probe Selection">
<choice Name="Select by serial number" value="0">
<property Type="stringfield" Value="DANIEL01" id="-- Enter the serial number"/>
</choice>
</property>
<property Type="choicelist" Value="0" id="The JTAG TCLK Frequency (MHz)"/>
<platform XML_version="1.2" id="platform_0">
<instance XML_version="1.2" desc="CC2652RB1F" href="devices/cc2652rb1f.xml" id="CC2652RB1F" xml="cc2652rb1f.xml" xmlpath="devices"/>
</platform>
</connection>
</configuration>
</configurations>

  • Here is the image I tried to post in the original post.

  • Hi Daniel,

    Your post has been assigned to an expert within our tools teams. They should follow up shortly. 

  • Hi Daniel,

    Daniel Cambron said:
    How do you specify custom="no" in a .ccxml file?   Can you give me the syntax for doing that?

    In the Advanced editor for the Target Configuration File editor, there is checkbox "Custom Configuration" for all the subpath nodes. The message is referring to this checkbox.

    However, I checked with our UniFlash expert and he feels that this message is a bit outdated and that there is a new (more effective) way to perform a Mass Erase on a locked LPRF device. Try:

    > dslite --mode cc13xx-cc26xx-mass-erase -d XDS110

    Please give the above a try.

    Thanks

    ki

  • Ki said:

    However, I checked with put UniFlash expert and he feels that this message is a bit outdated and that there is a new (more effective) way to perform a Mass Erase on a locked LPRF device. Try:

    > dslite --mode cc13xx-cc26xx-mass-erase -d XDS110

    Note that you may have to update your UniFlash version if you are using an old version. I can confirm that the above option just worked for me with UniFlash 6.0 and 5.3.

  • Ki,

    Is there any way to specify a particular target XDS110 using the 'cc13xx-cc26xx-mass-erase' mode?    I have a production fixture with several XDS110s attached, each one with their own target.   While using uniflash in the past, I have been able to specify the serial number of the XDS110 to use in the .ccxml target config file.   But the help for 'cc13xx-cc26xx-mass-erase' mode shows '-d' as the only option... If there are multiple XDS110s attached, which one does it choose?

    Thanks

    Daniel Cambron

  • Daniel Cambron said:
    But the help for 'cc13xx-cc26xx-mass-erase' mode shows '-d' as the only option... If there are multiple XDS110s attached, which one does it choose?

    The first one that was enumerated by the PC. 

    Daniel Cambron said:
    Is there any way to specify a particular target XDS110 using the 'cc13xx-cc26xx-mass-erase' mode? 

    Unfortunately, no. Though there is some discussion on supporting this down the road.

    Daniel Cambron said:
    I have a production fixture with several XDS110s attached, each one with their own target.   While using uniflash in the past, I have been able to specify the serial number of the XDS110 to use in the .ccxml target config file.

    I think you will need to go back to using the older command for Mass Erase.

    Which goes back to my comment:

    In the Advanced editor for the Target Configuration File editor, there is checkbox "Custom Configuration" for all the subpath nodes. The message is referring to this checkbox.

    Basically disable the checkbox for both subpath_0 and subpath_1

    And use the original command:

    > dslite -c <filename>.ccxml -O MassErase

    Thanks

    ki

  • I tried this suggestion, and am still getting an issue.  (The 'new' mass erase mode works great, by the way, I just have this extra requirement of handling multiple XDS110 at a time).

    Here is what the command line returns:

    My CCXML file looks like this:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <configurations XML_version="1.2" id="configurations_0">
    <configuration XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
    <instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe_0" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe_0" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
    <connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
    <instance XML_version="1.2" href="drivers/tixds510icepick_c.xml" id="drivers" xml="tixds510icepick_c.xml" xmlpath="drivers"/>
    <instance XML_version="1.2" href="drivers/tixds510cs_dap.xml" id="drivers" xml="tixds510cs_dap.xml" xmlpath="drivers"/>
    <instance XML_version="1.2" href="drivers/tixds510cortexM.xml" id="drivers" xml="tixds510cortexM.xml" xmlpath="drivers"/>
    <property Type="choicelist" Value="1" id="Power Selection">
    <choice Name="Probe supplied power" value="1">
    <property Type="stringfield" Value="3.3" id="Voltage Level"/>
    <property Type="choicelist" Value="1" id="Power Isolation"/>
    </choice>
    </property>
    <property Type="choicelist" Value="1" id="JTAG Signal Isolation"/>
    <property Type="choicelist" Value="4" id="SWD Mode Settings">
    <choice Name="cJTAG (1149.7) 2-pin advanced modes" value="enable">
    <property Type="choicelist" Value="1" id="XDS110 Aux Port"/>
    </choice>
    </property>
    <property Type="choicelist" Value="0" id="dataFileRequired"/>
    <property Type="choicelist" Value="1" id="Debug Probe Selection">
    <choice Name="Select by serial number" value="0">
    <property Type="stringfield" Value="L50000BI" id="-- Enter the serial number"/>
    </choice>
    </property>
    <platform XML_version="1.2" id="platform_0">
    <instance XML_version="1.2" desc="CC2652RB1F_0" href="devices/cc2652rb1f.xml" id="CC2652RB1F_0" xml="cc2652rb1f.xml" xmlpath="devices"/>
    <device HW_revision="1" XML_version="1.2" description="SimpleLink(TM) multi-protocol CC2652RB wireless MCU" id="CC2652RB1F_0" partnum="CC2652RB1F" simulation="no">
    <router HW_revision="1.0" XML_version="1.2" description="ICEPick_C Router" id="IcePick_C_0" isa="ICEPICK_C">
    <subpath id="subpath_0">
    <property Type="choicelist" Value="1" id="Custom Configuration"/>
    <router HW_revision="1.0" XML_version="1.2" description="CS_DAP Router" id="CS_DAP_0" isa="CS_DAP">
    <subpath id="subpath_1">
    <property Type="choicelist" Value="1" id="Custom Configuration"/>
    </subpath>
    </router>
    </subpath>
    <subpath id="subpath_2">
    <property Type="choicelist" Value="0" id="Custom Configuration"/>
    </subpath>
    </router>
    </device>
    </platform>
    </connection>
    </configuration>
    </configurations>

  • Daniel Cambron said:
    <subpath id="subpath_2">
    <property Type="choicelist" Value="0" id="Custom Configuration"/>
    </subpath>

    Can you try clearing the checkbox for subpath_2 (sorry I missed that one in my screenshot)?

  • And just a little more background about this problem:

    I was initially trying to use smartRF Flash programmer 2 for this production programming fixture.   But That program uses an old version of the emulation package that is not compatible with recent versions of the XDS110 firmware. The Recent XDS110 firmware is needed because I require the ability to turn on and off the target power on the XDS110 with the dbgjtag program.  That isn't an option with the old XDS110 firmware and the old Emupacks, so I had to jump ship and go to using UNIFLASH.

    And that is why I'm tryign to get UNIFLASH to work with mass erase of targets connected to multiple XDS110s.

     

  • Additionally Clearing the checkbox for subpath_2 did not change the results (still failed with the same error)

  • Daniel - try this workaround. We are going to use that other new command again. Except I tweaked the command so that you can pass a ccxml file to it.

    Browse to: <UNIFLASH INSTALL DIR>\deskdb\content\TICloudAgent\win\ccs_base\DebugServer\scripts

    back up this file: cc13xx-cc26xx-mass-erase.dsls (you can rename it or whatever).

    Replace it with the following attached file:

    /cfs-file/__key/communityserver-discussions-components-files/538/cc13xx_2D00_cc26xx_2D00_mass_2D00_erase.dsls

    Then run the command as so:

    > dslite --mode cc13xx-cc26xx-mass-erase -c <filename>.ccxml

    This worked in my environment where I had multiple xds110 probes connected and I passed in a ccxml file with a serial number specified.

    Let me know if this works for you.

    Thanks

    ki

  • I think we are closer, but the command is now not getting all the way through. It throws this error:

    And again here is that .ccxml file I am using.  It works with dslite when I'm trying to flash the device, but throws the error above when trying to mass erase a locked target.   Note that I'm actually using a LAUNCHXLCC2640R2 launchpad as the XDS110 right now. It is connected to my custom board through the 10 pin SWD cable. This is why the serial number is "L50000BI". The production setup has actual standalone XDS110 units... but it should work regardless, right?  

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <configurations XML_version="1.2" id="configurations_0">
    <configuration XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
    <instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe_0" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe_0" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
    <connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
    <instance XML_version="1.2" href="drivers/tixds510icepick_c.xml" id="drivers" xml="tixds510icepick_c.xml" xmlpath="drivers"/>
    <instance XML_version="1.2" href="drivers/tixds510cs_dap.xml" id="drivers" xml="tixds510cs_dap.xml" xmlpath="drivers"/>
    <instance XML_version="1.2" href="drivers/tixds510cortexM.xml" id="drivers" xml="tixds510cortexM.xml" xmlpath="drivers"/>
    <property Type="choicelist" Value="1" id="Power Selection">
    <choice Name="Probe supplied power" value="1">
    <property Type="stringfield" Value="3.3" id="Voltage Level"/>
    <property Type="choicelist" Value="1" id="Power Isolation"/>
    </choice>
    </property>
    <property Type="choicelist" Value="1" id="JTAG Signal Isolation"/>
    <property Type="choicelist" Value="4" id="SWD Mode Settings">
    <choice Name="cJTAG (1149.7) 2-pin advanced modes" value="enable">
    <property Type="choicelist" Value="1" id="XDS110 Aux Port"/>
    </choice>
    </property>
    <property Type="choicelist" Value="0" id="Debug Probe Selection">
    <choice Name="Select by serial number" value="0">
    <property Type="stringfield" Value="L50000BI" id="-- Enter the serial number"/>
    </choice>
    </property>
    <property Type="choicelist" Value="0" id="The JTAG TCLK Frequency (MHz)"/>
    <platform XML_version="1.2" id="platform_0">
    <instance XML_version="1.2" desc="CC2652RB1F" href="devices/cc2652rb1f.xml" id="CC2652RB1F" xml="cc2652rb1f.xml" xmlpath="devices"/>
    </platform>
    </connection>
    </configuration>
    </configurations>

  • Daniel Cambron said:
       Note that I'm actually using a LAUNCHXLCC2640R2 launchpad as the XDS110 right now. It is connected to my custom board through the 10 pin SWD cable. This is why the serial number is "L50000BI". The production setup has actual standalone XDS110 units... but it should work regardless, right?  

    Since the original command script for cc13xx-cc26xx-mass-erase command worked for you while the modified one did not seems to indicate some issue with the ccxml file. The only main change I made in the script is for you to be able to specify your ccxml file instead of using the default ccxml file that the command always used under the hood.

    I'll need to take a closer look at your ccxml. I'll keep you updated of my progress.

    Thanks

    ki

  • Can you attach the actual ccxml file (instead of just the xml source) you are trying to use? 

  • These are the two files I have - the 'nocustom' one was from when we were playing around with the old method, and the other file is what I've been using successfully to flash the program onto the chip using dslite.  The contents of the files are, to my knowledge, identical to what I've pasted into previous comments.    

    https://drive.google.com/file/d/1oXv3HB_XFbLxBNHmT7OuvJLRfsf5T4_k/view?usp=sharing

    https://drive.google.com/file/d/1V1aiRljlckGdiFwAsxNeKlcy2AyBPiWG/view?usp=sharing

  • Thanks. Your ccxml files work fine (I just changed the SN to match mine). Note that your first ccxml file is configured for one XDS110 probe.

    There must be some odd issue with your environment. Again it is strange that the original command cc13xx-cc26xx-mass-erase works for you and the modified one does not. As mentioned before, the difference is that the original command uses a default ccxml file.

    Can you try a single XDS110 setup and use the new command while passing in the default ccxml instead? The default file is in:

    <UNIFLASH INSTALL DIR>\deskdb\content\TICloudAgent\win\ccs_base\arm\cc13xx_cc26xx_2pin_cJTAG_XDS110.ccxml

  • Ki,

    I was able to modify the default ccxml with the property to explicitly specify the XDS110 serial number, and it worked great, flashing the particular board that I wanted.  So I think I'll be able to run with this solution, just using this ccxml file like this for the erase step, and then possibly going back to my old ccxml file for the flashing step. I'm still not sure what in my ccxml file isn't jiving with my environment, but at least I've reached a state where I can accomplish what I was trying to do.

    Thanks for all your help on this!

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <configurations XML_version="1.2" id="configurations_0">
    <configuration XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
    <instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe_0" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe_0" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
    <connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
    <instance XML_version="1.2" href="drivers/tixds510icepick_c.xml" id="drivers" xml="tixds510icepick_c.xml" xmlpath="drivers"/>
    <instance XML_version="1.2" href="drivers/tixds510cs_dap.xml" id="drivers" xml="tixds510cs_dap.xml" xmlpath="drivers"/>
    <instance XML_version="1.2" href="drivers/tixds510cortexM.xml" id="drivers" xml="tixds510cortexM.xml" xmlpath="drivers"/>
    <property Type="choicelist" Value="4" id="SWD Mode Settings">
    <choice Name="cJTAG (1149.7) 2-pin advanced modes" value="enable">
    <property Type="choicelist" Value="1" id="XDS110 Aux Port"/>
    </choice>
    </property>
    <property Type="choicelist" Value="0" id="Debug Probe Selection">
    <choice Name="Select by serial number" value="0">
    <property Type="stringfield" Value="L50000BI" id="-- Enter the serial number"/>
    </choice>
    </property>
    <platform XML_version="1.2" id="platform_0">
    <instance XML_version="1.2" desc="CC1310F128_0" href="devices/cc1310f128.xml" id="CC1310F128_0" xml="cc1310f128.xml" xmlpath="devices"/>
    <device HW_revision="1" XML_version="1.2" description="SimpleLink(TM) Sub-1 GHz CC1310 wireless MCU" id="CC1310F128_0" partnum="CC1310F128">
    <router HW_revision="1.0" XML_version="1.2" description="ICEPick_C Router" id="IcePick_C_0" isa="ICEPICK_C">
    <subpath id="subpath_0">
    <property Type="choicelist" Value="1" id="Custom Configuration"/>
    <router HW_revision="1.0" XML_version="1.2" description="CS_DAP Router" id="CS_DAP_0" isa="CS_DAP">
    <subpath id="subpath_1">
    <property Type="choicelist" Value="1" id="Custom Configuration"/>
    </subpath>
    </router>
    </subpath>
    </router>
    </device>
    </platform>
    </connection>
    </configuration>
    </configurations>

  • Daniel Cambron said:
    I was able to modify the default ccxml with the property to explicitly specify the XDS110 serial number, and it worked great, flashing the particular board that I wanted. 

    ah, good to hear!

    Daniel Cambron said:
    I'm still not sure what in my ccxml file isn't jiving with my environment

    When comparing the two ccxml files (yours and the default one), I see that the "Power Selection" setting for yours is set to "Probe supplied power" while the default ccxml has "Target supplied power". the other big difference is that the device for the default is a CC1310, (which is fine for simple connectivity purposes given the basic similarity of the cc13xx and xx26xx devices). Perhaps one of these settings (or a combination of them) is contributing to the issue in your environment (though your ccxml works just fine for me with my 1312).