• 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) » IBL SGMII init
Share
C6000 Multicore DSP
  • Forums
  • Announcements
Options
  • Subscribe via RSS
Resources
  • KeyStone Multicore DSP + ARM Product Folder
  • Keystone II MCSDK Download
  • Keystone II MCSDK User's Guide

  • KeyStone Multicore DSP Product Folder
  • Keystone I BIOS-MCSDK Download
  • Keystone I BIOS-MCSDK User's Guide

  • Keystone I & II Training

  • C6000 Multicore DSP Product Folder
  • C6000 Multicore Devices

  • DESKTOP-LINUX-SDK 01_00_00_07 Download
  • MCSDK-VIDEO 02_01_00_08 Download

  • C6472 and C6474 Online Training
  • Check out
    Multicore Mix blog
    • $core_v2_blog.Current.Name

      Wireless base stations – why monitor the backup battery?

      Posted 5 days ago
      by Raj Radjassamy
      2G, 3G and 4G LTE base stations use lead-acid batteries as the...
    • $core_v2_blog.Current.Name

      Innovation through smart integration – achieving lower power, high performing small cells

      Posted 6 days ago
      by Debbie Greenstreet
      Wireless small cell market activity is accelerating lately and...
    • $core_v2_blog.Current.Name

      Four for Friday: What’s up at the Small Cells World Summit?

      Posted 19 days ago
      by Debbie Greenstreet
      If you are a follower of the wireless technology, you have probably...

    Forums

    IBL SGMII init

    This question is answered
    will Resnick
    Posted by will Resnick
    on Jan 02 2013 15:33 PM
    Expert1750 points

    Hi,

      Does the IBL initialize the SGMII registers.  What I am seeing is that the emac_open function executes just fine when I run the 6657l.gel file during connection.  When I run my program from NAND flash using the IBL I am stuck in the emac_open function.  If I go into memory and configure the CFGPLL, CFGRXO and CFGTXO to the values found in the .gel file I exit this function and my program runs fine.  Does the i2cConfig.gel file which is loaded using the steps I found on the BIOS MCSDK2.0 wiki page configure the SGMII or is this something I have to do in my code.  What does the IBL configure exactly so I know what else to configure if the IBL gel file does not configure the SGMII

    Thanks,

    Will

    ibl boot
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    All Replies
    • will Resnick
      Posted by will Resnick
      on Jan 03 2013 08:33 AM
      Expert1750 points

      I also want to add:

        I have been looking through the emac_drv.c code and what I have found is a difference between the address of the TX_CFG, RX_CFG, and the AUX_CFG.  In the PDK package, TX_CFG is located at 0x2c08930, RX_CFG is at 0x2c08934 and AUX_CFG is at 0x2c08938.  When looking at the 6657.gel file, TX_CFG is at 0x2620348, RX_CFG is at 0x2620344, and AUX_CFG is at 0x2620340.  When I fill in TX,RX,and AUX values at the gel file locations, I am able to get a lock and everything works fine.  Please advise.

      Thanks,

      Will

      ibl boot
      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 Jan 04 2013 15:33 PM
      Verified Answer
      Verified by will Resnick
      Mastermind23265 points

      No, the IBL doesn't initialize EMAC.  The configuration of SGMII should be done by your program unless you're specifically using EMAC boot, in which case the bootloader would configure it.  You could write an IBL that configured it, but that's not what's the IBL that is being provided is doing.

      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.
    • will Resnick
      Posted by will Resnick
      on Jan 04 2013 15:59 PM
      Expert1750 points

      Hi Chad,

        So I am running a ethernet program that used the client example as a starting point.  It looks like the emac is attempting to configure the sgmii but I get stuck in a while 1 loop.  Basically its waiting for the link to come up.  It appears although the emac is configured with the correct values which match the .gel file values, the addresses are different.  The emac writes to the emac memory map registers (0x2c08900) where as the .gel file writes to the chip registers (0x2620340).  Shouldn't the emac registers be memory mapped to the chip registers?  When I try to write to the chip registers directly, it fails.  I write to the address but the value never takes.  The only work-around I can think of is to write to the chip registers during the emac_open function, just prior to checking for the link.  When I am in the while 1 loop in the emac_open function, I can go into the memory window and write the correct values to the chip registers and everything runs fine.  My problem in making this work-around work is that I don't know how to re-build the emac driver library.

       

      Thanks,

      Will

      6657 IBL
      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 Jan 04 2013 16:32 PM
      Mastermind23265 points

      The 0x02620340 is going to have the SGMII SERDES PLL Config Registers, while the 0x02C08900 is going to part of the EMAC configurations registers.  The EMAC driver wouldn't typically be configuring the SERDES PLL Config as it would expect that it was already configured (input clocks will vary from board design to board design and the PLL settings must be done specific to the board design.)

      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.
    • will Resnick
      Posted by will Resnick
      on Jan 05 2013 10:15 AM
      Verified Answer
      Verified by will Resnick
      Expert1750 points

      Hi Chad,

        So when I look at the emac_drv.c, in the emac_open function, it appears that the function is trying to configure the sgmii but the addresses point to the emac location and not the chip registers.  The emac_open function also configures the emac.  The way I have made this work is that prior to starting the ethernet thread, I power on the emac using the Set_PSC_State function from the 6657.gel file.  I then write to the CFG_PLL, CFGRXO, and the CFG_TXO registers at 0x2620340, 344, and 348.  I then run the ethernet thread and everything works.  It just seems that if the emac_open function is attempting to initialize the sgmii, then the pointers should point to the chip registers and not the emac registers.

      Will

      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 Jan 07 2013 11:52 AM
      Mastermind23265 points

      Will,

      In general each IP has it's own set of registers, that are separate from the Chip Registers.  In this case the EMAC registers are all with the EMAC and the SGMII PLL are part of the chip register.  There is documentation which discusses the need to configure the SGMII PLL.  This is going to be specific to the HW implementation (i.e. what clock inputs you used) while the EMAC driver functionality is a bit more generic and assumes the PLL's are already configured.

      Sorry for any confusion.

      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.
    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