Atheros AR2427 in FreeBSD 8.1

Adrian Chadd adrian at freebsd.org
Sat Sep 18 01:50:11 UTC 2010


Hi!

Right, I'm now ready to start looking at the AR2427. I can't guarantee
i'll get it -stable- (as that relies mostly on me getting the
AR9280/AR9285 stable; that'll take some time) but I'll at least try to
fix the above issue.

That issue you've just noted is because the EEPROM endian-ness has
been incorrectly detected. (See the invalid channel messages just
before the EEPROM starts dumping out "no power set for x/y"; then the
invalid txtime messages?) I've seen that in my local tree.

I have an AR2427 in this netbook of mine, so I'll figure out what's
busting up the detection and update my development HAL. I'll let you
guys know when that's done.



Adrian

2010/8/8 Adrian Chadd <adrian at freebsd.org>:
> There's a lot of fixes that need to be brought over for the more
> recent atheros chips.
>
> They can come from Linux ath9k, or by porting the code from openbsd
> (which is based on the linux ath9k code, from what I can tell.)
>
> So someone needs to do some legwork and help Rui (and I, I guess)
> merge in all the chipset work done in ath9k.
>
>
> adrian
>
> 2010/8/2 Iván Zaera Avellón <izaera at gmail.com>:
>> Hi there:
>>
>> It's not only a problem of your card. I have an Eee PC 1005HA with another
>> atheros card (officially supporter) and I experience the same error. I have
>> open a PR, have a look at it here:
>>
>> http://www.freebsd.org/cgi/query-pr.cgi?pr=148112
>>
>> It seems to be a problem of the wireless or the ath driver.
>>
>> Regards,
>> Ivan
>>
>>
>> 2010/7/31 Макарук Роман Валерьевич <n_diablo_n_f at pochta.ru>
>>
>>>     Hello! I have Asus Eee PC 1001PX wich Atheros AR2427. This Wi-Fi
>>> officially not supported by driver ath. But in OpenBSD and Linux this card
>>> supported.
>>>
>>>     I added to ath/ath_hal/ar9285_attath.c:
>>>
>>> ar9285Probe(uint16_t vendorid, uint16_t devid)
>>> tatic const char* ar9285Probe(uint16_t vendorid, uint16_t devid)
>>> {
>>>        if (vendorid == ATHEROS_VENDOR_ID &amp;&amp; devid ==
>>> AR9285_DEVID_PCIE)
>>>                return "Atheros 9285";
>>>        if (vendorid == ATHEROS_VENDOR_ID &amp;&amp; devid ==
>>> AR2427_DEVID_PCIE)
>>>                return "Atheros 2427";
>>>        return AH_NULL;
>>> }
>>>
>>>   And to /ath/ath_hal_ah_dev_id.h:
>>>
>>> #define AR2427_DEVID_PCIE    0x002c
>>>
>>>   I compile ath module witch debug. And the WiFi has to work. But then i
>>> try to connect tp AP witch WEP crypt i see next: "ath0: bb hang detected
>>> (0x80), reseting".
>>>
>>>   And my home AP DI-524 (WPA-PSK crypt) can not be found.
>>>
>>>   By this, I have a few questions. Can anyone help solve this problem and
>>> finish the driver. And will the official support for this card in the
>>> FreeBSD?
>>>
>>>   Appendix:
>>>
>>> #kldload if_ath
>>>
>>> pci0: driver added
>>> found->   vendor=0x8086, dev=0x27d8, revid=0x02
>>>   domain=0, bus=0, slot=27, func=0
>>>   class=04-03-00, hdrtype=0x00, mfdev=0
>>>   cmdreg=0x0006, statreg=0x0010, cachelnsz=8 (dwords)
>>>   lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
>>>   intpin=a, irq=22
>>>   powerspec 2  supports D0 D3  current D0
>>>   MSI supports 1 message, 64 bit
>>> pci0:0:27:0: reprobing on driver added
>>> found->   vendor=0x8086, dev=0x27da, revid=0x02
>>>   domain=0, bus=0, slot=31, func=3
>>>   class=0c-05-00, hdrtype=0x00, mfdev=0
>>>   cmdreg=0x0001, statreg=0x0280, cachelnsz=0 (dwords)
>>>   lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
>>>   intpin=b, irq=21
>>> pci0:0:31:3: reprobing on driver added
>>> pci1: driver added
>>> pci2: driver added
>>> found->   vendor=0x168c, dev=0x002c, revid=0x01
>>>   domain=0, bus=2, slot=0, func=0
>>>   class=02-80-00, hdrtype=0x00, mfdev=0
>>>   cmdreg=0x0407, statreg=0x0010, cachelnsz=8 (dwords)
>>>   lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
>>>   intpin=a, irq=17
>>>   powerspec 3  supports D0 D1 D3  current D0
>>>   MSI supports 1 message
>>> pci0:2:0:0: reprobing on driver added
>>> ath0:  mem 0xfbff0000-0xfbffffff irq 17 at device 0.0 on pci2
>>> pcib2: ath0 requested memory range 0xfbff0000-0xfbffffff: good
>>> ioapic0: routing intpin 17 (PCI IRQ 17) to lapic 0 vector 59
>>> ath0: [MPSAFE]
>>> ath0: [ITHREAD]
>>> ar9285Attach: sc 0xc49ca000 st 0x1 sh 0xe678d000
>>> ar5416SetPowerMode: AWAKE -> AWAKE (set chip )
>>> ar9285Attach: AR_SREV 0xc02ff
>>> ar9285Attach: ID 0xc02ff VERSION 0x3 TYPE 0x0 REVISION 0x2
>>> ath_hal_v4kEepromAttach Eeprom Magic = 0xa55a
>>> ath_hal_v4kEepromAttach Eeprom Version 14.13
>>> v4kEepromReadCTLInfo Numctls = 6
>>> ar5416SetPowerMode: AWAKE -> AWAKE (set chip )
>>> ar9280RfAttach: attach AR9280 radio
>>> enableAniMIBCounters: Enable mib counters: OfdmPhyErrBase 0x0 cckPhyErrBase
>>> 0x0
>>> ar9285Attach: return
>>> getchannels: cc 0 regDmn 0xf0 mode 0xffffff ecm
>>> getregstate: EEPROM cc 0 rd 0x10
>>> getregstate: EEPROM rd 0x60
>>> getchannels: !avail mode 0x6800c (0x2) flags 0x2150
>>> getchannels: !avail mode 0x6800c (0x1) flags 0x140
>>> ar5416GetChipPowerLimits: no min/max power for 2412/0xa0
>>> Chan 2412: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2417/0xa0
>>> Chan 2417: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2422/0xa0
>>> Chan 2422: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2427/0xa0
>>> Chan 2427: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2432/0xa0
>>> Chan 2432: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2437/0xa0
>>> Chan 2437: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2442/0xa0
>>> Chan 2442: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2447/0xa0
>>> Chan 2447: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2452/0xa0
>>> Chan 2452: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2457/0xa0
>>> Chan 2457: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2462/0xa0
>>> Chan 2462: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2467/0xa0
>>> Chan 2467: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2472/0xa0
>>> Chan 2472: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2484/0xa0
>>> Chan 2484: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2412/0x480
>>> Chan 2412: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2417/0x480
>>> Chan 2417: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2422/0x480
>>> Chan 2422: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2427/0x480
>>> Chan 2427: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2432/0x480
>>> Chan 2432: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2437/0x480
>>> Chan 2437: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2442/0x480
>>> Chan 2442: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2447/0x480
>>> Chan 2447: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2452/0x480
>>> Chan 2452: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2457/0x480
>>> Chan 2457: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2462/0x480
>>> Chan 2462: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2467/0x480
>>> Chan 2467: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2472/0x480
>>> Chan 2472: MaxPow = 63 MinPow = 0
>>> getchannels: !avail mode 0x6800c (0x20) flags 0xd0
>>> getchannels: !avail mode 0x6800c (0x40) flags 0x150
>>> getchannels: !avail mode 0x6800c (0x400) flags 0x8140
>>> getchannels: !avail mode 0x6800c (0x200) flags 0x4140
>>> getchannels: !avail mode 0x6800c (0x1000) flags 0x8480
>>> getchannels: !avail mode 0x6800c (0x800) flags 0x4480
>>> ar5416GetChipPowerLimits: no min/max power for 2412/0x10480
>>> Chan 2412: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2417/0x10480
>>> Chan 2417: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2422/0x10480
>>> Chan 2422: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2427/0x10480
>>> Chan 2427: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2432/0x10480
>>> Chan 2432: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2437/0x10480
>>> Chan 2437: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2442/0x10480
>>> Chan 2442: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2447/0x10480
>>> Chan 2447: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2452/0x10480
>>> Chan 2452: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2457/0x10480
>>> Chan 2457: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2462/0x10480
>>> Chan 2462: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2467/0x10480
>>> Chan 2467: MaxPow = 63 MinPow = 0
>>> ar5416GetChipPowerLimits: no min/max power for 2472/0x10480
>>> Chan 2472: MaxPow = 63 MinPow = 0
>>> getchannels: !avail mode 0x6800c (0x10000) flags 0x10140
>>> getchannels: !avail mode 0x6800c (0x80000) flags 0x20140
>>> getchannels: !avail mode 0x6800c (0x100000) flags 0x40140
>>> assignPrivateChannels: private[  0] 2412/0xa0 -> channel 2412
>>> assignPrivateChannels: private[  1] 2417/0xa0 -> channel 2417
>>> assignPrivateChannels: private[  2] 2422/0xa0 -> channel 2422
>>> assignPrivateChannels: private[  3] 2427/0xa0 -> channel 2427
>>> assignPrivateChannels: private[  4] 2432/0xa0 -> channel 2432
>>> assignPrivateChannels: private[  5] 2437/0xa0 -> channel 2437
>>> assignPrivateChannels: private[  6] 2442/0xa0 -> channel 2442
>>> assignPrivateChannels: private[  7] 2447/0xa0 -> channel 2447
>>> assignPrivateChannels: private[  8] 2452/0xa0 -> channel 2452
>>> assignPrivateChannels: private[  9] 2457/0xa0 -> channel 2457
>>> assignPrivateChannels: private[ 10] 2462/0xa0 -> channel 2462
>>> assignPrivateChannels: private[ 11] 2467/0x2a0 -> channel 2467
>>> assignPrivateChannels: private[ 12] 2472/0x2a0 -> channel 2472
>>> assignPrivateChannels: private[ 13] 2484/0x2a0 -> channel 2484
>>> assignPrivateChannels: 40 public, 14 private channels
>>> ath_hal_init_channels: cc 0
>>> ath_getchannels: eeprom rd 96 cc 0 (mapped rd 96 cc 0) location I ecm
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_hal_computetxtime: unknown phy 4 (rate ix 8)
>>> ath_descdma_setup: rx DMA: 40 buffers 1 desc/buf
>>> ath_descdma_setup: rx DMA map: 0xe679e000 (3840) -> 0x2325e000 (3840)
>>> ath_descdma_setup: tx DMA: 200 buffers 10 desc/buf
>>> ath_descdma_setup: tx DMA map: 0xe67cd000 (192000) -> 0x20400000 (192000)
>>> ath_descdma_setup: beacon DMA: 4 buffers 1 desc/buf
>>> ath_descdma_setup: beacon DMA map: 0xe67fd000 (384) -> 0x1570d000 (384)
>>> ar5212SetupTxQueue: queue 9
>>> ar5212SetupTxQueue: queue 8
>>> ar5212SetupTxQueue: queue 0
>>> ar5212SetupTxQueue: queue 1
>>> ar5212SetupTxQueue: queue 2
>>> ar5212SetupTxQueue: queue 3
>>> ath0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
>>> ath0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps
>>> 24Mbps 36Mbps 48Mbps 54Mbps
>>> ath0: 11ng MCS: 15Mbps 30Mbps 45Mbps 60Mbps 90Mbps 120Mbps 135Mbps 150Mbps
>>> 30Mbps 60Mbps 90Mbps 120Mbps 180Mbps 240Mbps 270Mbps 300Mbps
>>> ath0: AR9285 mac 192.2 RF5133 phy 14.0
>>> ath0: Use hw queue 1 for WME_AC_BE traffic
>>> ath0: Use hw queue 0 for WME_AC_BK traffic
>>> ath0: Use hw queue 2 for WME_AC_VI traffic
>>> ath0: Use hw queue 3 for WME_AC_VO traffic
>>> ath0: Use hw queue 8 for CAB traffic
>>> ath0: Use hw queue 9 for beacons
>>> ath0: using multicast key search
>>> pci4: driver added
>>> pci5: driver added
>>>
>>>
>>> _______________________________________________
>>> freebsd-stable at freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
>>> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
>>>
>>
>>
>>
>> --
>> Ivan Zaera
>> http://www.factoria2.com/desde/correo
>> _______________________________________________
>> freebsd-stable at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
>> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
>>
>


More information about the freebsd-stable mailing list