Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 31 Aug 2005 19:42:19 +0200
From:      Alexander Best <arundel@h3c.de>
To:        freebsd-hackers@freebsd.org
Subject:   Problem with ath(4) and Netgear WG311T card
Message-ID:  <20050831174218.GA1522@skatecity>

next in thread | raw e-mail | index | archive | help
I just bought myseld a new wlan card called Netgear WG311T (ath(4) lists it as
being supported). Here's the ouput of `pciconf -lv`:

ath0@pci0:10:0: class=0x020000 card=0x1a001385 chip=0x0013168c rev=0x01 \
hdr=0x00
    vendor   = 'Atheros Communications Inc.'
    device   = 'AR5212, AR5213 802.11a/b/g Wireless Adapter'
    class    = network
    subclass = ethernet

When I try to load the ath(4) driver I get this error message:

ath_hal: 0.9.14.9 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413)
ath0: <Atheros 5212> mem 0x84800000-0x8480ffff irq 15 at device 10.0 on pci0
ath0: unable to attach hardware; HAL status 3
device_attach: ath0 attach returned 6

I checked sys/contrib/dev/ath/ah.h as described in ath(4) and this is what I
found:

HAL_EIO         = 3,    /* Hardware didn't respond as expected */

I asked a guy in #madwifi and he pointed me to a website with a Q&A stating the
following:

Q: When I load the ath_pci module I get ?unable to attach hardware: Hardware
   didn?t respond as expected, (HAL status 3)?!

A: There exist pci-bridges which have difficulties with Atheros cards (and
   other hardware possibly). To get your card working you first have to find
   your pci-bridges pci-id with ?lspci?. After then you have to set the
   SUBORDINATE_BUS option for this pci-id with the ?setpci? tool.

   For example:

   schleppi:~$ lspci | grep -i ?pci bridge?

   0000:00:01.0 PCI bridge: Intel Corp. 82845 845 (Brookdale) Chipset AGP \
   Bridge

   0000:00:1e.0 PCI bridge: Intel Corp. 82801 PCI Bridge

   schleppi:~$ setpci -s 0:1e.0 SUBORDINATE_BUS=0A

   I have chosen PCI bridge, because my problem existed only for mini-pci
   Atheros card. If you have problems with your cardbus card instead, you would
   chose your PCI to Cardbus controller possibly.

   Another possibility is a badly installed pci card - try removing it, dusting
   of the contacts and putting it firmy back into the slot.

Alright I believe this is my PCI bridge:

hostb0@pci0:0:0:        class=0x060000 card=0x80331043 chip=0x03051106 \
rev=0x02 hdr=0x00
    vendor   = 'VIA Technologies Inc'
    device   = 'VT8363/5 KT133/KM133 System Controller'
    class    = bridge
    subclass = HOST-PCI

I searched through the linux kernel sources and found the following definition
in include/linux/pci.h:

define PCI_SUBORDINATE_BUS     0x1a    /* Highest bus number behind the \
bridge */

So this is what I did to do what the Q&A proposes:

pcitweak -w 00:00:0 -b 0x1A 0xA

However the value doesn't seem to have any effect, because I still get the
same error. And if I check the PCI mem offset I set beforehand it doesn't
seem to have done anything:

pcitweak -r 00:00:0 -b 0x1A
0x00

Can somebody help me with this problem? There seems to be a problem with
revisions of the card that use a the Atheros AR5213 chip. But those cards
have a different `pciconf` output and loading if_ath exits with code 13
which stands for a wrong revision.

I'd really appreciate it if somebody could help me out. I already tried the
ndis driver, but ndiscvt finds stumbles accross a syntax error in the *.inf
file of the driver.

Thx a bunch.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050831174218.GA1522>