RT256x PCMCIA card under 7.0-BETA2 (repost from freebsd-stable@freebsd.org, to get a broader audience)

Heiko Wundram (Beenic) wundram at beenic.net
Wed Nov 14 07:59:58 PST 2007


Hi all!

I just recently bought a RT2561C based (at least I think so) wireless card, 
which is also happily recognized by the ral-driver:

ral0: <Ralink Technology RT2561> mem 0x88000000-0x88007fff irq 17 at device 
0.0 on cardbus0
ral0: MAC/BBP RT2561C, RF RT2527
ral0: Ethernet address: 00:80:5a:51:23:53
ral0: [ITHREAD]

As soon as I plug in the card and the netif script starts wpa_supplicant and 
dhclient, the laptop this is plugged into receives an interrupt storm on cbb0 
(having 80% interrupt time), which leads to a noticeable slowdown of the 
whole system:

phoenix# vmstat -i
interrupt                          total       rate
irq1: atkbd0                        9773          3
irq10: acpi0                         729          0
irq14: ata0                        17173          6
irq15: ata1                           64          0
irq17: cbb0 cbb1+               10408993       4217
irq18: pcm0                         5753          2
irq19: sis0+                       33302         13
irq20: ohci0                         207          0
irq21: ohci1                       44261         17
irq23: ehci0                           1          0
cpu0: timer                      4926468       1996
Total                           15446724       6258
phoenix#

This snapshot was taken some time after I killed wpa_supplicant (when it had 
been up for about 10 seconds).

When I manually start wpa_supplicant (with no stations in reach), there is no 
interrupt storm, but just normal activity with around 7-10 interrupts on cbb0 
per second.

I can also manually scan using the card (but ifconfig scan never finishes, but 
will show the stations in reach when doing an ifconfig list scan after ^C-ing 
the ifconfig scan), but cannot attach to any WPA access point in 
scanning-reach with wpa_supplicant (the only type of stations I have access 
to; I cannot test with WEP at the moment); enabling net.wlan.debug and 
net.wlan.0.debug also shows the scan taking place and the keys being set to 
the card, but nothing else from there.

The card itself is a "Conceptronic C54RC Version 2.0", which I guess explains 
the difference (in hardware) between the note in the manpage of ral(4) for 
this adapter and the actual hardware type it finds:

     Conceptronic C54RC           RT2560     CardBus

Anyway, doing a pciconv -lv leads to a different result than the actual driver 
reports, which is compatible with the hardware specification in the manpage:

ral0 at pci0:2:0:0:        class=0x028000 card=0x3c231948 chip=0x03021814 
rev=0x00 hdr=0x00
    vendor     = 'Ralink Technology, Corp'
    device     = 'RT2525 2.4GHz transceiver + RT2560 MAC/BBP wireless a/b'
    class      = network

The kernel all of this runs under is a (slightly) modified GENERIC 7.0-BETA2 
(from yesterday evening CET; an older 7.0-BETA2 didn't exhibit the interrupt 
storm behaviour, but was similar for the rest), with SMP disabled and 
SCHED_ULE instead of SCHED_4BSD.

As debug.ral isn't available under the 7.0 ral-driver (which is referenced in 
the FreeBSD setup page http://damien.bergamini.free.fr/ral/ral-freebsd.html), 
I have no immediately obvious means of debugging what's actually happening 
when the interrupt storm takes place, and why the card won't attach to the AP 
even though the same wpa_supplicant config works using an ndis-wrapped driver 
for a different PCMCIA-card (Broadcom-based).

Thanks for any hint you can give me!

-- 
Heiko Wundram
Product & Application Development


More information about the freebsd-questions mailing list