iMX8M Plus: Forcing to retrain PCIe Link

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

iMX8M Plus: Forcing to retrain PCIe Link

2,141件の閲覧回数
MehmetFide
Contributor I

Hi,

We have an Intel Arria 10 GX FPGA connected to NXP iMX8M Plus via PCIe Gen3 x1 bus.

After Linux boots we configure the FPGA through an SPI bus and then the FPGA starts acting as a PCIe Endpoint device.

At this point, the FPGA should appear in the list of lspci command, but it is not. To see the FPGA in the list, we simply need to reset the NXP iMX8M Plus without resetting the FPGA which is unfortunate.

"echo 1 > /sys/bus/pci/rescan" doesn't work since PCIe link never established. 

Restarting the Linux is not an option for us. Somehow we should be able to tell the linux please retrain the link without restarting whole linux. I have looked at Reference Manual of iMX8M-Plus. LINK_STAT_CTRL register has a bit called RETRAIN_LINK. Is there a way to set this bit in userspace?

 

Thank you.

 

0 件の賞賛
返信
1 返信

934件の閲覧回数
MehmetFide
Contributor I

Hello NXP Support Team,

We resolved the issue by configuring the FPGA in u-boot before the Linux kernel starts. This approach works correctly.

However, we would still prefer to configure the FPGA after Linux has booted and then instruct Linux to retrain the PCIe link. We are currently using Linux kernel version 6.12.68.

Has there been any update or improvement in this process over the past four years? We believe that configuring the FPGA in Linux and triggering PCIe link retraining is a common use case.

Thank you in advance for your support.

Best regards.

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-1432117%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EiMX8M%20Plus%3A%20PCIe%20%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%AE%E5%86%8D%E3%83%88%E3%83%AC%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%E3%82%92%E5%BC%B7%E5%88%B6%E3%81%99%E3%82%8B%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1432117%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%3C%2FP%3E%3CP%3EPCIe%20Gen3%20x1%20%E3%83%90%E3%82%B9%E3%82%92%E4%BB%8B%E3%81%97%E3%81%A6%20Intel%20Arria%2010%20GX%20FPGA%20%E3%81%8C%20NXP%20iMX8M%20Plus%20%E3%81%AB%E6%8E%A5%E7%B6%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3ELinux%20%E3%81%8C%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%9F%E5%BE%8C%E3%80%81SPI%20%E3%83%90%E3%82%B9%E3%82%92%E4%BB%8B%E3%81%97%E3%81%A6%20FPGA%20%E3%82%92%E6%A7%8B%E6%88%90%E3%81%97%E3%80%81FPGA%20%E3%81%8C%20PCIe%20%E3%82%A8%E3%83%B3%E3%83%89%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%20%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%A8%E3%81%97%E3%81%A6%E5%8B%95%E4%BD%9C%E3%82%92%E9%96%8B%E5%A7%8B%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%93%E3%81%AE%E6%99%82%E7%82%B9%E3%81%A7%E3%80%81FPGA%20%E3%81%AF%20lspci%20%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E3%83%AA%E3%82%B9%E3%83%88%E3%81%AB%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E3%81%AF%E3%81%9A%E3%81%A7%E3%81%99%E3%81%8C%E3%80%81%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%E3%83%AA%E3%82%B9%E3%83%88%E5%86%85%E3%81%AE%20FPGA%20%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%80%81FPGA%20%E3%82%92%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%81%9B%E3%81%9A%E3%81%AB%20NXP%20iMX8M%20Plus%20%E3%82%92%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%81%99%E3%82%8B%E3%81%A0%E3%81%91%E3%81%A7%E3%81%99%E3%81%8C%E3%80%81%E6%AE%8B%E5%BF%B5%E3%81%AA%E3%81%93%E3%81%A8%E3%81%AB%E3%81%9D%E3%81%86%E3%81%AF%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3CP%3E%3CSPAN%3EPCIe%20%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%8C%E7%A2%BA%E7%AB%8B%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%80%81%E3%80%8Cecho%201%20%26gt%3B%20%2Fsys%2Fbus%2Fpci%2Frescan%E3%80%8D%E3%81%AF%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3CP%3ELinux%20%E3%82%92%E5%86%8D%E8%B5%B7%E5%8B%95%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E7%A7%81%E3%81%9F%E3%81%A1%E3%81%AB%E3%81%A8%E3%81%A3%E3%81%A6%E9%81%B8%E6%8A%9E%E8%82%A2%E3%81%A7%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%E4%BD%95%E3%82%89%E3%81%8B%E3%81%AE%E6%96%B9%E6%B3%95%E3%81%A7%E3%80%81Linux%20%E5%85%A8%E4%BD%93%E3%82%92%E5%86%8D%E8%B5%B7%E5%8B%95%E3%81%9B%E3%81%9A%E3%81%AB%E3%83%AA%E3%83%B3%E3%82%AF%E3%82%92%E5%86%8D%E3%83%88%E3%83%AC%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%E3%81%99%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%20Linux%20%E3%81%AB%E6%8C%87%E7%A4%BA%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%AF%E3%81%9A%E3%81%A7%E3%81%99%E3%80%82iMX8M-Plus%E3%81%AE%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB%E3%82%92%E8%A6%8B%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82LINK_STAT_CTRL%20%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%81%AB%E3%81%AF%E3%80%81RETRAIN_LINK%20%E3%81%A8%E5%91%BC%E3%81%B0%E3%82%8C%E3%82%8B%E3%83%93%E3%83%83%E3%83%88%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E3%81%93%E3%81%AE%E3%83%93%E3%83%83%E3%83%88%E3%82%92%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E7%A9%BA%E9%96%93%E3%81%A7%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%3F%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2319482%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20iMX8M%20Plus%3A%20Forcing%20to%20retrain%20PCIe%20Link%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2319482%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3ENXP%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%83%81%E3%83%BC%E3%83%A0%E3%81%AE%E7%9A%86%E6%A7%98%E3%80%81%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%82%3C%2FP%3E%3CP%3ELinux%20%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%81%8C%E8%B5%B7%E5%8B%95%E3%81%99%E3%82%8B%E5%89%8D%E3%81%AB%20u-boot%20%E3%81%A7%20FPGA%20%E3%82%92%E6%A7%8B%E6%88%90%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%A7%E3%81%93%E3%81%AE%E5%95%8F%E9%A1%8C%E3%82%92%E8%A7%A3%E6%B1%BA%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E3%81%93%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AD%E3%83%BC%E3%83%81%E3%81%AF%E6%AD%A3%E3%81%97%E3%81%8F%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%9F%E3%81%A0%E3%81%97%E3%80%81Linux%20%E3%81%8C%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%9F%E5%BE%8C%E3%81%AB%20FPGA%20%E3%82%92%E6%A7%8B%E6%88%90%E3%81%97%E3%80%81Linux%20%E3%81%AB%20PCIe%20%E3%83%AA%E3%83%B3%E3%82%AF%E3%82%92%E5%86%8D%E3%83%88%E3%83%AC%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%E3%81%99%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E6%8C%87%E7%A4%BA%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E6%9C%9B%E3%81%BE%E3%81%97%E3%81%84%E3%81%A7%E3%81%99%E3%80%82%E7%8F%BE%E5%9C%A8%E3%80%81Linux%20%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%20%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%206.12.68%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%93%E3%81%AE%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%81%AF%E9%81%8E%E5%8E%BB%204%20%E5%B9%B4%E9%96%93%E3%81%A7%E6%9B%B4%E6%96%B0%E3%81%BE%E3%81%9F%E3%81%AF%E6%94%B9%E5%96%84%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%81%8B%3FLinux%20%E3%81%A7%20FPGA%20%E3%82%92%E6%A7%8B%E6%88%90%E3%81%97%E3%80%81PCIe%20%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%AE%E5%86%8D%E3%83%88%E3%83%AC%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%E3%82%92%E3%83%88%E3%83%AA%E3%82%AC%E3%83%BC%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E3%80%81%E4%B8%80%E8%88%AC%E7%9A%84%E3%81%AA%E4%BD%BF%E7%94%A8%E4%BE%8B%E3%81%A7%E3%81%82%E3%82%8B%E3%81%A8%E8%80%83%E3%81%88%E3%82%89%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%94%E5%8D%94%E5%8A%9B%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E