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.

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侧的操作有没有可能操作方法不对?

烦请各位专家帮忙看下。