Quantcast
Channel: Forums - Recent Threads
Viewing all articles
Browse latest Browse all 262198

AM5728: PCIe re-enumeration fails

$
0
0

Part Number: AM5728

Hi,

This question is regarding our own board and Linux based on the ti SDK 05.00.00.15

We are using the PCIe bus as two separate links to two different FPGA devices where the AM5728 is the RC.

When I start the system Linux will detect both FPGA's and will enumerate them. I can communicate to these FPGA's with no problems.

But I want to be able to reconfigure the fpga in run-time while the CPU is not reset.
What I did with another CPU and also what I read from other users is the following sequence:
- remove the fpga EP device from the discover devices with:
   echo 1 >/sys/bus/pci/devices/0001:01:00.0/remove      (0001.01.00.0 is the id of the fpga EP)
- now reconfigure the fpga
- when the fpga is reconfigured do a PCI rescan with:
   echo 1 >/sys/bus/pci/devices/0001:00:00.0/rescan       (0001:00:00.0 is the id of the bridge in the AM5728)

And normally the FPGA should be visible again using lspci to list all the devices, but this is not the case.

After some investigations I found out that the LTSSM of the PCIe controller was disabled, so I enabled it to see what would happen.
When I did that I could re-enumerate the FPGA again and it showed up again using the lspci command. But unfortunately this was not enough (as expected).
After some more investigation and reading the user manual I could see that the PCIe controller is reset (PCIe link-down reset condition) and because of the reset the PCIe bridge configuration is set to default and never reprogrammed in the PCIe driver

I also tried SDK 06.00.00.07 but now change in the behavior.

My question is if this functionality works and if so what I should do differently. For us it is crucial that the FPGA can be reprogrammed run-time so the re-enumeration must work.

Regards,
Robert


Viewing all articles
Browse latest Browse all 262198

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>