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.

Slave core triggering doesn't work with SYS/BIOS

Hi.

I'm using TMDSEVM6678EL EVM board.

I built the srioboot_helloworld project (as you know, it doesn't use SYS/BIOS) with modifying that core 0 ~ core 3 turn on the LED.

But when I include SYS/BIOS, slave cores don't work.

I found a thread about this matter but I don't know how to solve it.

Could anyone tell me more specifically?

Should I add Interrupt Service Routing for IPC interrupt to wake up the slave cores in SYS/BIOS ? 

Thanks.

  • Wonbo Jeon,

    I built the srioboot_helloworld project (as you know, it doesn't use SYS/BIOS) with modifying that core 0 ~ core 3 turn on the LED.

    I hope, you are able to wake up secondary cores without using the SYS/BIOS. Please confirm.

    Thank you.

  • Thanks for your reply Raja.

    I already was able to wake up the secondary cores without using the SYS/BIOS.

    I don't know what is the difference between 2 cases.

    My code is almost same as the srioboot_helloworld project that is provided by TI.

    I set boot magic address and IPCGR write in main function before calling the BIOS_start().

    Please give me more advices...

    Thanks

  • srioboot_helloworld_with_BIOS.zipI attached the source file.

    There is two version with and without BIOS.

    I checked the operation of slave core by memory browser and It worked well.

    core 0 : *((volatile short *)(0x80000000 + 0x0000)) = 0xABCD;

    core 1 : *((volatile short *)(0x90000000 + 0x0000)) = 0xDCBA;

    When I use the SYS/BIOS, core 1 isn't work.

    Q. Is it necessary that I should use CACHE_InvL1d and CACHE_wbL1d to Interprocessor Communication ? 

    Q. I think that Write the BOOT MAGIC ADDRESS and then Write the IPCGR is the right way to wake up the slave cores. Is it necessary to consider the Interrupt ? I think there is no need to set the IPC interrupt for IPCGR.

    Q. In the above core, I changed DDR write to printf. And I found it doesn't work.

    core 0 : *((volatile short *)(0x80000000 + 0x0000)) = 0xABCD; -> printf("Core 0...\n);

    core 1 : *((volatile short *)(0x90000000 + 0x0000)) = 0xDCBA; -> printf("Core 1...\n);

    Thanks.

  • Hi Wonbo,
    I am able to re-produce the issue in SYS/BIOS. I will and get back to you shortly.

    Thank you.
  • I also cannot wake cores 1-7 on a 6678 using SYS/BIOS. Is there any new information available for this issue?