2012-08-13 17:24:25

by Simon Wunderlich

[permalink] [raw]
Subject: AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

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


Attachments:
(No filename) (1.88 kB)
signature.asc (198.00 B)
Digital signature
Download all attachments

2012-08-23 14:59:48

by Mohammed Shafi

[permalink] [raw]
Subject: Re: AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

On Wed, Aug 22, 2012 at 10:50 AM, Mohammed Shafi
<[email protected]> wrote:
> Hi Simon,
>
> On Mon, Aug 20, 2012 at 3:34 AM, Simon Wunderlich
> <[email protected]> wrote:
>> 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.

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

>
>
>>
>> Thanks!
>> Simon
>>
>> On Mon, Aug 13, 2012 at 06:53:40PM +0200, Simon Wunderlich wrote:
>>> 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
>>
>>
>>
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1.4.10 (GNU/Linux)
>>
>> iEYEARECAAYFAlAxYvQACgkQrzg/fFk7axaPhACfaTuTkdyx9J/Q4z4EQBf/3sfi
>> O/oAn0c8YFa8FPzayVApD2qX78OBz8AT
>> =3WcZ
>> -----END PGP SIGNATURE-----
>>
>
>
>
> --
> thanks,
> shafi



--
thanks,
shafi

2012-08-22 05:22:05

by Mohammed Shafi

[permalink] [raw]
Subject: Re: AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

Hi Simon,

On Mon, Aug 20, 2012 at 3:34 AM, Simon Wunderlich
<[email protected]> wrote:
> 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.


>
> Thanks!
> Simon
>
> On Mon, Aug 13, 2012 at 06:53:40PM +0200, Simon Wunderlich wrote:
>> 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
>
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
>
> iEYEARECAAYFAlAxYvQACgkQrzg/fFk7axaPhACfaTuTkdyx9J/Q4z4EQBf/3sfi
> O/oAn0c8YFa8FPzayVApD2qX78OBz8AT
> =3WcZ
> -----END PGP SIGNATURE-----
>



--
thanks,
shafi

2012-08-23 09:28:29

by Simon Wunderlich

[permalink] [raw]
Subject: Re: AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

Hello Adrian,

thanks for your comments!

On Wed, Aug 22, 2012 at 11:57:04AM -0700, Adrian Chadd wrote:
> 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?

>
> 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).

>
> 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


Attachments:
(No filename) (3.46 kB)
signature.asc (198.00 B)
Digital signature
Download all attachments

2012-08-23 15:28:01

by Sven Eckelmann

[permalink] [raw]
Subject: Re: AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

On Thursday 23 August 2012 20:29:47 Mohammed Shafi wrote:
> >> 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.
>
> 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


Attachments:
signature.asc (836.00 B)
This is a digitally signed message part.

2012-08-22 18:57:05

by Adrian Chadd

[permalink] [raw]
Subject: Re: AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

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

2012-08-23 19:26:36

by Adrian Chadd

[permalink] [raw]
Subject: Re: AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

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



adrian

2012-08-19 22:04:44

by Simon Wunderlich

[permalink] [raw]
Subject: Re: AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

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

On Mon, Aug 13, 2012 at 06:53:40PM +0200, Simon Wunderlich wrote:
> 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



Attachments:
(No filename) (2.28 kB)
signature.asc (198.00 B)
Digital signature
Download all attachments

2012-08-23 17:10:51

by Gabor Juhos

[permalink] [raw]
Subject: Re: AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

2012.08.23. 11:28 keltezéssel, Simon Wunderlich írta:
> Hello Adrian,
>
> thanks for your comments!
>
> On Wed, Aug 22, 2012 at 11:57:04AM -0700, Adrian Chadd wrote:
>> 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

2012-08-23 15:27:38

by Sven Eckelmann

[permalink] [raw]
Subject: Re: AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

On Thursday 23 August 2012 17:19:45 Sven Eckelmann wrote:
> On Thursday 23 August 2012 20:29:47 Mohammed Shafi wrote:
> > >> 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.
> >
> > 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.

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


Attachments:
signature.asc (836.00 B)
This is a digitally signed message part.

2012-09-03 14:34:35

by Sven Eckelmann

[permalink] [raw]
Subject: Re: AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

On Monday 03 September 2012 19:23:26 Mohammed Shafi wrote:
> > # 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.

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


Attachments:
signature.asc (836.00 B)
This is a digitally signed message part.

2012-09-14 09:48:08

by Sven Eckelmann

[permalink] [raw]
Subject: [RFC] 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.

Signed-off-by: Sven Eckelmann <[email protected]>
Signed-off-by: Simon Wunderlich <[email protected]>
---
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(+)

diff --git a/drivers/net/wireless/ath/ath9k/link.c b/drivers/net/wireless/ath/ath9k/link.c
index 7b88b9c..89467e2 100644
--- a/drivers/net/wireless/ath/ath9k/link.c
+++ b/drivers/net/wireless/ath/ath9k/link.c
@@ -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)) {
--
1.7.10.4


2012-09-03 13:53:27

by Mohammed Shafi

[permalink] [raw]
Subject: Re: AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

On Mon, Sep 3, 2012 at 1:31 AM, Simon Wunderlich
<[email protected]> wrote:
> 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

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.

> [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-----
>



--
thanks,
shafi

2012-09-13 16:51:15

by Simon Wunderlich

[permalink] [raw]
Subject: Re: AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

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


On Wed, Sep 05, 2012 at 04:20:52PM +0200, Sven Eckelmann wrote:
> 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



Attachments:
(No filename) (1.09 kB)
signature.asc (198.00 B)
Digital signature
Download all attachments

2012-09-14 11:33:36

by Felix Fietkau

[permalink] [raw]
Subject: Re: [RFC] ath9k: Work around complete stuck of hw

On 2012-09-14 11:47 AM, Sven Eckelmann wrote:
> 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.
>
> Signed-off-by: Sven Eckelmann <[email protected]>
> Signed-off-by: Simon Wunderlich <[email protected]>
> ---
> 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):
---
--- a/arch/mips/ath79/dev-wmac.c
+++ b/arch/mips/ath79/dev-wmac.c
@@ -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)



2012-09-04 17:12:04

by Simon Wunderlich

[permalink] [raw]
Subject: Re: AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

Shafi,

On Mon, Sep 03, 2012 at 07:23:26PM +0530, Mohammed Shafi wrote:
> 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


Attachments:
(No filename) (886.00 B)
signature.asc (198.00 B)
Digital signature
Download all attachments

2012-09-05 14:08:47

by Adrian Chadd

[permalink] [raw]
Subject: Re: AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

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


On 4 September 2012 22:12, Mohammed Shafi <[email protected]> wrote:
> Hi Simon/Sven,
>
>>
>> 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.
>
>>
>> Thanks,
>> Simon
>>
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1.4.10 (GNU/Linux)
>>
>> iEYEARECAAYFAlBGNm8ACgkQrzg/fFk7axbuNwCg626AvtDTWoeaSrVGjB92XN+7
>> 5tEAnAjEXI04gSS102VwlSKQqBHEPFyG
>> =9pIv
>> -----END PGP SIGNATURE-----
>>
>
>
>
> --
> thanks,
> shafi

2012-09-13 17:55:18

by Felix Fietkau

[permalink] [raw]
Subject: Re: [OpenWrt-Devel] AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

On 2012-09-13 6:51 PM, Simon Wunderlich wrote:
> 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 ...)
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


2012-09-23 10:04:51

by Sven Eckelmann

[permalink] [raw]
Subject: Re: Re: [RFC] ath9k: Work around complete stuck of hw

On Friday 14 September 2012 13:33:31 Felix Fietkau wrote:
[..]
> > ---
> > 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.

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

> 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


Attachments:
signature.asc (836.00 B)
This is a digitally signed message part.

2012-09-02 20:00:53

by Simon Wunderlich

[permalink] [raw]
Subject: Re: AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

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


Attachments:
(No filename) (42.41 kB)
signature.asc (198.00 B)
Digital signature
Download all attachments

2012-09-13 16:59:15

by Adrian Chadd

[permalink] [raw]
Subject: Re: AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

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


On 13 September 2012 09:51, Simon Wunderlich
<[email protected]> wrote:
> 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
>
>
> On Wed, Sep 05, 2012 at 04:20:52PM +0200, Sven Eckelmann wrote:
>> 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-----
>

2012-09-05 05:12:18

by Mohammed Shafi

[permalink] [raw]
Subject: Re: AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

Hi Simon/Sven,

>
> 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.

>
> Thanks,
> Simon
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
>
> iEYEARECAAYFAlBGNm8ACgkQrzg/fFk7axbuNwCg626AvtDTWoeaSrVGjB92XN+7
> 5tEAnAjEXI04gSS102VwlSKQqBHEPFyG
> =9pIv
> -----END PGP SIGNATURE-----
>



--
thanks,
shafi

2012-09-05 14:21:00

by Sven Eckelmann

[permalink] [raw]
Subject: Re: AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

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


Attachments:
signature.asc (836.00 B)
This is a digitally signed message part.

2013-11-20 20:50:01

by Bastian Bittorf

[permalink] [raw]
Subject: Re: [OpenWrt-Devel] AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

* Simon Wunderlich <[email protected]> [19.09.2012 11:25]:
> 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

2013-11-20 21:08:23

by Sven Eckelmann

[permalink] [raw]
Subject: Re: [OpenWrt-Devel] AR9330 hornet board stops beaconing after a few days (0xdeadbeef)

On Wednesday 20 November 2013 21:57:38 Bastian Bittorf wrote:
> * Simon Wunderlich <[email protected]> [19.09.2012
11:25]:
> > 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