RE: iMX6q PCIe phy link never came up on kernel v4.4.x

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: Roberto Fichera [mailto:kernel@xxxxxxxxxxxxx]
> Sent: Tuesday, March 15, 2016 7:08 PM
> To: Lucas Stach
> Cc: Richard Zhu; Bjorn Helgaas; linux-pci@xxxxxxxxxxxxxxx; Richard Zhu; Fabio
> Estevam
> Subject: Re: iMX6q PCIe phy link never came up on kernel v4.4.x
> 
> On 03/14/2016 09:44 AM, Roberto Fichera wrote:
> > On 03/10/2016 06:35 PM, Roberto Fichera wrote:
> >> > On 03/08/2016 03:53 PM, Lucas Stach wrote:
> >>> >> Am Dienstag, den 08.03.2016, 15:39 +0100 schrieb Roberto Fichera:
> >>>>> >>>> On 03/03/2016 07:34 PM, Roberto Fichera wrote:
> >>>>>>> >>>>>> On 03/03/2016 03:34 PM, Roberto Fichera wrote:
> >>>>>>> >>>>>>
> >>>>>>> >>>>>> I've also checked clock, pll, PMU_MISC1 and CCGR[45]
> >>>>>>> >>>>>> registers, all looks fine and exactly equal to uboot settings.
> >>>>>>> >>>>>>
> >>>>>>> >>>>>> However I'm investigating a possible HW issue in the LDVS
> >>>>>>> >>>>>> pad wiring against the bridge XIO2001. Let's see once this is
> also clarified.
> >>>>> >>>> Our HW engineer has applied a fix to LVDS vs XIO2001 clock wiring.
> However I'm still getting the same problem.
> >>>>> >>>>
> >>>>> >>>> I've tried to boot a kernel with uboot not setting up the PCIe subsys
> and below there is the resulting kernel log.
> >>>>> >>>> Note that the CCGR5 doesn't set the CG2 field associated to
> >>>>> >>>> sata_clk_enable. I think this field should be set all 1 to enable the
> SATA ref at 100MHz, right?
> >>>>> >>>>
> >>> >> No, the reference manual is a bit confusing about this, but the
> >>> >> LVDS1 clock output is driven by sata_ref_100mhz, not the sata_clk gate.
> >>> >>
> >>> >> So the only thing that needs to be enabled for LVDS clock output
> >>> >> is the 100MHz clock output from PLL ENET. (Register
> >>> >> CCM_ANALOG_PLL_ENETn bit 20).
> >> > Guys! No more idea where to look at! Still getting PCIe link
> >> > reaching L0 state under uboot but doesn't progress more than
> >> > POLL_ACTIVE or POLL_COMPLIANCE states under kernel.
> >> >
> >> > Any idea what to do?
> 
> Just to say that I've fixed the problem by asserting PERST before to drop PCIe
> refclk and enable power down. PERST is finally released at the usual place.
> 
[Richard] It's great to hear it.

> [    0.237473] PCI host bridge /soc/pcie@0x01000000 ranges:
> [    0.237494]   No bus range found for /soc/pcie@0x01000000, using [bus 00-ff]
> [    0.237545]   err 0x01f00000..0x01f7ffff -> 0x01f00000
> [    0.237585]    IO 0x01f80000..0x01f8ffff -> 0x00000000
> [    0.237671]   MEM 0x01000000..0x01efffff -> 0x01000000
> [    0.353847] imx6q-pcie 1ffc000.pcie: Link: Gen2 disabled
> [    0.353866] imx6q-pcie 1ffc000.pcie: Link up, Gen=1
> [    0.354441] imx6q-pcie 1ffc000.pcie: PCI host bridge to bus 0000:00
> [    0.354465] pci_bus 0000:00: root bus resource [bus 00-ff]
> [    0.354483] pci_bus 0000:00: root bus resource [??? 0x01f00000-0x01f7ffff
> flags 0x0]
> [    0.354499] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
> [    0.354513] pci_bus 0000:00: root bus resource [mem 0x01000000-0x01efffff]
> [    0.354640] pci 0000:00:00.0: [16c3:abcd] type 01 class 0x060400
> [    0.354707] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff]
> [    0.354745] pci 0000:00:00.0: reg 0x38: [mem 0x00000000-0x0000ffff pref]
> [    0.354932] pci 0000:00:00.0: supports D1
> [    0.354952] pci 0000:00:00.0: PME# supported from D0 D1 D3hot D3cold
> [    0.355713] PCI: bus0: Fast back to back transfers disabled
> [    0.356139] pci 0000:01:00.0: [104c:8240] type 01 class 0x060400
> [    0.356688] pci 0000:01:00.0: supports D1 D2
> [    0.369318] PCI: bus1: Fast back to back transfers disabled
> [    0.369347] pci 0000:01:00.0: bridge configuration invalid ([bus 00-00]),
> reconfiguring
> [    0.369844] pci_bus 0000:02: busn_res: can not insert [bus 02-ff] under [bus
> 01] (conflicts with (null) [bus 01])
> [    0.377975] pci 0000:02:04.0: [1397:08b4] type 00 class 0x020400
> [    0.378120] pci 0000:02:04.0: reg 0x10: [io  0x0000-0x0007]
> [    0.378174] pci 0000:02:04.0: reg 0x14: [mem 0x00000000-0x00000fff]
> [    0.378536] pci 0000:02:04.0: supports D1 D2
> [    0.378550] pci 0000:02:04.0: PME# supported from D0 D1 D2 D3hot
> [    0.379453] PCI: bus2: Fast back to back transfers disabled
> [    0.379474] pci_bus 0000:02: busn_res: [bus 02-ff] end is updated to 02
> [    0.379494] pci_bus 0000:02: busn_res: can not insert [bus 02] under [bus 01]
> (conflicts with (null) [bus 01])
> [    0.379524] pci_bus 0000:02: [bus 02] partially hidden behind bridge 0000:01
> [bus 01]
> [    0.379548] pci 0000:00:00.0: bridge has subordinate 01 but max busn 02
> [    0.379837] pci 0000:00:00.0: BAR 0: assigned [mem 0x01000000-0x010fffff]
> [    0.379865] pci 0000:00:00.0: BAR 8: assigned [mem 0x01100000-0x011fffff]
> [    0.379884] pci 0000:00:00.0: BAR 6: assigned [mem 0x01200000-0x0120ffff
> pref]
> [    0.379900] pci 0000:00:00.0: BAR 7: assigned [io  0x1000-0x1fff]
> [    0.379927] pci 0000:01:00.0: BAR 8: assigned [mem 0x01100000-0x011fffff]
> [    0.379942] pci 0000:01:00.0: BAR 7: assigned [io  0x1000-0x1fff]
> [    0.379963] pci 0000:02:04.0: BAR 1: assigned [mem 0x01100000-0x01100fff]
> [    0.379998] pci 0000:02:04.0: BAR 0: assigned [io  0x1000-0x1007]
> [    0.380030] pci 0000:01:00.0: PCI bridge to [bus 02]
> [    0.380054] pci 0000:01:00.0:   bridge window [io  0x1000-0x1fff]
> [    0.380091] pci 0000:01:00.0:   bridge window [mem 0x01100000-0x011fffff]
> [    0.380149] pci 0000:00:00.0: PCI bridge to [bus 01]
> [    0.380164] pci 0000:00:00.0:   bridge window [io  0x1000-0x1fff]
> [    0.380183] pci 0000:00:00.0:   bridge window [mem 0x01100000-0x011fffff]
> [    0.380950] pcieport 0000:00:00.0: Signaling PME through PCIe PME interrupt
> [    0.380970] pci 0000:01:00.0: Signaling PME through PCIe PME interrupt
> [    0.380983] pci 0000:02:04.0: Signaling PME through PCIe PME interrupt
> [    0.381003] pcie_pme 0000:00:00.0:pcie01: service driver pcie_pme loaded
> [    0.381407] aer 0000:00:00.0:pcie02: service driver aer loaded

��.n��������+%������w��{.n�����{���"�)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux