[OpenWrt-Devel] How to initialize multiple phy radios

David Hutchison dhutchison at bluemesh.net
Sun Apr 24 03:13:57 EDT 2016


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