• 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) » core0 local reset behavior
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

    core0 local reset behavior

    This question is answered
    Joel Keller
    Posted by Joel Keller
    on May 08 2012 10:01 AM
    Expert1150 points

    Hi,

    I am looking for documentation on the behavior of core0 when it is 'local reset' by another c6678 core, or in my case by a remote master via PCIe.  I can see (via jtag experiments) that cores 1-7 jump to the boot rom, eventually landing at 0x20b002a8 where they sit in IDLE until an IPC interrupt causes them to wakeup and check the MAGIC address.  Core0 does something else though.  It jumps to boot rom, eventually looping around address 0x20b0c952, but not executing an IDLE instruction.  Can someone tell me what it is doing here?  If I send it an IPC interrupt, will it poll the MAGIC address like the other cores do?


    Thanks,

    Joel 

    “CPU Reset” “ System Reset” Re-load debug EVM6678 6678 booting NOR/NAND
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    All Replies
    • ArunMani
      Posted by ArunMani
      on May 08 2012 20:31 PM
      Genius9510 points

      Are you sure you are doing local reset seems like it is a system reset. Also i beleive you have 3 seperate threads. Can we just follow up on one and if you can summarize in one thread that will be great.

      Thanks,

      Arun.

      If you need more help, please reply back. If this answers the question, please click  Verify Answer  , below.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • ArunMani
      Posted by ArunMani
      on May 08 2012 20:32 PM
      Genius9510 points

      Also please let me know what prcess you are usin to trigger the reset through PCIe.

      thanks,

      arun.

      If you need more help, please reply back. If this answers the question, please click  Verify Answer  , below.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Joel Keller
      Posted by Joel Keller
      on May 09 2012 09:39 AM
      Expert1150 points

      Sorry about the multiple threads.  I'll stick to this one from now on.  As mentioned on the other thread, I believe that I am doing a local reset, however, since I have not set DSP_BOOT_ADDRx register, the register still contains the boot-rom entry address.  

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Joel Keller
      Posted by Joel Keller
      on May 09 2012 09:49 AM
      Expert1150 points

      To trigger the reset through PCIe, I do the following (pseudo-code):

      #define PSC_REGISTERS 0x02350000
      #define MDCTL_CORE0_OFFSET 0xA3C
      #define MDCTL_LRST_BITMASK 0x00000100

      reset_core(int core_num) {

         reg_addr = PSC_REGISTERS + MDCTL_CORE0_OFFSET + (0x4 * core_num);

         reg = readRegister(reg_addr);

         writeRegister(reg_addr, reg & ~MDCTL_LRST_BITMASK);

         msleep(1);

         writeRegister(reg_addr, reg | MDCTL_LRST_BITMASK);

      }

      so basically asserting the local reset bit in the core's MDCTL register, waiting a millisecond, then de-asserting the local reset bit.  Is there anything else I should be doing?

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Joel Keller
      Posted by Joel Keller
      on May 09 2012 09:56 AM
      Expert1150 points

      Hi Arun,

      So now that I know about the role of the DSP_BOOT_ADDRx registers,  I have another question:


      What is the relationship between the DSP_BOOT_ADDRx register and the BOOT MAGIC address (0x87fffc)?  What I mean is, if you take a look at the pcie bootloader 'hello world' example ( at mcsdk_2_00_07_19/tools/boot_loader/examples/pcie/pcieboot_helloworld/src/pcieboot_helloworld.c ),

      I believe that it starts cores 1-7 executing by writing to the BOOT MAGIC address, and then triggering an inter-core interrupt via writing to IPCGR(x).  Receiving this interrupt somehow causes the core which was executing an IDLE instruction to examine the BOOT MAGIC address and then start executing from that entry point.  It seems like the code could almost equivalently set DSP_BOOT_ADDRx, and then issued a local reset.  

      Could you explain why there are these two mechanisms, and when you would use one vs the other?

      Thanks,


      Joel

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • ArunMani
      Posted by ArunMani
      on May 09 2012 17:04 PM
      Verified Answer
      Verified by Joel Keller
      Genius9510 points

      Boot magic address is used by rom boot code(RBL), while the DSP_BOOT_ADDR is used by the core. So when ever the RBL comes into the picture, it uses the boot magice address. BTW for RBL, the boot magic address is used even for core0.

      Thanks,

      Arun.

      If you need more help, please reply back. If this answers the question, please click  Verify Answer  , below.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Joel Keller
      Posted by Joel Keller
      on May 10 2012 08:46 AM
      Expert1150 points

      Excellent.  Thanks Arun!

      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