diff mbox

[OpenWrt-Devel,v2,5/8] mac80211: make more ath10k firmwares selectable

Message ID 1435837643-25569-6-git-send-email-guenther.kelleter@devolo.de
State Superseded
Headers show

Commit Message

Günther Kelleter July 2, 2015, 11:47 a.m. UTC
The ath10k firmware version is now a choice in the config menu. Added options for older firmware versions (10.1 and 10.2). It seems that recent firmware versions don't always run properly and this provides the option to select an older (more stable) version instead.

Signed-off-by: Günther Kelleter <guenther.kelleter@devolo.de>
---
 package/kernel/mac80211/Makefile | 35 +++++++++++++++++++++++++++++++++--
 1 file changed, 33 insertions(+), 2 deletions(-)

Comments

Felix Fietkau July 6, 2015, 10:26 a.m. UTC | #1
On 2015-07-02 13:47, Günther Kelleter wrote:
> The ath10k firmware version is now a choice in the config menu.
> Added options for older firmware versions (10.1 and 10.2). It seems that
> recent firmware versions don't always run properly and this provides the
> option to select an older (more stable) version instead.
> 
> Signed-off-by: Günther Kelleter <guenther.kelleter@devolo.de>
Instead of adding more options that most people don't know what to do
with, please test the current v5 firmware in trunk and provide details
about any issues that you find.

- Felix
Martin Blumenstingl July 6, 2015, 10:36 a.m. UTC | #2
Hi Felix,

On Mon, Jul 6, 2015 at 12:26 PM, Felix Fietkau <nbd@openwrt.org> wrote:
> Instead of adding more options that most people don't know what to do
> with, please test the current v5 firmware in trunk and provide details
> about any issues that you find.
I am not sure which issue Günther is trying to solve, but there ath10k
firmware crashes for some users: [0]
For me the crashes are reproducible even with the latest v5 firmware
on a QCA9880-BR4A.
However, older and newer ath10k firmware versions are working fine on
a QCA9880-2R4E - so it seems that this crash is chip-specific.

Regards,
Martin


[0] https://dev.openwrt.org/ticket/19167
Felix Fietkau July 6, 2015, 10:39 a.m. UTC | #3
On 2015-07-06 12:36, Martin Blumenstingl wrote:
> Hi Felix,
> 
> On Mon, Jul 6, 2015 at 12:26 PM, Felix Fietkau <nbd@openwrt.org> wrote:
>> Instead of adding more options that most people don't know what to do
>> with, please test the current v5 firmware in trunk and provide details
>> about any issues that you find.
> I am not sure which issue Günther is trying to solve, but there ath10k
> firmware crashes for some users: [0]
> For me the crashes are reproducible even with the latest v5 firmware
> on a QCA9880-BR4A.
> However, older and newer ath10k firmware versions are working fine on
> a QCA9880-2R4E - so it seems that this crash is chip-specific.
What's the newest firmware that still works on your card?
Also, please report these issues to the ath10k firmware maintainer.

- Felix
Martin Blumenstingl July 6, 2015, 10:48 a.m. UTC | #4
On Mon, Jul 6, 2015 at 12:39 PM, Felix Fietkau <nbd@openwrt.org> wrote:
> What's the newest firmware that still works on your card?
> Also, please report these issues to the ath10k firmware maintainer.
I think the latest working version was the newest -2 (10.1 branch). I
can look it up when I have access to the device again (probably this
weekend).
"Reporting to the ath10k firmware maintainer" is done by sending an
email to the ath10k mailing list, or what is the preferred way?
Felix Fietkau July 6, 2015, 11:03 a.m. UTC | #5
On 2015-07-06 12:48, Martin Blumenstingl wrote:
> On Mon, Jul 6, 2015 at 12:39 PM, Felix Fietkau <nbd@openwrt.org> wrote:
>> What's the newest firmware that still works on your card?
>> Also, please report these issues to the ath10k firmware maintainer.
> I think the latest working version was the newest -2 (10.1 branch). I
> can look it up when I have access to the device again (probably this
> weekend).
> "Reporting to the ath10k firmware maintainer" is done by sending an
> email to the ath10k mailing list, or what is the preferred way?
Yes, and Cc kvalo@qca.qualcomm.com (Kalle Valo)

- Felix
Günther Kelleter July 6, 2015, 11:09 a.m. UTC | #6
Hi Felix 

> -----Original Message-----

> From: Felix Fietkau [mailto:nbd@openwrt.org]

> Sent: Monday, July 06, 2015 12:27 PM

> To: Guenther Kelleter; openwrt-devel@lists.openwrt.org

> Subject: Re: [OpenWrt-Devel] [PATCH v2 5/8] mac80211: make more ath10k

> firmwares selectable

> 

> On 2015-07-02 13:47, Günther Kelleter wrote:

> > The ath10k firmware version is now a choice in the config menu.

> > Added options for older firmware versions (10.1 and 10.2). It seems

> > that recent firmware versions don't always run properly and this

> > provides the option to select an older (more stable) version instead.

> >

> > Signed-off-by: Günther Kelleter <guenther.kelleter@devolo.de>

> Instead of adding more options that most people don't know what to do with,

> please test the current v5 firmware in trunk and provide details about any

> issues that you find.

> 

> - Felix


The V2 firmware was the only one that didn't crash. We didn't try V5 so far because it was released after we made that patch. I'm going to check V5.

Günther
Günther Kelleter July 6, 2015, 2:05 p.m. UTC | #7
> -----Original Message-----

> From: Martin Blumenstingl [mailto:martin.blumenstingl@googlemail.com]

> Sent: Monday, July 06, 2015 12:36 PM

> To: Felix Fietkau

> Cc: Guenther Kelleter; openwrt-devel@lists.openwrt.org

> Subject: Re: [OpenWrt-Devel] [PATCH v2 5/8] mac80211: make more ath10k

> firmwares selectable

> 

> Hi Felix,

> 

> On Mon, Jul 6, 2015 at 12:26 PM, Felix Fietkau <nbd@openwrt.org> wrote:

> > Instead of adding more options that most people don't know what to do

> > with, please test the current v5 firmware in trunk and provide details

> > about any issues that you find.

> I am not sure which issue Günther is trying to solve, but there ath10k

> firmware crashes for some users: [0] For me the crashes are reproducible even

> with the latest v5 firmware on a QCA9880-BR4A.

> However, older and newer ath10k firmware versions are working fine on a

> QCA9880-2R4E - so it seems that this crash is chip-specific.

> 

> Regards,

> Martin

> 

> 

> [0] https://dev.openwrt.org/ticket/19167



I've tried v5 firmware patch from mailing list. This is the result.

4 fw crashes during boot time:

[   13.180000] cfg80211: Calling CRDA to update world regulatory domain
[   13.210000] cfg80211: World regulatory domain updated:
[   13.210000] cfg80211:  DFS Master region: unset
[   13.220000] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[   13.230000] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[   13.230000] cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[   13.240000] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
[   13.250000] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
[   13.260000] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
[   13.270000] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
[   13.280000] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
[   13.280000] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
[   13.390000] PCI: Enabling device 0000:00:00.0 (0000 -> 0002)
[   13.400000] ath10k_pci 0000:00:00.0: pci irq legacy interrupts 0 irq_mode 0 reset_mode 0
[   13.620000] ath10k_pci 0000:00:00.0: Direct firmware load for ath10k/cal-pci-0000:00:00.0.bin failed with error -2
[   13.630000] ath10k_pci 0000:00:00.0: Falling back to user helper
[   15.430000] ath10k_pci 0000:00:00.0: qca988x hw2.0 (0x4100016c, 0x043222ff) fw 10.2.4.70-2 api 5 htt 2.1 wmi 5 cal file max_sta 128
[   15.440000] ath10k_pci 0000:00:00.0: debug 0 debugfs 1 tracing 0 dfs 1 testmode 1
[   15.560000] cfg80211: Calling CRDA for country: AW
[   15.560000] cfg80211: Regulatory domain changed to country: AW
[   15.570000] cfg80211:  DFS Master region: ETSI
[   15.570000] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[   15.580000] cfg80211:   (2402000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[   15.590000] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A)
[   15.600000] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
[   15.610000] cfg80211:   (5490000 KHz - 5710000 KHz @ 160000 KHz), (N/A, 2700 mBm), (0 s)
[   15.690000] Ebtables v2.0 registered
[   15.700000] ip_tables: (C) 2000-2006 Netfilter Core Team
[   15.730000] nf_conntrack version 0.5.0 (1971 buckets, 7884 max)
[   15.870000] xt_time: kernel timezone is -0000
[   15.920000] PPP generic driver version 2.4.2
[   15.940000] NET: Registered protocol family 24
[   15.990000] ieee80211 phy1: Atheros AR9340 Rev:3 mem=0xb8100000, irq=47
[   29.330000] jffs2_scan_eraseblock(): End of filesystem marker found at 0x0
[   29.360000] jffs2_build_filesystem(): unlocking the mtd device... done.
[   29.360000] jffs2_build_filesystem(): erasing all blocks after the end marker... 
[   35.140000] device eth0 entered promiscuous mode
[   35.180000] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   37.290000] eth0: link up (1000Mbps/Full duplex)
[   37.360000] br-lan: port 1(eth0) entered forwarding state
[   37.360000] br-lan: port 1(eth0) entered forwarding state
[   37.370000] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   37.460000] cfg80211: Calling CRDA for country: DE
[   37.470000] cfg80211: Regulatory domain changed to country: DE
[   37.470000] cfg80211:  DFS Master region: ETSI
[   37.480000] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[   37.490000] cfg80211:   (2400000 KHz - 2483000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[   37.490000] cfg80211:   (5150000 KHz - 5250000 KHz @ 80000 KHz, 200000 KHz AUTO), (N/A, 2000 mBm), (N/A)
[   37.500000] cfg80211:   (5250000 KHz - 5350000 KHz @ 80000 KHz, 200000 KHz AUTO), (N/A, 2000 mBm), (0 s)
[   37.510000] cfg80211:   (5470000 KHz - 5725000 KHz @ 160000 KHz), (N/A, 2700 mBm), (0 s)
[   37.520000] cfg80211:   (57000000 KHz - 66000000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A)
[   39.360000] br-lan: port 1(eth0) entered forwarding state
[   42.740000] IPv6: ADDRCONF(NETDEV_UP): wlan1: link is not ready
[   46.350000] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   46.360000] device wlan1 entered promiscuous mode
[   46.370000] device wlan0 entered promiscuous mode
[   49.630000] random: nonblocking pool is initialized
[   53.150000] br-lan: port 3(wlan0) entered forwarding state
[   53.150000] br-lan: port 3(wlan0) entered forwarding state
[   53.160000] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[   53.280000] ath10k_pci 0000:00:00.0: firmware crashed! (uuid 894a893e-bbeb-4697-9a75-060ebfbd68bb)
[   53.290000] ath10k_pci 0000:00:00.0: qca988x hw2.0 (0x4100016c, 0x043222ff) fw 10.2.4.70-2 api 5 htt 2.1 wmi 5 cal file max_sta 128
[   53.310000] ath10k_pci 0000:00:00.0: debug 0 debugfs 1 tracing 0 dfs 1 testmode 1
[   53.330000] ath10k_pci 0000:00:00.0: failed to read diag value at 0x10100804: -16
[   53.330000] ath10k_pci 0000:00:00.0: failed to get memcpy hi address for firmware address 4: -16
[   53.340000] ath10k_pci 0000:00:00.0: failed to read firmware dump area: -16
[   53.450000] ieee80211 phy0: Hardware restart was requested
[   53.450000] ath10k_pci 0000:00:00.0: failed to synchronize monitor vdev 1 stop: -143
[   53.460000] ath10k_pci 0000:00:00.0: failed to stop monitor vdev: -143
[   53.730000] ath10k_pci 0000:00:00.0: failed to read diag value at 0x10100800: -16
[   53.740000] ath10k_pci 0000:00:00.0: failed to poke copy engine: -16
[   53.880000] ath10k_pci 0000:00:00.0: failed to read diag value at 0x10100800: -16
[   53.890000] ath10k_pci 0000:00:00.0: failed to poke copy engine: -16
[   54.080000] ath10k_pci 0000:00:00.0: failed to read diag value at 0x10100800: -16
[   54.090000] ath10k_pci 0000:00:00.0: failed to poke copy engine: -16
[   55.150000] br-lan: port 3(wlan0) entered forwarding state
[   57.990000] ath10k_pci 0000:00:00.0: device successfully recovered
[   58.370000] ath10k_pci 0000:00:00.0: firmware crashed! (uuid 4eaa8763-4c02-42de-83f8-358a5fb49994)
[   58.380000] ath10k_pci 0000:00:00.0: qca988x hw2.0 (0x4100016c, 0x043222ff) fw 10.2.4.70-2 api 5 htt 2.1 wmi 5 cal file max_sta 128
[   58.390000] ath10k_pci 0000:00:00.0: debug 0 debugfs 1 tracing 0 dfs 1 testmode 1
[   58.410000] ath10k_pci 0000:00:00.0: failed to read diag value at 0x10100804: -16
[   58.420000] ath10k_pci 0000:00:00.0: failed to get memcpy hi address for firmware address 4: -16
[   58.430000] ath10k_pci 0000:00:00.0: failed to read firmware dump area: -16
[   58.550000] ieee80211 phy0: Hardware restart was requested
[   58.550000] ath10k_pci 0000:00:00.0: failed to to request monitor vdev 1 stop: -143
[   58.560000] ath10k_pci 0000:00:00.0: failed to synchronize monitor vdev 1 stop: -143
[   58.570000] ath10k_pci 0000:00:00.0: failed to stop monitor vdev: -143
[   58.810000] ath10k_pci 0000:00:00.0: failed to read diag value at 0x10100800: -16
[   58.820000] ath10k_pci 0000:00:00.0: failed to poke copy engine: -16
[   58.990000] ath10k_pci 0000:00:00.0: failed to read diag value at 0x10100800: -16
[   59.000000] ath10k_pci 0000:00:00.0: failed to poke copy engine: -16
[   59.200000] ath10k_pci 0000:00:00.0: failed to read diag value at 0x10100800: -16
[   62.900000] ath10k_pci 0000:00:00.0: device successfully recovered
[   62.980000] br-lan: port 2(wlan1) entered forwarding state
[   62.980000] br-lan: port 2(wlan1) entered forwarding state
[   62.990000] IPv6: ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
[   63.190000] ath10k_pci 0000:00:00.0: firmware crashed! (uuid b71c7d2f-9cd0-43a4-beef-eb42715596c7)
[   63.200000] ath10k_pci 0000:00:00.0: qca988x hw2.0 (0x4100016c, 0x043222ff) fw 10.2.4.70-2 api 5 htt 2.1 wmi 5 cal file max_sta 128
[   63.210000] ath10k_pci 0000:00:00.0: debug 0 debugfs 1 tracing 0 dfs 1 testmode 1
[   63.230000] ath10k_pci 0000:00:00.0: failed to read firmware dump area: -16
[   63.390000] ieee80211 phy0: Hardware restart was requested
[   63.720000] ath10k_warn: 6 callbacks suppressed
[   63.720000] ath10k_pci 0000:00:00.0: failed to read diag value at 0x10100800: -16
[   63.730000] ath10k_pci 0000:00:00.0: failed to poke copy engine: -16
[   63.860000] ath10k_pci 0000:00:00.0: failed to read diag value at 0x10100800: -16
[   63.870000] ath10k_pci 0000:00:00.0: failed to poke copy engine: -16
[   64.060000] ath10k_pci 0000:00:00.0: failed to read diag value at 0x10100800: -16
[   64.070000] ath10k_pci 0000:00:00.0: failed to poke copy engine: -16
[   64.980000] br-lan: port 2(wlan1) entered forwarding state
[   67.890000] ath10k_pci 0000:00:00.0: device successfully recovered
[   68.270000] ath10k_pci 0000:00:00.0: firmware crashed! (uuid af170a60-01e5-4ecf-8e96-2199fcd21697)
[   68.280000] ath10k_pci 0000:00:00.0: qca988x hw2.0 (0x4100016c, 0x043222ff) fw 10.2.4.70-2 api 5 htt 2.1 wmi 5 cal file max_sta 128
[   68.290000] ath10k_pci 0000:00:00.0: debug 0 debugfs 1 tracing 0 dfs 1 testmode 1
[   68.310000] ath10k_pci 0000:00:00.0: failed to read diag value at 0x10100804: -16
[   68.320000] ath10k_pci 0000:00:00.0: failed to get memcpy hi address for firmware address 4: -16
[   68.330000] ath10k_pci 0000:00:00.0: failed to read firmware dump area: -16
[   68.480000] ieee80211 phy0: Hardware restart was requested
[   68.480000] ath10k_pci 0000:00:00.0: failed to to request monitor vdev 1 stop: -143
[   68.490000] ath10k_pci 0000:00:00.0: failed to synchronize monitor vdev 1 stop: -143
[   68.810000] ath10k_warn: 1 callbacks suppressed
[   68.810000] ath10k_pci 0000:00:00.0: failed to read diag value at 0x10100800: -16
[   68.820000] ath10k_pci 0000:00:00.0: failed to poke copy engine: -16
[   68.940000] ath10k_pci 0000:00:00.0: failed to read diag value at 0x10100800: -16
[   68.950000] ath10k_pci 0000:00:00.0: failed to poke copy engine: -16
[   69.150000] ath10k_pci 0000:00:00.0: failed to read diag value at 0x10100800: -16
[   69.160000] ath10k_pci 0000:00:00.0: failed to poke copy engine: -16
[   73.090000] ath10k_pci 0000:00:00.0: device successfully recovered
[   89.680000] done.


Then when I start a scan it gets even worse:

[  322.790000] ath10k_pci 0000:00:00.0: firmware crashed! (uuid 3ae0e4ea-d60a-4768-8c81-e1e93e99c5d2)
[  322.790000] ath10k_pci 0000:00:00.0: qca988x hw2.0 (0x4100016c, 0x043222ff) fw 10.2.4.70-2 api 5 htt 2.1 wmi 5 cal file max_sta 128
[  322.810000] ath10k_pci 0000:00:00.0: debug 0 debugfs 1 tracing 0 dfs 1 testmode 1
[  322.830000] ath10k_pci 0000:00:00.0: failed to read diag value at 0x10100804: -16
[  322.830000] ath10k_pci 0000:00:00.0: failed to get memcpy hi address for firmware address 4: -16
[  322.840000] ath10k_pci 0000:00:00.0: failed to read firmware dump area: -16
[  322.950000] ieee80211 phy0: Hardware restart was requested
[  322.950000] ------------[ cut here ]------------
[  322.960000] WARNING: CPU: 0 PID: 4 at /home/gke/build.openwrt/owrt-submit/build_dir/target-mips_34kc_musl-1.1.10/linux-ar71xx_generic/com
pat-wireless-2015-03-09/net/mac80211/main.c:263 ieee80211_restart_hw+0x190/0x1bc [mac80211]()
[  322.980000] ieee80211_restart_work called with hardware scan in progress
[  322.990000] Modules linked in: pppoe ppp_async iptable_nat ath9k pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_RE
JECT ipt_MASQUERADE ebtable_nat ebtable_filter ebtable_broute ath9k_common xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_
limit xt_id xt_conntrack xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_CT slhc nf_reject_ipv4 nf_nat_masquerade_ipv4 nf_nat_ftp nf_nat nf_log_i
pv4 nf_defrag_ipv6 nf_defrag_ipv4 nf_conntrack_rtcache nf_conntrack_ftp nf_conntrack iptable_raw iptable_mangle iptable_filter ip_tables ebt
ables ebt_vlan ebt_stp ebt_redirect ebt_pkttype ebt_mark_m ebt_mark ebt_limit ebt_among ebt_802_3 crc_ccitt ath9k_hw ath10k_pci ath10k_core 
ath mac80211 cfg80211 compat ledtrig_gpio ip6t_REJECT nf_reject_ipv6 nf_log_ipv6 nf_log_common ip6table_raw ip6table_mangle ip6table_filter 
ip6_tables x_tables ipv6 arc4 crypto_blkcipher gpio_button_hotplug
[  323.070000] CPU: 0 PID: 4 Comm: kworker/0:0 Not tainted 3.18.17 #3
[  323.080000] Workqueue: events ieee80211_restart_hw [mac80211]
[  323.080000] Stack : 87814e00 80360000 80306a60 87100190 00000107 00000000 8035b2a0 8035b290
          00000008 800a3c7c 80306a60 80096878 00000004 803b34d8 80317718 87843d6c
          8035b2a0 87843d6c 00000008 8009424c 00000003 00000000 00000000 00000000
          8030a0ac 87843d00 87100144 81102400 87815a00 6576656e 74730000 00000000
          00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
          ...
[  323.120000] Call Trace:
[  323.120000] [<8007146c>] show_stack+0x48/0x70
[  323.130000] [<80080980>] warn_slowpath_common+0x84/0xb4
[  323.130000] [<800809dc>] warn_slowpath_fmt+0x2c/0x38
[  323.140000] [<87100190>] ieee80211_restart_hw+0x190/0x1bc [mac80211]
[  323.140000] 
[  323.140000] ---[ end trace ce76858ed804d96a ]---
[  323.160000] ath10k_pci 0000:00:00.0: failed to to request monitor vdev 1 stop: -143
[  323.170000] ath10k_pci 0000:00:00.0: failed to synchronize monitor vdev 1 stop: -143
[  323.170000] ath10k_pci 0000:00:00.0: failed to stop monitor vdev: -143
[  323.390000] ath10k_pci 0000:00:00.0: failed to read diag value at 0x10100800: -16
[  323.400000] ath10k_pci 0000:00:00.0: failed to poke copy engine: -16
[  323.510000] ath10k_pci 0000:00:00.0: failed to read diag value at 0x10100800: -16
[  323.520000] ath10k_pci 0000:00:00.0: failed to poke copy engine: -16
[  323.630000] ath10k_pci 0000:00:00.0: failed to read diag value at 0x10100800: -16
[  325.750000] ath10k_pci 0000:00:00.0: device successfully recovered
[  326.050000] ath10k_pci 0000:00:00.0: firmware crashed! (uuid 5d05392e-4f72-4ab1-9b57-6dffe150fa5c)
[  326.060000] ath10k_pci 0000:00:00.0: qca988x hw2.0 (0x4100016c, 0x043222ff) fw 10.2.4.70-2 api 5 htt 2.1 wmi 5 cal file max_sta 128
[  326.070000] ath10k_pci 0000:00:00.0: debug 0 debugfs 1 tracing 0 dfs 1 testmode 1
[  326.090000] ath10k_pci 0000:00:00.0: failed to read firmware dump area: -16
[  326.200000] ieee80211 phy0: Hardware restart was requested
[  326.200000] ------------[ cut here ]------------
[  326.210000] WARNING: CPU: 0 PID: 4 at /home/gke/build.openwrt/owrt-submit/build_dir/target-mips_34kc_musl-1.1.10/linux-ar71xx_generic/com
pat-wireless-2015-03-09/net/mac80211/main.c:263 ieee80211_restart_hw+0x190/0x1bc [mac80211]()
[  326.230000] ieee80211_restart_work called with hardware scan in progress
[  326.240000] Modules linked in: pppoe ppp_async iptable_nat ath9k pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_RE
JECT ipt_MASQUERADE ebtable_nat ebtable_filter ebtable_broute ath9k_common xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_
limit xt_id xt_conntrack xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_CT slhc nf_reject_ipv4 nf_nat_masquerade_ipv4 nf_nat_ftp nf_nat nf_log_i
pv4 nf_defrag_ipv6 nf_defrag_ipv4 nf_conntrack_rtcache nf_conntrack_ftp nf_conntrack iptable_raw iptable_mangle iptable_filter ip_tables ebt
ables ebt_vlan ebt_stp ebt_redirect ebt_pkttype ebt_mark_m ebt_mark ebt_limit ebt_among ebt_802_3 crc_ccitt ath9k_hw ath10k_pci ath10k_core 
ath mac80211 cfg80211 compat ledtrig_gpio ip6t_REJECT nf_reject_ipv6 nf_log_ipv6 nf_log_common ip6table_raw ip6table_mangle ip6table_filter 
ip6_tables x_tables ipv6 arc4 crypto_blkcipher gpio_button_hotplug
[  326.320000] CPU: 0 PID: 4 Comm: kworker/0:0 Tainted: G        W      3.18.17 #3
[  326.330000] Workqueue: events ieee80211_restart_hw [mac80211]
[  326.330000] Stack : 87814e00 80360000 80306a60 87100190 00000107 00000000 8035b2a0 8035b290
          00000008 800a3c7c 80306a60 80096878 00000004 803b34d8 80317718 87843d6c
          8035b2a0 87843d6c 00000008 8009424c 00000003 00000000 00000000 00000000
          8030a0ac 87843d00 87100144 81102400 87815a00 6576656e 74730000 00000000
          00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
          ...
[  326.370000] Call Trace:
[  326.370000] [<8007146c>] show_stack+0x48/0x70
[  326.380000] [<80080980>] warn_slowpath_common+0x84/0xb4
[  326.380000] [<800809dc>] warn_slowpath_fmt+0x2c/0x38
[  326.390000] [<87100190>] ieee80211_restart_hw+0x190/0x1bc [mac80211]
[  326.400000] 
[  326.400000] ---[ end trace ce76858ed804d96b ]---
[  328.950000] ath10k_pci 0000:00:00.0: device successfully recovered
[  329.330000] ath10k_pci 0000:00:00.0: firmware crashed! (uuid 3ec99c19-ea79-43b1-bf50-c0725685a113)
... and so on


Instead of the original patch, would you accept an option to only choose between STA mode, AP mode w/ latest API fw (default) and AP mode with fallback API2 fw (new) for those people who experience crashes with latest fw? At least until these issues are finally fixed?


Regards
Günther
Felix Fietkau July 6, 2015, 2:10 p.m. UTC | #8
On 2015-07-06 16:05, Guenther Kelleter wrote:
> Instead of the original patch, would you accept an option to only
> choose between STA mode, AP mode w/ latest API fw (default) and AP mode
> with fallback API2 fw (new) for those people who experience crashes with
> latest fw? At least until these issues are finally fixed?
I already removed the STA fw because it has been obsolete for a long
time. I will accept a patch that adds v2 firmware as a fallback until
the current one is fixed. Maybe it would also be worth testing the Ben
Greear's firmware (the candelatech one) to see if that's a suitable
replacement for the old v2 stuff.

- Felix
diff mbox

Patch

diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile
index be26348..1182f14 100644
--- a/package/kernel/mac80211/Makefile
+++ b/package/kernel/mac80211/Makefile
@@ -624,13 +624,36 @@  endef
 define KernelPackage/ath10k/config
   if PACKAGE_kmod-ath10k
 
+	choice
+		prompt "ath10k Firmware version"
+		default ATH10K_API4_FW
+
 	config ATH10K_STA_FW
 		bool "Firmware optimized for STA operation"
-		default n
 		help
 		  Use the ath10k firmware optimized for wireless client instead
 		  of access point operation.
 
+	config ATH10K_API2_FW
+		bool "Firmware optimized for AP operation (v10.1 / API v2)"
+		help
+		  Use the ath10k firmware from the 10.1 SDK using API v2 optimized
+		  for access point operation
+
+	config ATH10K_API3_FW
+		bool "Firmware optimized for AP operation (v10.2 / API v3)"
+		help
+		  Use the ath10k firmware from the 10.2 SDK using API v3 optimized
+		  for access point operation
+
+	config ATH10K_API4_FW
+		bool "Firmware optimized for AP operation (v10.2.4 / API v4)"
+		help
+		  Use the ath10k firmware from the 10.2.4 SDK using API v4 optimized
+		  for access point operation
+
+	endchoice
+
   endif
 endef
 
@@ -1862,7 +1885,15 @@  ifeq ($(CONFIG_ATH10K_STA_FW),y)
 	$(INSTALL_DATA) \
 		$(PKG_BUILD_DIR)/$(PKG_ATH10K_LINUX_FIRMWARE_SUBDIR)/main/firmware-2.bin_999.999.0.636 \
 		$(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-2.bin
-else
+else ifeq ($(CONFIG_ATH10K_API2_FW),y)
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/$(PKG_ATH10K_LINUX_FIRMWARE_SUBDIR)/10.1/firmware-2.bin_10.1.467.2-1 \
+		$(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-2.bin
+else ifeq ($(CONFIG_ATH10K_API3_FW),y)
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/$(PKG_ATH10K_LINUX_FIRMWARE_SUBDIR)/10.2/firmware-3.bin_10.2-00082-4-2 \
+		$(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-3.bin
+else ifeq ($(CONFIG_ATH10K_API4_FW),y)
 	$(INSTALL_DATA) \
 		$(PKG_BUILD_DIR)/$(PKG_ATH10K_LINUX_FIRMWARE_SUBDIR)/10.2.4/firmware-4.bin_10.2.4.45 \
 		$(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-4.bin