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.

Multicore boot

Hi.

I'm using C6672 with my custom board.

I already programmed an application which is only using one core.

Now, I need to develop an application which uses multicore.

I read this thread. (e2e.ti.com/.../246848)

I got some questions based on above thread. They are.

 2. For each code setup the memory sections using the global address (for L1 and L2)

   -> How can I setup the memory sections? Does it mean the app.cfg or link.cmd ? 

   -> I found there are Local L1, L2 and each Core's L1, L2. Does the global address means Local L1, L2 ?

 3. Now create n boot tables.

  --> I made a boot table using hex6x.exe. Does it mean this method?

Could you please tell me more specifically about those procedures ?

Thanks.

  • Hi,

    2. For each code setup the memory sections using the global address (for L1 and L2)

    -> How can I setup the memory sections? Does it mean the app.cfg or link.cmd ?

    -> I found there are Local L1, L2 and each Core's L1, L2. Does the global address means Local L1, L2 ?

    If you are using SYS/BIOS based application then you can configure the memory through *.cfg
    For each and every core, separate L1 and L2 memory address available.
    Please check the memory map chapter in data sheet of your processor.
  • Hi,

    3. Now create n boot tables.

    --> I made a boot table using hex6x.exe. Does it mean this method?

    Could you please tell me more specifically about those procedures ?

    Please refer to chapter 11 of this guide: www.ti.com/.../spru186w.pdf

    Boot Parameter table information is clearly documented on the C6678 devices data sheet.

    Thanks,
  • Thanks Ganapathi.

    By refering the document, I found that I can make boot tables by hex6x.

    I think I can make a one images (from 2 applications) by using hex6x and appropriate cmd script.

    the cmd script as follows...

    abc.out /* input file */
    --ascii /* ascii format */
    --image /* create complete Rom image */
    --zero /* reset address origin to 0 */
    --memwidth=8 /* 8-bit memory */
    --map=abchex.map /* create a hex map file */
    --boot /* create boot table */
    --bootorg=0x90000400 /* external memory boot */
    --bootsection=.boot_load 0x90000000 /* give boot section & addr */
    ROMS
    {
    FLASH: org=0x90000000, len=0x20000, romwidth=8, files={abc.hex}
    FLASH: org=0x90020000, len=0x20000, romwidth=8, files={def.hex}
    ...
    }


    And How can I populate the boot magic address for each cores ?

    Thanks

  • Hi,

    I am not sure hex6x will support to make a single image(from 2 applications). MAD utility will support multicore application, refer below MAD user guide and MCSDK examples

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

    Thanks,
  • Hi.
    Thanks for your reply.
    Actually I don't want to use MAD utilities. Because it seems quite complicated.
    So I referred the thread. (please refer my question)
    In the thread ArunMani said that we could make a multicore boot without MAD utilities.
  • I will check with my team and get back to you.
  • HI,

    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,