AnsweredAssumed Answered

i.MX6SX hang when enabling pcie

Question asked by Mattias Barthel on Mar 17, 2017
Latest reply on Mar 24, 2017 by Tom Foy

I have the SabreSD i.MX6sx board and I can't get the PCIe to be enabled without hanging the boot sequence.

 

I have used the fsl community bsp repo download morty according to:

"Platform source code download" FSL Community BSP 

 

 

$ pwd
/home/mattias/fsl-community-bsp
$

$ repo info
Manifest branch: morty
Manifest merge branch: refs/heads/morty
Manifest groups: all,-notdefault
----------------------------
Project: Documentation
Mount path: /home/mattias/fsl-community-bsp/sources/Documentation
Current revision: morty
Local Branches: 0
----------------------------
Project: fsl-community-bsp-base
Mount path: /home/mattias/fsl-community-bsp/sources/base
Current revision: morty
Local Branches: 0
----------------------------
Project: meta-freescale
Mount path: /home/mattias/fsl-community-bsp/sources/meta-freescale
Current revision: morty
Local Branches: 0
----------------------------
Project: meta-freescale-3rdparty
Mount path: /home/mattias/fsl-community-bsp/sources/meta-freescale-3rdparty
Current revision: morty
Local Branches: 0
----------------------------
Project: meta-freescale-distro
Mount path: /home/mattias/fsl-community-bsp/sources/meta-freescale-distro
Current revision: morty
Local Branches: 0
----------------------------
Project: meta-openembedded
Mount path: /home/mattias/fsl-community-bsp/sources/meta-openembedded
Current revision: morty
Local Branches: 0
----------------------------
Project: poky
Mount path: /home/mattias/fsl-community-bsp/sources/poky
Current revision: morty
Local Branches: 0
----------------------------

The repo was downloaded and initialized on the 14th:

$ ls -l
total 44
drwxrwxr-x 7 mattias mattias  4096 mar 15 13:32 build
drwxrwxr-x 4 mattias mattias 36864 mar 15 14:30 downloads
lrwxrwxrwx 1 mattias mattias    19 mar 14 12:51 README -> sources/base/README
lrwxrwxrwx 1 mattias mattias    30 mar 14 12:51 setup-environment -> sources/base/setup-environment
drwxrwxr-x 9 mattias mattias  4096 mar 14 12:51 sources
----------------------------

 

I did the modifications to imx6sx-sdb.dtsi according to:

i.MX6SX failed to enable pcie 

imx6_pcie->pcie_bus_regulator = devm_regulator_get(pp->dev,
"pcie-bus");
TO:
imx6_pcie->pcie_bus_regulator = devm_regulator_get(pp->dev,
"MPCIE_3V3");

 

Because otherwise I would get:

8ffc000.pcie supply pcie-bus not found, using dummy regulator

 

The hang occurs in:

pcie-designware.c: dw_pcie_setup_rc.

dw_pcie_readl_rc(pp, PCIE_PORT_LINK_CONTROL, &val);

I.e the first access (read) through DBI, to CDM (Port logic registers).

 

I added printk as:

printk(KERN_CRIT"pp->dbi_base + reg: 0x%x\n", pp->dbi_base + PCIE_PORT_LINK_CONTROL);

 

pp->dbi_base + reg: 0xc0af0710

 

What is missing here? Could it be that the PCIe block isnt powered?

 

Here follows my Kconfig statements regarding PCI: (Entire .config file as attchmnt)

 

$ grep -i pci .config | grep -v ^#                                                         
CONFIG_MIGHT_HAVE_PCI=y
CONFIG_PCI_QUIRKS=y
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCI_DOMAINS_GENERIC=y
CONFIG_PCI_SYSCALL=y
CONFIG_PCI_MSI=y
CONFIG_PCIE_DW=y
CONFIG_PCI_IMX6=y
CONFIG_PCIEPORTBUS=y
CONFIG_PCIEAER=y
CONFIG_PCIEASPM=y
CONFIG_PCIEASPM_DEFAULT=y
CONFIG_PCIE_PME=y
CONFIG_OF_ADDRESS_PCI=y
CONFIG_OF_PCI=y
CONFIG_OF_PCI_IRQ=y
CONFIG_SND_PCI=y
CONFIG_USB_EHCI_PCI=y
CONFIG_USB_CHIPIDEA_PCI=y
CONFIG_GENERIC_PCI_IOMAP=y

 

 

Thanks for reading and any help will be highly appreciated!

Original Attachment has been moved to: .config.zip

Outcomes