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.

816x EVM as a PCI E Endpoint

Hi,

Im trying to use the 8168 EVM as a PCI E Endpoint but boot from the SD Card.

Im using the Sprectrum Digital EVM (ASSY 512870 REV B).

This is my observation .  If I  keep the SW3 in the standard/default  setting (SD Card Boot Mode)  , and disable the Kernel PCI functionality as mentioned in the  81xx  PCI Express Endpoint User Guide,  the PCIE  link does not come up on the PCI E Switch.   

However if I set the SW3 in the PCIE Boot Mode as mentioned in the 81xx PCI Express Endpoint Boot Driver User guide, the PCI E Link comes up on the switch..(but its waiting for the boot from PCI as expected)

Is there some SW3 setting that I need to do to enable SD Boot but PCI-E as an endpoint .

If I keep the PCI option in the kernel and have the SW3 in SD card boot mode, then it comes up as a RC and the PCI E link comes up just fine

Thanks

Jayant Jain

  • Jayant,

    DM8168 U-Boot does not support PCIe boot, have you updated the SD boot boot to enable PCIe on 8168 endpoint?

    If you are using the default U-Boot, PCIe won't be enabled and configured and endpoint will not be detected from RC.

       Hemant 

  • Hi Hemant,

    The question is slightly different. I dont want Uboot to support PCI E boot, just that  boot  from the standard SD card and then serve itself as a PCI-E end point.

    Currently when I do this, (boot from SD Card ) and have the PCI disabled in the Kernel Options (as mentioned in the PCI-E Endpoint Driver Doc)  , the 8168 does not show up as an EndPoint. Do I have to have to enable some other Kernel Option to serve as an EndPoint.

    So the question is , whether it will serve as an Endpoint only if you enable PCI-E boot using the SW3 settings,  or it can be an Endpoint regardless of this.

    Thanks

  • Jayant,

    To be able to act as PCIe EP, the bootloader needs to initialize and configure PCIe h/w on 816x - this is done currently only when using PCIe boot mode and not by U-Boot (or kernel).

       Hemant

  • Jayant

    If you want to do like this ,you must have some initizilization to the PCIESS in the u-boot,

    which would make the PCIESS as a pcie endpoint.

    In the initizilization ,you must config some register for example

    PCIE_CFG,BAR_MASK register ,vender id ... and so on