TI中文支持网
TI专业的中文技术问题搜集分享网站

C66x多核裸跑同时加载问题

各位专家,请教一个C66x多核裸跑同时加载问题:

目前使用KE2VM-HK开发板,SOC为662AK12。ARM侧跑在Linux上,DSP上电处于idle状态。ARM侧起一个进程加载8个DSP核的程序,DSP程序都加载至L2上,操作过程如下:

第一步: 下载程序前,设置寄存器如下:

while(PTSTAT(x) != 0);

PDCTL(x) = 1;

// de-assert DSP local reset
MDCTL(y) &= 0xFFFFFFE0;
MDCTL(y) = P_MDCTL_RESETISO_ENABLE | P_MDCTL_LRST_DEASSERT | P_MDCTL_NEXT_ENABLE;

P_PTCMD |= (1<<x);

while(PTSTAT(x) != 0);

第二步:读取程序文件,写入各自DSP的L2中

// 代码略

第三步:下载程序后,设置寄存器如下:

DSP_BOOT_MAGIC(core_no) = dsp_cinit_addr;

while(PTSTAT(x) != 0);

PDCTL(x) = 1;

// de-assert DSP local reset
MDCTL(y) &= 0xFFFFFFE0;
MDCTL(y) = P_MDCTL_RESETISO_ENABLE | P_MDCTL_LRST_DEASSERT | P_MDCTL_NEXT_ENABLE;

P_PTCMD |= (1<<x);

while(PTSTAT(x) != 0);

第四步:设置寄存器给IPC

P_BOOTCFG_KICK0 = 0x83E70B13;
P_BOOTCFG_KICK1 = 0x95A4F1E0;

P_BOOTCFG_DSP_IPCGR0 = 0x11;
P_BOOTCFG_DSP_IPCGR1 = 0x11;
P_BOOTCFG_DSP_IPCGR2 = 0x11;
P_BOOTCFG_DSP_IPCGR3 = 0x11;
P_BOOTCFG_DSP_IPCGR4 = 0x11;
P_BOOTCFG_DSP_IPCGR5 = 0x11;
P_BOOTCFG_DSP_IPCGR6 = 0x11;
P_BOOTCFG_DSP_IPCGR7 = 0x11;

P_BOOTCFG_KICK0 = 0;
P_BOOTCFG_KICK1 = 0;

如上操作后,通过DSP程序往内存写数据验证是否正确跑,结果发现0、2、4、6在跑,1、3、5、7初始化成功,但没有中断响应,ARM侧的操作有没有可能操作方法不对?

烦请各位专家帮忙看下。

Aquarius:

回复 Thomas Yang1:

我尝试过分别触发8个核,测试的结果还是1、3、5、7的数据没有更新,不排除DSP程序本身有问题导致测试不符合预期。我只是想确认下,上述的操作流程是否正确。谢谢!

Aquarius:

回复 Thomas Yang1:

另外,今天再次过了一遍手册,其中有两个寄存器:

BOOTCOMPLETE,在正常跑起来后,该寄存器对应的DSP的位置是否应该都是1;假如不是0是不是意味着DSP没有正常跑起来?

PWRSTATECT中,假如DSP的boot_magic地址是在L2,BIT5~6是否需要设置为11?

xin he2:

Aquarius:

    你好,请问你的代码中DSP_BOOT_MAGIC(core_no)的值是多少呢?是0x1X8FFFFC 吗?

Aquarius:

回复 xin he2:

你好!DSP_BOOT_MAGIC地址是0x1X8FFFFC。

xin he2:

回复 Aquarius:

Aquarius:

好的,谢谢。我现在也是让ARM先启动一个OS,然后利用ARM加载DSP可执行程序,但是一旦ARM在uboot启动时加载了skern-keystone-evm.bin固件,DSP程序运行就会不正常。请问有遇到过这种情况吗?另外MDCTL(y)这个指的是哪个寄存器?

Aquarius:

回复 xin he2:

没有遇到你说的这种情况。MDCTL(y)是PSC相关的寄存器,这个文档里有详细说明《KeyStone Architecture Power Sleep Controller (PSC) User's Guide》

Aquarius:

回复 Thomas Yang1:

后来证明是DSP程序有问题导致测试结果不符合预期,目前问题已解决,谢谢!

xin he2:

回复 xin he2:

Aquarius:

请问复位DSP的话需要执行哪些操作呢?方便留一个邮箱吗,以后一起交流。

赞(0)
未经允许不得转载:TI中文支持网 » C66x多核裸跑同时加载问题
分享到: 更多 (0)