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.

PCIe endpoint问题请教



请问,如果在PCIe RC设备上可以枚举到EP设备,并且分配了对应的PCIe地址空间,是否EP的PCIe链路就已经链接上了,不需要对PCIe接口进行设置了?

  • 枚举前已经对PCIe接口进行了配置,不需要再配置。请看user guide上的配置流程。
    2.11.2 PCIe as End Point
    http://www.ti.com/lit/ug/sprugs6d/sprugs6d.pdf

  • 谢谢,但是在我的设计中,keystone单板是作为PC的一块板卡,是EP设备。PC驱动可以正确识别单板,这个时候是否在Linux内核不用在配置PCIe phy设备,也就是PCIe链路已经建立。

    另外一个问题,如果我在Linux设备树中开启PCIe phy,驱动的时候出现如下错误提示:

    [    3.406779] ti,keystone-serdes 2320000.phy: Direct firmware load for ks2_pcie_serdes.bin failed with error -2                                                                                                                                                                
    [    3.406789] ti,keystone-serdes 2320000.phy: can't get any serdes init fw                                                                                                                                                                                                     
    [    3.406797] ti,keystone-serdes 2320000.phy: serdes procider init failed -19    

    请问,如何解决?

    设备树修改如下:

    pcie0_phy: phy@2320000 {
    #phy-cells = <0>;
    compatible = "ti,keystone-serdes-pcie";
    reg = <0x02320000 0x4000>;
    link-rate-kbps = <2500000>;
    num-lanes = <2>;
    status = "okay";
    clocks = <&clkpcie>;
    clock-names = "fck";
    };