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.

C6678 multicore booting from SPI Nor flash

Other Parts Discussed in Thread: TMS320C6678

Hello all,

We are trying to do multicore booting for  C6678 DSP from SPI NOR flash, in our custom board which is made based on TMS320C6678. Basically my task is to boot all 8 cores from core0. what i found everywhere is only with the help of MAD utility we can perform multicore booting. I have gone through this link..

processors.wiki.ti.com/.../MAD_Utils_User_Guide

my questoin is why IBL is required here?? cant we dump files(generated by MAD tools) into SPI flash directly??

In C6486 we have done multicore booting with merger utility why cant we use same merger utility for C6678??

Any leads in this regard would be highly appreciated !!

 

rgds,

Gourav

  • Hi,

    my questoin is why IBL is required here?? cant we dump files(generated by MAD tools) into SPI flash directly??


    IBL not required for your boot mode, you can boot the image directly from the boot ROM. There are specific boot modes on the C6678 for which you may still require the IBL. For more information refer below thread:
    e2e.ti.com/.../1544042

    Thanks,
  • Hi,

    In C6486 we have done multicore booting with merger utility why cant we use same merger utility for C6678??


    There is no matching TI part called C6486, so I do not know if you have mis-named the device. Have you mentioned TMS320TCI6486 device?

    Thanks,

  • Hi Gourav,

    Direct SPI NOR boot without IBL and MAD utility:

    Please refer below example to boot directly from SPI NOR.

    8306.8688.KeystoneI_bootloader_workshop.zip

    Waking up secondary cores from Core0:

    I would also request you to take a look at the multi-core boot example given in MCSDK under the directory path mcsdk_2_01_02_06\tools\boot_loader\examples\srio\srioboot_helloworld/src. This example shows how you can wake up secondary cores using IPC interrupts and populate the magic address for the cores to start executing code. This structure is useful, if you want to create a single application that boots on all cores and then has control code to parititon itself across secondary cores by checking the core number on which is running.


    I hope this helps. Thank you.

  • Hi Raja,

    Thanks for the your prompt reply.  As far as i understood this example "8688.KeystoneI_bootloader_workshop.zip" tells about single core booting. what if, i'm having different .out files for each core?? like core0--> core0.out, core1-->core1.out.........core7-->core7.out. So in that case how to merge these files ?? What changes are required in your mentioned example  ???

    thanks 

    Gourav

  • Hi,

    MAD utility will support multicore application, refer below MAD user guide and MCSDK examples. That example runs an NDK example on core 0 and a hello world example code on core1.

    processors.wiki.ti.com/.../MAD_Utils_User_Guide
    MCSDK Path: \ti\mcsdk_2_01_02_06\tools\boot_loader\mad-utils\

    If you not using MAD utility, You can also merge the code for core0 and core 1 into single application and load same code on all cores and differentiate between the core in the application code using:

    coreNum= platform_get_coreid;

    if (coreNum == 0){ < core 0 application code>}

    else if (coreNum == 1) { <core 1 application code>}

    For reference look at the main function in the srio_helloworld example source (\ti\mcsdk_2_01_02_06\tools\boot_loader\examples\srio\srioboot_helloworld).

    Thanks,
  • Hi Ganapathi,

    If you not using MAD utility, "You can also merge the code for core0 and core 1 into single application" and load same code on all cores and differentiate between the core in the application code using:

    how can i merge core0 and core 1 into single application ?? is there any utility ??

    regards,
    Gourav
  • You can use the MAD utilities  working without the IBL. Please refer below post. I hope this helps you solve the issue.

  • hi Ganapathi ,

    sorry i have mis-named it. it was "TMS320TCI6486 ".  so again i would like to ask can we use same merger utility for C6678 device to merge two .btbl files ??

    let me give a brief how im doing for TMS320TCI6486....

    suppose im having two .out files core0.out and core1.out ...

    1) using hex6x to generate .btbl file, core0.btbl(from core0.out) and core1.btbl(core1.out)

    2) calling merger utility "mergebtbl" to combine core0.btbl and core1.btbl and getting core.btbl.

    after that using utilities b2i2c, b2ccs, romparse and ccs2bin and finally got the .bin file which is going to be dumped into nor flash.

    regards,

    Gourav