iMX6SX Linux boot hang on PCIe with M4 loaded

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

iMX6SX Linux boot hang on PCIe with M4 loaded

Jump to solution
1,194 Views
simonlocke
Contributor III

I have discovered a curious issue on the iMX6SX with the Linux 4.14 code base using PCIe on the A9 while the M4 processor is booted.

I have found that I can build a working version of Linux 4.14.78 which will boot reliably, and allows me to use the PCI bus over PCIe.

However, if I load and boot the M4 processor (e.g. I build and load one of the M4 processor example programs) from uboot 2018-03, and then boot the exact same Linux, it hangs when trying to configure the PCIe device. It freezes on a read instruction when it first tries to access the PCI configuration space. It appears to be something to do with the Resource Domain Controller (RDC).

Labels (3)
0 Kudos
1 Solution
1,115 Views
simonlocke
Contributor III

I have posted this question, so that I can put the answer up, as I have in fact found the solution to my own issue.

The potential RDC issue caused by booting the M4 then booting Linux seems to be resolved by putting PCIe into uBoot.

We had not put PCIe into our uboot, as our uboot does not need to do anything with out PCIe device and does not have drivers for it anyway. Therefore in out uboot build config we had not set:

CONFIG_PCI

CONFIG_CMD_PCI

CONFIG_PCIE_IMX

With Linux on its own, this does not cause an issue. However, as soon as you boot the M4, there is something happening with the RDC that means that it blocks access to the PCIe for the A9 Linux.

The solution is to ensure you have PCIe built into your uboot image (with the 3 above config options).

Now when you boot the M4 from uboot, the PCIe is not blocked, so it means that Linux boots successfully, and configures the PCIe correctly.

View solution in original post

0 Kudos
2 Replies
1,115 Views
simonlocke
Contributor III

Also, I don't know how related this is to the following issue:

https://community.nxp.com/thread/440575

0 Kudos
1,116 Views
simonlocke
Contributor III

I have posted this question, so that I can put the answer up, as I have in fact found the solution to my own issue.

The potential RDC issue caused by booting the M4 then booting Linux seems to be resolved by putting PCIe into uBoot.

We had not put PCIe into our uboot, as our uboot does not need to do anything with out PCIe device and does not have drivers for it anyway. Therefore in out uboot build config we had not set:

CONFIG_PCI

CONFIG_CMD_PCI

CONFIG_PCIE_IMX

With Linux on its own, this does not cause an issue. However, as soon as you boot the M4, there is something happening with the RDC that means that it blocks access to the PCIe for the A9 Linux.

The solution is to ensure you have PCIe built into your uboot image (with the 3 above config options).

Now when you boot the M4 from uboot, the PCIe is not blocked, so it means that Linux boots successfully, and configures the PCIe correctly.

0 Kudos