Hello:
I'm encountering a stange problem in my program when using pcie boot . I'm using TMDSEVM6678 LE Rev.2A, mcsdk_2_01_00_03, each core loading a different program file by PCIE boot method. In my program, each core first initialize an array in a BIOS task then send a message to each other in another BIOS task by MessageQ module.Core 0 triggers the IPC interrupt to wake other cores from idle thread to starting boot by codes follows. I loaded other cores firstly then loaded core 0's program.
for (core = 1; core < core_count; core++)
{
DEVICE_REG32_W(BOOT_MAGIC_ADDR(core), entry_addr);
DEVICE_REG32_W(KICK0, 0x83e70b13);
DEVICE_REG32_W(KICK1, 0x95a4f1e0 );
DEVICE_REG32_W(IPCGR(core), 1);
add_some_delay_ifyouwish(200);
}
Slave cores were waked by core0 correctly and arrays were initialized correctly,but the program stucked in MessageQ module. I really don't know why because other people poseted the familiar problem in the community went through by unlock KICK.
Then I try to bebug my project using a emulator, it is strange because the program went through and each core recieved messages from other cores successfully. This really confused me, did there any other configurations under pcie boot to initialize MessageQ module?
Really appreciate for your help !