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.

C6678 - Accessing Multiple End Points when in PCIE Root Complex Mode

Hello,

It appears that Pcie_writeRegs() can be used to configure an end point's register base.

However, what happens when there is more than one peripheral? Is there any way to enumerate the bus when in Root Complex mode? It seems like this would be a useful driver function.  I am connecting to a switch and need to know what other devices are connected.

Thanks,

Sachan

  • Sachan,

    The bus enumeration is usually done by the system's firmware/device drivers or the operating system in the host/Root Complex.There is no Root Complex driver provided by TI for C66x PCIe module. The C66x PCIe module provides a shortcut for the peer-to-peer connection that the RC could access the EP configuration registers directly with memory map space (starting from 0x2180000+0x2000). If there are multiple EPs in the system, the user could use CFG_SETUP register to change the bus/device/function numbers to scan the bus for the enumeration purpose.

    Please take a look at the following thread, which discussed the similar topic. It also has the link of the Root Complex PCIe driver for another TI device, which has the similar PCIe module as C66x devices. Hope it could help.

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

  • Thanks Steven,

    Does the memory map always start at 0x2180000+0x2000? I am trying to modify sample software that came with the C6678 EVM so that I can communicate with an FPGA using PCIe. I'm having difficulty setting up the memory map. There always seems to be an offset of 32 words.

    Also, are there any plans to implement a Root Complex driver on the C6678?

    Regards,

    Sachan

  • Sachan,

    Yes. The C667x PCIe RC will access the EP configuration registers region via remote configuration space which is mapped to 0x21800000+0x2000 in RC local region. 

    I am not sure about the "32 words" offset, please elaborate if you would like.

    And I am not sure about the support of Root Complex driver from TI for C667x devices. But you could always take a look at the latest software package such as MCSDK to see if new drivers have been implemented. Thanks.