Hello,
I need to learn PCIe for the iMX6Q to communicate with an FPGA, EIM is not an option here. I am looking for some help. I know that the Kernel needs to be configured and support needs to be added for the Freescale driver in the Kernel. Where I am having trouble is how do I interact with the Freescale driver; or do I need to write my own? When looking at the pcie-imx6.c file there seems to be a lot of chip specific information as well as the .compatible being setup for the device tree.
When reading articles on Linux PCIe driver development the way a driver a written is different from the pcie-imx6.c file. Is there a simple PCIe example for the iMX6 anywhere?
Again, any help is appreciated.
Please distinguish between root complex and endpoint drivers. What
pci-imx6.c implements is a root complex driver. It abstracts i.MX6
PCI hardware to the rest of the system allowing the standard kernel PCI
subsystem to work on i.MX6 platform. If you want to connect a custom
device to i.MX6, you neither need to re-implement the root complex driver,
nor to directly interact with it. PCI device drivers use platform-independent
Linux PCI subsystem services. It that sense, a correctly written PCI device driver
can operate on any supported hardware/platform/architecture, and any
PCI device driver can be taken as an example. For more details, refer
to i.MX Linux Reference Manual, Chapter 41 and to
Documentation/PCI/pci.txt. Section 41.4.2 of i.MX Linux Reference Manual
mentions some peripherals tested on i.MX reference boards, look at their
drivers first.
Have a great day,
Platon
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------