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.

Linux/CCSTUDIO: CCS failed to connect AM5728 DSP when Linux is running on ARM

Part Number: CCSTUDIO
Other Parts Discussed in Thread: AM5728

Tool/software: Linux

Hi, CCS experts,

ARM Linux usually doesn't take DSP out of reset or automatically put it in idle. Therefore, we usually need to wake up DSP before connecting to the DSP core. 

But in recent LInux release, we are seeing the following error with or without waking up DSP.

“C66xx_DSP: Error connecting to the target: (Error -6305) PRSC module failed to write to a router register. (Emulation package 8.0.27.9)” error

 

In the case of waking up DSP, we checked the power management and clocks are all working properly. Is this error from CCS and what does it mean? Any idea what may have caused this error?

Thanks!

Rex

  • (For everyone else interested in this discussion, this is being discussed internally and the outcome will be posted here. Below follows a summary of what was already tested)

    Historically all PRSC errors reported are related to the inability to ascertain the status of the core, most probably caused by absence of power or clock. Sometimes this is also caused by the inability to take control over the core - it may be running free or is thrown in the weeds.

    First initial test is to validate all HW:
    1. Create a new Target Configuration selecting either the GPEVM_AM572X or the IDK_AM572X as the Board (both have the proper GEL files).
    2. Launch the debugger and connect to the CortexA15_0 core. It should perform the initialization and release the DSP from reset.
    3. Try to connect to the DSP core.

    If the hardware is working properly, this operation should be successful and the next step is to validate it while running Linux.

    In a system where embedded Linux is running, the initial test is to release the DSP from reset from the Linux terminal and try to connect to it with no code running:
    1. Boot board using prebuilt binaries.
    2. On the prompt of the Linux running on the board, execute command "echo on > /sys/bus/platform/devices/40800000.dsp/power/control" to force the DSP to an on state.
    3. Create a Target Configuration selecting the AM5728 as the Device (without gel files).
    4. Launch the debugger and try to connect to the DSP.

    If that does not work, one test to validate the status of the core is to inspect the core status as mentioned in section 3 of:
    processors.wiki.ti.com/.../GSG:Connecting_to_slave_cores_in_SoC_devices_v5

    The current status appears to be a difference between SDK 4.x and 5.x releases.

    Regards,
    Rafael
  • Rex,

    This issue seems related to the Linux core Kernel or the SDK itself, therefore my ability to help further is quite limited in this case.

    I suggest you to post this question to the Sitara forum and reference this thread.

    Regards,
    Rafael
  • Hi Rafael,

    Root-caused the issue to the LOWPOWERSTATECHANGE bit being set unexpectedly in the DSP's PWRSTCTRL PRCM register while powering on the DSP. Setting this bit to 0 after powering on the DSP should fix the connection issue, until the issue is fixed in code.

  • Suman,

    Thanks a lot for pursuing the root cause for this. Such information will surely be useful to other developers in the future. 

    Regards,

    Rafael