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/AM5718: DSP debug issue in SDK 5.0

Part Number: AM5718

Tool/software: Linux

AM5718 IDK
Linux RT SDK 5.00 prebuilt binaries

JTAG debug of the DSP seems to have broken in SDK 5.00.  The following simple test works fine in SDK 4.x but has broken in SDK 5.00:

  1. Boot board using prebuilt binaries.
  2. Execute command "echo on > /sys/bus/platform/devices/40800000.dsp/power/control" to force the DSP to an on state.
  3. Launch CCS using AM5718 as the SoC (i.e. no gel files) and attempt to connect to the DSP.

Using SDK 4.x this works fine.  In SDK 5.00 I get the following error:

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

I've tried multiple versions of CCS.  That doesn't have any impact.  The key variable seems to be the SDK version.  Something in SDK 5.00 is preventing jtag debug of the DSP.

Paritosh

  • I executed the steps you outlined below running the latest SDK from PROCESSOR-SDK-AM57X (published 26-Jul-2018)  and was able to successful connect to the DSP.

    Have you tried with the SDK release from 26-Jul-2018>

  • I retract my previous statement, because I didn't migrate to SDK 5.0 as I initial thought. I'm able to reproduce this on 5.0 now.
    We are investigating the problem further.
  • Hi, Paritosh,

    Sorry to take so long to reply. It took us a while to root cause the issue. It is 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.

    I verified the patch. Please give it a try.

    Rex

    diff --git a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
    index e069e85638f..769bb44f785 100644
    --- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
    +++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
    @@ -2107,6 +2107,7 @@ static struct omap_hwmod dra7xx_mmu1_dsp1_hwmod = {
     	.prcm = {
     		.omap4 = {
     			.rstctrl_offs = DRA7XX_RM_DSP1_RSTCTRL_OFFSET,
    +			.flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT,
     		},
     	},
     };
    @@ -2140,6 +2141,7 @@ static struct omap_hwmod dra7xx_mmu1_dsp2_hwmod = {
     	.prcm = {
     		.omap4 = {
     			.rstctrl_offs = DRA7XX_RM_DSP2_RSTCTRL_OFFSET,
    +                        .flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT,
     		},
     	},
     };