• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Digital Signal Processors (DSP) » C6000 Multicore DSP » Keystone Multicore Forum (C66, 66A, AM5) » MSMC Shared region
Share
C6000 Multicore DSP
  • Forums
  • Announcements
Options
  • Subscribe via RSS
Training Available
TI provides self-paced online training that introduces the primary components of the KeyStone II family of SoC devices.

  • KeyStone II SoC Overview >
  • KeyStone II Software Overview >
  • KeyStone II ARM Cortex-A15 Corepac Overview >
  • More Information >
  • Check out
    Multicore Mix blog
    • $core_v2_blog.Current.Name

      Geeks UNITE for Geek Pride Day

      Posted 2 days ago
      by Lauren Reed1
      Happy Geek Pride Day from the Processors team! We wanted to celebrate...
    • $core_v2_blog.Current.Name

      OpenMP - All aboard!

      Posted 4 days ago
      by Debbie Greenstreet
      With so many end products today relying on multicore DSPs for...
    • $core_v2_blog.Current.Name

      A look back: Two years of Multicore Mix

      Posted 5 days ago
      by Lauren Reed1
      A big thank you to everyone who participated in our contest last...

    Forums

    MSMC Shared region

    This question is not answered
    ankit jain
    Posted by ankit jain
    on Apr 17 2012 01:36 AM
    Prodigy190 points

    Hi,

    I am working on C6670 hardware platform and facing cache coherency issues. I know by default MSMC is cacheable but i want to make part of MSMC to be non-cacheable.For this i created a shared region in MSMC, and set its properties to be non-cacheable. This is how i created a shared memory region in my .cfg files for core0,core1 and core2 .

    SharedRegion.setEntryMeta(0,
        { base: 0x0C010000,
          len: 0x00070000,
          ownerProcId: 0,
          isValid: true,
          cacheEnable:false
          name: "sharemem",
        });

    But while allocating memory from this shared region using "Memory_alloc ((xdc_runtime_IHeap_Handle)  SharedRegion_getHeap(0), num_bytes, 0, &errorBlock)"; cache seems to be enabled in this region.

    Can you please let me know why cache is getting enabled in this region, even though i am explicitly setting cacheEnable : False.

    Thanks,

    Ankit

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    All Replies
    • Alberto Chessa
      Posted by Alberto Chessa
      on Apr 17 2012 03:47 AM
      Genius3740 points

      Hi,

      The MCSM accessed from address 0x0C000000 cannot be make uncachable: it is always cachable in L1 and non-cachable in L2.

      You have to remap the memory at an external memory address. Note also that cacheability is configurable with a granularity of 16M bytes (see sprugw0, para. 4.4.4).

      I don't know how you can manage this with the SYS/BIOS  configuration.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • ankit jain
      Posted by ankit jain
      on Apr 17 2012 04:25 AM
      Prodigy190 points

      Is there any sample example code which i can refer to for making this part non-cacheable ?

      Thanks,

      Ankit

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Jonathan White
      Posted by Jonathan White
      on Apr 17 2012 12:15 PM
      Intellectual830 points

      Hi Ankit, I don't know of sample code, but here are some things you must look at:

      SPRUGW0B Table 4-20 shows that MSMC (0x0C000000-0x0C3FFFFF) is covered by MAR12, which is shaded in the table and thus its cachability can't be changed.

      You must pick an unused section of memory space, and map a portion of MSMC to that address at run-time using XMC/MPAX, see SPRUGW0B Section 7.3.

      You must modify your memory layout: When using BIOS/XDC, do this in CCS:

      Tools -> RTSC Tools ->Platform -> Edit/View, then select your package and edit the memory map. See SPRUEX3K (SYS/BIOS RTOS user guide) section 6.2.

      You may have to modify your linker directives to place data in the non-cachable region, See SPRU186V (Assembly tools), Chapters 2 and 7 (linker), although maybe your .cfg file can do that for you.

      The TI docs on the web may hint at all this. I think the tutorial about the MAD utils talked about some of the above.

      Regards, Jonathan

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    TI E2E™ Community
    • Support Forums
    • Blogs
    • Videos
    • Groups
    • Site Support & Feedback
    • Settings
    TI E2E™ Community Groups
    • TI University Program
    • Make the Switch
    • Microcontroller Projects
    • Motor Drive & Control
    Other Communities
    • Deyisupport
    • Designsomething.org
    • beagleboard.org
    • TI on Element 14
    • TI on TechXchangeSM
    Other Technical & Support Resources
    • WEBENCH® Design Center
    • Product Information Centers
    • Technical Documents
    • TI Design Network
    • TI Technical Articles
    • TI Training

    All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

    Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

    Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
    TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

    TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
    embedded processors, along with software, tools and the industry’s largest sales/support staff.

    © Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
    Trademarks | Privacy Policy | Terms of Use