[LEDE-DEV] WPQ864 PCIe card on PCIe3 does not work when there is no PCIe card on PCIe1

苏士涛 tinnnysu at gmail.com
Tue May 9 19:21:57 PDT 2017


I have a WPQ864 board, which is based on AP148. When I enable the
PCIe3, some thing strange happened. PCIe card on PCIe3(0x1b900000)
does not work when there is no PCIe card on PCIe1(0x1b500000). But
QSDK works good.

DTS file I make:
https://raw.githubusercontent.com/tinnnysu/source/add-support-for-wpq864/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-wpq864-1g.dts

When PCIe card on PCIe1 and PCIe3, dmesg output:
[    0.149782] 1b500000.pci supply vdda not found, using dummy regulator
[    0.149884] 1b500000.pci supply vdda_phy not found, using dummy regulator
[    0.149980] 1b500000.pci supply vdda_refclk not found, using dummy regulator
[    0.150623] OF: PCI: host bridge /soc/pci at 1b500000 ranges:
[    0.150662] OF: PCI:    IO 0x0fe00000..0x0fefffff -> 0x0fe00000
[    0.150687] OF: PCI:   MEM 0x08000000..0x0fdfffff -> 0x08000000
[    0.260563] qcom-pcie 1b500000.pci: link up
[    0.262633] qcom-pcie 1b500000.pci: PCI host bridge to bus 0000:00
[    0.262655] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.262674] pci_bus 0000:00: root bus resource [io  0x0000-0xfffff]
(bus address [0xfe00000-0xfefffff])
[    0.262688] pci_bus 0000:00: root bus resource [mem 0x08000000-0x0fdfffff]
[    0.263217] PCI: bus0: Fast back to back transfers disabled
[    0.265467] PCI: bus1: Fast back to back transfers disabled
[    0.265807] pci 0000:00:00.0: BAR 8: assigned [mem 0x08000000-0x081fffff]
[    0.265831] pci 0000:01:00.0: BAR 0: assigned [mem
0x08000000-0x081fffff 64bit]
[    0.265965] pci 0000:00:00.0: PCI bridge to [bus 01]
[    0.265989] pci 0000:00:00.0:   bridge window [mem 0x08000000-0x081fffff]
[    0.266741] 1b700000.pci supply vdda not found, using dummy regulator
[    0.266845] 1b700000.pci supply vdda_phy not found, using dummy regulator
[    0.266933] 1b700000.pci supply vdda_refclk not found, using dummy regulator
[    0.267541] OF: PCI: host bridge /soc/pci at 1b700000 ranges:
[    0.267580] OF: PCI:    IO 0x31e00000..0x31efffff -> 0x31e00000
[    0.267600] OF: PCI:   MEM 0x2e000000..0x31dfffff -> 0x2e000000
[    1.299852] qcom-pcie 1b700000.pci: phy link never came up
[    1.302148] ------------[ cut here ]------------
[    1.302171] WARNING: CPU: 0 PID: 1 at
drivers/clk/qcom/clk-branch.c:97 clk_branch_toggle+0x118/0x140
[    1.302182] pcie1_phy_clk status stuck at 'on'
[    1.302190] Modules linked in:
[    1.302212] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.9.20 #0
[    1.302222] Hardware name: Generic DT based system
[    1.302270] [<c0215670>] (unwind_backtrace) from [<c0211f1c>]
(show_stack+0x10/0x14)
[    1.302294] [<c0211f1c>] (show_stack) from [<c0393f04>]
(dump_stack+0x7c/0x9c)
[    1.302320] [<c0393f04>] (dump_stack) from [<c021d70c>] (__warn+0xbc/0xec)
[    1.302343] [<c021d70c>] (__warn) from [<c021d770>]
(warn_slowpath_fmt+0x34/0x44)
[    1.302364] [<c021d770>] (warn_slowpath_fmt) from [<c03f3f6c>]
(clk_branch_toggle+0x118/0x140)
[    1.302387] [<c03f3f6c>] (clk_branch_toggle) from [<c03eb5bc>]
(clk_core_disable+0x6c/0x7c)
[    1.302409] [<c03eb5bc>] (clk_core_disable) from [<c03ec4d8>]
(clk_core_disable_lock+0x18/0x24)
[    1.302439] [<c03ec4d8>] (clk_core_disable_lock) from [<c03e903c>]
(qcom_pcie_deinit_v0+0x6c/0xb8)
[    1.302460] [<c03e903c>] (qcom_pcie_deinit_v0) from [<c03e8b9c>]
(dw_pcie_host_init+0x3a0/0x4b4)
[    1.302482] [<c03e8b9c>] (dw_pcie_host_init) from [<c03e9a50>]
(qcom_pcie_probe+0x178/0x1d0)
[    1.302511] [<c03e9a50>] (qcom_pcie_probe) from [<c042279c>]
(platform_drv_probe+0x38/0x6c)
[    1.302535] [<c042279c>] (platform_drv_probe) from [<c0421284>]
(driver_probe_device+0x10c/0x254)
[    1.302553] [<c0421284>] (driver_probe_device) from [<c042144c>]
(__driver_attach+0x80/0xa4)
[    1.302572] [<c042144c>] (__driver_attach) from [<c041fbd8>]
(bus_for_each_dev+0x68/0x8c)
[    1.302593] [<c041fbd8>] (bus_for_each_dev) from [<c0420a4c>]
(bus_add_driver+0xc8/0x1e4)
[    1.302612] [<c0420a4c>] (bus_add_driver) from [<c0421a3c>]
(driver_register+0x9c/0xe0)
[    1.302632] [<c0421a3c>] (driver_register) from [<c0209778>]
(do_one_initcall+0xb8/0x174)
[    1.302661] [<c0209778>] (do_one_initcall) from [<c071adc8>]
(kernel_init_freeable+0x120/0x1e8)
[    1.302692] [<c071adc8>] (kernel_init_freeable) from [<c05c2204>]
(kernel_init+0xc/0xf4)
[    1.302718] [<c05c2204>] (kernel_init) from [<c020ec78>]
(ret_from_fork+0x14/0x3c)
[    1.302737] ---[ end trace 23593370cb814e5a ]---
[    1.302991] qcom-pcie 1b700000.pci: PCI host bridge to bus 0001:00
[    1.303010] pci_bus 0001:00: root bus resource [bus 00-ff]
[    1.303025] pci_bus 0001:00: root bus resource [mem 0x2e000000-0x31dfffff]
[    1.303090] PCI: bus0: Fast back to back transfers enabled
[    1.303394] ipq8064-pinctrl 800000.pinmux: invalid group "gpio16"
for function "pcie3_rst"
[    1.303594] 1b900000.pci supply vdda not found, using dummy regulator
[    1.303693] 1b900000.pci supply vdda_phy not found, using dummy regulator
[    1.303780] 1b900000.pci supply vdda_refclk not found, using dummy regulator
[    1.304422] OF: PCI: host bridge /soc/pci at 1b900000 ranges:
[    1.304459] OF: PCI:    IO 0x35e00000..0x35efffff -> 0x35e00000
[    1.304482] OF: PCI:   MEM 0x32000000..0x35dfffff -> 0x32000000
[    1.414379] qcom-pcie 1b900000.pci: link up
[    1.416332] qcom-pcie 1b900000.pci: PCI host bridge to bus 0002:00
[    1.416351] pci_bus 0002:00: root bus resource [bus 00-ff]
[    1.416365] pci_bus 0002:00: root bus resource [mem 0x32000000-0x35dfffff]
[    1.416835] PCI: bus0: Fast back to back transfers disabled
[    1.419166] PCI: bus1: Fast back to back transfers disabled
[    1.419649] pci 0002:00:00.0: BAR 8: assigned [mem 0x32000000-0x322fffff]
[    1.419675] pci 0002:01:00.0: BAR 0: assigned [mem
0x32000000-0x321fffff 64bit]
[    1.419806] pci 0002:01:00.0: BAR 6: assigned [mem
0x32200000-0x3220ffff pref]
[    1.419821] pci 0002:00:00.0: PCI bridge to [bus 01]
[    1.419840] pci 0002:00:00.0:   bridge window [mem 0x32000000-0x322fffff]

When there is only one PCIe card on PCIe3 dmesg output:
[    0.149895] 1b500000.pci supply vdda not found, using dummy regulator
[    0.149996] 1b500000.pci supply vdda_phy not found, using dummy regulator
[    0.150092] 1b500000.pci supply vdda_refclk not found, using dummy regulator
[    0.150741] OF: PCI: host bridge /soc/pci at 1b500000 ranges:
[    0.150781] OF: PCI:    IO 0x0fe00000..0x0fefffff -> 0x0fe00000
[    0.150807] OF: PCI:   MEM 0x08000000..0x0fdfffff -> 0x08000000
[    1.182859] qcom-pcie 1b500000.pci: phy link never came up
[    1.185211] ------------[ cut here ]------------
[    1.185238] WARNING: CPU: 0 PID: 1 at
drivers/clk/qcom/clk-branch.c:97 clk_branch_toggle+0x118/0x140
[    1.185249] pcie_phy_clk status stuck at 'on'
[    1.185259] Modules linked in:
[    1.185281] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.9.20 #0
[    1.185292] Hardware name: Generic DT based system
[    1.185340] [<c0215670>] (unwind_backtrace) from [<c0211f1c>]
(show_stack+0x10/0x14)
[    1.185365] [<c0211f1c>] (show_stack) from [<c0393f04>]
(dump_stack+0x7c/0x9c)
[    1.185391] [<c0393f04>] (dump_stack) from [<c021d70c>] (__warn+0xbc/0xec)
[    1.185413] [<c021d70c>] (__warn) from [<c021d770>]
(warn_slowpath_fmt+0x34/0x44)
[    1.185434] [<c021d770>] (warn_slowpath_fmt) from [<c03f3f6c>]
(clk_branch_toggle+0x118/0x140)
[    1.185456] [<c03f3f6c>] (clk_branch_toggle) from [<c03eb5bc>]
(clk_core_disable+0x6c/0x7c)
[    1.185479] [<c03eb5bc>] (clk_core_disable) from [<c03ec4d8>]
(clk_core_disable_lock+0x18/0x24)
[    1.185508] [<c03ec4d8>] (clk_core_disable_lock) from [<c03e903c>]
(qcom_pcie_deinit_v0+0x6c/0xb8)
[    1.185531] [<c03e903c>] (qcom_pcie_deinit_v0) from [<c03e8b9c>]
(dw_pcie_host_init+0x3a0/0x4b4)
[    1.185553] [<c03e8b9c>] (dw_pcie_host_init) from [<c03e9a50>]
(qcom_pcie_probe+0x178/0x1d0)
[    1.185583] [<c03e9a50>] (qcom_pcie_probe) from [<c042279c>]
(platform_drv_probe+0x38/0x6c)
[    1.185608] [<c042279c>] (platform_drv_probe) from [<c0421284>]
(driver_probe_device+0x10c/0x254)
[    1.185626] [<c0421284>] (driver_probe_device) from [<c042144c>]
(__driver_attach+0x80/0xa4)
[    1.185645] [<c042144c>] (__driver_attach) from [<c041fbd8>]
(bus_for_each_dev+0x68/0x8c)
[    1.185668] [<c041fbd8>] (bus_for_each_dev) from [<c0420a4c>]
(bus_add_driver+0xc8/0x1e4)
[    1.185687] [<c0420a4c>] (bus_add_driver) from [<c0421a3c>]
(driver_register+0x9c/0xe0)
[    1.185708] [<c0421a3c>] (driver_register) from [<c0209778>]
(do_one_initcall+0xb8/0x174)
[    1.185738] [<c0209778>] (do_one_initcall) from [<c071adc8>]
(kernel_init_freeable+0x120/0x1e8)
[    1.185771] [<c071adc8>] (kernel_init_freeable) from [<c05c2204>]
(kernel_init+0xc/0xf4)
[    1.185797] [<c05c2204>] (kernel_init) from [<c020ec78>]
(ret_from_fork+0x14/0x3c)
[    1.185816] ---[ end trace 99f464ac19438df2 ]---
[    1.186111] qcom-pcie 1b500000.pci: PCI host bridge to bus 0000:00
[    1.186132] pci_bus 0000:00: root bus resource [bus 00-ff]
[    1.186151] pci_bus 0000:00: root bus resource [io  0x0000-0xfffff]
(bus address [0xfe00000-0xfefffff])
[    1.186165] pci_bus 0000:00: root bus resource [mem 0x08000000-0x0fdfffff]
[    1.186237] PCI: bus0: Fast back to back transfers enabled
[    1.186561] 1b700000.pci supply vdda not found, using dummy regulator
[    1.186664] 1b700000.pci supply vdda_phy not found, using dummy regulator
[    1.186751] 1b700000.pci supply vdda_refclk not found, using dummy regulator
[    1.187377] OF: PCI: host bridge /soc/pci at 1b700000 ranges:
[    1.187417] OF: PCI:    IO 0x31e00000..0x31efffff -> 0x31e00000
[    1.187438] OF: PCI:   MEM 0x2e000000..0x31dfffff -> 0x2e000000
[    2.219493] qcom-pcie 1b700000.pci: phy link never came up
[    2.221795] ------------[ cut here ]------------
[    2.221817] WARNING: CPU: 0 PID: 1 at
drivers/clk/qcom/clk-branch.c:97 clk_branch_toggle+0x118/0x140
[    2.221826] pcie1_phy_clk status stuck at 'on'
[    2.221835] Modules linked in:
[    2.221854] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W       4.9.20 #0
[    2.221865] Hardware name: Generic DT based system
[    2.221895] [<c0215670>] (unwind_backtrace) from [<c0211f1c>]
(show_stack+0x10/0x14)
[    2.221915] [<c0211f1c>] (show_stack) from [<c0393f04>]
(dump_stack+0x7c/0x9c)
[    2.221935] [<c0393f04>] (dump_stack) from [<c021d70c>] (__warn+0xbc/0xec)
[    2.221954] [<c021d70c>] (__warn) from [<c021d770>]
(warn_slowpath_fmt+0x34/0x44)
[    2.221974] [<c021d770>] (warn_slowpath_fmt) from [<c03f3f6c>]
(clk_branch_toggle+0x118/0x140)
[    2.221992] [<c03f3f6c>] (clk_branch_toggle) from [<c03eb5bc>]
(clk_core_disable+0x6c/0x7c)
[    2.222010] [<c03eb5bc>] (clk_core_disable) from [<c03ec4d8>]
(clk_core_disable_lock+0x18/0x24)
[    2.222033] [<c03ec4d8>] (clk_core_disable_lock) from [<c03e903c>]
(qcom_pcie_deinit_v0+0x6c/0xb8)
[    2.222053] [<c03e903c>] (qcom_pcie_deinit_v0) from [<c03e8b9c>]
(dw_pcie_host_init+0x3a0/0x4b4)
[    2.222074] [<c03e8b9c>] (dw_pcie_host_init) from [<c03e9a50>]
(qcom_pcie_probe+0x178/0x1d0)
[    2.222097] [<c03e9a50>] (qcom_pcie_probe) from [<c042279c>]
(platform_drv_probe+0x38/0x6c)
[    2.222116] [<c042279c>] (platform_drv_probe) from [<c0421284>]
(driver_probe_device+0x10c/0x254)
[    2.222134] [<c0421284>] (driver_probe_device) from [<c042144c>]
(__driver_attach+0x80/0xa4)
[    2.222152] [<c042144c>] (__driver_attach) from [<c041fbd8>]
(bus_for_each_dev+0x68/0x8c)
[    2.222169] [<c041fbd8>] (bus_for_each_dev) from [<c0420a4c>]
(bus_add_driver+0xc8/0x1e4)
[    2.222187] [<c0420a4c>] (bus_add_driver) from [<c0421a3c>]
(driver_register+0x9c/0xe0)
[    2.222206] [<c0421a3c>] (driver_register) from [<c0209778>]
(do_one_initcall+0xb8/0x174)
[    2.222229] [<c0209778>] (do_one_initcall) from [<c071adc8>]
(kernel_init_freeable+0x120/0x1e8)
[    2.222252] [<c071adc8>] (kernel_init_freeable) from [<c05c2204>]
(kernel_init+0xc/0xf4)
[    2.222274] [<c05c2204>] (kernel_init) from [<c020ec78>]
(ret_from_fork+0x14/0x3c)
[    2.222287] ---[ end trace 99f464ac19438df3 ]---
[    2.222533] qcom-pcie 1b700000.pci: PCI host bridge to bus 0001:00
[    2.222551] pci_bus 0001:00: root bus resource [bus 00-ff]
[    2.222565] pci_bus 0001:00: root bus resource [mem 0x2e000000-0x31dfffff]
[    2.222629] PCI: bus0: Fast back to back transfers enabled
[    2.222757] ipq8064-pinctrl 800000.pinmux: invalid group "gpio16"
for function "pcie3_rst"
[    2.222961] 1b900000.pci supply vdda not found, using dummy regulator
[    2.223063] 1b900000.pci supply vdda_phy not found, using dummy regulator
[    2.223152] 1b900000.pci supply vdda_refclk not found, using dummy regulator
[    2.223796] OF: PCI: host bridge /soc/pci at 1b900000 ranges:
[    2.223829] OF: PCI:    IO 0x35e00000..0x35efffff -> 0x35e00000
[    2.223854] OF: PCI:   MEM 0x32000000..0x35dfffff -> 0x32000000
[    3.257163] qcom-pcie 1b900000.pci: phy link never came up
[    3.259421] ------------[ cut here ]------------
[    3.259442] WARNING: CPU: 0 PID: 1 at
drivers/clk/qcom/clk-branch.c:97 clk_branch_toggle+0x118/0x140
[    3.259452] pcie2_phy_clk status stuck at 'on'
[    3.259461] Modules linked in:
[    3.259480] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W       4.9.20 #0
[    3.259490] Hardware name: Generic DT based system
[    3.259521] [<c0215670>] (unwind_backtrace) from [<c0211f1c>]
(show_stack+0x10/0x14)
[    3.259542] [<c0211f1c>] (show_stack) from [<c0393f04>]
(dump_stack+0x7c/0x9c)
[    3.259564] [<c0393f04>] (dump_stack) from [<c021d70c>] (__warn+0xbc/0xec)
[    3.259583] [<c021d70c>] (__warn) from [<c021d770>]
(warn_slowpath_fmt+0x34/0x44)
[    3.259602] [<c021d770>] (warn_slowpath_fmt) from [<c03f3f6c>]
(clk_branch_toggle+0x118/0x140)
[    3.259620] [<c03f3f6c>] (clk_branch_toggle) from [<c03eb5bc>]
(clk_core_disable+0x6c/0x7c)
[    3.259638] [<c03eb5bc>] (clk_core_disable) from [<c03ec4d8>]
(clk_core_disable_lock+0x18/0x24)
[    3.259662] [<c03ec4d8>] (clk_core_disable_lock) from [<c03e903c>]
(qcom_pcie_deinit_v0+0x6c/0xb8)
[    3.259682] [<c03e903c>] (qcom_pcie_deinit_v0) from [<c03e8b9c>]
(dw_pcie_host_init+0x3a0/0x4b4)
[    3.259703] [<c03e8b9c>] (dw_pcie_host_init) from [<c03e9a50>]
(qcom_pcie_probe+0x178/0x1d0)
[    3.259728] [<c03e9a50>] (qcom_pcie_probe) from [<c042279c>]
(platform_drv_probe+0x38/0x6c)
[    3.259749] [<c042279c>] (platform_drv_probe) from [<c0421284>]
(driver_probe_device+0x10c/0x254)
[    3.259767] [<c0421284>] (driver_probe_device) from [<c042144c>]
(__driver_attach+0x80/0xa4)
[    3.259786] [<c042144c>] (__driver_attach) from [<c041fbd8>]
(bus_for_each_dev+0x68/0x8c)
[    3.259804] [<c041fbd8>] (bus_for_each_dev) from [<c0420a4c>]
(bus_add_driver+0xc8/0x1e4)
[    3.259821] [<c0420a4c>] (bus_add_driver) from [<c0421a3c>]
(driver_register+0x9c/0xe0)
[    3.259840] [<c0421a3c>] (driver_register) from [<c0209778>]
(do_one_initcall+0xb8/0x174)
[    3.259864] [<c0209778>] (do_one_initcall) from [<c071adc8>]
(kernel_init_freeable+0x120/0x1e8)
[    3.259891] [<c071adc8>] (kernel_init_freeable) from [<c05c2204>]
(kernel_init+0xc/0xf4)
[    3.259913] [<c05c2204>] (kernel_init) from [<c020ec78>]
(ret_from_fork+0x14/0x3c)
[    3.259927] ---[ end trace 99f464ac19438df4 ]---
[    3.260191] qcom-pcie 1b900000.pci: PCI host bridge to bus 0002:00
[    3.260209] pci_bus 0002:00: root bus resource [bus 00-ff]
[    3.260224] pci_bus 0002:00: root bus resource [mem 0x32000000-0x35dfffff]
[    3.260287] PCI: bus0: Fast back to back transfers enabled

Would somebody give me some tips?
Thanks.

WPQ864 Datasheet:
http://www.compex.com.sg/wp-content/uploads/2015/11/WPQ864-6A02-v3.1-WH-141.pdf
WPQ864 Hardware Guide:
http://www.compex.com.sg/wp-content/uploads/2015/11/WPQ864-Hw-Guide-v1.25.pdf
WPQ864 QSDK Download: http://downloads.compex.com.sg/?dir=uploads/QSDK/WPQ864/
-- 
Shitao Su



More information about the Lede-dev mailing list