• 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) » PCIe Boot of C6678 and platform_init
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

      It’s our second anniversary, but you get the present!

      Posted 5 days ago
      by Lindsey Bare
      It’s hard to believe it’s already been two years...
    • $core_v2_blog.Current.Name

      Limited time offer: Save $100 on Keystone-based EVM!

      Posted 18 days ago
      by tscheck
      Have you been thinking about ordering a TI Keystone-based EVM...
    • $core_v2_blog.Current.Name

      Imagine the impact…TI’s KeyStone SoC + HP Moonshot

      Posted 29 days ago
      by Sanjay35057
      Last week, market leader Hewlett Packard announced a huge change...

    Forums

    PCIe Boot of C6678 and platform_init

    This question is answered
    Phil Dawson
    Posted by Phil Dawson
    on May 03 2012 11:35 AM
    Prodigy60 points

    Hi,

    I am trying to boot a snippet of test code over PCIe on a C6678 EVM.

    I have CCS5.1.1.00031 and MCSDK 02_00_05_17 as well as PDK C6678_1_0_0_17. (The IBL has been flashed with the bin provided in the MCSDK. The Boot DIP switches are in the ROM PCIe Boot position, the Board enumerates over PCIe)

    I can get the board to boot into main when booting from PCIe but when I call platform_init to initialise the board it never returns. If i remove platform the program executres correctly (but I cannot use the UART or other peripherals).

    If i do not boot over pcie but load the same code directly from CCS it works as expected.

    Are there some initialisation steps I am missing when booting over PCIe?

    The linker command file is set to load the entire program into L2SRAM.

    What can I do to fix this?

    Regards,

    Phil Dawson

    boot 6678 PCIe
    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 03 2012 15:34 PM
      Genius9480 points

      Phil,

      The plaform init reconfigures the PLL while PCIe still using it. That is the reason that devices freezes.

      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.
    • Phil Dawson
      Posted by Phil Dawson
      on May 04 2012 03:51 AM
      Prodigy60 points

      Arun,

      It seems to crash even if i set the init_flags to 0 to avoid touching the PLL. I cannot properly follow the code if I attempt to debug within the platform library (is it optimised by default?) but it appears to be initialising the PLL even if the flag is false.

      Is there another way i should be initialising the device if platform_init won't work?

      Thanks,

      Phil

      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 04 2012 13:32 PM
      Genius9480 points

      Hi Phil,

      Yes it seems like even with that flag cleared there is a DDR PLL that is initialized. not sure why. Is there any specific reason you want the platfor init there?

      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.
    • Phil Dawson
      Posted by Phil Dawson
      on May 05 2012 12:51 PM
      Prodigy60 points

      Hi Arun,

      I had the platform init there as without it I couldn't get the platform uart init to work when booting the code through CCS debugging. I believe I saw it used in some of the example code.

      Our goal is to be able to boot from PCIe and have use of UART, SRIO and DDR, so I need to be able to initialize everything that they require.

      I have to admit I'm a little unsure on what needs to be initialized when we're booting from different states (CCS or PCIe) and what is already taken care of, if there is an initialization guide you could point me to it would be very helpful.

      Thanks,

      Phil

      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 May 08 2012 12:50 PM
      Intellectual830 points

      Hi Phil, I'm not aware of any initialization guide apart from SPRUGY5 (Bootloader User Guide). But the bootloader source code is available, and might be of help:

      http://software-dl.ti.com/sdoemb/sdoemb_public_sw/rbl/1_0_C6678/index_FDS.html

      Regards, Jon

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Chad Courtney
      Posted by Chad Courtney
      on May 08 2012 16:04 PM
      Verified Answer
      Verified by Phil Dawson
      Mastermind22515 points

      Phil,

      The only thing you're need to initialize via the PCIe (as opposed to with the code you load via PCIe) are peripherals that you're going to use prior to boot completion.  Usually this is limited to memory interfaces such as the DDR memory if you're planning on storing code to it during the boot process.  Otherwise, peripherals such as the UART are often configured after boot completion, during initialization period (usually the first thing done after entering main() or possibly handled by SYSBIOS after boot is completed.)

      As for CCS, you don't need to boot anything normally (on PG 1.0 of C667x devices it should use I2C boot to work around a PLL config bug that's normally configured in the BootROM.)  If you're planning on loading code to external memories, you can initialize them via a GEL file such as is provided w/ the EVMs.

      Best Regards,

      Chad

      ------------------------------------------------------------------------------------------------------------

      Please click the Verify Answer button on this post if it answers your question.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Phil Dawson
      Posted by Phil Dawson
      on May 11 2012 02:49 AM
      Verified Answer
      Verified by ArunMani
      Prodigy60 points

      Hi All,

      Having recreated the project from scratch has fixed the problem, I beleive there was a conflict in having an RTSC project and the linker.cmd file. Removing the file and putting the linker map into the RTSC.cfg file has fixed it and allows platform_init and the uart functions to work after booting from PCIe.

      Thanks for all your help.

      Phil

      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