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.

TMDSEVM572X: XDS2xx communication using CCS terminates abnormally on Linux

Part Number: TMDSEVM572X
Other Parts Discussed in Thread: AM1802

This post uses a translation.

 

Hello

I'm trying to debug the TMDSEVM572x SBL using the XDS200 emulator. I installed CCS on Ubuntu and ran Test Connections, but the connection doesn't terminate correctly.

I followed the steps below, referring to a lot of information on the forum.

I couldn't find anything similar to the problem I'm currently experiencing, so I posted here.

Is there something I've overlooked or anything else I need to do? Any advice would be appreciated.

 

I was wondering whether I should contact Blackhawk support, so I posted here.

https: //www.blackhawk-dsp.com/support

 

■EVM

TMDSEVM572x

 

■Emulator

XDS200 DEBUG PROBE (TMDSEMU200-J)

 

■Host PC: Windows11 VirtualBox

Version:  7.1.10 r169112 (Qt6.5.3)

 

■Host OS: Ubuntu18.04

xds2xx@xds2xx-VirtualBox: ~$ hostnamectl

   Static hostname:  xds2xx-VirtualBox

         Icon name:  computer-vm

           Chassis:  vm

        Machine ID:  fc8cc8ae154240f1b1b255c557bb13e8

           Boot ID:  9742725a501e4613837c9f8c9d83938d

    Virtualization:  oracle

  Operating System:  Ubuntu 18.04.6 LTS

            Kernel:  Linux 5.4.0-150-generic

      Architecture:  x86-64

xds2xx@xds2xx-VirtualBox: ~$

 

■Procedure

Step1:  Install CCS12.8.1 on Ubuntu18.04

Step2:  Checking ModemManager Status

  sudo systemctl status ModemManager.service

  Loaded:  loaded (/lib/systemd/system/ModemManager.service; enabled; vendor preset:  enabled)

Active:  active (running) since .....

CGroup:  /system.slice/ModemManager.service --889 /usr/sbin/ModemManager --filter-policy=strict

Step3:  Change ModemManager policy

  sudo nano /lib/systemd/system/ModemManager.service

ExecStart=/usr/sbin/ModemManager --filter-policy=default

Step4:  Reload the systemd service, restart ModemManager. I also rebooted my system just in case.

sudo systemctl daemon-reload

sudo systemctl restart ModemManager

Step5:  Run ./install_drivers.sh

go to <CCS_INSTALL_DIR>/ccs/install_scripts

sudo ./install_drivers.sh

Step6:  Add a user to the dialout group

sudo usermod -aG dialout $USER

Step7:  Connect the xds200 emulator to the EVM, connect the USB of the xds200 emulator to the PC, and turn on the EVM.

 J5 on the EVM is connected

From the VirtualBox menu, select <Device> -> <USB> -> <Spectrum Digital XDS2xx USB Emulator – Composit [0100]>

Step8:  Test the debug probe

cd ti/ccs1281/ccs/ccs_base/common/uscif/xds2xx/

./xds2xx_conf get xds2xxu 0

 

xds2xx@xds2xx-VirtualBox: ~/ti/ccs1281/ccs/ccs_base/common/uscif/xds2xx$ ./xds2xx_conf get xds2xxu 0

boardRev=2

ipAddress=0.0.0.0

ipConfig=dhcp

ipGateway=255.255.255.255

ipNetmask=255.255.255.255

productClass=XDS2XX

productName=XDS200

serialNum=S200-000FD2066413

swRev=1.0.0.9

hostCPU=AM1802

emuCtrlType=Bit bang

extMemType=SDRAM

portUSB=true

portENET=false

portWIFI=false

portRS232=false

EnableUSBSerial=true

CurrentMeasure=false

xds2xx@xds2xx-VirtualBox: ~/ti/ccs1281/ccs/ccs_base/common/uscif/xds2xx$

 

*However, the above command works fine only once. If you run it a second time, it will freeze. Therefore, you will need to attach the USB device again in step 7.

Step9:  Run CCS1281 and follow the steps below:

  Step9-1: <View> -> <Target Configurations> -> <Projects> -> <New Target Configuration> -> Create Test.ccxml

Step9-2:  In Basic General Setup

Connection:  Texas Instruments XDS2xx USB Debug Probe

Board or Device:  DRA72x

Save Configuration -> Save

    Step9-3:  Select <Test Connection> -> <Test Connection> or 

<Advanced Setup> -> <Target Configuration> -> <All Connections> -> <Texas Instruments XDS2xx USB Debug Probe_0>

         < Execution result>

[Start:  Texas Instruments XDS2xx USB Debug Probe_0]

 

Execute the command:

 

%ccs_base%/common/uscif/dbgjtag -f %boarddatafile% -rv -o -S integrity

 

[Result]

 

 

-----[Print the board config pathname(s)]------------------------------------

 

/home/xds2xx/.ti/ccs1281/0/0/BrdDat/testBoard.dat

 

-----[Print the reset-command software log-file]-----------------------------

 

This utility has selected a 560/2xx-class product.

This utility will load the program 'xds2xxu.out'.

The library build date was 'Sep 26 2024'.

The library build time was '14: 57: 19'.

The library package version is '20.0.0.3178'.

The library component version is '35.35.0.0'.

The controller does not use a programmable FPGA.

The controller has a version number of '13' (0x0000000d).

The controller has an insertion length of '0' (0x00000000).

This utility will attempt to reset the controller.

This utility has successfully reset the controller.

 

-----[Print the reset-command hardware log-file]-----------------------------

 

This emulator does not create a reset log-file.

E_RPCENV_IO_ERROR(-6) No connection:  DTC_IO_Open: : dtc_io

Failed to open i/o connection (xds2xxu: 0)

 

An error occurred while soft opening the controller.

 

-----[An error has occurred and this utility has aborted]--------------------

 

This error is generated by TI's USCIF driver or utilities.

 

The value is '-250' (0xffffff06).

The title is 'SC_ERR_ECOM_EMUNAME'.

 

The explanation is:

An attempt to access the debug probe via USCIF ECOM has failed.

 

[End:  Texas Instruments XDS2xx USB Debug Probe_0]

 

 

 

 

========

It works fine on Windows 11 and CCS 12.7.1.

(Even if it crashes on Ubuntu, xds2xx_conf get xds2xxu 0 works fine on Windows 11.)

 

Step 8, Test the debug probe, can also be run multiple times.

 

  • The communication log is attached.

    communication log.zip

    regards.
  • Hi  ,

    I have a couple of questions.

    What is the purpose of changing ModemManager policy?

    Step2:  Checking ModemManager Status

      sudo systemctl status ModemManager.service

      Loaded:  loaded (/lib/systemd/system/ModemManager.service; enabled; vendor preset:  enabled)

    Active:  active (running) since .....

    CGroup:  /system.slice/ModemManager.service --889 /usr/sbin/ModemManager --filter-policy=strict

    Step3:  Change ModemManager policy

      sudo nano /lib/systemd/system/ModemManager.service

    ExecStart=/usr/sbin/ModemManager --filter-policy=default

    Step4:  Reload the systemd service, restart ModemManager. I also rebooted my system just in case.

    sudo systemctl daemon-reload

    sudo systemctl restart ModemManager

    I have never needed to do this for any of my proves on any Ubuntu distribution.

    Second, why are you using DRA72x as your configuration when your EVM is using an AM572x processor?

    Board or Device:  DRA72x

    My last remark is that unfortunately I do not have this probe so I will not be able to replicate this with you. I also have a native Ubuntu18.04 machine and not a virtual machine.

    Best,

    Josue

  • thank you for your reply.


    What is the purpose of changing ModemManager policy?

    This is a response to the issue that occurred in the following thread.
    e2e.ti.com/.../ccs-tms320c6657-xds200-linux-evalboard

    In the thread, I get the following error:

    -----[Print the reset-command software log-file]-----------------------------

    This utility has selected a 560/2xx-class product.
    This utility will load the program 'xds2xxu.out'.
    E_RPCENV_IO_ERROR(-6) No connection: DTC_IO_Open::dtc_io
    Failed to open i/o connection (xds2xxu:0)

    ...


    In my case, the above steps go fine, but the next step gives me an error.
    mentioned thread: [Print the reset-command software log-file] for errors
    in my case:[Print the reset-command hardware log-file] for errors

    -----[Print the reset-command hardware log-file]-----------------------------

    This emulator does not create a reset log-file.
    E_RPCENV_IO_ERROR(-6) No connection: DTC_IO_Open: : dtc_io
    Failed to open i/o connection (xds2xxu: 0)

    ...


    Second, why are you using DRA72x as your configuration when your EVM is using an AM572x processor?

    This was my mistake.
    I tried again with all the devices shown in the image from the < Board or Device > list, but I got the same result.

    From your answer, it seems that it is necessary to run it in a native environment.
    I would like to try it, but due to circumstances I cannot immediately prepare a native environment, so I will comment again once I know the results.

    thanks.

  •  ,

    Yes, the native route would be my recommendation since I don't believe CCS is tested in VMs. The CCS team has been notified and might have additional comments.

    -Josue

  • Step1:  Install CCS12.8.1 on Ubuntu18.04

    It sounds like it could be related to:

    https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/731145/ccs-tmdsemu200-u-emulator-connection-problem-using-ccs/2727817#2727817

    Please see the mentioned workaround in that thread and see if that helps.

  • Ki

    Unfortunately, this thread has already been reviewed and was not helpful to me. The log file I attached in the comment was run using strace, but the reduction did not change.

    Thanks.

  • I was able to connect to my DRA74 EVM using XDS200 on a native Ubuntu 18.04.6.

    I think the issue is that you are using a VM. VMs typically do work with CCS but it is not an officially supported environment.

    Also, both CCS 12.8 and Ubuntu 18 are old and unsupported environment. Because of this, the support we can provide will be limited.

    It is recommend to move to a more modern and supported environment.

    Thanks

    ki

  • Josue, Ki

    Luckily, I found a resource nearby that could build a native environment, so I tried it right away. The Test Connection ran without any problems.

    I was also able to confirm that Step 2 was not necessary.

    Thanks to both of you for your help.

     

    By the way, I have one more question.

    If I want to debug u-boot SPL using the TMDSEVM572x, what should I select for < Board or Device >?

    For GP: GPEVM_AM572X (I'm not sure what SiRevA means)

    For non-GP (HS): IDK_AM572X ?

     

     

    Thanks.

     

  • For GP: GPEVM_AM572X (I'm not sure what SiRevA means)

    For non-GP (HS): IDK_AM572X ?

    I believe the GPEVM_AM572x is for the AM572x EVM: https://www.ti.com/tool/TMDSEVM572X 

    I believe Rev A stands for the older revision of the board. Unless you have that old revision, you should use the non-rev A board.

    IDK_AM572x is for the AM572x IDK board: https://www.ti.com/tool/TMDSIDK572

    If you have any follow up questions, please start a new thread in the Processor forum. The Sitara experts there can help you best.

    Thanks

    ki