#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

Reply via email to