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.

Custom platform does not handle cache properly - C6678

Other Parts Discussed in Thread: SYSBIOS, TMS320C6678

I've created a custom platform with the wizard (CCSv6) to partition MSMCSRAM. Now the linker is complaining that the L1D and L1P caches are specified with len=0. I've compared my platform with the TI supplied evm66678 in the wizard, and the caches are specified the same, both drop down boxes set to 32k (all L1 is cache).  But the generated linker command file for my platform has memory defined as

MEMORY
{
    MSMCSRAM_I (RWX) : org = 0xc000000, len = 0x140000
    L1DSRAM (RW) : org = 0xf00000, len = 0x0
    L1PSRAM (RWX) : org = 0xe00000, len = 0x0
    L2SRAM (RWX) : org = 0x800000, len = 0x80000
    MSMCSRAM_C (RWX) : org = 0xc140000, len = 0x200000
    MSMCSRAM_O (RWX) : org = 0xc340000, len = 0xc0000
    DDR3 (RWX) : org = 0x80000000, len = 0x20000000
}

but with the ti platform, the 2 L1 lines are not there.  Why did they show up and how do I get them out?  I can't see anything different I can do in the wizard.

Thanks for any help.        Mike

  • Mike,
    I remember some cache related bugs in some earlier versions of XDCtools. This one, for example and there is a thread about it.
    Which version of XDCtools and SYS/BIOS are you using?
    Also, please print the complete console output.

  • I'm using XDC 3.30.5.60 and SYSBIOS 6.41.0.26, which I believe are pretty recent.

    In an effort to figure things out, I manually edited the Platform.xdc file to remove those two sections. From the command line I did an xdc clean and xdc release. My application now builds fine (I have run time problems now, IPC isn't attaching ... ) and, when I use the wizard to edit the platform, it does not create the empty cache areas any more. Possibly I could just have deleted them from the wizard, didn't try that. The l1pmode and l1dmode still say "32k", so I assume they are being used as cache now.

    So I can't reproduce it unless I start over from scratch. If you wish to dig into this, I'll go back and recreate my steps. All I did was import the evm66678 platform into the wizard and added some memory section lines.

    Thanks,
    Mike
  • Mike,
    I'll try to replicate it too, but if you can send me the exact steps that would be good. We never want to generate a memory object of size 0.
  • What I did was

    • Start Tools->RTSC Tools -> Platform -> New
    • Set up directory, name, family (C6000) device (TMS320C6678)
    • Import ti.platforms.evm6678
    • Check 'customize memory'
    • Change the name and range on existing MSMC
    • Add 2 lines to the memory sections partitioning MSMC
    • Select code/data/stack sections as L2
    • Finish

    Since the L1 lines imported as 0 size from ti.platforms.evm6678, I didn't touch them.  Figured the tools would know what to do since they did with the ti platform, but I'm guessing I should have deleted them.  Although in trying it, it is not that easy to delete.  Seems like you have to delete the name, then right click on the red box to delete.

    Mike

  • Mike,
    I filed the bug about this problem: bugs.eclipse.org/.../show_bug.cgi.
    The fix should be in XDCtools 3.31, sometimes this month. Also, if there is 3.30.7, the fix will be in there too.
  • Sasha,

    Thanks.

    Mike