#20997: PCI support is broken for Danube Lantiq
--------------------+--------------------------------
Reporter: pgid69 | Owner: developers
Type: defect | Status: new
Priority: high | Milestone:
Component: kernel | Version: Chaos Calmer 15.05
Keywords: |
--------------------+--------------------------------
Hello
I have a problem running OpenWrt 15.05 on modem ARV4510PW.
The modem has a PCI bus with Wifi device and a Via VT6212L USB controler
connected to it.
When loading uhci_hcd kernel module reports errors
Here is the parts of the bootlog showing the problem
{{{
...
[ 0.056000] pinctrl core: initialized pinctrl subsystem
[ 0.064000] NET: Registered protocol family 16
[ 0.076000] pinctrl-xway 1e100b10.pinmux: Init done
[ 0.080000] dma-xway 1e104100.dma: Init done - hw rev: 3, ports: 5,
channels: 20
[ 0.088000] PCI host bridge /fpi@10000000/pci@E105400 ranges:
[ 0.092000] MEM 0x0000000018000000..0x0000000019ffffff
[ 0.096000] IO 0x000000001ae00000..0x000000001affffff
[ 0.108000] gpio-stp-xway 1e100bb0.stp: Init done
[ 0.112000] usbcore: registered new interface driver usbfs
[ 0.116000] usbcore: registered new interface driver hub
[ 0.120000] usbcore: registered new device driver usb
[ 0.124000] PCI host bridge to bus 0000:00
[ 0.128000] pci_bus 0000:00: root bus resource [mem
0x18000000-0x19ffffff]
[ 0.132000] pci_bus 0000:00: root bus resource [io 0xffffffff]
[ 0.136000] pci_bus 0000:00: No busn resource found for root bus, will
use [bus 00-ff]
[ 0.140000] pci 0000:00:0e.0: BAR 0: assigned [mem
0x18000000-0x1800ffff]
[ 0.144000] pci 0000:00:0f.2: BAR 0: assigned [mem
0x18010000-0x180100ff]
[ 0.148000] pci 0000:00:0f.0: BAR 4: no space for [io size 0x0020]
[ 0.152000] pci 0000:00:0f.0: BAR 4: failed to assign [io size 0x0020]
[ 0.156000] pci 0000:00:0f.1: BAR 4: no space for [io size 0x0020]
[ 0.160000] pci 0000:00:0f.1: BAR 4: failed to assign [io size 0x0020]
[ 0.164000] pci 0000:00:0e.0: of_irq_parse_pci() failed with rc=-22
...
...
[ 7.160000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 7.168000] ehci-platform: EHCI generic platform driver
[ 7.176000] ehci-pci: EHCI PCI platform driver
[ 7.176000] ehci-pci 0000:00:0f.2: EHCI Host Controller
[ 7.184000] ehci-pci 0000:00:0f.2: new USB bus registered, assigned bus
number 1
[ 7.192000] ehci-pci 0000:00:0f.2: irq 66, io mem 0x18010000
[ 7.208000] ehci-pci 0000:00:0f.2: USB 2.0 started, EHCI 1.00
[ 7.212000] hub 1-0:1.0: USB hub found
[ 7.216000] hub 1-0:1.0: 4 ports detected
[ 7.224000] uhci_hcd: USB Universal Host Controller Interface driver
[ 7.228000] uhci_hcd 0000:00:0f.0: init 0000:00:0f.0 fail, -16
[ 7.232000] uhci_hcd: probe of 0000:00:0f.0 failed with error -16
[ 7.240000] uhci_hcd 0000:00:0f.1: init 0000:00:0f.1 fail, -16
[ 7.244000] uhci_hcd: probe of 0000:00:0f.1 failed with error -16
}}}
After browsing the source i think the problem comes from the value of
IO_SPACE_LIMIT that is equal to 0xFFFF (arch/mips/include/asm/io.h) where
as
in danube.dtsi, io mem range assigned to PCI has a size of 0x200000 (at
offset 0x1AE00000).
So function pci_address_to_pio() in file drivers/of/address.c fails.
The function is called by of_pci_range_to_resource() (file
drivers/of/address.c), called by pci_load_of_ranges() (file
arch/mips/pci/pci.c), called by ltq_pci_probe() (file arch/mips/pci/pci-
lantiq.c).
--
Ticket URL: <https://dev.openwrt.org/ticket/20997>
OpenWrt <http://openwrt.org>
Opensource Wireless Router Technology
_______________________________________________
openwrt-tickets mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-tickets