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.

c6670 pcie 多核启动



我们在调试c6670的pcie boot 多核启动,四个核共用一份.out文件,
按照ti例程中实现,通过pcie boot 启动,按照例程中的配置,首先启动核0,核0配置其他核的,magic address,然后发送ipc中断到其他核,但是只有核0可以运行
我们的工程采用的bios,代码段位于ddr中,四核各自的stack分配到各自的l2里面。

有几个现象:
1.核0进入main之后,配置从核的magic address为_c_init_0,以及触发ipc中断,其他核回写magic_address的值,核0打印该地址,该值没有变化,说明其他核没有被触发。

2.核0不做触发其他核的操作时,会做ddr_test,以及其他的协处理器的test,但是执行了如上操作之后,核0会挂死。

3.该部分的代码如下:

    if( DNUM == 0 )
    {
     CSL_BootCfgUnlockKicker();
    
        for(i=1;i<4;i++)
        {
            DEVICE_REG32_W(BOOT_MAGIC_ADDR(i), (Uint32)&_c_int00);
        }
        TSC_delay_us(1);

        for (i = 1; i < 4; i++)
        {
            CSL_IPC_genGEMInterrupt(i,0);//start cores..
        }
     CSL_BootCfgLockKicker();

    }else
    {
        DEVICE_REG32_W(MAGIC_ADDR, BOOT_MAGIC_NUMBER);
    }

怀疑是没有触发IPC中断,

有几个地方不是很明白,
1.bios中IPC中断的使用跟裸程序使用方法不一样吗,需要初始化吗,需要bios_start启动之后才能使用吗?
2.IPC触发其他核,不调用注册中断服务程序是否可以直接触发其他核的启动?
3,为什么其他核不执行的情况下,但是会影响到核0的执行?