Atheros AR2427 in FreeBSD 8.1

Макарук Роман Валерьевич n_diablo_n_f at pochta.ru
Sat Jul 31 15:32:38 UTC 2010


    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 && devid == AR9285_DEVID_PCIE)
		return "Atheros 9285";
	if (vendorid == ATHEROS_VENDOR_ID && 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




More information about the freebsd-stable mailing list