PCIe problem on SabreSD with kernel 3.10.17

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

PCIe problem on SabreSD with kernel 3.10.17

3,207 Views
lmhdoms
Contributor III

Hi all,

I am trying to get PCIe to work on SabreSD. The PCI device is the Exar XR17V35 eval. board. The root is detected but the device is not.

The kernel is 3.10.17-1.0.1_ga and there is no PCI enabled in U-Boot.

Probing the signals I find that the power and reset signals toggle as expected, but there is no reference clock at all (so no wonder the phy link does not come up).

Here are some logs:

root@imx6qsabresd:~# dmesg | grep pci

imx6q-pcie 1ffc000.pcie: phy link never came up

pci_bus 0000:00: root bus resource [io  0x1000-0x10000]

pci_bus 0000:00: root bus resource [mem 0x01000000-0x01efffff]

pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]

pci_bus 0000:00: scanning bus

pci 0000:00:00.0: [16c3:abcd] type 01 class 0x060400

pci 0000:00:00.0: reg 10: [mem 0x00000000-0x000fffff]

pci 0000:00:00.0: reg 38: [mem 0x00000000-0x0000ffff pref]

pci 0000:00:00.0: calling pci_fixup_ide_bases+0x0/0x3c

pci 0000:00:00.0: supports D1

pci 0000:00:00.0: PME# supported from D0 D1 D3hot D3cold

pci 0000:00:00.0: PME# disabled

pci_bus 0000:00: fixups for bus

pci 0000:00:00.0: scanning [bus 01-01] behind bridge, pass 0

pci 0000:00:00.0: scanning [bus 00-00] behind bridge, pass 1

pci_bus 0000:01: scanning bus

pci_bus 0000:01: fixups for bus

pci_bus 0000:01: bus scan returning with max=01

pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01

pci_bus 0000:00: bus scan returning with max=01

pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 01

pci 0000:00:00.0: fixup irq: got 155

pci 0000:00:00.0: assigning IRQ 155

pci 0000:00:00.0: BAR 0: assigned [mem 0x01000000-0x010fffff]

pci 0000:00:00.0: BAR 0: set to [mem 0x01000000-0x010fffff] (PCI address [0x1000000-0x10fffff])

pci 0000:00:00.0: BAR 6: assigned [mem 0x01100000-0x0110ffff pref]

pci 0000:00:00.0: PCI bridge to [bus 01]

pci_bus 0000:00: resource 4 [io  0x1000-0x10000]

pci_bus 0000:00: resource 5 [mem 0x01000000-0x01efffff]

ehci-pci: EHCI PCI platform driver

Clocks (/sys/kernel/debug/clk) - the 125 MHz clock is what I would expect:

pcie_axi_sel             axi                       1  264000000

pcie_axi                 pcie_axi_sel              1  264000000

pcie_ref                 pll6_enet                 1  125000000

pcie_ref_125m            pcie_ref                  1  125000000

Kernel config:

#

# Bus support

#

CONFIG_PCI=y

CONFIG_PCI_DOMAINS=y

CONFIG_PCI_SYSCALL=y

CONFIG_ARCH_SUPPORTS_MSI=y

CONFIG_PCI_MSI=y

CONFIG_PCI_DEBUG=y

CONFIG_PCI_STUB=y

CONFIG_PCI_ATS=y

CONFIG_PCI_IOV=y

#

# PCI host controller drivers

#

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

Any suggestions as to what I am missing? Is my SabreSD board faulty?

I also tried to add PCI support to U-Boot 2014.01, I tried the kernel 3.0.35 but to no avail.

Thanks and regards,

Lars

Labels (2)
Tags (4)
0 Kudos
9 Replies

1,617 Views
frankba
Contributor III

Hi lmhdoms,


is the ref board mini PCIe or are you using adaptors ? I had lots of trouble with adaptors and instrumented the imx6_pcie_link_up function with printk in linux 3.10.17 (drivers/pci/host/pci-imx6.c) to see what happened.

In my case, it turned out that the link quality was too bad. Your log message "phy link never came up" might indicate similar issues.


Frank

0 Kudos

1,617 Views
lmhdoms
Contributor III

Hi Frank,

Here is a photo of the boards, we use an adaptor GH-EMLX1 between SabreSD and the Exar board. The Exar board and adaptor is tested OK on an x86 SBC.

The register PMU_MISC1n (0x020C8160) is: 8000 040B, which enables output buffer and PCIe clock for LVDS1. I guess it is ok, yet no clock appears.

Regards,

Lars

2015-03-05 09.14.48.jpg

0 Kudos

1,617 Views
sumit8915
Contributor III

Hi Lars,

 

I have connected a mini PCIE based WLAN module on sabre SD board and got it working.

Initially i faced some problem but after that it worked.

Is it the 100MHZ clock which is not coming in your case?

Can you Check "  MPCIE_3V3 " Volatge on the Sabre board after connecting the EXAR board with it.?

Thanks

Sumit

0 Kudos

1,617 Views
igorpadykov
NXP Employee
NXP Employee

Hilmhdoms

suggest to set configuration as described in attached

document sect.42.4 Using PCIe Endpoint and Running Tests

and add Exar XR17V3x drivers

exoter-rover/drivers-exar_pcie_uart · GitHub

I am afraid PCIe is not supported in U-Boot.

Best regards

igor

0 Kudos

1,617 Views
lmhdoms
Contributor III

Hi Igor,

Thanks for your answer. I checked the ref. manual and don't see anything I need to do - I am not enabling the EP mode, which I believe is correct... As for the Exar driver I got the latest from Exar, but as long as the PCI link is not established, the driver can't be the problem.

Does anyone have PCIe working on the SabreSD board?

Regards,

Lars

0 Kudos

1,617 Views
igorpadykov
NXP Employee
NXP Employee

Hi Lars

description in document is not about enabling the EP mode,

could you confirm that defconfig has:

Freescale i.MX6 PCIe controller

-> Bus support

-> PCI host controller drivers

~igor

0 Kudos

1,617 Views
lmhdoms
Contributor III

Hi Igor,

Please see the initial post, I listed which PCI options are enabled in my .config file. There are both bus support and host controller entries, are they what you are asking for?

Regards,

Lars

0 Kudos

1,617 Views
igorpadykov
NXP Employee
NXP Employee

Hi Lars

please look at below links with working PCIe on 3.10.17

(on first one can find configs)

pcie "phy link never came up" on sabresd running dora 3.10.17_beta

Re: PCIe host controller driver in 3.10.17 kernel

~igor

0 Kudos

1,617 Views
lmhdoms
Contributor III

Hi Igor,

I already studied those posts, but don't think they help me. However, I understand that it is correct not to enable RC and EP, and also to have correct clock termination resistors, which should be the case on my SabreSD board.

Regards,

Lars

0 Kudos