imx6SX PCI Driver

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx6SX PCI Driver

Jump to solution
1,462 Views
simonlocke
Contributor III

Hi,

Can someone please point me to some instructions on how to build and include the PCI driver into the 3.14.28 poky Linux? I want to connect a PCIe board to my iMX6SX SABRE dev board and write a PCI device driver, but first I need to get the PCI root compiled into the kernel.

I tried following the instructions in the IMX6 Linux Reference Manual (IMX6LXRM 03/2015) section 42.2.2, but they do not make sense. If I run make in the either 'drivers/pci' or 'drivers/pci/host' folders I get 'no targets'.

Labels (1)
0 Kudos
1 Solution
971 Views
simonlocke
Contributor III

I think I have found the instructions I was looking for:

Changing the Kernel configuration for i.MX6 SABRE

This is much clearer than any others I've found.

View solution in original post

0 Kudos
4 Replies
972 Views
simonlocke
Contributor III

I think I have found the instructions I was looking for:

Changing the Kernel configuration for i.MX6 SABRE

This is much clearer than any others I've found.

0 Kudos
971 Views
igorpadykov
NXP Employee
NXP Employee

Hi Simon

one can look at examples in

https://community.freescale.com/docs/DOC-95014

https://community.freescale.com/message/630828#comment-630828

Best regards

igor

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

0 Kudos
971 Views
simonlocke
Contributor III

Thanks Igor.

A lot of useful info on those two pages. However, still not sure I have a simple and non-contradictory set of instructions for building and including the PCIe Root Complex into a kernel and image.

In the Reference manual section 42.2.2 it says:

     Root Complex is not supported by the default kernel configurations on i.MX 6 boards.

     To set the default configuration, execute the following command as follows:

     make CROSS_COMPILE=arm-none-linux-gnueabi-ARCH=arm imx_v7_defconfig

     Configure the Root Complex to be built in:

     #

     # Bus support

     #

     CONFIG_PCI=y

     CONFIG_PCI_DOMAINS=y

     CONFIG_PCI_SYSCALL=y

     #

     # PCI host controller drivers

     #

     CONFIG_PCIE_DW=y

     CONFIG_PCI_IMX6=y

     NOTE

     PCI Express support can't be built as a module.

But, the first link you pointed me to (https://community.freescale.com/docs/DOC-95014) refers to:

        CONFIG_IMX_PCIE=y

        # CONFIG_IMX_PCIE_EP_MODE_IN_EP_RC_SYS is not set

        CONFIG_IMX_PCIE_RC_MODE_IN_EP_RC_SYS=y

However, this link also only talks about iMXSQ, where as I am using a iMX6 SoloX.

Either I need to do something to build the driver first, or I don't and I just need to add these lines to a bitbake recipe. And then which recipe? Do I need another recipe for a kernel, or can I just add the necessary lines to my custom image recipe?

0 Kudos
971 Views
igorpadykov
NXP Employee
NXP Employee

PCIe configuration settings for iMX6 SoloX should be same

as for other i.MX6.

~igor

0 Kudos