请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:PROCESSOR-SDK-AM65X 您好!
我们正在开发使用 AM65x EVM SR 1.0作为参考设计的定制板。
我们正在我们的平台上使用 TI 的 SDK v06_03_00_106。
在使用以环回模式连接的两个自定义平台验证 PCIe 接口的过程中、我们观察到 lspci 命令不会列出端点器件。
我们将按照 TI 文档中的说明使用 PCIE1串行器1。
遵循的步骤:
硬件设置:
卸下 PCIe 卡中的 RST 电阻器。
软件设置:
内核设备驱动程序:
端点驱动器:
CONFIG_PCI_ENDPOINT=y CONFIG_PCI_ENDPOINT_CONFIGFS=y CONFIG_PCI_EPF_TEST=y CONFIG_PCI_J721E=y CONFIG_PCIE_CADENCE_EP=y CONFIG_PCI_DRA7XX_EP=y
根复合体驱动程序:
CONFIG_PCI=y CONFIG_PCI_ENDPOINT_TEST=y CONFIG_PCI_DRA7XX_HOST=yCONFIG_PCI=y CONFIG_PCI_ENDPOINT_TEST=y CONFIG_PCIE_CADENCE_HOST=y
更新了 EP 配置的器件树:
diff --git a/arch/arm64/boot/dts/ti/k3-am654-pcie-usb3.dtso b/arch/arm64/boot/dts/ti/k3-am654-pcie-usb3.dtso
index 3fc3c52aba80..789545d47e36 100644
--- a/arch/arm64/boot/dts/ti/k3-am654-pcie-usb3.dtso
+++ b/arch/arm64/boot/dts/ti/k3-am654-pcie-usb3.dtso
@@ -14,9 +14,8 @@
status = "okay";
};
-&pcie1_rc {
+&pcie1_ep {
phys = <&serdes1 PHY_TYPE_PCIE 0>;
phy-names = "pcie-phy0";
- reset-gpios = <&pca9555 5 GPIO_ACTIVE_HIGH>;
status = "okay";
};
端点器件中引导后的配置:
# mount -t configfs none /sys/kernel/config # cd /sys/kernel/config/pci_ep/ # mkdir functions/pci_epf_test/func1 # echo 0x104c > functions/pci_epf_test/func1/vendorid # echo 0xb00c > functions/pci_epf_test/func1/deviceid # echo 16 > functions/pci_epf_test/func1/msi_interrupts # echo 2 > functions/pci_epf_test/func1/msix_interrupts # ln -s functions/pci_epf_test/func1 controllers/5600000.pcie-ep # echo 1 > controllers/5600000.pcie-ep/start
注:
# echo 2 > functions/pci_epf_test/func1/msix_interrupts
TI 文档不建议 为 AM65x EVM 的 mix_interrupts sysfs 条目输入任何输入、但在未配置中断的情况下、我们在链接时会收到以下错误。
# ln -s functions/pci_epf_test/func1/ controllers/5600000.pcie-ep/ [ 175.492067] pci_epf_test pci_epf_test.0: MSI-X configuration failed ln: controllers/5600000.pcie-ep/func1: Invalid argument
现在打开根复合体器件时、lspci 不会列出任何 PCIe 器件
我有一些问题
1. AM65x EVM SR1.0和 TI SDK 06_03_00_106是否支持 PCIe 环回模式?
2. PCIe 的引导加载程序是否需要更改?
请 告诉我们出错的地方。