[OpenWrt-Devel] How to initialize multiple phy radios

David Hutchison dhutchison at bluemesh.net
Sun Apr 24 03:16:11 EDT 2016


I spoke too soon:
https://pci-ids.ucw.cz/read/PC/168c/0050

It is the QCA9887, so it's definitely on the PCIe bus and is being seen.

-- Davey

On Sun, Apr 24, 2016 at 1:13 AM, David Hutchison
<dhutchison at bluemesh.net> wrote:
> Thank you for the response Christian!
>
> Here is the PCI noise is in the kernel log from ath79_register_pci():
>
> [    0.510000] PCI host bridge to bus 0000:00
> [    0.510000] pci_bus 0000:00: root bus resource [mem 0x10000000-0x11ffffff]
> [    0.520000] pci_bus 0000:00: root bus resource [io  0x0000]
> [    0.520000] pci_bus 0000:00: No busn resource found for root bus,
> will use [bus 00-ff]
> [    0.530000] pci 0000:00:00.0: [168c:0050] type 00 class 0x028000
> [    0.530000] pci 0000:00:00.0: reg 10: [mem 0x10000000-0x101fffff 64bit]
> [    0.530000] pci 0000:00:00.0: reg 30: [mem 0x00000000-0x0000ffff pref]
> [    0.530000] pci 0000:00:00.0: supports D1
> [    0.530000] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
> [    0.530000] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
> [    0.530000] pci 0000:00:00.0: BAR 0: assigned [mem
> 0x10000000-0x101fffff 64bit]
> [    0.530000] pci 0000:00:00.0: BAR 6: assigned [mem
> 0x10200000-0x1020ffff pref]
> [    0.540000] pci 0000:00:00.0: using irq 40 for pin 1
>
> I compiled lspci in and it reports:
> 00:00.0 Class 0280: 168c:0050
>
> As far as I know that's just a vendor/product ID, I tried looking it
> up to verify that it was indeed the atheros qca988x but couldn't find
> anything for certain.
>
> I verified ath10k is loaded:
> ath10k_pci             27629  0
> ath10k_core           247226  1 ath10k_pci
> ath                    18726  4 ath10k_core,ath9k,ath9k_common,ath9k_hw
> mac80211              389729  2 ath10k_core,ath9k
> cfg80211              217396  5 ath10k_core,ath9k,ath9k_common,ath,mac80211
> compat                 19304  7
> ath10k_pci,ath10k_core,ath9k,ath9k_common,ath9k_hw,mac80211,cfg80211
>
> -- Davey
>
> On Fri, Apr 22, 2016 at 4:32 AM, Christian Lamparter
> <chunkeey at googlemail.com> wrote:
>> Hello,
>>
>> On Friday, April 22, 2016 02:03:01 AM David Hutchison wrote:
>>> I have been working on a board port and have everything working except
>>> for the 2nd radio. This board has a QCA9531 CPU and 2 WiFi Radios:
>>> AR9531 and a QCA9887 ( http://routerboard.com/RB952Ui-5ac2nD for more
>>> details ).
>>> [snip]
>>>
>>> Anyway, the Mikrotik hAP only has one radio and is 100% working.
>>> However the hAP AC Lite has an additional radio ( QCA988X )... I've
>>> compiled in ath10k, and added "ath79_register_pci()" but it doesn't
>>> find the radio. I've looked at ap91_pci_init() as well as
>>> ap94_pci_init() and haven't had any luck.
>>
>> Does ath79_register_pci actually register the pci bus (there should
>> be some noise in the kernel log when it registers the pci bus)? Or
>> does it return an error -ENODEV?
>>
>> This is what it looks like on a Archer C7: (Has a QCA9880)
>> [    0.129096] ar724x-pci ar724x-pci.0: PCIe link is down
>> [    0.133988] registering PCI controller with io_map_base unset
>> [    0.139678] registering PCI controller with io_map_base unset
>> [    0.586626] PCI host bridge to bus 0000:00
>> [    0.590553] pci_bus 0000:00: root bus resource [mem 0x10000000-0x11ffffff]
>> [    0.597148] pci_bus 0000:00: root bus resource [io  0x0000]
>> [    0.602534] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
>> ...
>>
>> I looked at ath79_register_pci, it is located in /arch/mips/ath79/pci.c.
>> On the first look, it doesn't look like your SoC is present there.
>> However soc_is_qca953x is just testing soc_is_qca9533. Can you verify
>> that this is indeed correct and the function actually calls
>> ath79_register_pci_ar724x?
>>
>>> What is the normal way for initializing a platform with multiple
>>> radio's? Of course I don't know the exact wiring with this board, but
>>> I believe the QCA988X 802.11ac radio is on a PCI bus of some sort. I'm
>>> not entirely sure, but every example I have seen it appears to be.
>> Hm, I don't know much about your device. If it's a proper QCA988X mini-pcie
>> radio and has the calibration data on a chip on its minipcie board, then
>> you don't need to setup anything else. Having select kmod-ath10k
>> (which AFAIK includes the firmware as well) is enough.
>>
>> But if the calibration data for ath10k is part of the routerboard's caldata
>> partition, you need to extracted by the userspace. This is currently done
>> by a script:
>> target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
>>
>> So you will need to add your device there with the right extraction
>> code.
>>
>> Regards,
>> Christian
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list