This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMDSEVM6678le don't detected

I have the device and AMCtoPCI adapter and when i turn on it to my PCIe Host I don't see anything in lspci out with vendor id 8888. I use no_boot mode. But the board is work well. What do i do wrong?

Sorry for a clumsy question.

  • You may need to use PCIe boot mode instead of no boot mode for the PCIe enumeration. 

    And the IBL may need to be updated as well. Please take a look at the following post or other previous posts for the similar issue. Thanks.

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

  • Hello Steven, thanks for fast reply

    You want to say that exists only one way to communicate the board with a host by PCIe and this way is PCI boot mode? My goal is a just  a connect the board and a host via PCIe. But I doubt that is it valid that my device doesn't enumerate in lspci list. But anyway, I tried to PCI boot mode with update IBL EEPROM and have no result. PC 0x00800974, DEVSTAT  0x00011809, but 0x26200380x83e70b13 0x262003c are empty. Boot mode switching settings is set by http://processors.wiki.ti.com/index.php/TMDXEVM6678L_EVM_Hardware_Setup in PCIE mode.

    I saw another tread but it usefulness for my issue.

  • In order to be enumerated, the PCIe module in C6678 needs to be initialized and get ready for the link up with the host.

    The boot code will do the necessary initialization for you when the EVM is configured in PCIe boot mode. 

    Otherwise, you need to run some PCIe initialization code in DSP to make it ready for enumeration.

    Back to your observation, may I ask which IBL version (MCSDK) you are using please?

    The DEVSTAT seems to indicate it is in PCIe boot mode.

    But the PC 0x00800974 indicates the IBL code might be stuck in the PCIe SerDes PLL lock step. Could you please also check the LOCK bit in PCIE_SERDES_STS (0x0262015C) register is 1 or 0? LOCK=0 means the PLL could NOT be locked and it indicates there are some issues for the EVM to get the correct PCIe reference clock from the PCIe slot (host), since the IBL code setup the PCIe module in C667x to get the reference clock externally (from host) instead of using the EVM internal reference clock.

    You may need to check if the hardware connection (EVM and AMC-to-PCIe adapter card) is good enough or if switching to other PC slot or different host machine will make any difference.

  • Thanks for your reply

    Sorry but these registers are wrong because the card was not been inbound in the host when i get there value. Sorry. But anyway, result is the same. Device is not enumeration. But registers have a new value:

    PC: 0x00800758
    DEVSTAT: 0x00011809
    PCIE_SERDES_STS: x00000001

    PCB VER: 17-00107-03
    PCA VER: 19-00107-03

  • I use msdk_2_01_00_03.

    Version #: 0x01000003; string PCIE LLD Revision: 01.00.00.03:Sep  5 2012:17:18:02

    When I get local vendor and device id it returns 0xb005 and 0x104c respectively. 

  • Sorry again. I change the host and now the device is enumerated. Thank you for a help. Could you consult me and talk me how to initial PCIESS register for enumerate the device on no_boot mode? Is it possible? Is there examples of this anywhere? Thank you.

  • In no-boot mode, you can use the PCIe LLD example in the MCSDK package (C:\ti\pdk_C6678_1_1_1_4\packages\ti\drv\exampleProjects\PCIE_exampleProject).

    The LLD example has the example code for the PCIe initialization. You can compile it with PCIe in EP mode and load and run it on DSP.

    Please make sure to initialize the PCIe module first before the host starts scanning PCIe bus, i.e. you may need to run the test case on DSP first (with external power) and then start the host for enumeration.