i.MX6 PCIE cannot work for yocto bsp 3.14.28_1.0.0

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

i.MX6 PCIE cannot work for yocto bsp 3.14.28_1.0.0

1,395 Views
charleshuang
Senior Contributor II

1. After I insert wifi mini-pcie card, the console displays error message:

imx6q-pcie 1ffc000.pcie: PCI host bridge to bus 0000:00

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

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

pci_bus 0000:00: root bus resource [bus 00-ff]

PCI: bus0: Fast back to back transfers disabled

PCI: bus1: Fast back to back transfers disabled

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

pci 0000:00:00.0: BAR 8: assigned [mem 0x01100000-0x011fffff]

pci 0000:00:00.0: BAR 6: assigned [mem 0x01200000-0x0120ffff pref]

pci 0000:00:00.0: BAR 7: assigned [io  0x1000-0x1fff]

pci 0000:01:00.0: BAR 2: assigned [mem 0x01100000-0x01103fff 64bit]

pci 0000:01:00.0: BAR 0: assigned [io  0x1000-0x10ff]

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

pci 0000:00:00.0:   bridge window [io  0x1000-0x1fff]

pci 0000:00:00.0:   bridge window [mem 0x01100000-0x011fffff]

------------[ cut here ]------------

WARNING: CPU: 0 PID: 1 at kernel/irq/manage.c:1412 request_threaded_irq+0xfc/0x124()

Modules linked in:

CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.14.28-svn1420 #1

[<80015638>] (unwind_backtrace) from [<80011714>] (show_stack+0x10/0x14)

[<80011714>] (show_stack) from [<806801a8>] (dump_stack+0x7c/0xbc)

[<806801a8>] (dump_stack) from [<8002d9a8>] (warn_slowpath_common+0x70/0x8c)

[<8002d9a8>] (warn_slowpath_common) from [<8002da60>] (warn_slowpath_null+0x1c/0x24)

[<8002da60>] (warn_slowpath_null) from [<80069f94>] (request_threaded_irq+0xfc/0x124)

[<80069f94>] (request_threaded_irq) from [<802cba38>] (pcie_pme_probe+0x98/0x1b4)

[<802cba38>] (pcie_pme_probe) from [<802c9448>] (pcie_port_probe_service+0x38/0x84)

[<802c9448>] (pcie_port_probe_service) from [<8034c778>] (driver_probe_device+0x110/0x24c)

[<8034c778>] (driver_probe_device) from [<8034ad7c>] (bus_for_each_drv+0x64/0x98)

[<8034ad7c>] (bus_for_each_drv) from [<8034c638>] (device_attach+0x74/0x88)

[<8034c638>] (device_attach) from [<8034bcbc>] (bus_probe_device+0x84/0xa8)

[<8034bcbc>] (bus_probe_device) from [<8034a138>] (device_add+0x450/0x538)

[<8034a138>] (device_add) from [<802c96f4>] (pcie_port_device_register+0x1c8/0x2a8)

[<802c96f4>] (pcie_port_device_register) from [<802c9a6c>] (pcie_portdrv_probe+0x3c/0xa4)

[<802c9a6c>] (pcie_portdrv_probe) from [<802bf8e8>] (pci_device_probe+0x74/0xc8)

[<802bf8e8>] (pci_device_probe) from [<8034c778>] (driver_probe_device+0x110/0x24c)

[<8034c778>] (driver_probe_device) from [<8034ad7c>] (bus_for_each_drv+0x64/0x98)

[<8034ad7c>] (bus_for_each_drv) from [<8034c638>] (device_attach+0x74/0x88)

[<8034c638>] (device_attach) from [<802b7dac>] (pci_bus_add_device+0x34/0x64)

[<802b7dac>] (pci_bus_add_device) from [<802b7ec4>] (pci_bus_add_devices+0x3c/0xa0)

[<802b7ec4>] (pci_bus_add_devices) from [<800137ec>] (pci_common_init_dev+0x224/0x2ec)

[<800137ec>] (pci_common_init_dev) from [<80caafd8>] (dw_pcie_host_init+0x640/0x670)

[<80caafd8>] (dw_pcie_host_init) from [<80cab300>] (imx6_pcie_probe+0x2e4/0x328)

[<80cab300>] (imx6_pcie_probe) from [<8034def0>] (platform_drv_probe+0x44/0xa4)

[<8034def0>] (platform_drv_probe) from [<8034c778>] (driver_probe_device+0x110/0x24c)

[<8034c778>] (driver_probe_device) from [<8034c984>] (__driver_attach+0x8c/0x90)

[<8034c984>] (__driver_attach) from [<8034acd0>] (bus_for_each_dev+0x6c/0xa0)

[<8034acd0>] (bus_for_each_dev) from [<8034bf30>] (bus_add_driver+0x148/0x1f0)

[<8034bf30>] (bus_add_driver) from [<8034cf80>] (driver_register+0x78/0xf8)

[<8034cf80>] (driver_register) from [<8034df78>] (platform_driver_probe+0x20/0xa8)

[<8034df78>] (platform_driver_probe) from [<8000889c>] (do_one_initcall+0xf8/0x154)

[<8000889c>] (do_one_initcall) from [<80c80c54>] (kernel_init_freeable+0x138/0x1d8)

[<80c80c54>] (kernel_init_freeable) from [<8067b888>] (kernel_init+0x8/0xe8)

[<8067b888>] (kernel_init) from [<8000e538>] (ret_from_fork+0x14/0x3c)

---[ end trace c3533c29af9b31ae ]---

pcie_pme: probe of 0000:00:00.0:pcie01 failed with error -22

...

...

PCI: enabling device 0000:01:00.0 (0140 -> 0143)

rtl8188ee: Using firmware rtlwifi/rtl8188efw.bin

------------[ cut here ]------------

rtlwifi: wireless switch is on

WARNING: CPU: 0 PID: 184 at kernel/irq/manage.c:1412 request_threaded_irq+0xfc/0x124()

Modules linked in: rtl8188ee(+) rtl_pci rtlwifi mac80211 cfg80211 evbug

CPU: 0 PID: 184 Comm: udevd Tainted: G        W    3.14.28-svn1420 #1

[<80015638>] (unwind_backtrace) from [<80011714>] (show_stack+0x10/0x14)

[<80011714>] (show_stack) from [<806801a8>] (dump_stack+0x7c/0xbc)

[<806801a8>] (dump_stack) from [<8002d9a8>] (warn_slowpath_common+0x70/0x8c)

[<8002d9a8>] (warn_slowpath_common) from [<8002da60>] (warn_slowpath_null+0x1c/0x24)

[<8002da60>] (warn_slowpath_null) from [<80069f94>] (request_threaded_irq+0xfc/0x124)

[<80069f94>] (request_threaded_irq) from [<7f0b4558>] (rtl_pci_probe+0x17b0/0x1a18 [rtl_pci])

[<7f0b4558>] (rtl_pci_probe [rtl_pci]) from [<802bf8e8>] (pci_device_probe+0x74/0xc8)

[<802bf8e8>] (pci_device_probe) from [<8034c778>] (driver_probe_device+0x110/0x24c)

[<8034c778>] (driver_probe_device) from [<8034c984>] (__driver_attach+0x8c/0x90)

[<8034c984>] (__driver_attach) from [<8034acd0>] (bus_for_each_dev+0x6c/0xa0)

[<8034acd0>] (bus_for_each_dev) from [<8034bf30>] (bus_add_driver+0x148/0x1f0)

[<8034bf30>] (bus_add_driver) from [<8034cf80>] (driver_register+0x78/0xf8)

[<8034cf80>] (driver_register) from [<8000889c>] (do_one_initcall+0xf8/0x154)

[<8000889c>] (do_one_initcall) from [<800850c0>] (load_module+0x198c/0x1eb4)

[<800850c0>] (load_module) from [<80085740>] (SyS_finit_module+0x68/0x78)

[<80085740>] (SyS_finit_module) from [<8000e4a0>] (ret_fast_syscall+0x0/0x30)

---[ end trace c3533c29af9b31b0 ]---

rtl8188ee: probe of 0000:01:00.0 failed with error -22

2. I refer following URL, PCIE function can work.

  a) Reference URL:

      https://community.freescale.com/message/568158#568158

      https://community.freescale.com/message/563729#563729

  b) Removing the lines for '#address-cells' and '#size-cells' fixed it:

diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi

index 732f2d2..e0cd2b1 100644

--- a/arch/arm/boot/dts/imx6qdl.dtsi

+++ b/arch/arm/boot/dts/imx6qdl.dtsi

@@ -48,8 +48,6 @@

        intc: interrupt-controller@00a01000 {

                compatible = "arm,cortex-a9-gic";

                #interrupt-cells = <3>;

-               #address-cells = <1>;

-               #size-cells = <1>;

                interrupt-controller;

                reg = <0x00a01000 0x1000>,

                      <0x00a00100 0x100>;

3. Will this solution is the right solution?

Thank you.

Best Regards,

Alex Cheng

Labels (2)
0 Kudos
2 Replies

470 Views
Yuri
NXP Employee
NXP Employee
0 Kudos

470 Views
Yuri
NXP Employee
NXP Employee

Hello,

  Strictly speaking, interrupts in device tree can be described using the

following properties:

• interrupt-controller

• #interrupt-cells

• interrupt-parent

• interrupts


And #address-cells, #size-cells are not needed here.


Have a great day,
Yuri

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos