Skip to contentSkip to conversation

AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

RFC New Simon Wunderlich 7 participants 25 messages Aug 13, 2012 – Nov 20, 2013

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Hello ath9k fellows,

I'm using a pretty new AR9330 rev1/hornet based AP at home. After some days (5 days this time), it suddenly stops beaconing. dmesg shows nothing, hostapd is still running, but what I can see is:

cat /sys/kernel/debug/ieee80211/phy0/ath9k/regdump 0x000000 0xdeadbeef
0x000004 0xdeadbeef
0x000008 0xdeadbeef
0x00000c 0xdeadbeef
0x000010 0xdeadbeef
0x000014 0xdeadbeef
[...]
0x001ff4 0xdeadbeef
0x001ff8 0xdeadbeef
0x001ffc 0xdeadbeef
0x002000 0xbadc0ffe
0x002004 0xbadc0ffe
0x002008 0xbadc0ffe
0x00200c 0xbadc0ffe
0x002010 0xbadc0ffe
[...]
0x003ff0 0xbadc0ffe
0x003ff4 0xbadc0ffe
0x003ff8 0xbadc0ffe
0x003ffc 0xbadc0ffe
0x004000 0x00000000
0x004004 0x0102420b
0x004008 0x00000000
0x00400c 0x00000000
[...] (some more sane looking registers here, and then zeros) 0x004ef8 0x00000000
0x004efc 0x00000000
0x004f00 0xdeadbeef
0x004f04 0xdeadbeef
0x004f08 0xdeadbeef
[...] (and the rest is mostly deadbeef)

Also /sys/kernel/debug/ieee80211/phy0/ath9k/dma shows a lot of deadbeef.

I'm using OpenWRT r31729, a single AP bridged with Ethernet. It is normal home usage, i.e. a few laptops and android phones doing not so much traffic. The box stops working out of the blue after a few days without any outside event (at least none I'm aware of). Sometimes this problem does not occur for 2 weeks, sometimes after 12 hours, I couldn't find an easy way to reproduce it yet. As said, the box is perfectly reachable via SSH, no errors in syslog or anywhere else. Also an ifconfig wlan0 down and up seems to fix the problem.

I'll try a new firmware with more debugging turned on, but have any of you seen this problem? Any input would be very much appreciated. I have a complete /sys/kernel/debug log from a working and a non-working system, along with more info (brctl, ip config, etc) which I'd love to share with anyone interested
- it's too much to post on a public ml.

Thank you very much
Cheers,
Simon

#1 lore raw

Hello,

just to bump again - isn't there anyone who can give us some hint or clue regarding these 0xdeadbeef entries in the registers? Couldn't find a connection to other reports deadbeef on the mailing list so far.

Thanks!
Simon

Quoted 58 lines · Simon Wunderlich

Hello ath9k fellows,

I'm using a pretty new AR9330 rev1/hornet based AP at home. After some days (5 days this time), it suddenly stops beaconing. dmesg shows nothing, hostapd is still running, but what I can see is:

cat /sys/kernel/debug/ieee80211/phy0/ath9k/regdump 0x000000 0xdeadbeef
0x000004 0xdeadbeef
0x000008 0xdeadbeef
0x00000c 0xdeadbeef
0x000010 0xdeadbeef
0x000014 0xdeadbeef
[...]
0x001ff4 0xdeadbeef
0x001ff8 0xdeadbeef
0x001ffc 0xdeadbeef
0x002000 0xbadc0ffe
0x002004 0xbadc0ffe
0x002008 0xbadc0ffe
0x00200c 0xbadc0ffe
0x002010 0xbadc0ffe
[...]
0x003ff0 0xbadc0ffe
0x003ff4 0xbadc0ffe
0x003ff8 0xbadc0ffe
0x003ffc 0xbadc0ffe
0x004000 0x00000000
0x004004 0x0102420b
0x004008 0x00000000
0x00400c 0x00000000
[...] (some more sane looking registers here, and then zeros) 0x004ef8 0x00000000
0x004efc 0x00000000
0x004f00 0xdeadbeef
0x004f04 0xdeadbeef
0x004f08 0xdeadbeef
[...] (and the rest is mostly deadbeef)

Also /sys/kernel/debug/ieee80211/phy0/ath9k/dma shows a lot of deadbeef.

I'm using OpenWRT r31729, a single AP bridged with Ethernet. It is normal home usage, i.e. a few laptops and android phones doing not so much traffic. The box stops working out of the blue after a few days without any outside event (at least none I'm aware of). Sometimes this problem does not occur for 2 weeks, sometimes after 12 hours, I couldn't find an easy way to reproduce it yet. As said, the box is perfectly reachable via SSH, no errors in syslog or anywhere else. Also an ifconfig wlan0 down and up seems to fix the problem.

I'll try a new firmware with more debugging turned on, but have any of you seen this problem? Any input would be very much appreciated. I have a complete /sys/kernel/debug log from a working and a non-working system, along with more info (brctl, ip config, etc) which I'd love to share with anyone interested
- it's too much to post on a public ml.

Thank you very much
Cheers,
Simon

#2 lore raw

Hi Simon,

Quoted 5 lines · Simon Wunderlich

Hello,

just to bump again - isn't there anyone who can give us some hint or clue regarding these 0xdeadbeef entries in the registers? Couldn't find a connection to other reports deadbeef on the mailing list so far.

based on the suggestion from Felix Bitterli he says the deadbeef is due to clocks
of MAC/baseband is off. Adrian says dumping RTC registers might provide some clue

today evening i would just take a look at some h/w specific changes that were still yet to be in ath9k.

Quoted 74 lines

Thanks!
Simon

Quoted 55 lines · Simon Wunderlich

Hello ath9k fellows,

I'm using a pretty new AR9330 rev1/hornet based AP at home. After some days (5 days this time), it suddenly stops beaconing. dmesg shows nothing, hostapd is still running, but what I can see is:

cat /sys/kernel/debug/ieee80211/phy0/ath9k/regdump 0x000000 0xdeadbeef
0x000004 0xdeadbeef
0x000008 0xdeadbeef
0x00000c 0xdeadbeef
0x000010 0xdeadbeef
0x000014 0xdeadbeef
[...]
0x001ff4 0xdeadbeef
0x001ff8 0xdeadbeef
0x001ffc 0xdeadbeef
0x002000 0xbadc0ffe
0x002004 0xbadc0ffe
0x002008 0xbadc0ffe
0x00200c 0xbadc0ffe
0x002010 0xbadc0ffe
[...]
0x003ff0 0xbadc0ffe
0x003ff4 0xbadc0ffe
0x003ff8 0xbadc0ffe
0x003ffc 0xbadc0ffe
0x004000 0x00000000
0x004004 0x0102420b
0x004008 0x00000000
0x00400c 0x00000000
[...] (some more sane looking registers here, and then zeros) 0x004ef8 0x00000000
0x004efc 0x00000000
0x004f00 0xdeadbeef
0x004f04 0xdeadbeef
0x004f08 0xdeadbeef
[...] (and the rest is mostly deadbeef)

Also /sys/kernel/debug/ieee80211/phy0/ath9k/dma shows a lot of deadbeef.

I'm using OpenWRT r31729, a single AP bridged with Ethernet. It is normal home usage, i.e. a few laptops and android phones doing not so much traffic. The box stops working out of the blue after a few days without any outside event (at least none I'm aware of). Sometimes this problem does not occur for 2 weeks, sometimes after 12 hours, I couldn't find an easy way to reproduce it yet. As said, the box is perfectly reachable via SSH, no errors in syslog or anywhere else. Also an ifconfig wlan0 down and up seems to fix the problem.

I'll try a new firmware with more debugging turned on, but have any of you seen this problem? Any input would be very much appreciated. I have a complete /sys/kernel/debug log from a working and a non-working system, along with more info (brctl, ip config, etc) which I'd love to share with anyone interested
- it's too much to post on a public ml.

Quoted 3 lines

Thank you very much
Cheers,
Simon

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAlAxYvQACgkQrzg/fFk7axaPhACfaTuTkdyx9J/Q4z4EQBf/3sfi O/oAn0c8YFa8FPzayVApD2qX78OBz8AT
=3WcZ
-----END PGP SIGNATURE-----

Signature · 2 lines
thanks,
shafi
#3 lore raw

Yeah. The deadbeef means "something's turned off."

I'd start with the SoC reset register and see if the MAC/WMAC bits are correctly set. Ie, that something hasn't gone and reset the wireless bits behind your back.

You could try hacking up a work around that does a full MAC/WMAC reset when you reset the driver.

Ie, when ath9k does a full reset, actually _do_ a full reset by resetting the mac/wmac via the SoC lines.

It could also be the RTC state. Maybe it's found its way into network sleep (ie, the force wake bits aren't set right.) Or something PLL related isn't programmed correctly. Dumping the RTC registers would be helpful.

Thanks,

Adrian

#4 lore raw

Hello Adrian,

thanks for your comments!

Quoted 5 lines · Adrian Chadd

Yeah. The deadbeef means "something's turned off."

I'd start with the SoC reset register and see if the MAC/WMAC bits are correctly set. Ie, that something hasn't gone and reset the wireless bits behind your back.

Sure, but which register would that be? How can I find out? Is it included in regdump of ath9k debugfs?

Quoted 6 lines

You could try hacking up a work around that does a full MAC/WMAC reset when you reset the driver.

Ie, when ath9k does a full reset, actually _do_ a full reset by resetting the mac/wmac via the SoC lines.

So far, I could resolve the situation by doing ifconfig wlan0 down ; ifconfig wlan0 up. But I don't know if this problem will be triggered much faster in "more hostile" environments (wherever this comes from).

Quoted 5 lines

It could also be the RTC state. Maybe it's found its way into network sleep (ie, the force wake bits aren't set right.) Or something PLL related isn't programmed correctly. Dumping the RTC registers would be helpful.

I'm not sure which registers you mean exactly, but I have looked through the regdump, compared to ath9k's reg.h and annotated it a bit (see below). As I lack the Chip Specification, maybe some QCA/Atheros dev can help me on that?

BTW, I've uploaded the full dumps in case anyone is interested [1]. node200 is the broken one, node201 is working at that moment (for comparison).

Thanks,
Simon

[1] http://packetmixer.de/ar9330_deadbeef/

#### Some PLL stuff:

#define AR_CH0_BB_DPLL1 0x16180
0x016180 0x08400000
#define AR_CH0_BB_DPLL2 0x16184
0x016184 0x18e90f00
#define AR_CH0_BB_DPLL3 0x16188
0x016188 0x00800000
#define AR_CH0_DDR_DPLL2 0x16244
0x016244 0x18e82f01
#define AR_CH0_DDR_DPLL3 0x16248
0x016248 0x008024d0
0x01624c 0xfc4d78b0

#### RTC Registers, annotated:

0x007000 0x00000002
0x007004 0x00000000
0x007008 0x00000000
0x00700c 0x00000001
0x007010 0x00000022
0x007014 0x0000142c
0x007018 0x00000500
0x00701c 0x00000001
0x007020 0x00000000
0x007024 0x00000000
0x007028 0x00000000
0x00702c 0x00000000
0x007030 0x00000002
#define AR_RTC_KEEP_AWAKE 0x7034
0x007034 0x00000002
0x007038 0x000002f8
0x00703c 0x00e04a3d
#define AR_RTC_RESET ((AR_SREV_9100(ah)) ? (AR_RTC_BASE + 0x0040) : 0x7040
#define AR_RTC_RESET_EN (0x00000001)
0x007040 0x00000001
#define AR_RTC_STATUS ((AR_SREV_9100(ah)) ? (AR_RTC_BASE + 0x0044) : 0x7044) #define AR_RTC_STATUS_M ((AR_SREV_9100(ah)) ? 0x0000003f : 0x0000000f)

#define AR_RTC_PM_STATUS_M      0x0000000f
#define AR_RTC_STATUS_SHUTDOWN  0x00000001
#define AR_RTC_STATUS_ON        0x00000002
#define AR_RTC_STATUS_SLEEP     0x00000004
#define AR_RTC_STATUS_WAKEUP    0x00000008

0x007044 0x00000002
--> so RTC Status is "on"?

#define AR_RTC_SLEEP_CLK ((AR_SREV_9100(ah)) ? (AR_RTC_BASE + 0x0048) : 0x7048)
#define AR_RTC_FORCE_DERIVED_CLK 0x2
#define AR_RTC_FORCE_SWREG_PRD 0x00000004

0x007048 0x00000002

#define AR_RTC_FORCE_WAKE ((AR_SREV_9100(ah)) ? (AR_RTC_BASE + 0x004c) : 0x704c)
#define AR_RTC_FORCE_WAKE_EN 0x00000001
#define AR_RTC_FORCE_WAKE_ON_INT 0x00000002
0x00704c 0x00000003

--> both on, looks good?

#define AR_RTC_INTR_CAUSE ((AR_SREV_9100(ah)) ? (AR_RTC_BASE + 0x0050) : 0x7050) 0x007050 0x00000000
#define AR_RTC_INTR_ENABLE ((AR_SREV_9100(ah)) ? (AR_RTC_BASE + 0x0054) : 0x7054) 0x007054 0x00000000
#define AR_RTC_INTR_MASK ((AR_SREV_9100(ah)) ? (AR_RTC_BASE + 0x0058) : 0x7058) 0x007058 0x00000000

#5 lore raw

2012.08.23. 11:28 keltezéssel, Simon Wunderlich írta:

Quoted 5 lines

Hello Adrian,

thanks for your comments!

On Wed, Aug 22, 2012 at 11:57:04AM -0700, Adrian Chadd wrote:

Quoted 8 lines
Quoted 5 lines

Yeah. The deadbeef means "something's turned off."

I'd start with the SoC reset register and see if the MAC/WMAC bits are correctly set. Ie, that something hasn't gone and reset the wireless bits behind your back.

Sure, but which register would that be? How can I find out? Is it included in regdump of ath9k debugfs?

It is the AR933X_RESET_REG_RESET_MODULE register (0x1806001c), and the reset of the WMAC chip is controlled by the AR933X_RESET_WMAC bit. You can find the definitions in arch/mips/include/asm/mach-ath79/ar71xx_regs.h.

The platform device registration code pulls the WMAC chip out of reset before registering the device. See the 'ar933x_wmac_setup' function in 'arch/mips/ath79/dev-wmac.c'. Then only the ath9k driver controls the hardware reset line indirectly via ah->external_reset.

However, I doubt that the 0xdeadbeef values are caused by this. If the AR933X_RESET_WMAC bit is set in the reset register, the WMAC chip is not accessible at all. If the AR933X_RESET_WMAC bit is set and the driver tries to access the WMAC registers, the board locks up completely, or reboots itself. At least I have experienced this earlier.

-Gabor

#6 lore raw

If that's right, it's more likely the MAC/PHY is just asleep.

adrian

#7 lore raw
In reply to Mohammed Shafi
Quoted 10 lines · Mohammed Shafi

Hi Simon,

Quoted 5 lines · Simon Wunderlich

Hello,

just to bump again - isn't there anyone who can give us some hint or clue regarding these 0xdeadbeef entries in the registers? Couldn't find a connection to other reports deadbeef on the mailing list so far.

Quoted 7 lines

based on the suggestion from Felix Bitterli he says the deadbeef is due to clocks
of MAC/baseband is off. Adrian says dumping RTC registers might provide some clue

today evening i would just take a look at some h/w specific changes that were still yet to be in ath9k.

sorry, i am unable to figure out any commits that seems to fix the symptoms like this. i will dig through or ask some one internally. please check with the logs sudo modprobe -v ath9k debug=0x8601 with beacon stuck debug enabled

Quoted 82 lines
Quoted 68 lines

Thanks!
Simon

Quoted 55 lines · Simon Wunderlich

Hello ath9k fellows,

I'm using a pretty new AR9330 rev1/hornet based AP at home. After some days (5 days this time), it suddenly stops beaconing. dmesg shows nothing, hostapd is still running, but what I can see is:

cat /sys/kernel/debug/ieee80211/phy0/ath9k/regdump 0x000000 0xdeadbeef
0x000004 0xdeadbeef
0x000008 0xdeadbeef
0x00000c 0xdeadbeef
0x000010 0xdeadbeef
0x000014 0xdeadbeef
[...]
0x001ff4 0xdeadbeef
0x001ff8 0xdeadbeef
0x001ffc 0xdeadbeef
0x002000 0xbadc0ffe
0x002004 0xbadc0ffe
0x002008 0xbadc0ffe
0x00200c 0xbadc0ffe
0x002010 0xbadc0ffe
[...]
0x003ff0 0xbadc0ffe
0x003ff4 0xbadc0ffe
0x003ff8 0xbadc0ffe
0x003ffc 0xbadc0ffe
0x004000 0x00000000
0x004004 0x0102420b
0x004008 0x00000000
0x00400c 0x00000000
[...] (some more sane looking registers here, and then zeros) 0x004ef8 0x00000000
0x004efc 0x00000000
0x004f00 0xdeadbeef
0x004f04 0xdeadbeef
0x004f08 0xdeadbeef
[...] (and the rest is mostly deadbeef)

Also /sys/kernel/debug/ieee80211/phy0/ath9k/dma shows a lot of deadbeef.

I'm using OpenWRT r31729, a single AP bridged with Ethernet. It is normal home usage, i.e. a few laptops and android phones doing not so much traffic. The box stops working out of the blue after a few days without any outside event (at least none I'm aware of). Sometimes this problem does not occur for 2 weeks, sometimes after 12 hours, I couldn't find an easy way to reproduce it yet. As said, the box is perfectly reachable via SSH, no errors in syslog or anywhere else. Also an ifconfig wlan0 down and up seems to fix the problem.

I'll try a new firmware with more debugging turned on, but have any of you seen this problem? Any input would be very much appreciated. I have a complete /sys/kernel/debug log from a working and a non-working system, along with more info (brctl, ip config, etc) which I'd love to share with anyone interested
- it's too much to post on a public ml.

Quoted 3 lines

Thank you very much
Cheers,
Simon

Quoted 8 lines

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAlAxYvQACgkQrzg/fFk7axaPhACfaTuTkdyx9J/Q4z4EQBf/3sfi O/oAn0c8YFa8FPzayVApD2qX78OBz8AT
=3WcZ
-----END PGP SIGNATURE-----

--
thanks,
shafi

Signature · 2 lines
thanks,
shafi
#8 lore raw
Quoted 9 lines · On Thursday 23 August 2012 20:29:47 Mohammed Shafi wrote:
Quoted 9 lines
Quoted 3 lines

just to bump again - isn't there anyone who can give us some hint or clue regarding these 0xdeadbeef entries in the registers? Couldn't find a connection to other reports deadbeef on the mailing list so far.

based on the suggestion from Felix Bitterli he says the deadbeef is due to clocks
of MAC/baseband is off. Adrian says dumping RTC registers might provide some clue

Quoted 7 lines
Quoted 2 lines

today evening i would just take a look at some h/w specific changes that were still yet to be in ath9k.

sorry, i am unable to figure out any commits that seems to fix the symptoms like this. i will dig through or ask some one internally. please check with the logs sudo modprobe -v ath9k debug=0x8601 with beacon stuck debug enabled

We have currently the debug running with 0xFFC2D (so also with BS detection enabled) since a while. Unfortunately, it takes some days until the problem appears and we don't know how to force it to happen immediately.

Kind regards,
Sven

#9 lore raw
Quoted 19 lines · On Thursday 23 August 2012 17:19:45 Sven Eckelmann wrote:
Quoted 9 lines · On Thursday 23 August 2012 20:29:47 Mohammed Shafi wrote:
Quoted 9 lines
Quoted 3 lines

just to bump again - isn't there anyone who can give us some hint or clue regarding these 0xdeadbeef entries in the registers? Couldn't find a connection to other reports deadbeef on the mailing list so far.

based on the suggestion from Felix Bitterli he says the deadbeef is due to clocks
of MAC/baseband is off. Adrian says dumping RTC registers might provide some clue

Quoted 8 lines
Quoted 2 lines

today evening i would just take a look at some h/w specific changes that were still yet to be in ath9k.

sorry, i am unable to figure out any commits that seems to fix the symptoms
like this. i will dig through or ask some one internally. please check with the logs sudo modprobe -v ath9k debug=0x8601 with beacon stuck debug enabled

Quoted 3 lines

We have currently the debug running with 0xFFC2D (so also with BS detection enabled) since a while. Unfortunately, it takes some days until the problem appears and we don't know how to force it to happen immediately.

Ah, sorry. Just noticed that you also wanted to have ATH_DBG_CONFIG enabled. Therefore, I changed it to 0xFFE2D right now.

Kind regards,
Sven

#10 lore raw
In reply to Mohammed Shafi

Hey guys,

now, finally after approx. 9 days the problem hit us again, this time with debug enabled.

The symptoms are the same as described before. I'm pasting part of the syslog of routers 200 and 201 where the calibrating output changes - this is the only thing I could find which was really different from before.

Unfortunately I can't take anything useful out of the logs - to me, it looks like the 'NF calibrated' output changes out of the blue. I can provide full log files to anyone interested.

Debug level was:

# cat /sys/kernel/debug/ieee80211/phy0/ath9k/debug
0x000ffe2d

Any ideas? The routers are still on and reachable in this errorneous state, so I can check for more things. :)

Thanks,
Simon

=== router 200 ===

root@OpenWrt:/sys/kernel/debug/ieee80211/phy0/ath9k# head regdump
0x000000 0xdeadbeef
0x000004 0xdeadbeef
0x000008 0xdeadbeef
0x00000c 0xdeadbeef
0x000010 0xdeadbeef
0x000014 0xdeadbeef
0x000018 0xdeadbeef
0x00001c 0xdeadbeef
0x000020 0xdeadbeef
0x000024 0xdeadbeef
Aug 31 15:48:56 192.168.10.200 kernel: [706236.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 15:49:01 192.168.10.200 kernel: [706236.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104 
Aug 31 15:49:25 192.168.10.200 kernel: [706266.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 15:49:31 192.168.10.200 kernel: [706266.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104 
Aug 31 15:49:55 192.168.10.200 kernel: [706296.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 15:50:01 192.168.10.200 kernel: [706296.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104 
Aug 31 15:51:22 192.168.10.200 kernel: [706309.810000] ath: phy0: Resetting Cal 1 state for channel 2462 
Aug 31 15:51:27 192.168.10.200 kernel: [706309.910000] ath: phy0: starting IQ Mismatch Calibration 
Aug 31 15:51:32 192.168.10.200 kernel: [706326.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 15:51:37 192.168.10.200 kernel: [706326.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104 
Aug 31 15:51:42 192.168.10.200 kernel: [706327.810000] ath: phy0: 0: Chn 0 pmi=0x0389beb7;pmq=0x03853165;iqcm=0x0015ca84; 
Aug 31 15:51:47 192.168.10.200 kernel: [706327.810000] ath: phy0: Starting IQ Cal and Correction for Chain 0 
Aug 31 15:51:52 192.168.10.200 kernel: [706327.810000] ath: phy0: Original: Chn 0 iq_corr_meas = 0x0015ca84 
Aug 31 15:51:57 192.168.10.200 kernel: [706327.810000] ath: phy0: Chn 0 pwr_meas_i = 0x0389beb7 
Aug 31 15:52:02 192.168.10.200 kernel: [706327.810000] ath: phy0: Chn 0 pwr_meas_q = 0x03853165 
Aug 31 15:52:07 192.168.10.200 kernel: [706327.810000] ath: phy0: iqCorrNeg is 0x00000000 
Aug 31 15:52:12 192.168.10.200 kernel: [706327.810000] ath: phy0: Chn 0 iCoff = 0x00000006 
Aug 31 15:52:17 192.168.10.200 kernel: [706327.810000] ath: phy0: Chn 0 qCoff = 0x00000000 
Aug 31 15:52:22 192.168.10.200 kernel: [706327.810000] ath: phy0: Chn 0 : iCoff = 0x7a  qCoff = 0x0 
Aug 31 15:52:28 192.168.10.200 kernel: [706327.810000] ath: phy0: Register offset (0x98dc) before update = 0x20007e01 
Aug 31 15:52:33 192.168.10.200 kernel: [706327.810000] ath: phy0: Register offset (0x98dc) QI COFF (bitfields 0x00003f80) after update = 0x20007d00 
Aug 31 15:52:48 192.168.10.200 kernel: [706356.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 15:52:53 192.168.10.200 kernel: [706356.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104 
Aug 31 15:53:08 192.168.10.200 kernel: [706386.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 15:53:13 192.168.10.200 kernel: [706386.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105 
Aug 31 15:53:28 192.168.10.200 kernel: [706416.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104 
Aug 31 15:53:33 192.168.10.200 kernel: [706416.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105 
Aug 31 15:53:49 192.168.10.200 kernel: [706446.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 15:53:54 192.168.10.200 kernel: [706446.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105 
Aug 31 15:54:09 192.168.10.200 kernel: [706476.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 15:54:14 192.168.10.200 kernel: [706476.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105 
Aug 31 15:54:29 192.168.10.200 kernel: [706506.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 15:54:34 192.168.10.200 kernel: [706506.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104 
Aug 31 15:54:50 192.168.10.200 kernel: [706536.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 15:54:55 192.168.10.200 kernel: [706536.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105 
Aug 31 15:55:10 192.168.10.200 kernel: [706566.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 15:55:15 192.168.10.200 kernel: [706566.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105 
Aug 31 15:55:30 192.168.10.200 kernel: [706596.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104 
Aug 31 15:55:35 192.168.10.200 kernel: [706596.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105 
Aug 31 15:55:50 192.168.10.200 kernel: [706626.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 15:55:55 192.168.10.200 kernel: [706626.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104 
Aug 31 15:56:11 192.168.10.200 kernel: [706656.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 15:56:16 192.168.10.200 kernel: [706656.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105 
Aug 31 15:56:31 192.168.10.200 kernel: [706686.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 15:56:36 192.168.10.200 kernel: [706686.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105 
Aug 31 15:56:56 192.168.10.200 kernel: [706716.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104 
Aug 31 15:57:01 192.168.10.200 kernel: [706716.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105 
Aug 31 15:57:26 192.168.10.200 kernel: [706746.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104 
Aug 31 15:57:31 192.168.10.200 kernel: [706746.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104 
Aug 31 15:57:56 192.168.10.200 kernel: [706776.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104 
Aug 31 15:58:01 192.168.10.200 kernel: [706776.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104 
Aug 31 15:58:26 192.168.10.200 kernel: [706806.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 15:58:31 192.168.10.200 kernel: [706806.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105 
Aug 31 15:58:46 192.168.10.200 kernel: [706824.240000] ath: phy0: Set HW Key 
Aug 31 15:58:51 192.168.10.200 kernel: [706824.240000] ath: phy0: Set HW Key 
Aug 31 15:58:56 192.168.10.200 kernel: [706836.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104 
Aug 31 15:59:01 192.168.10.200 kernel: [706836.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105 
Aug 31 15:59:26 192.168.10.200 kernel: [706866.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 15:59:31 192.168.10.200 kernel: [706866.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105 
Aug 31 15:59:46 192.168.10.200 kernel: [706884.160000] ath: phy0: missed 1 consecutive beacons 
Aug 31 15:59:51 192.168.10.200 kernel: [706884.250000] ath: phy0: resume beacon xmit after 1 misses 
Aug 31 15:59:56 192.168.10.200 kernel: [706896.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 16:00:01 192.168.10.200 kernel: [706896.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104 
Aug 31 16:00:20 192.168.10.200 kernel: [706920.710000] ath: phy0: missed 1 consecutive beacons 
Aug 31 16:00:25 192.168.10.200 kernel: [706920.800000] ath: phy0: resume beacon xmit after 1 misses 
Aug 31 16:00:30 192.168.10.200 kernel: [706926.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 16:00:36 192.168.10.200 kernel: [706926.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105 
Aug 31 16:00:56 192.168.10.200 kernel: [706956.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 16:01:01 192.168.10.200 kernel: [706956.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104 
Aug 31 16:01:26 192.168.10.200 kernel: [706986.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104 
Aug 31 16:01:31 192.168.10.200 kernel: [706986.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104 
Aug 31 16:01:55 192.168.10.200 kernel: [707015.330000] ath: phy0: missed 1 consecutive beacons 
Aug 31 16:02:00 192.168.10.200 kernel: [707015.420000] ath: phy0: resume beacon xmit after 1 misses 
Aug 31 16:02:05 192.168.10.200 kernel: [707016.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104 
Aug 31 16:02:10 192.168.10.200 kernel: [707016.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104 
Aug 31 16:02:35 192.168.10.200 kernel: [707046.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104 
Aug 31 16:02:41 192.168.10.200 kernel: [707046.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104 
Aug 31 16:02:56 192.168.10.200 kernel: [707076.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 16:03:01 192.168.10.200 kernel: [707076.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105 
Aug 31 16:03:26 192.168.10.200 kernel: [707106.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 16:03:31 192.168.10.200 kernel: [707106.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105 
Aug 31 16:03:56 192.168.10.200 kernel: [707136.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104 
Aug 31 16:04:01 192.168.10.200 kernel: [707136.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104 
Aug 31 16:04:26 192.168.10.200 kernel: [707166.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 16:04:31 192.168.10.200 kernel: [707166.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105 
Aug 31 16:04:56 192.168.10.200 kernel: [707196.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 16:05:01 192.168.10.200 kernel: [707196.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105 
Aug 31 16:05:26 192.168.10.200 kernel: [707226.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104 
Aug 31 16:05:31 192.168.10.200 kernel: [707226.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104 
Aug 31 16:05:56 192.168.10.200 kernel: [707256.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 16:06:01 192.168.10.200 kernel: [707256.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104 
Aug 31 16:06:26 192.168.10.200 kernel: [707286.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 16:06:31 192.168.10.200 kernel: [707286.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104 
Aug 31 16:06:56 192.168.10.200 kernel: [707316.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 16:07:01 192.168.10.200 kernel: [707316.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104 
Aug 31 16:07:26 192.168.10.200 kernel: [707346.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104 
Aug 31 16:07:31 192.168.10.200 kernel: [707346.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104 
Aug 31 16:07:56 192.168.10.200 kernel: [707376.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 16:08:01 192.168.10.200 kernel: [707376.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105 
Aug 31 16:08:26 192.168.10.200 kernel: [707406.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105 
Aug 31 16:08:31 192.168.10.200 kernel: [707406.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105 
Aug 31 16:08:57 192.168.10.200 kernel: [707424.240000] ath: phy0: Set HW Key 
Aug 31 16:09:02 192.168.10.200 kernel: [707424.240000] ath: phy0: Set HW Key 
Aug 31 16:09:07 192.168.10.200 kernel: [707436.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:09:12 192.168.10.200 kernel: [707436.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:09:17 192.168.10.200 kernel: [707436.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:09:22 192.168.10.200 kernel: [707436.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:09:37 192.168.10.200 kernel: [707466.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:09:42 192.168.10.200 kernel: [707466.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:09:47 192.168.10.200 kernel: [707466.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:09:52 192.168.10.200 kernel: [707466.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:10:08 192.168.10.200 kernel: [707496.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:10:13 192.168.10.200 kernel: [707496.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:10:18 192.168.10.200 kernel: [707496.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:10:23 192.168.10.200 kernel: [707496.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:10:48 192.168.10.200 kernel: [707526.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:10:53 192.168.10.200 kernel: [707526.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:10:58 192.168.10.200 kernel: [707526.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:11:03 192.168.10.200 kernel: [707526.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:11:08 192.168.10.200 kernel: [707527.810000] ath: phy0: Resetting Cal 1 state for channel 2462 
Aug 31 16:11:13 192.168.10.200 kernel: [707527.910000] ath: phy0: starting IQ Mismatch Calibration 
Aug 31 16:11:19 192.168.10.200 kernel: [707528.010000] ath: phy0: 0: Chn 0 pmi=0x00000000;pmq=0x00000000;iqcm=0x00000000; 
Aug 31 16:11:24 192.168.10.200 kernel: [707528.010000] ath: phy0: Starting IQ Cal and Correction for Chain 0 
Aug 31 16:11:29 192.168.10.200 kernel: [707528.010000] ath: phy0: Original: Chn 0 iq_corr_meas = 0x00000000 
Aug 31 16:11:34 192.168.10.200 kernel: [707528.010000] ath: phy0: Chn 0 pwr_meas_i = 0x00000000 
Aug 31 16:11:39 192.168.10.200 kernel: [707528.010000] ath: phy0: Chn 0 pwr_meas_q = 0x00000000 
Aug 31 16:11:44 192.168.10.200 kernel: [707528.010000] ath: phy0: iqCorrNeg is 0x00000000 
Aug 31 16:11:49 192.168.10.200 kernel: [707528.010000] ath: phy0: IQ Cal and Correction (offset 0x98dc) enabled (bit position 0x00004000). New Value 0x20007d00 
Aug 31 16:13:00 192.168.10.200 kernel: [707556.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:13:05 192.168.10.200 kernel: [707556.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:13:10 192.168.10.200 kernel: [707556.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:13:15 192.168.10.200 kernel: [707556.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:13:30 192.168.10.200 kernel: [707586.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:13:35 192.168.10.200 kernel: [707586.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:13:40 192.168.10.200 kernel: [707586.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:13:46 192.168.10.200 kernel: [707586.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:14:01 192.168.10.200 kernel: [707616.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:14:06 192.168.10.200 kernel: [707616.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:14:11 192.168.10.200 kernel: [707616.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:14:16 192.168.10.200 kernel: [707616.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:14:31 192.168.10.200 kernel: [707646.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:14:36 192.168.10.200 kernel: [707646.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:14:41 192.168.10.200 kernel: [707646.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:14:46 192.168.10.200 kernel: [707646.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:15:02 192.168.10.200 kernel: [707676.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:15:07 192.168.10.200 kernel: [707676.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:15:12 192.168.10.200 kernel: [707676.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:15:17 192.168.10.200 kernel: [707676.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:15:32 192.168.10.200 kernel: [707706.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:15:37 192.168.10.200 kernel: [707706.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:15:42 192.168.10.200 kernel: [707706.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:15:47 192.168.10.200 kernel: [707706.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:16:02 192.168.10.200 kernel: [707736.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:16:07 192.168.10.200 kernel: [707736.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:16:13 192.168.10.200 kernel: [707736.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:16:18 192.168.10.200 kernel: [707736.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:16:33 192.168.10.200 kernel: [707766.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:16:38 192.168.10.200 kernel: [707766.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:16:43 192.168.10.200 kernel: [707766.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:16:48 192.168.10.200 kernel: [707766.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:17:03 192.168.10.200 kernel: [707796.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:17:08 192.168.10.200 kernel: [707796.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:17:13 192.168.10.200 kernel: [707796.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:17:18 192.168.10.200 kernel: [707796.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:17:34 192.168.10.200 kernel: [707826.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:17:39 192.168.10.200 kernel: [707826.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:17:44 192.168.10.200 kernel: [707826.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:17:49 192.168.10.200 kernel: [707826.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:18:04 192.168.10.200 kernel: [707856.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:18:09 192.168.10.200 kernel: [707856.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:18:14 192.168.10.200 kernel: [707856.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:18:19 192.168.10.200 kernel: [707856.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:18:34 192.168.10.200 kernel: [707886.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:18:39 192.168.10.200 kernel: [707886.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:18:45 192.168.10.200 kernel: [707886.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:18:50 192.168.10.200 kernel: [707886.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:19:05 192.168.10.200 kernel: [707916.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:19:10 192.168.10.200 kernel: [707916.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:19:15 192.168.10.200 kernel: [707916.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:19:20 192.168.10.200 kernel: [707916.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:19:45 192.168.10.200 kernel: [707946.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:19:50 192.168.10.200 kernel: [707946.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:19:55 192.168.10.200 kernel: [707946.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:20:01 192.168.10.200 kernel: [707946.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:20:26 192.168.10.200 kernel: [707976.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:20:31 192.168.10.200 kernel: [707976.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:20:36 192.168.10.200 kernel: [707976.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:20:41 192.168.10.200 kernel: [707976.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:20:56 192.168.10.200 kernel: [708006.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:21:01 192.168.10.200 kernel: [708006.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:21:06 192.168.10.200 kernel: [708006.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:21:11 192.168.10.200 kernel: [708006.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:21:27 192.168.10.200 kernel: [708024.250000] ath: phy0: Set HW Key 
Aug 31 16:21:32 192.168.10.200 kernel: [708024.250000] ath: phy0: Set HW Key 
Aug 31 16:21:37 192.168.10.200 kernel: [708036.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:21:42 192.168.10.200 kernel: [708036.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:21:47 192.168.10.200 kernel: [708036.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:21:52 192.168.10.200 kernel: [708036.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:22:17 192.168.10.200 kernel: [708066.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:22:22 192.168.10.200 kernel: [708066.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:22:27 192.168.10.200 kernel: [708066.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:22:33 192.168.10.200 kernel: [708066.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:22:58 192.168.10.200 kernel: [708096.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:23:03 192.168.10.200 kernel: [708096.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:23:08 192.168.10.200 kernel: [708096.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:23:13 192.168.10.200 kernel: [708096.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:23:28 192.168.10.200 kernel: [708126.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:23:33 192.168.10.200 kernel: [708126.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:23:38 192.168.10.200 kernel: [708126.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:23:43 192.168.10.200 kernel: [708126.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:23:59 192.168.10.200 kernel: [708156.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:24:04 192.168.10.200 kernel: [708156.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:24:09 192.168.10.200 kernel: [708156.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:24:14 192.168.10.200 kernel: [708156.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:24:29 192.168.10.200 kernel: [708186.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:24:34 192.168.10.200 kernel: [708186.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:24:39 192.168.10.200 kernel: [708186.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:24:44 192.168.10.200 kernel: [708186.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:24:59 192.168.10.200 kernel: [708216.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:25:05 192.168.10.200 kernel: [708216.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:25:10 192.168.10.200 kernel: [708216.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:25:15 192.168.10.200 kernel: [708216.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:25:30 192.168.10.200 kernel: [708246.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:25:35 192.168.10.200 kernel: [708246.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:25:40 192.168.10.200 kernel: [708246.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:25:45 192.168.10.200 kernel: [708246.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:26:00 192.168.10.200 kernel: [708276.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:26:05 192.168.10.200 kernel: [708276.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:26:10 192.168.10.200 kernel: [708276.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:26:16 192.168.10.200 kernel: [708276.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:26:31 192.168.10.200 kernel: [708306.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:26:36 192.168.10.200 kernel: [708306.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:26:41 192.168.10.200 kernel: [708306.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:26:46 192.168.10.200 kernel: [708306.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:27:01 192.168.10.200 kernel: [708336.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:27:06 192.168.10.200 kernel: [708336.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:27:11 192.168.10.200 kernel: [708336.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:27:16 192.168.10.200 kernel: [708336.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:27:31 192.168.10.200 kernel: [708366.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:27:37 192.168.10.200 kernel: [708366.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:27:42 192.168.10.200 kernel: [708366.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:27:47 192.168.10.200 kernel: [708366.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:28:02 192.168.10.200 kernel: [708396.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:28:07 192.168.10.200 kernel: [708396.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:28:12 192.168.10.200 kernel: [708396.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:28:17 192.168.10.200 kernel: [708396.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:28:32 192.168.10.200 kernel: [708426.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:28:37 192.168.10.200 kernel: [708426.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:28:42 192.168.10.200 kernel: [708426.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:28:47 192.168.10.200 kernel: [708426.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:29:03 192.168.10.200 kernel: [708456.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:29:08 192.168.10.200 kernel: [708456.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:29:13 192.168.10.200 kernel: [708456.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:29:18 192.168.10.200 kernel: [708456.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:29:33 192.168.10.200 kernel: [708486.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:29:38 192.168.10.200 kernel: [708486.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:29:43 192.168.10.200 kernel: [708486.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:29:48 192.168.10.200 kernel: [708486.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:30:03 192.168.10.200 kernel: [708516.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:30:09 192.168.10.200 kernel: [708516.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:30:14 192.168.10.200 kernel: [708516.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:30:19 192.168.10.200 kernel: [708516.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:30:44 192.168.10.200 kernel: [708546.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:30:49 192.168.10.200 kernel: [708546.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:30:54 192.168.10.200 kernel: [708546.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:30:59 192.168.10.200 kernel: [708546.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:31:14 192.168.10.200 kernel: [708576.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:31:19 192.168.10.200 kernel: [708576.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:31:25 192.168.10.200 kernel: [708576.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:31:30 192.168.10.200 kernel: [708576.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:31:45 192.168.10.200 kernel: [708606.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:31:50 192.168.10.200 kernel: [708606.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:31:55 192.168.10.200 kernel: [708606.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:32:00 192.168.10.200 kernel: [708606.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:32:15 192.168.10.200 kernel: [708624.250000] ath: phy0: Set HW Key 
Aug 31 16:32:20 192.168.10.200 kernel: [708624.250000] ath: phy0: Set HW Key 
Aug 31 16:32:25 192.168.10.200 kernel: [708636.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:32:30 192.168.10.200 kernel: [708636.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:32:35 192.168.10.200 kernel: [708636.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:32:41 192.168.10.200 kernel: [708636.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:32:56 192.168.10.200 kernel: [708666.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:33:01 192.168.10.200 kernel: [708666.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:33:06 192.168.10.200 kernel: [708666.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:33:11 192.168.10.200 kernel: [708666.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:33:26 192.168.10.200 kernel: [708696.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:33:31 192.168.10.200 kernel: [708696.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:33:36 192.168.10.200 kernel: [708696.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:33:41 192.168.10.200 kernel: [708696.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:33:57 192.168.10.200 kernel: [708726.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Aug 31 16:34:02 192.168.10.200 kernel: [708726.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:34:07 192.168.10.200 kernel: [708726.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Aug 31 16:34:12 192.168.10.200 kernel: [708726.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Aug 31 16:34:17 192.168.10.200 kernel: [708728.010000] ath: phy0: Resetting Cal 1 state for channel 2462 
Aug 31 16:34:22 192.168.10.200 kernel: [708728.110000] ath: phy0: starting IQ Mismatch Calibration 
Aug 31 16:34:27 192.168.10.200 kernel: [708728.210000] ath: phy0: 0: Chn 0 pmi=0x00000000;pmq=0x00000000;iqcm=0x00000000; 
Aug 31 16:34:32 192.168.10.200 kernel: [708728.210000] ath: phy0: Starting IQ Cal and Correction for Chain 0 
Aug 31 16:34:37 192.168.10.200 kernel: [708728.210000] ath: phy0: Original: Chn 0 iq_corr_meas = 0x00000000 
Aug 31 16:34:42 192.168.10.200 kernel: [708728.210000] ath: phy0: Chn 0 pwr_meas_i = 0x00000000 
Aug 31 16:34:47 192.168.10.200 kernel: [708728.210000] ath: phy0: Chn 0 pwr_meas_q = 0x00000000 
Aug 31 16:34:52 192.168.10.200 kernel: [708728.210000] ath: phy0: iqCorrNeg is 0x00000000 
Aug 31 16:34:57 192.168.10.200 kernel: [708728.210000] ath: phy0: IQ Cal and Correction (offset 0x98dc) enabled (bit position 0x00004000). New Value 0x20007d00 
[...]
Sep  2 21:52:46 192.168.10.200 kernel: [899346.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Sep  2 21:52:51 192.168.10.200 kernel: [899346.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Sep  2 21:53:06 192.168.10.200 kernel: [899376.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Sep  2 21:53:11 192.168.10.200 kernel: [899376.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Sep  2 21:53:16 192.168.10.200 kernel: [899376.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Sep  2 21:53:21 192.168.10.200 kernel: [899376.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Sep  2 21:53:37 192.168.10.200 kernel: [899406.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Sep  2 21:53:42 192.168.10.200 kernel: [899406.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Sep  2 21:53:47 192.168.10.200 kernel: [899406.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Sep  2 21:53:52 192.168.10.200 kernel: [899406.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 
Sep  2 21:53:57 192.168.10.200 kernel: [899426.250000] ath: phy0: Set HW Key 
Sep  2 21:54:02 192.168.10.200 kernel: [899426.260000] ath: phy0: Set HW Key 
Sep  2 21:54:17 192.168.10.200 kernel: [899436.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Sep  2 21:54:22 192.168.10.200 kernel: [899436.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Sep  2 21:54:37 192.168.10.200 kernel: [899466.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45 
Sep  2 21:54:43 192.168.10.200 kernel: [899466.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX 
Sep  2 21:54:48 192.168.10.200 kernel: [899466.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45 
Sep  2 21:54:53 192.168.10.200 kernel: [899466.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX 

=== router 201 ===

root@OpenWrt:/sys/kernel/debug/ieee80211/phy0/ath9k# head regdump
0x000000 0xdeadbeef
0x000004 0xdeadbeef
0x000008 0xdeadbeef
0x00000c 0xdeadbeef
0x000010 0xdeadbeef
0x000014 0xdeadbeef
0x000018 0xdeadbeef
0x00001c 0xdeadbeef
0x000020 0xdeadbeef
0x000024 0xdeadbeef
root@OpenWrt:/sys/kernel/debug/ieee80211/phy0/ath9k# uptime
 10:20:54 up 10 days, 10:20,  load average: 0.18, 0.19, 0.21
# dmesg
[...]
[900132.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900162.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900162.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900192.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900192.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900197.470000] ath: phy0: missed 1 consecutive beacons
[900197.560000] ath: phy0: resume beacon xmit after 1 misses
[900222.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900222.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900252.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900252.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900275.910000] ath: phy0: missed 1 consecutive beacons
[900276.000000] ath: phy0: resume beacon xmit after 1 misses
[900282.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900282.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900303.560000] ath: phy0: missed 1 consecutive beacons
[900303.650000] ath: phy0: resume beacon xmit after 1 misses
[900312.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900312.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900342.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900342.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900372.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900372.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900402.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900402.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900432.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900432.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900462.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900462.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900492.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900492.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900522.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900522.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900552.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -103
[900552.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900582.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900582.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900582.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900582.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900612.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900612.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900612.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900612.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900625.220000] ath: phy0: Set HW Key
[900625.220000] ath: phy0: Set HW Key
[900642.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900642.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900642.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900642.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900672.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900672.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900672.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900672.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900702.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900702.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900702.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900702.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900732.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900732.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900732.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900732.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900762.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900762.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900762.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900762.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900792.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900792.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900792.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900792.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900822.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900822.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900822.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900822.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900852.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900852.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900852.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900852.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900882.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900882.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900882.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900882.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900912.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900912.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900912.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900912.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900942.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900942.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900942.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900942.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900969.460000] ath: phy0: Resetting Cal 1 state for channel 2462
[900969.560000] ath: phy0: starting IQ Mismatch Calibration
[900969.660000] ath: phy0: 0: Chn 0 pmi=0x00000000;pmq=0x00000000;iqcm=0x00000000;
[900969.660000] ath: phy0: Starting IQ Cal and Correction for Chain 0
[900969.660000] ath: phy0: Original: Chn 0 iq_corr_meas = 0x00000000
[900969.660000] ath: phy0: Chn 0 pwr_meas_i = 0x00000000
[900969.660000] ath: phy0: Chn 0 pwr_meas_q = 0x00000000
[900969.660000] ath: phy0: iqCorrNeg is 0x00000000
[900969.660000] ath: phy0: IQ Cal and Correction (offset 0x98dc) enabled (bit position 0x00004000). New Value 0x20007f7b
[900972.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900972.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900972.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900972.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[901002.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[901002.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[901002.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[901002.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[901032.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[901032.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[901032.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[901032.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[901062.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[901062.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[901062.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[901062.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[901092.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[901092.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[901092.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[901092.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[901122.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[901122.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[901122.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[901122.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[901152.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[901152.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[901152.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[901152.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
#11 lore raw
Quoted 375 lines · Simon Wunderlich

Hey guys,

now, finally after approx. 9 days the problem hit us again, this time with debug enabled.

The symptoms are the same as described before. I'm pasting part of the syslog of routers 200 and 201 where the calibrating output changes - this is the only thing I could find which was really different from before.

Unfortunately I can't take anything useful out of the logs - to me, it looks like the 'NF calibrated' output changes out of the blue. I can provide full log files to anyone interested.

Debug level was:

# cat /sys/kernel/debug/ieee80211/phy0/ath9k/debug
0x000ffe2d

Any ideas? The routers are still on and reachable in this errorneous state, so I can check for more things. :)

Thanks,
Simon

=== router 200 ===
root at OpenWrt:/sys/kernel/debug/ieee80211/phy0/ath9k# head regdump 0x000000 0xdeadbeef
0x000004 0xdeadbeef
0x000008 0xdeadbeef
0x00000c 0xdeadbeef
0x000010 0xdeadbeef
0x000014 0xdeadbeef
0x000018 0xdeadbeef
0x00001c 0xdeadbeef
0x000020 0xdeadbeef
0x000024 0xdeadbeef

Aug 31 15:48:56 192.168.10.200 kernel: [706236.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 15:49:01 192.168.10.200 kernel: [706236.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104
Aug 31 15:49:25 192.168.10.200 kernel: [706266.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 15:49:31 192.168.10.200 kernel: [706266.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104
Aug 31 15:49:55 192.168.10.200 kernel: [706296.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 15:50:01 192.168.10.200 kernel: [706296.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104
Aug 31 15:51:22 192.168.10.200 kernel: [706309.810000] ath: phy0: Resetting Cal 1 state for channel 2462
Aug 31 15:51:27 192.168.10.200 kernel: [706309.910000] ath: phy0: starting IQ Mismatch Calibration
Aug 31 15:51:32 192.168.10.200 kernel: [706326.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 15:51:37 192.168.10.200 kernel: [706326.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104
Aug 31 15:51:42 192.168.10.200 kernel: [706327.810000] ath: phy0: 0: Chn 0 pmi=0x0389beb7;pmq=0x03853165;iqcm=0x0015ca84;
Aug 31 15:51:47 192.168.10.200 kernel: [706327.810000] ath: phy0: Starting IQ Cal and Correction for Chain 0
Aug 31 15:51:52 192.168.10.200 kernel: [706327.810000] ath: phy0: Original: Chn 0 iq_corr_meas = 0x0015ca84
Aug 31 15:51:57 192.168.10.200 kernel: [706327.810000] ath: phy0: Chn 0 pwr_meas_i = 0x0389beb7
Aug 31 15:52:02 192.168.10.200 kernel: [706327.810000] ath: phy0: Chn 0 pwr_meas_q = 0x03853165
Aug 31 15:52:07 192.168.10.200 kernel: [706327.810000] ath: phy0: iqCorrNeg is 0x00000000
Aug 31 15:52:12 192.168.10.200 kernel: [706327.810000] ath: phy0: Chn 0 iCoff = 0x00000006
Aug 31 15:52:17 192.168.10.200 kernel: [706327.810000] ath: phy0: Chn 0 qCoff = 0x00000000
Aug 31 15:52:22 192.168.10.200 kernel: [706327.810000] ath: phy0: Chn 0 : iCoff = 0x7a  qCoff = 0x0
Aug 31 15:52:28 192.168.10.200 kernel: [706327.810000] ath: phy0: Register offset (0x98dc) before update = 0x20007e01
Aug 31 15:52:33 192.168.10.200 kernel: [706327.810000] ath: phy0: Register offset (0x98dc) QI COFF (bitfields 0x00003f80) after update = 0x20007d00
Aug 31 15:52:48 192.168.10.200 kernel: [706356.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 15:52:53 192.168.10.200 kernel: [706356.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104
Aug 31 15:53:08 192.168.10.200 kernel: [706386.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 15:53:13 192.168.10.200 kernel: [706386.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105
Aug 31 15:53:28 192.168.10.200 kernel: [706416.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
Aug 31 15:53:33 192.168.10.200 kernel: [706416.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105
Aug 31 15:53:49 192.168.10.200 kernel: [706446.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 15:53:54 192.168.10.200 kernel: [706446.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105
Aug 31 15:54:09 192.168.10.200 kernel: [706476.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 15:54:14 192.168.10.200 kernel: [706476.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105
Aug 31 15:54:29 192.168.10.200 kernel: [706506.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 15:54:34 192.168.10.200 kernel: [706506.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104
Aug 31 15:54:50 192.168.10.200 kernel: [706536.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 15:54:55 192.168.10.200 kernel: [706536.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105
Aug 31 15:55:10 192.168.10.200 kernel: [706566.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 15:55:15 192.168.10.200 kernel: [706566.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105
Aug 31 15:55:30 192.168.10.200 kernel: [706596.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
Aug 31 15:55:35 192.168.10.200 kernel: [706596.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105
Aug 31 15:55:50 192.168.10.200 kernel: [706626.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 15:55:55 192.168.10.200 kernel: [706626.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104
Aug 31 15:56:11 192.168.10.200 kernel: [706656.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 15:56:16 192.168.10.200 kernel: [706656.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105
Aug 31 15:56:31 192.168.10.200 kernel: [706686.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 15:56:36 192.168.10.200 kernel: [706686.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105
Aug 31 15:56:56 192.168.10.200 kernel: [706716.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
Aug 31 15:57:01 192.168.10.200 kernel: [706716.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105
Aug 31 15:57:26 192.168.10.200 kernel: [706746.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
Aug 31 15:57:31 192.168.10.200 kernel: [706746.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104
Aug 31 15:57:56 192.168.10.200 kernel: [706776.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
Aug 31 15:58:01 192.168.10.200 kernel: [706776.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104
Aug 31 15:58:26 192.168.10.200 kernel: [706806.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 15:58:31 192.168.10.200 kernel: [706806.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105
Aug 31 15:58:46 192.168.10.200 kernel: [706824.240000] ath: phy0: Set HW Key
Aug 31 15:58:51 192.168.10.200 kernel: [706824.240000] ath: phy0: Set HW Key
Aug 31 15:58:56 192.168.10.200 kernel: [706836.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
Aug 31 15:59:01 192.168.10.200 kernel: [706836.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105
Aug 31 15:59:26 192.168.10.200 kernel: [706866.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 15:59:31 192.168.10.200 kernel: [706866.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105
Aug 31 15:59:46 192.168.10.200 kernel: [706884.160000] ath: phy0: missed 1 consecutive beacons
Aug 31 15:59:51 192.168.10.200 kernel: [706884.250000] ath: phy0: resume beacon xmit after 1 misses
Aug 31 15:59:56 192.168.10.200 kernel: [706896.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 16:00:01 192.168.10.200 kernel: [706896.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104
Aug 31 16:00:20 192.168.10.200 kernel: [706920.710000] ath: phy0: missed 1 consecutive beacons
Aug 31 16:00:25 192.168.10.200 kernel: [706920.800000] ath: phy0: resume beacon xmit after 1 misses
Aug 31 16:00:30 192.168.10.200 kernel: [706926.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 16:00:36 192.168.10.200 kernel: [706926.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105
Aug 31 16:00:56 192.168.10.200 kernel: [706956.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 16:01:01 192.168.10.200 kernel: [706956.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104
Aug 31 16:01:26 192.168.10.200 kernel: [706986.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
Aug 31 16:01:31 192.168.10.200 kernel: [706986.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104
Aug 31 16:01:55 192.168.10.200 kernel: [707015.330000] ath: phy0: missed 1 consecutive beacons
Aug 31 16:02:00 192.168.10.200 kernel: [707015.420000] ath: phy0: resume beacon xmit after 1 misses
Aug 31 16:02:05 192.168.10.200 kernel: [707016.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
Aug 31 16:02:10 192.168.10.200 kernel: [707016.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104
Aug 31 16:02:35 192.168.10.200 kernel: [707046.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
Aug 31 16:02:41 192.168.10.200 kernel: [707046.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104
Aug 31 16:02:56 192.168.10.200 kernel: [707076.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 16:03:01 192.168.10.200 kernel: [707076.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105
Aug 31 16:03:26 192.168.10.200 kernel: [707106.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 16:03:31 192.168.10.200 kernel: [707106.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105
Aug 31 16:03:56 192.168.10.200 kernel: [707136.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
Aug 31 16:04:01 192.168.10.200 kernel: [707136.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104
Aug 31 16:04:26 192.168.10.200 kernel: [707166.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 16:04:31 192.168.10.200 kernel: [707166.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105
Aug 31 16:04:56 192.168.10.200 kernel: [707196.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 16:05:01 192.168.10.200 kernel: [707196.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105
Aug 31 16:05:26 192.168.10.200 kernel: [707226.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
Aug 31 16:05:31 192.168.10.200 kernel: [707226.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104
Aug 31 16:05:56 192.168.10.200 kernel: [707256.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 16:06:01 192.168.10.200 kernel: [707256.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104
Aug 31 16:06:26 192.168.10.200 kernel: [707286.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 16:06:31 192.168.10.200 kernel: [707286.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104
Aug 31 16:06:56 192.168.10.200 kernel: [707316.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 16:07:01 192.168.10.200 kernel: [707316.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104
Aug 31 16:07:26 192.168.10.200 kernel: [707346.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
Aug 31 16:07:31 192.168.10.200 kernel: [707346.110000] ath: phy0: NF calibrated [ext] [chain 0] is -104
Aug 31 16:07:56 192.168.10.200 kernel: [707376.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 16:08:01 192.168.10.200 kernel: [707376.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105
Aug 31 16:08:26 192.168.10.200 kernel: [707406.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -105
Aug 31 16:08:31 192.168.10.200 kernel: [707406.110000] ath: phy0: NF calibrated [ext] [chain 0] is -105
Aug 31 16:08:57 192.168.10.200 kernel: [707424.240000] ath: phy0: Set HW Key
Aug 31 16:09:02 192.168.10.200 kernel: [707424.240000] ath: phy0: Set HW Key
Aug 31 16:09:07 192.168.10.200 kernel: [707436.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:09:12 192.168.10.200 kernel: [707436.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:09:17 192.168.10.200 kernel: [707436.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:09:22 192.168.10.200 kernel: [707436.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:09:37 192.168.10.200 kernel: [707466.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:09:42 192.168.10.200 kernel: [707466.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:09:47 192.168.10.200 kernel: [707466.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:09:52 192.168.10.200 kernel: [707466.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:10:08 192.168.10.200 kernel: [707496.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:10:13 192.168.10.200 kernel: [707496.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:10:18 192.168.10.200 kernel: [707496.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:10:23 192.168.10.200 kernel: [707496.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:10:48 192.168.10.200 kernel: [707526.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:10:53 192.168.10.200 kernel: [707526.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:10:58 192.168.10.200 kernel: [707526.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:11:03 192.168.10.200 kernel: [707526.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:11:08 192.168.10.200 kernel: [707527.810000] ath: phy0: Resetting Cal 1 state for channel 2462
Aug 31 16:11:13 192.168.10.200 kernel: [707527.910000] ath: phy0: starting IQ Mismatch Calibration
Aug 31 16:11:19 192.168.10.200 kernel: [707528.010000] ath: phy0: 0: Chn 0 pmi=0x00000000;pmq=0x00000000;iqcm=0x00000000;
Aug 31 16:11:24 192.168.10.200 kernel: [707528.010000] ath: phy0: Starting IQ Cal and Correction for Chain 0
Aug 31 16:11:29 192.168.10.200 kernel: [707528.010000] ath: phy0: Original: Chn 0 iq_corr_meas = 0x00000000
Aug 31 16:11:34 192.168.10.200 kernel: [707528.010000] ath: phy0: Chn 0 pwr_meas_i = 0x00000000
Aug 31 16:11:39 192.168.10.200 kernel: [707528.010000] ath: phy0: Chn 0 pwr_meas_q = 0x00000000
Aug 31 16:11:44 192.168.10.200 kernel: [707528.010000] ath: phy0: iqCorrNeg is 0x00000000
Aug 31 16:11:49 192.168.10.200 kernel: [707528.010000] ath: phy0: IQ Cal and Correction (offset 0x98dc) enabled (bit position 0x00004000). New Value 0x20007d00
Aug 31 16:13:00 192.168.10.200 kernel: [707556.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:13:05 192.168.10.200 kernel: [707556.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:13:10 192.168.10.200 kernel: [707556.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:13:15 192.168.10.200 kernel: [707556.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:13:30 192.168.10.200 kernel: [707586.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:13:35 192.168.10.200 kernel: [707586.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:13:40 192.168.10.200 kernel: [707586.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:13:46 192.168.10.200 kernel: [707586.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:14:01 192.168.10.200 kernel: [707616.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:14:06 192.168.10.200 kernel: [707616.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:14:11 192.168.10.200 kernel: [707616.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:14:16 192.168.10.200 kernel: [707616.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:14:31 192.168.10.200 kernel: [707646.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:14:36 192.168.10.200 kernel: [707646.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:14:41 192.168.10.200 kernel: [707646.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:14:46 192.168.10.200 kernel: [707646.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:15:02 192.168.10.200 kernel: [707676.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:15:07 192.168.10.200 kernel: [707676.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:15:12 192.168.10.200 kernel: [707676.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:15:17 192.168.10.200 kernel: [707676.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:15:32 192.168.10.200 kernel: [707706.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:15:37 192.168.10.200 kernel: [707706.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:15:42 192.168.10.200 kernel: [707706.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:15:47 192.168.10.200 kernel: [707706.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:16:02 192.168.10.200 kernel: [707736.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:16:07 192.168.10.200 kernel: [707736.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:16:13 192.168.10.200 kernel: [707736.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:16:18 192.168.10.200 kernel: [707736.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:16:33 192.168.10.200 kernel: [707766.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:16:38 192.168.10.200 kernel: [707766.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:16:43 192.168.10.200 kernel: [707766.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:16:48 192.168.10.200 kernel: [707766.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:17:03 192.168.10.200 kernel: [707796.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:17:08 192.168.10.200 kernel: [707796.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:17:13 192.168.10.200 kernel: [707796.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:17:18 192.168.10.200 kernel: [707796.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:17:34 192.168.10.200 kernel: [707826.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:17:39 192.168.10.200 kernel: [707826.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:17:44 192.168.10.200 kernel: [707826.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:17:49 192.168.10.200 kernel: [707826.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:18:04 192.168.10.200 kernel: [707856.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:18:09 192.168.10.200 kernel: [707856.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:18:14 192.168.10.200 kernel: [707856.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:18:19 192.168.10.200 kernel: [707856.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:18:34 192.168.10.200 kernel: [707886.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:18:39 192.168.10.200 kernel: [707886.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:18:45 192.168.10.200 kernel: [707886.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:18:50 192.168.10.200 kernel: [707886.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:19:05 192.168.10.200 kernel: [707916.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:19:10 192.168.10.200 kernel: [707916.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:19:15 192.168.10.200 kernel: [707916.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:19:20 192.168.10.200 kernel: [707916.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:19:45 192.168.10.200 kernel: [707946.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:19:50 192.168.10.200 kernel: [707946.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:19:55 192.168.10.200 kernel: [707946.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:20:01 192.168.10.200 kernel: [707946.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:20:26 192.168.10.200 kernel: [707976.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:20:31 192.168.10.200 kernel: [707976.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:20:36 192.168.10.200 kernel: [707976.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:20:41 192.168.10.200 kernel: [707976.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:20:56 192.168.10.200 kernel: [708006.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:21:01 192.168.10.200 kernel: [708006.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:21:06 192.168.10.200 kernel: [708006.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:21:11 192.168.10.200 kernel: [708006.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:21:27 192.168.10.200 kernel: [708024.250000] ath: phy0: Set HW Key
Aug 31 16:21:32 192.168.10.200 kernel: [708024.250000] ath: phy0: Set HW Key
Aug 31 16:21:37 192.168.10.200 kernel: [708036.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:21:42 192.168.10.200 kernel: [708036.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:21:47 192.168.10.200 kernel: [708036.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:21:52 192.168.10.200 kernel: [708036.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:22:17 192.168.10.200 kernel: [708066.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:22:22 192.168.10.200 kernel: [708066.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:22:27 192.168.10.200 kernel: [708066.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:22:33 192.168.10.200 kernel: [708066.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:22:58 192.168.10.200 kernel: [708096.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:23:03 192.168.10.200 kernel: [708096.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:23:08 192.168.10.200 kernel: [708096.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:23:13 192.168.10.200 kernel: [708096.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:23:28 192.168.10.200 kernel: [708126.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:23:33 192.168.10.200 kernel: [708126.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:23:38 192.168.10.200 kernel: [708126.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:23:43 192.168.10.200 kernel: [708126.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:23:59 192.168.10.200 kernel: [708156.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:24:04 192.168.10.200 kernel: [708156.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:24:09 192.168.10.200 kernel: [708156.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:24:14 192.168.10.200 kernel: [708156.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:24:29 192.168.10.200 kernel: [708186.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:24:34 192.168.10.200 kernel: [708186.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:24:39 192.168.10.200 kernel: [708186.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:24:44 192.168.10.200 kernel: [708186.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:24:59 192.168.10.200 kernel: [708216.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:25:05 192.168.10.200 kernel: [708216.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:25:10 192.168.10.200 kernel: [708216.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:25:15 192.168.10.200 kernel: [708216.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:25:30 192.168.10.200 kernel: [708246.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:25:35 192.168.10.200 kernel: [708246.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:25:40 192.168.10.200 kernel: [708246.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:25:45 192.168.10.200 kernel: [708246.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:26:00 192.168.10.200 kernel: [708276.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:26:05 192.168.10.200 kernel: [708276.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:26:10 192.168.10.200 kernel: [708276.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:26:16 192.168.10.200 kernel: [708276.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:26:31 192.168.10.200 kernel: [708306.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:26:36 192.168.10.200 kernel: [708306.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:26:41 192.168.10.200 kernel: [708306.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:26:46 192.168.10.200 kernel: [708306.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:27:01 192.168.10.200 kernel: [708336.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:27:06 192.168.10.200 kernel: [708336.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:27:11 192.168.10.200 kernel: [708336.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:27:16 192.168.10.200 kernel: [708336.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:27:31 192.168.10.200 kernel: [708366.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:27:37 192.168.10.200 kernel: [708366.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:27:42 192.168.10.200 kernel: [708366.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:27:47 192.168.10.200 kernel: [708366.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:28:02 192.168.10.200 kernel: [708396.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:28:07 192.168.10.200 kernel: [708396.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:28:12 192.168.10.200 kernel: [708396.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:28:17 192.168.10.200 kernel: [708396.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:28:32 192.168.10.200 kernel: [708426.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:28:37 192.168.10.200 kernel: [708426.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:28:42 192.168.10.200 kernel: [708426.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:28:47 192.168.10.200 kernel: [708426.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:29:03 192.168.10.200 kernel: [708456.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:29:08 192.168.10.200 kernel: [708456.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:29:13 192.168.10.200 kernel: [708456.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:29:18 192.168.10.200 kernel: [708456.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:29:33 192.168.10.200 kernel: [708486.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:29:38 192.168.10.200 kernel: [708486.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:29:43 192.168.10.200 kernel: [708486.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:29:48 192.168.10.200 kernel: [708486.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:30:03 192.168.10.200 kernel: [708516.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:30:09 192.168.10.200 kernel: [708516.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:30:14 192.168.10.200 kernel: [708516.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:30:19 192.168.10.200 kernel: [708516.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:30:44 192.168.10.200 kernel: [708546.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:30:49 192.168.10.200 kernel: [708546.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:30:54 192.168.10.200 kernel: [708546.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:30:59 192.168.10.200 kernel: [708546.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:31:14 192.168.10.200 kernel: [708576.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:31:19 192.168.10.200 kernel: [708576.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:31:25 192.168.10.200 kernel: [708576.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:31:30 192.168.10.200 kernel: [708576.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:31:45 192.168.10.200 kernel: [708606.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:31:50 192.168.10.200 kernel: [708606.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:31:55 192.168.10.200 kernel: [708606.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:32:00 192.168.10.200 kernel: [708606.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:32:15 192.168.10.200 kernel: [708624.250000] ath: phy0: Set HW Key
Aug 31 16:32:20 192.168.10.200 kernel: [708624.250000] ath: phy0: Set HW Key
Aug 31 16:32:25 192.168.10.200 kernel: [708636.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:32:30 192.168.10.200 kernel: [708636.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:32:35 192.168.10.200 kernel: [708636.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:32:41 192.168.10.200 kernel: [708636.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:32:56 192.168.10.200 kernel: [708666.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:33:01 192.168.10.200 kernel: [708666.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:33:06 192.168.10.200 kernel: [708666.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:33:11 192.168.10.200 kernel: [708666.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:33:26 192.168.10.200 kernel: [708696.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:33:31 192.168.10.200 kernel: [708696.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:33:36 192.168.10.200 kernel: [708696.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:33:41 192.168.10.200 kernel: [708696.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:33:57 192.168.10.200 kernel: [708726.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Aug 31 16:34:02 192.168.10.200 kernel: [708726.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Aug 31 16:34:07 192.168.10.200 kernel: [708726.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Aug 31 16:34:12 192.168.10.200 kernel: [708726.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Aug 31 16:34:17 192.168.10.200 kernel: [708728.010000] ath: phy0: Resetting Cal 1 state for channel 2462
Aug 31 16:34:22 192.168.10.200 kernel: [708728.110000] ath: phy0: starting IQ Mismatch Calibration
Aug 31 16:34:27 192.168.10.200 kernel: [708728.210000] ath: phy0: 0: Chn 0 pmi=0x00000000;pmq=0x00000000;iqcm=0x00000000;
Aug 31 16:34:32 192.168.10.200 kernel: [708728.210000] ath: phy0: Starting IQ Cal and Correction for Chain 0
Aug 31 16:34:37 192.168.10.200 kernel: [708728.210000] ath: phy0: Original: Chn 0 iq_corr_meas = 0x00000000
Aug 31 16:34:42 192.168.10.200 kernel: [708728.210000] ath: phy0: Chn 0 pwr_meas_i = 0x00000000
Aug 31 16:34:47 192.168.10.200 kernel: [708728.210000] ath: phy0: Chn 0 pwr_meas_q = 0x00000000
Aug 31 16:34:52 192.168.10.200 kernel: [708728.210000] ath: phy0: iqCorrNeg is 0x00000000
Aug 31 16:34:57 192.168.10.200 kernel: [708728.210000] ath: phy0: IQ Cal and Correction (offset 0x98dc) enabled (bit position 0x00004000). New Value 0x20007d00
[...]
Sep  2 21:52:46 192.168.10.200 kernel: [899346.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Sep  2 21:52:51 192.168.10.200 kernel: [899346.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Sep  2 21:53:06 192.168.10.200 kernel: [899376.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Sep  2 21:53:11 192.168.10.200 kernel: [899376.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Sep  2 21:53:16 192.168.10.200 kernel: [899376.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Sep  2 21:53:21 192.168.10.200 kernel: [899376.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Sep  2 21:53:37 192.168.10.200 kernel: [899406.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Sep  2 21:53:42 192.168.10.200 kernel: [899406.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Sep  2 21:53:47 192.168.10.200 kernel: [899406.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Sep  2 21:53:52 192.168.10.200 kernel: [899406.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
Sep  2 21:53:57 192.168.10.200 kernel: [899426.250000] ath: phy0: Set HW Key
Sep  2 21:54:02 192.168.10.200 kernel: [899426.260000] ath: phy0: Set HW Key
Sep  2 21:54:17 192.168.10.200 kernel: [899436.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Sep  2 21:54:22 192.168.10.200 kernel: [899436.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Sep  2 21:54:37 192.168.10.200 kernel: [899466.110000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
Sep  2 21:54:43 192.168.10.200 kernel: [899466.110000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
Sep  2 21:54:48 192.168.10.200 kernel: [899466.110000] ath: phy0: NF calibrated [ext] [chain 0] is -45
Sep  2 21:54:53 192.168.10.200 kernel: [899466.110000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX

=== router 201 ===
root at OpenWrt:/sys/kernel/debug/ieee80211/phy0/ath9k# head regdump 0x000000 0xdeadbeef
0x000004 0xdeadbeef
0x000008 0xdeadbeef
0x00000c 0xdeadbeef
0x000010 0xdeadbeef
0x000014 0xdeadbeef
0x000018 0xdeadbeef
0x00001c 0xdeadbeef
0x000020 0xdeadbeef
0x000024 0xdeadbeef

root at OpenWrt:/sys/kernel/debug/ieee80211/phy0/ath9k# uptime
10:20:54 up 10 days, 10:20, load average: 0.18, 0.19, 0.21

Quoted 14 lines
# dmesg
[...]
[900132.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900162.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900162.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900192.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900192.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900197.470000] ath: phy0: missed 1 consecutive beacons
[900197.560000] ath: phy0: resume beacon xmit after 1 misses
[900222.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900222.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900252.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900252.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900275.910000] ath: phy0: missed 1 consecutive beacons

seems we are getting beacon stuck, though its not sufficient for triggering chip reset (or) atleast start noise floor calibration. Is this is in a congested environment ? we can dump cycle counters . I think we need to have a WAR of chip reset if the cycle counters (busy is too high) inspite the MAC hang signature . let me try too to figure out that WAR is already available (or) we got to enable it.

Quoted 124 lines
[900276.000000] ath: phy0: resume beacon xmit after 1 misses
[900282.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900282.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900303.560000] ath: phy0: missed 1 consecutive beacons
[900303.650000] ath: phy0: resume beacon xmit after 1 misses
[900312.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900312.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900342.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900342.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900372.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900372.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900402.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900402.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900432.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900432.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900462.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900462.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900492.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900492.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900522.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900522.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900552.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -103
[900552.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900582.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900582.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900582.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900582.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900612.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900612.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900612.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900612.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900625.220000] ath: phy0: Set HW Key
[900625.220000] ath: phy0: Set HW Key
[900642.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900642.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900642.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900642.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900672.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900672.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900672.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900672.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900702.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900702.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900702.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900702.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900732.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900732.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900732.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900732.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900762.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900762.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900762.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900762.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900792.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900792.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900792.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900792.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900822.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900822.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900822.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900822.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900852.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900852.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900852.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900852.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900882.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900882.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900882.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900882.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900912.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900912.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900912.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900912.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900942.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900942.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900942.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900942.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[900969.460000] ath: phy0: Resetting Cal 1 state for channel 2462
[900969.560000] ath: phy0: starting IQ Mismatch Calibration
[900969.660000] ath: phy0: 0: Chn 0 pmi=0x00000000;pmq=0x00000000;iqcm=0x00000000;
[900969.660000] ath: phy0: Starting IQ Cal and Correction for Chain 0
[900969.660000] ath: phy0: Original: Chn 0 iq_corr_meas = 0x00000000
[900969.660000] ath: phy0: Chn 0 pwr_meas_i = 0x00000000
[900969.660000] ath: phy0: Chn 0 pwr_meas_q = 0x00000000
[900969.660000] ath: phy0: iqCorrNeg is 0x00000000
[900969.660000] ath: phy0: IQ Cal and Correction (offset 0x98dc) enabled (bit position 0x00004000). New Value 0x20007f7b
[900972.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[900972.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[900972.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[900972.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[901002.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[901002.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[901002.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[901002.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[901032.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[901032.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[901032.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[901032.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[901062.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[901062.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[901062.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[901062.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[901092.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[901092.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[901092.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[901092.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[901122.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[901122.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[901122.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[901122.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX
[901152.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -45
[901152.160000] ath: phy0: NF[0] (-45) > MAX (-95), correcting to MAX
[901152.160000] ath: phy0: NF calibrated [ext] [chain 0] is -45
[901152.160000] ath: phy0: NF[3] (-45) > MAX (-95), correcting to MAX

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAlBDuv4ACgkQrzg/fFk7axZH5wCcCPfepF11qXP0ELPLnf+R1L57 v0AAoJ2xlpt6vKhbWO7hbHWzkMiJR8W6
=DRhA
-----END PGP SIGNATURE-----

Signature · 2 lines
thanks,
shafi
#12 lore raw
Quoted 15 lines · On Monday 03 September 2012 19:23:26 Mohammed Shafi wrote:
Quoted 6 lines
# dmesg
[...]
[900132.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900162.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900162.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900192.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
Quoted 8 lines
[900192.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900197.470000] ath: phy0: missed 1 consecutive beacons
[900197.560000] ath: phy0: resume beacon xmit after 1 misses
[900222.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900222.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900252.160000] ath: phy0: NF calibrated [ctl] [chain 0] is -104
[900252.160000] ath: phy0: NF calibrated [ext] [chain 0] is -104
[900275.910000] ath: phy0: missed 1 consecutive beacons
Quoted 6 lines

seems we are getting beacon stuck, though its not sufficient for triggering chip reset (or) atleast start noise floor calibration. Is this is in a congested environment ? we can dump cycle counters . I think we need to have a WAR of chip reset if the cycle counters (busy is too high) inspite the MAC hang signature . let me try too to figure out that WAR is already available (or) we got to enable it.

The test environment is not really "congested". It is not in a city and you don't have many access points in range. Only 2/3 clients are using these two test access points. I don't know whether there are other things using the channel range also used by the access points.

Kind regards,
Sven
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20120903/e0fdd5fd/attachment.pgp

#13 lore raw
In reply to Mohammed Shafi

Shafi,

Quoted 6 lines · Mohammed Shafi

seems we are getting beacon stuck, though its not sufficient for triggering chip reset (or) atleast start noise floor calibration. Is this is in a congested environment ? we can dump cycle counters . I think we need to have a WAR of chip reset if the cycle counters (busy is too high) inspite the MAC hang signature . let me try too to figure out that WAR is already available (or) we got to enable it.

I'm living at a small village, and one or two neighbors may have access points too, but that's it - this should be far from beeing busy. We mostly use these APs for surfing with smart phones, this is also far from congesting them. ;)

TBH I don't really understand what you are talking about regarding WAR, etc, can you please explain? What can we do to analyse the problem better?

Thanks,
Simon

#14 lore raw

Hi Simon/Sven,

Quoted 7 lines

I'm living at a small village, and one or two neighbors may have access points too, but that's it - this should be far from beeing busy. We mostly use these APs for surfing with smart phones, this is also far from congesting them. ;)

TBH I don't really understand what you are talking about regarding WAR, etc, can you please explain? What can we do to analyse the problem better?

work arounds(WAR) for beacon stuck in congested environment, there may be quite a few that may not be not yet ported for ath9k, but as your environment is not a congested, then the issue can be something different. Have not got much information/change list from the query posted internally.

Quoted 12 lines

Thanks,
Simon

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAlBGNm8ACgkQrzg/fFk7axbuNwCg626AvtDTWoeaSrVGjB92XN+7 5tEAnAjEXI04gSS102VwlSKQqBHEPFyG
=9pIv
-----END PGP SIGNATURE-----

Signature · 2 lines
thanks,
shafi
#15 lore raw

I don't think it's a stuck beacon WAR issue here; 0xdeadbeef really does read like the MAC has gone to sleep.

Where's the complete register dump hiding?

Adrian

Quoted 35 lines · Mohammed Shafi

Hi Simon/Sven,

Quoted 7 lines

I'm living at a small village, and one or two neighbors may have access points too, but that's it - this should be far from beeing busy. We mostly use these APs for surfing with smart phones, this is also far from congesting them. ;)

TBH I don't really understand what you are talking about regarding WAR, etc, can you please explain? What can we do to analyse the problem better?

work arounds(WAR) for beacon stuck in congested environment, there may be quite a few that may not be not yet ported for ath9k, but as your environment is not a congested, then the issue can be something different. Have not got much information/change list from the query posted internally.

Quoted 4 lines

Thanks,
Simon

Quoted 8 lines

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAlBGNm8ACgkQrzg/fFk7axbuNwCg626AvtDTWoeaSrVGjB92XN+7 5tEAnAjEXI04gSS102VwlSKQqBHEPFyG
=9pIv
-----END PGP SIGNATURE-----

--
thanks,
shafi

#16 lore raw
Quoted 4 lines · On Wednesday 05 September 2012 07:08:47 Adrian Chadd wrote:

I don't think it's a stuck beacon WAR issue here; 0xdeadbeef really does read like the MAC has gone to sleep.

Where's the complete register dump hiding?

It was not sent to the public mailing lists due to the size. You will receive the dump mentioned in the first mail in some minutes.

Kind regards,
Sven
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20120905/e9d3186a/attachment.pgp

#17 lore raw

ath9k fellows,

as it seems no one could find the cause for this problem so far. I'd therefore like to create a workaround by checking one/some registers for 0xdeadbeef and reset the chip if this is found.

Can anyone recommend a register which should never go 0xdeadbeef in a normal case?

From what i've seen, AR_CFG (0x0014) might be a good choice. My regdumps say:

bad regdump:  0x000014 0xdeadbeef    
good regdump: 0x000014 0x0008010a

Unfortunately I don't have documentation to find out if this register can ever go deadbeef in a normal case. :)

What do you think? (of course, a proper solution is still appreciated ...)

Cheers,
Simon

Quoted 11 lines · Sven Eckelmann
Quoted 4 lines · On Wednesday 05 September 2012 07:08:47 Adrian Chadd wrote:

I don't think it's a stuck beacon WAR issue here; 0xdeadbeef really does read like the MAC has gone to sleep.

Where's the complete register dump hiding?

It was not sent to the public mailing lists due to the size. You will receive the dump mentioned in the first mail in some minutes.

Kind regards,
Sven

#18 lore raw

It'll only go into that mode if that core is off for some reason.

So sure, do that and try to turn the radio off/on :-)

adrian

Quoted 45 lines · Simon Wunderlich

ath9k fellows,

as it seems no one could find the cause for this problem so far. I'd therefore like to create a workaround by checking one/some registers for 0xdeadbeef and reset the chip if this is found.

Can anyone recommend a register which should never go 0xdeadbeef in a normal case?

From what i've seen, AR_CFG (0x0014) might be a good choice. My regdumps say:

bad regdump:  0x000014 0xdeadbeef
good regdump: 0x000014 0x0008010a

Unfortunately I don't have documentation to find out if this register can ever go deadbeef in a normal case. :)

What do you think? (of course, a proper solution is still appreciated ...)

Cheers,
Simon

Quoted 11 lines · Sven Eckelmann
Quoted 4 lines · On Wednesday 05 September 2012 07:08:47 Adrian Chadd wrote:

I don't think it's a stuck beacon WAR issue here; 0xdeadbeef really does read like the MAC has gone to sleep.

Where's the complete register dump hiding?

It was not sent to the public mailing lists due to the size. You will receive the dump mentioned in the first mail in some minutes.

Kind regards,
Sven

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAlBSDwwACgkQrzg/fFk7axaCLQCg27g4pk6seTqcix0RFoeoglZm +fkAoJnqhGv77388XjzRPdhSM/V3yNYl
=BYI7
-----END PGP SIGNATURE-----

#19 lore raw
In reply to Simon Wunderlich
Quoted 10 lines · Simon Wunderlich

ath9k fellows,

as it seems no one could find the cause for this problem so far. I'd therefore like to create a workaround by checking one/some registers for 0xdeadbeef and reset the chip if this is found.

Can anyone recommend a register which should never go 0xdeadbeef in a normal case?

From what i've seen, AR_CFG (0x0014) might be a good choice. My regdumps say:

Quoted 7 lines
bad regdump:  0x000014 0xdeadbeef    
good regdump: 0x000014 0x0008010a

Unfortunately I don't have documentation to find out if this register can ever go deadbeef in a normal case. :)

What do you think? (of course, a proper solution is still appreciated ...)

If ah->power_mode == ATH9K_PM_AWAKE, then no regularly used register may return 0xdeadbeef. You can use a combination of the register and the power mode as an indicator.

- Felix

#20 lore raw

RFC 1/1 ath9k: Work around complete stuck of hw

AR9330 and most likely other chips like AR9285 seem to get stuck completely after they worked a long period of time in special environments. It is currently unknown which parameters causes this problem.

Symptom of these stuck is the exposure of 0xdeadbeef through different hardware registers. An interface down/up change seems to help the hardware to recover from the problem.

A workaround is to periodically test register AR_CFG for 0xdeadbeef and force an reset when 0xdeadbeef would be unexpected.

---
This check is currently tested. This takes quite a long time and maybe someone with more knowledge of atheros devices can check whether this one is completely and utterly wrong.

The type RESET_TYPE_FATAL_INT was chosen in this test to allow us to see whether this condition was already true by reading from /sys/kernel/debug/ieee80211/phy0/ath9k/reset

 drivers/net/wireless/ath/ath9k/link.c |   10 ++++++++++
 1 file changed, 10 insertions(+)
drivers/net/wireless/ath/ath9k/link.c +10 -0
index 7b88b9c..89467e2 100644
@@ -69,10 +69,20 @@ void ath_hw_check(struct work_struct *work)
 	int busy;
 	u8 is_alive, nbeacon = 1;
 	enum ath_reset_type type;
+	u32 reg;
 
 	ath9k_ps_wakeup(sc);
 	is_alive = ath9k_hw_check_alive(sc->sc_ah);
 
+	/* check for stucked MAC */
+	reg = REG_READ(sc->sc_ah, AR_CFG);
+	if (reg == 0xdeadbeef && sc->sc_ah->power_mode == ATH9K_PM_AWAKE) {
+		ath_dbg(common, RESET,
+			"Hang is detected. Schedule chip reset\n");
+		type = RESET_TYPE_FATAL_INT;
+		goto sched_reset;
+	}
+
 	if (is_alive && !AR_SREV_9300(sc->sc_ah))
 		goto out;
 	else if (!is_alive && AR_SREV_9300(sc->sc_ah)) {
Signature · 1 line
1.7.10.4
#21 lore raw

RFC 1/1 ath9k: Work around complete stuck of hw

Quoted 13 lines · Sven Eckelmann

AR9330 and most likely other chips like AR9285 seem to get stuck completely after they worked a long period of time in special environments. It is currently unknown which parameters causes this problem.

Symptom of these stuck is the exposure of 0xdeadbeef through different hardware registers. An interface down/up change seems to help the hardware to recover from the problem.

A workaround is to periodically test register AR_CFG for 0xdeadbeef and force an reset when 0xdeadbeef would be unexpected.

Quoted 8 lines

---
This check is currently tested. This takes quite a long time and maybe someone with more knowledge of atheros devices can check whether this one is completely and utterly wrong.

The type RESET_TYPE_FATAL_INT was chosen in this test to allow us to see whether this condition was already true by reading from /sys/kernel/debug/ieee80211/phy0/ath9k/reset

Your debug patch should not be silent when it resets the hw. We need to make sure that this bug gets fixed properly. If my patch below does not fix it, then at least add a WARN_ON to ensure that we don't just hide the bug and move on.

Somebody on the openwrt-devel list pointed out that there is some code missing in the ar933x wmac reset function. Please try this patch (apply it to your kernel tree):
---

arch/mips/ath79/dev-wmac.c +18 -1
@@ -67,10 +67,27 @@ static void __init ar913x_wmac_setup(voi
 
 static int ar933x_wmac_reset(void)
 {
+	int retries = 20;
+
 	ath79_device_reset_set(AR933X_RESET_WMAC);
 	ath79_device_reset_clear(AR933X_RESET_WMAC);
 
-	return 0;
+	while (1) {
+		u32 bootstrap;
+
+		bootstrap = ath79_reset_rr(AR933X_RESET_REG_BOOTSTRAP);
+		if ((bootstrap & AR933X_BOOTSTRAP_EEPBUSY) == 0)
+			return 0;
+
+		if (retries-- == 0)
+			break;
+
+		udelay(10000);
+		retries++;
+	}
+
+	pr_err("ar93xx: WMAC reset timed out");
+	return -ETIMEDOUT;
 }
 
 static int ar933x_r1_get_wmac_revision(void)
#22 lore raw

[ath9k-devel] [RFC] ath9k: Work around complete stuck of hw

On Friday 14 September 2012 13:33:31 Felix Fietkau wrote:
[..]

Quoted 5 lines
Quoted 5 lines

---
This check is currently tested. This takes quite a long time and maybe someone with more knowledge of atheros devices can check whether this one is completely and utterly wrong.

Quoted 8 lines
Quoted 3 lines

The type RESET_TYPE_FATAL_INT was chosen in this test to allow us to see whether this condition was already true by reading from /sys/kernel/debug/ieee80211/phy0/ath9k/reset

Your debug patch should not be silent when it resets the hw. We need to make sure that this bug gets fixed properly. If my patch below does not fix it, then at least add a WARN_ON to ensure that we don't just hide the bug and move on.

It is not silent for me and is not a patch that should be applied to the upstream kernel. Just wanted to ask whether this is the right place and approach

Quoted 3 lines

Somebody on the openwrt-devel list pointed out that there is some code missing in the ar933x wmac reset function. Please try this patch (apply it to your kernel tree):

Neither mine nor your patch has an effect. One node is now again dead after ~8 1/2 days. It looks like the check isn't done (correctly). I will investigate this further tomorrow.

Kind regards,
Sven
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20120923/b05c2508/attachment.pgp

#23 lore raw
In reply to Simon Wunderlich
Quoted 3 lines · Simon Wunderlich

just to bump again - isn't there anyone who can give us some hint or clue regarding these 0xdeadbeef entries in the registers? Couldn't find a connection to other reports deadbeef on the mailing list so far.

it doesnt make sense to debug such an old firmware (r31729). first upgrade to trunk (~r38885), then report again. bye, bastian

#24 lore raw
Quoted 1 line · On Wednesday 20 November 2013 21:57:38 Bastian Bittorf wrote:

* Simon Wunderlich <[email protected]> [19.09.2012

11:25]:

Quoted 6 lines
Quoted 3 lines

just to bump again - isn't there anyone who can give us some hint or clue regarding these 0xdeadbeef entries in the registers? Couldn't find a connection to other reports deadbeef on the mailing list so far.

it doesnt make sense to debug such an old firmware (r31729). first upgrade to trunk (~r38885), then report again. bye, bastian

Doesn't make a lot of sense to reply to such an old thread.

Kind regards,
Sven