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.

XDS110 not available in CCS (Ubuntu 14.04)

Other Parts Discussed in Thread: RM46L852, LAUNCHXL2-RM46

I recently purchased a LaunchpadXL2 Hercules RM46 and am trying to flash the initial project example with a limited CCS license on Ubuntu 14.04.

Having tried installing and updating CCS through both the online and offline installers, compilation is fine. After each attempt I ran 'install_drivers.sh' and restarted.

hekar@hekar-ThinkPad-T520:~/share/ti/ccsv6/install_scripts$ sudo ./install_drivers.sh
Uninstalling /etc/udev/rules.d/71-ti-permissions.rules
TI XDS100 installation completed successfully. Some versions of Linux
require a reboot in order for the driver to function properly. For other
versions restarting udev is sufficient. Restarting udev now ...
udev stop/waiting
udev start/running, process 3264
udev stop/waiting
udev start/running, process 3288
Install 99-icdi.rules in /etc/udev/rules.d directory
Copy libftdi to /usr/lib directory
Creat symbolic link to ftdi library

However, I cannot get the XDS100 emulator to find the device:

hekar@hekar-ThinkPad-T520:~/share/ti/ccsv6/ccs_base/common/uscif$ sudo ./xds100serial
Scanning for XDS100 emulators...

No XDS100 emulators were found on the system.

While XDS110 works correctly and finds the device:

hekar@hekar-ThinkPad-T520:~/share/ti/ccsv6/ccs_base/common/uscif/xds110$ sudo ./xdsdfu -e

USB Device Firmware Upgrade Utility
Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved.

Scanning USB buses for supported XDS110 devices...


<<<< Device 0 >>>>

VID: 0x0451 PID: 0xbef3
Device Name: XDS110 with CMSIS-DAP
Version: 2.2.4.0
Manufacturer: Texas Instruments
Serial Num: HLR46000
Mode: Runtime

Found 1 device.

Is there an FTDI kernel module that XDS100 requires to be loaded or something else that I am missing?

  • Hi,

    LaunchpadXL2-RM46 has a XDS110 and not a XDS100, therefore the behavior is expected.

    http://processors.wiki.ti.com/index.php/Hercules_LaunchPads

    Regards,

    Rafael

  • Apologies, I misread the documentation. I installed Windows to see if anything was different. Noticed the XDS110 USB Debug Probe is available as a target. Before that, I had assumed XDS110 required an evaluation license and XDS100 could work instead.

    Under Ubuntu, I noticed XDS110 debugging is available under TivaC launchpads, but not under RM46L852. I performed an updated and installed the Ti Emulation software through "Help -> Install New Software", but it just doesn't available, even though the XDS110 module is under "ccsv6/ccs_base".


    I also tried the manual installation of the http://processors.wiki.ti.com/index.php/XDS_Emulation_Software_Package, but it didn't show up in CCS either.

  • Hekar Khani said:
    Under Ubuntu, I noticed XDS110 debugging is available under TivaC launchpads, but not under RM46L852.

    I found the same problem trying to use CCS 6.1.0.00104 in CentOS 6.5 64-bit.

    The initial problem was that debugging of Cortex R4 (or Cortex R5) with an XDS110 was not possible due to a missing XML file in the Linux CCS - see LAUNCHXL2-TMS57012 with XDS110 JTAG emulator - no linux support? for details.

    After adding the missing XML file the Linux CCS let me select a RM46L852 device (on a LAUNCHXL2-RM46) for debugging with an XDS110. However, attempting to start a debugging session fails with:

    IcePick: Error connecting to the target: (Error -260 @ 0x0) An attempt to connect to the XDS110 failed. The cause may be one or more of: invalid firmware update, invalid XDS110 serial number, or faulty USB connection. The firmware and serial number may be updated using the xdsdfu utility found in the .../ccs_base/common/uscif/xds110 directory of your installation. View the ReadMe.txt file there for instructions. (Emulation package 5.1.641.0)

    The xdsdfu utility can detect the XDS100:

    $ /opt/ti/ti_ccs6_1/ccsv6/ccs_base/common/uscif/xds110/xdsdfu -e

    USB Device Firmware Upgrade Utility
    Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved.

    Scanning USB buses for supported XDS110 devices...


    <<<< Device 0 >>>>

    VID: 0x0451 PID: 0xbef3
    Device Name: XDS110 with CMSIS-DAP
    Version: 2.2.4.0
    Manufacturer: Texas Instruments
    Serial Num: HLR46000
    Mode: Runtime

    Found 1 device.

  • Thanks Chester. That link you referenced had exactly what I needed to get XDS110 working under Linux. I just followed the steps outlined:

    1) download the XML file

    2) Make the modifications necessary (convert line 5 and 16 to lowercase)

    Did you make the changes to the XML file, so that it correctly references the drivers?

  • Hekar Khani said:
    Did you make the changes to the XML file, so that it correctly references the drivers?

    Yes.

    I got the same error trying to use ccsv6/ccs_base/scripting/examples/loadti/loadti.sh as when try and start a debugging session in CCS. Running loadti.sh under strace showed that the libtixds510cortexr.so driver referenced by the modified XML file was being loaded.

    Looking at the strace log of the failured showed that /dev/bus/usb/002/006, which is the XDS110 emulator, was opened but that 3 ioctl calls on the opened file descriptor were failing with "Invalid argument":

    7006  open("/dev/bus/usb/002/006", O_RDWR) = 61
    7006  ioctl(61, 0x8004551a, 0xc4bcce58) = -1 EINVAL (Invalid argument)
    7006  write(58, "\1", 1)                = 1
    7006  read(57, "\1", 1)                 = 1
    7006  ioctl(61, 0x8108551b, 0xc3e5f1e4) = -1 EINVAL (Invalid argument)
    7006  ioctl(61, 0x8108551b, 0xc3e5f1e4) = -1 EINVAL (Invalid argument)
    7006  write(58, "\1", 1)                = 1
    7006  read(57, "\1", 1)                 = 1
    7006  close(61)                         = 0
    

    After the failure, /var/log/messages had also recorded unknown ioctl commands:

    Mar 25 14:36:17 SandyCentOS kernel: ioctl32(ccstudio:7006): Unknown cmd fd(61) cmd(8004551a){t:'U';sz:4} arg(c4bcce58) on /dev/bus/usb/002/006
    Mar 25 14:36:17 SandyCentOS kernel: ioctl32(ccstudio:7006): Unknown cmd fd(61) cmd(8108551b){t:'U';sz:264} arg(c3e5f1e4) on /dev/bus/usb/002/006
    Mar 25 14:36:17 SandyCentOS kernel: ioctl32(ccstudio:7006): Unknown cmd fd(61) cmd(8108551b){t:'U';sz:264} arg(c3e5f1e4) on /dev/bus/usb/002/006

    At the time of the unknown ioctl commands being reported, was running the 2.6.32-504.12.2.el6.x86_64 Linux Kernel from CentOS 6.5 64-bit.

    When the system was booted with a later Linux Kernel 2.6.32-504.12.2.el6.x86_64, CCS 6.1 was then able to connect to the XDS110 on the LAUNCHXL2-RM46.

    Therefore, it appears the issue is that the Linux xds110 driver makes some ioctl calls on the USB driver which may rejected as Unknown by "old" Linux Kernels.