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.

How to set MAR registers in SYS/BIOS for C66x?

Other Parts Discussed in Thread: SYSBIOS

I'm using CCSv5.3.0.00090, SYS/BIOS 6.34.2.18, XDCtools 3.24.5.48, Platform ti.platforms.evm6678, target ti.targets.elf.C66

 

I cannot find where I go to configure the cache MAR register settings. I did a use Cache for both ti.sysbios.famly.c66 and ti.sysbios.hal. When I click on the cache module, I don't get any properties, just a check box that says "Add the cache module to my configuration" which I have checked.

 

 

If I use the C64p cache module as just an experment instead, I see the MAR settings but of course the C64p settings don't apply here.

 

I read another forum post that suggests the MAR settings should be done the Platform file. When I looked at the evm6678 platform file in the plaform wizard, it had nothing in there to set the MAR registers.

  • Brad,

    The following API can be called in your *.cfg script but is not available in the GUI.
    If you edit your script textually, you can do this.

    /*!
     *  ======== setMarMeta ======== 
     *  Set MAR register(s) that corresponds to the specified address range.
     *
     *  The 'pc' ("Permit Caching") field is enabled for all memory regions
     *  in the device platform.  Only set the fields of the Mar structure
     *  which need to be modified.  Any field not set retains its reset value.
     *
     *  @param(baseAddr)        start address for which to set MAR
     *  @param(byteSize)        size (in bytes) of memory block
     *  @param(value)           value for setting MAR register
     */
    Cache.setMarMeta(Ptr baseAddr, SizeT byteSize, UInt32 value);

    Judah