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.

RTOS/TMS320DM8168: Debugging TIRTOS DSP App with IPC and Linux HLOS

Part Number: TMS320DM8168
Other Parts Discussed in Thread: SYSBIOS

Tool/software: TI-RTOS

Hi all,

I have inherited a project using the DM8168 with the following software:

  • Cortex A8: Custom Linux 2.6.37 OS with Syslink 2.21.03.11 and slaveloader
  • DSP: SYSBIOS 6.34.4.22, XDCTools 3.24.5.48, IPC 1.25.03.15 and Syslink 2.21.03.11 (I am not 100% certain for the exact versions used for the currently working DSP image)

In production, the A8 runs slaveloader to load a .out file to the DSP and the runs an application which waits for the DSP to complete the IPC initialisation and negotiation. I have the binary DSP image used up to now, which works, though I am not 100% sure which component versions (SYSBIOS, IPC, Syslink) where used to compile it.

I need to do some further development on the DSP side, so I want to be able to debug the DSP firmware while the A8 is running the Linux application. The best I have done so far is to run slaveloader on the A8 with the OLD firmware so that the DSP is started, then use CCS to load the new firmware on top of the old one and then run the Linux IPC application. However, both sides seem unable to connect to each other via IPC. The A8 Linux side says "load callback done, start callback failed" (probably custom messages, I am not involved with the ARM side) and the DSP keeps spinning in IPC_start() forever. I can pause and step the DSP normally though, it just cant get past IPC_Start().

Is there some special trick or procedure to be able to debug the DSP with IPC and Linux running on the ARM or is this is a problem of the DSP firmware I am compiling?

Also, is there any incompatibility between different IPC 1.x/SysLink 2.x versions? Initially I used TIRTOS 1.10.0.23 (with IPC 1.25.03.15 integrated) and SysLink 2.23.03.11, then I tried SYSBIOS 6.34.4.22 with separate IPC 1.25.03.15 installation and Syslink 2.23.0.11 without any change.

Any help appreciated.

  • Hi Pavel,
    The Linux software setup for the ARM A8 was done before my time in the company and I don't know much about it other than it was made using Buildroot.
    How could the specific Linux kernel affect DSP debugging?
    Thank you for the links, I believe I have seen at least some of these pages already but I will give another look.

    Giannis
  • Giannis,

    Giannis Roussos said:
    The Linux software setup for the ARM A8 was done before my time in the company and I don't know much about it other than it was made using Buildroot.

    DM816x SDK and kernel are build with OpenEmbedded, not Buildroot. Seems you are using unknown software from unknown source. Which is limiting our ability for support.

    Giannis Roussos said:
    How could the specific Linux kernel affect DSP debugging?

    Not kernel version, SDK version can affect DSP debugging.

    Giannis Roussos said:
    Thank you for the links, I believe I have seen at least some of these pages already but I will give another look.

    I have nothing more.

    Regards,
    Pavel

  • Note that latest DM816x EZSDK 5.05.02.00 is coming with:

    ti-ezsdk_dm816x-evm_5_05_02_00/component-sources/
    Sys/Bios 6.33.05.46
    XDC Tools 3.23.03.53
    IPC 1.24.03.32
    EDMA3 2.11.5
    Framework 3.22.1.7
    UIA 1.1.1.14
    XDAIS 7.22.0.3

    This release (EZSDK 5.05.02.00) has been tested with EVM Base board Revision-C and Expansion IO Card. This Release has been verified on both ES1.1 and ES2.0 versions of the DM816x Silicon.

    I would suggest use the latest tested and verified versions of the components and they have been validated on DM816x EVM. You need to update only when you need specific feature available at newer component, but then you should test and validate on DM816x by your own.

    www.ti.com/.../linuxezsdk-davinci

    software-dl.ti.com/.../index_FDS.html
  • Hi again Pavel,
    after some more digging I was told that the Linux kernel was compiled using vanilla sources with a lot of different patches for the specific processor, backports from newer kernels etc.

    I have the Buildroot tree that was used to make the Linux system, however modifying the produciton Linux system is not an option at this stage. Still, if there is a need I could compile a new Linux system just for development of the DSP application, if this is not too much work.

    So, could you please explain how the details of the Linux system affect the process of debugging an IPC/Syslink application running on the DSP with CCS? Is there some modification I can make to the Linux system to make it possible?

    Thank you for the information about the component versions in EZSDK, it seems they are even older than the ones used by my colleagues 2+ years ago! Do you think that just downgrading to these versions could solve the issue I am having? I will give it a try anyway and report back.

    Thank you for the help,
    Giannis
  • Giannis,

    For any detailed software support, bug fixes, or enhancements, check the below e2e post:

    e2e.ti.com/.../426680

    Regards,
    Pavel
  • Hi Pavel,

    I know the DaVinci line is no longer supported by TI, but still I believe that something as fundamental as debugging the processor should have been included in the material available, as it does not fall into "detailed software support" . That's why I think I am just missing something here and made the forum post in the first place.

    After all, you still haven't answered my question regarding the importance of the Linux SDK used. You asked for the SDK but haven't explained if and how using the correct SDK could solve my problem.

    I still believe that TI ought to have made these things clear, unless I have failed to notice the solution to my problem in the already available material. In any case, I hope you, some other TI representative or (most probably at this stage I assume) another DaVinci client can help me out.

    Best regards,

    Giannis

  • Giannis Roussos said:
    I know the DaVinci line is no longer supported by TI, but still I believe that something as fundamental as debugging the processor should have been included in the material available, as it does not fall into "detailed software support" .

    Yes, we have "debug guidelines" materials, and these has been provided to you in the first e2e reply of this thread. Below some additional wikis:

    Giannis Roussos said:
    After all, you still haven't answered my question regarding the importance of the Linux SDK used. You asked for the SDK but haven't explained if and how using the correct SDK could solve my problem.

    The latest DM816x EZSDK 5.05.02.00 contains all the components and firmwares that have been tested and validated on DM816x TI EVM. I already explained that in details, nothing more to add.

    Regards,
    Pavel