• 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) » Failed to enumerate C6670EVM by using TMDXEVMPCI
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 30 days ago
      by Sanjay35057
      Last week, market leader Hewlett Packard announced a huge change...

    Failed to enumerate C6670EVM by using TMDXEVMPCI

    Failed to enumerate C6670EVM by using TMDXEVMPCI

    This question is not answered
    demon popo
    Posted by demon popo
    on Dec 14 2012 03:18 AM
    Intellectual525 points

    Dear All,

    I have used 6670/6678 but PCIe can't  PCIe device is not enumerated by the Windows/Linux at all
    I used below step test PCIe but the PCIe device is not enumerated by the Windows at all. I don`t know what is

    wrong in my programming . Can you help me to find where

    is wrong?

    My development environment are below:

    - mcsdk_2_01_02_05 (Can this revision work?)

    1. Programing "IBL" on the EEPROM at bus address 0x51

    1.1 set the boot mode dip switch to no boot/EMIF16 boot mode on the EVM: (is the switch right?)

    switch pin1 2 3 4
    SW3: off on on on
    SW4: on on on on
    SW5: on on off on
    SW6: off on on on
    SW9: on
    1.2 copy i2crom_0x51_c6678_le.bin which exits in tools\boot_loader\ibl\src\make\bin to

    writer\eeprom\evmc66xxl\bin folder. Then open writer\eeprom\evmc66xxl\bin\eepromwriter_input.txt, and set the

    file_name to i2crom_0x51_c6678_le.bin.
    1.3 Open CCSv5,connect to core0.
    1.4 Load writer\eeprom\evmc66xxl\bin\eepromwriter_evm66xxl.out to CCS,and has loaded the evmc66xxl.gel in

    advance.
    1.5 Open Memory Browser,view the Memory 0x80000000. Load i2crom_0x51_c6670_le.bin to 0x80000000.
    1.6Press "F8" to run the program,and "EEPROM programming completed successfully" is printed on the console.
    2. Programing "IBL Configuration"
    After the first step, go on this step directly.
    2.1 Open CCSv5,connect to core0.
    2.2 Load tools\boot_loader\ibl\src\make\bin\i2cparam_c6670_le.out to CCS. Run the program,and"Run the GEL for

    the device to be configured,press return to program the I2C" is printed on the console.
    2.3 Load tools\boot_loader\ibl\src\make\bin\i2cConfig.gel in the GEL Files window.
    2.4 Run the GEL script "EVM c6670 IBL"->setConfig_c6670_main, and then press"Enter"in the CCS console window.

    The message "I2c table write complete" is printed on the CCS console.
    3. Set C6670 EVM to PCIE boot mode:(is the switch right?)
    switch pin1 2 3 4
    SW3: off on on off
    SW4: on on on on
    SW5: on on on off
    SW6: off on on on


    So, there are all the steps I do. But it seems that it doesn't work.I think there are something I forget

    to set or there are something wrong. Can you help me ? Much thanks.

    6678 6670 bootloader 6670 6670 EVM 6678 NOR BOOT PCIE EXAMPLE 6678 booting 66xx
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    All Replies
    • Steven Ji
      Posted by Steven Ji
      on Dec 17 2012 14:20 PM
      Expert8595 points

      Could you connect CCS to the EVM and check where the PC (program counter) is pointed when the enumeration failed please?

      We would like to check which stage is stuck in the boot code.

      And if the LTSSM_STATE field in DEBUG0 (0x21801728) register is not 0x11, it means there is no link up between C6670 EVM and PCIe host yet. Please check if the host could provide 100MHz PCIe reference clock to the EVM. 

      Please take a look at the previous threads for the enumeration as well, such as 

      http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/191930/698130.aspx#698130

      http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/221855.aspx

      Hope they will help as well.

      Sincerely,

      Steven

      Sincerely,

      Steven

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

      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.
    • demon popo
      Posted by demon popo
      on Dec 18 2012 20:52 PM
      Intellectual525 points

      Hi Steven,

      Thanks for your reply.

      Register 0x21801728   value: 0x20002800

      Register DEBUG0(0x21800728)   value: 0x00000000  

      How can I check host could provide 100MHz PCIe reference clock?

      Target board : Gigabyte GA-8I945GMF

      Thanks,

      popo.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Steven Ji
      Posted by Steven Ji
      on Dec 18 2012 21:37 PM
      Expert8595 points

      popo,

      DEBUG0 is in the PCIe local configuration register space (with 0x1000 offset) so its address is 0x21801728. 

      It looks like the C6670 PCIe and the host could not get link up.

      The host motherboard seems to provide 100MHz reference clock to PCIe slot based on its data manual. But it might be SSC (spread spectrum clock) so the C667x should be the latest IBL update to support SSC. Some customer also mentioned that they could see the link up after trying out another host.

      Could you also take a look at the PC register (CPU register view) to see where the program is stuck at in the boot up process please?

      And do you have driver or will the host OS enumerate the PCIe endpoints plugged into the slot please?

      Sincerely,

      Steven

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

      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.
    • demon popo
      Posted by demon popo
      on Dec 20 2012 00:38 AM
      Intellectual525 points

      Hi Steven,

      Thanks for your reply.

      1.

      PC value is0x00190c10

      PC value:

      0x21801728 value:

      PCIE datasheet Page 3-122:http://www.ti.com/lit/ug/sprugs6c/sprugs6c.pdf

      It says DEBUG0 offset is 728h.

      Is this correct or I see wrong datasheet?

      2.

      I re-plug into the slot but it can't find new device.

      My system is: Linux Kerner 3.2.0-34 64Bits

      Best Regard,

      popo

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Steven Ji
      Posted by Steven Ji
      on Dec 20 2012 09:45 AM
      Expert8595 points

      popo,

      Please take a look at section 2.8 in PCIe user guide that the PCIe local configuration registers space starts from 0x1000 offset. So the DEBUG0 offset is 0x728+0x1000=0x1728.

      Your Program Counter is pointed to 0x20B00000, which seems not running any boot code yet. 

      Could you please check if you are able to set the EVM in PCIe boot mode and the IBL could be run correctly on EVM?

      You can use the external power and in PCIe boot mode, WITHOUT putting the card into the host. Can you check where the Program Counter register in the CPU (should be 0x00800xxx in LL2) and DEVSTAT (address 0x02620020, value should be 0x00001809) with an emulator to make sure IBL is correct? 

      Please take a look at the following thread as well. Thanks.

      http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/194161.aspx

      Sincerely,

      Steven

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

      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.
    • demon popo
      Posted by demon popo
      on Dec 20 2012 21:37 PM
      Intellectual525 points

      Hi Steven,

      Thanks for your reply.

      I check register value and re-plug PCIe.

      I get below value but PCIe device can't find.

      PC and 0x02620020 register value:

      MAGIC_ADDR(0x008FFFFC) value:

      Best Regard,

      popo

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Steven Ji
      Posted by Steven Ji
      on Dec 27 2012 11:29 AM
      Expert8595 points

      popo,

      Are you loading another test case into the DSP core before you check those registers values please?

      Please load nothing and just let the C66x device run in PCIe boot mode.

      Please follow the steps below:

      1. Put C66x card switch pins in PCIE boot mode and assembled in the adaptor card
      2. Insert card in a Linux PC and turn the power on, make sure card is enumerated (e.g., check with “lspci” from Linux machine)
      3. Connect the core 0 of DSP via an emulator, and the core 0 will be halted. The PC (program counter) register is at 0x00800xxx (local L2) and please check if PCIE link is up (register 0x21801728, bit 0-4 is 0x11)

      If the PCIe could not get link up, the IBL will be stuck at the place checking DEBUG0 (0x21801728) register. The LTSSM_STATE field (bit[4:0]) should be 0x11 if the link is up.

      And I am wondering if your IBL is updated correctly. First, may I ask if you are using C6670 EVM or C6678 please?

      In your original post,  you mentioned "i2crom_0x51_c6678_le.bin". Please use the correct .bin file for your EVM (i2crom_0x51_c6670_le.bin for C6670 EVM)

      And for the boot mode switch setup, please take a look at the following wiki page:

      http://processors.wiki.ti.com/index.php/TMDXEVM6670L_EVM_Hardware_Setup

      The No Boot mode seems to be 

      switch pin 1   2   3   4
      SW3:      off on on on
      SW4:      on on on on
      SW5:      on on on on
      SW6:      on on on on

      And for the EEPROM programming, I am not sure if it is 0x80000000 or 0x0c000000. Please check the "eepromwriter.c" file to see how the "WRITE_DATA_ADDRESS" is defined.

      Hope you can update the IBL correctly and please check the PC and DEBUG0 register again if the enumeration fails. 

      Sincerely,

      Steven

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

      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.
    • demon popo
      Posted by demon popo
      on Jan 01 2013 21:11 PM
      Intellectual525 points

      Hi Steven,

      Thanks for your reply.

      I have C6670 EVM and C6678 EVM and I used C6670 EVM.

      I load "C:\ti\mcsdk_2_01_02_05\tools\boot_loader\examples\pcie\pcieboot_helloworld" lib file to C6670 DSP board and have correct switch Boot mode.

      Does it correct IBL file or not?

      But I can't use "lspci " command see any device in Linux host.

      When I use emulator to see memory register I got same result on Dec 20 2012 21:37 PM

      Best Regard,

      popo

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Steven Ji
      Posted by Steven Ji
      on Jan 02 2013 11:05 AM
      Expert8595 points

      popo,

      What I suggested is not to load any test case into the device otherwise the PC register could be pointing to other place.

      So could you please repeat your register observation steps without loading "pcieboot_helloworld" file please?

      We should let the EVM run the boot code (IBL) only and see where it is stuck. Thanks.

      Sincerely,

      Steven

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

      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.
    • demon popo
      Posted by demon popo
      on Jan 06 2013 20:08 PM
      Intellectual525 points

      Hi Steven,

      Thanks for your reply.

      IBL file is:

      C:\ti\mcsdk_2_01_02_05\tools\boot_loader\ibl\src\make\bin\i2cparam_0x51_c6670_le_0x500.out

      C:\ti\mcsdk_2_01_02_05\tools\boot_loader\ibl\src\make\bin\i2crom_0x51_c6670_le.bin

      I update this file to DSP board but Linux host still can't find PCIE device.

      Register value:

      PC:0x00800974

      0x008FFFFC:0x00803320

      0x02620020:0x00001809

      Best Regard,

      popo

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Steven Ji
      Posted by Steven Ji
      on Jan 08 2013 12:37 PM
      Expert8595 points

      popo,

      The PC register is 0x00800974, which seems to indicate the PLL is not locked (bit[0] in PCIE_SERDES_STS register). Could you please check the PCIE_SERDES_STS register value as well? We would like to know if the PLL could be locked in your setup.

      Sincerely,

      Steven

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

      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.
    • demon popo
      Posted by demon popo
      on Jan 08 2013 20:47 PM
      Intellectual525 points

      Hi Steven,

      Thanks for your reply.

      Is PCIE_SERDES_STS  address 0x0162015C?

      This address value is 0x0000040C

      Best Regard,

      popo

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Steven Ji
      Posted by Steven Ji
      on Jan 08 2013 22:25 PM
      Expert8595 points

      The address is 0x0262015c. Please take a look at section 2.3.1.2 in PCIe user guide.

      Sincerely,

      Steven

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

      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.
    • demon popo
      Posted by demon popo
      on Jan 09 2013 00:05 AM
      Intellectual525 points

      Hi Steven,

      Thanks for your reply.

      This address value is 0x0000030C

      Best Regard,

      popo

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Steven Ji
      Posted by Steven Ji
      on Jan 09 2013 11:18 AM
      Expert8595 points

      popo,

      It seems the PCIe  PLL is not locked (bit[0] =0 in PCIE_SERDES_STS register).

      I mentioned some notes in IBL update proceduer before. Could you please double check if the IBL has been updated on 6670 EVM correctly please? 

      Please the comments as follows for your original setup:

      - mcsdk_2_01_02_05

      1. Programing "IBL" on the EEPROM at bus address 0x51

      1.1 set the boot mode dip switch to no boot/EMIF16 boot mode on the EVM: (is the switch right?)

      switch pin1 2 3 4
      SW3: off on on on
      SW4: on on on on
      SW5: on on off on ================> on on on on
      SW6: off on on on ================> on on on on
      SW9: on
      1.2 copy i2crom_0x51_c6678_le.bin which exits in tools\boot_loader\ibl\src\make\bin to =============> should be 6670, not 6678

      writer\eeprom\evmc66xxl\bin folder. Then open writer\eeprom\evmc66xxl\bin\eepromwriter_input.txt, and set the

      file_name to i2crom_0x51_c6678_le.bin. ====================> should be 6670, not 6678

      1.3 Open CCSv5,connect to core0.
      1.4 Load writer\eeprom\evmc66xxl\bin\eepromwriter_evm66xxl.out to CCS,and has loaded the evmc66xxl.gel in advance.

      1.5 Open Memory Browser,view the Memory 0x80000000. Load i2crom_0x51_c6670_le.bin to 0x80000000. =========> the address should be 0x0c000000
      1.6 Press "F8" to run the program,and "EEPROM programming completed successfully" is printed on the console.

      2. Programing "IBL Configuration" ===========================> no need for this 
      After the first step, go on this step directly.
      2.1 Open CCSv5,connect to core0.
      2.2 Load tools\boot_loader\ibl\src\make\bin\i2cparam_c6670_le.out to CCS. Run the program,and"Run the GEL for

      the device to be configured,press return to program the I2C" is printed on the console.
      2.3 Load tools\boot_loader\ibl\src\make\bin\i2cConfig.gel in the GEL Files window.
      2.4 Run the GEL script "EVM c6670 IBL"->setConfig_c6670_main, and then press"Enter"in the CCS console window.

      The message "I2c table write complete" is printed on the CCS console.
      3. Set C6670 EVM to PCIE boot mode:(is the switch right?)
      switch pin1 2 3 4
      SW3: off on on off
      SW4: on on on on
      SW5: on on on off
      SW6: off on on on

      Please update the IBL on your 6670 EVM again (it should be fine no matter you update IBL configuration or not).

      If you still see the PLL not being locked, please try another host machine or AMC-to-PCIe card. We need to get over the reference clock PLL issue first for the enumeration.

      Sincerely,

      Steven

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

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