Belkin F5D9010 ver.3000

Live forum: http://rt2x00.serialmonkey.com/viewtopic.php?t=6099

bediger4000

27-09-2010 23:37:48

I have a Belkin F5D9010 ver.3000 cardbus card. lspci identifies it like this

0500.0 Network controller [0280] RaLink Rt2600 802.11 MIMO [18140401]

This is what ends up in "dmesg" when I plug the card in (linux 2.6.35.4, but similar for 2.6.30.10, and the rt2x00 "git" clone as per the "download" instructions)

[code4obpksac]pcmcia_socket pcmcia_socket1: pccard: CardBus card inserted into slot 1
pci 0000:05:00.0: reg 10: [mem 0xffff8000-0xffffffff]
pci 0000:05:00.0: BAR 0: assigned [mem 0xa4000000-0xa4007fff]
pci 0000:05:00.0: BAR 0: set to [mem 0xa4000000-0xa4007fff] (PCI address [0xa4000000-0xa4007fff]
cfg80211: Calling CRDA to update world regulatory domain
cfg80211: World regulatory domain updated:
(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
(2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
(2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
(2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
(5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
(5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
rt61pci 0000:05:00.0: enabling device (0000 -> 0002)
rt61pci 0000:05:00.0: PCI INT A -> Link[C0C5] -> GSI 10 (level, low) -> IRQ 10
rt61pci 0000:05:00.0: setting latency timer to 64
phy0: Selected rate control algorithm 'minstrel'
Registered led device: rt61pci-phy0::radio
Registered led device: rt61pci-phy0::assoc
phy0 -> rt61pci_load_firmware: Error - MCU Control register not ready.
phy0 -> rt2x00pci_regbusy_read: Error - Indirect register access failed: offset=0x00002100, value=0xa50e30af[/code4obpksac]


Looks like the firmware never loads. Just to ensure that I have the correct firmware, I've scouted for all rt2661.bin files, and I've only found one. I unpacked the Belkin suggested Linux driver for RT2600 cards. I've even busted out the rt2661.bin file from the Belkin "InstallSheild" .cab files from the CD-ROM that came with the card. All rt2661.bin files appear identical.

Firmware cksum output
4224586181 8192 rt2661.bin

I've tried many different kernels
2.6.35.4
2.6.35, as from the "rt2x00" development git tree
2.60.30.10

I've tried the old "standalone" rt61, the last April 2009 CVS version and what Sourceforge has a version 1.1.0-b2, both with an older kernel (2.6.20.21) on yet another laptop. That just seems to scribble around in memory and then lock up the machine, but its also old and cranky.

With the 2.6.35.4 kernel, I've renamed rt2561.bin and rt2561s.bin to rt2661.bin to see if they'd work. No joy.

I've added more reps, and a longer msleep() to the loop in rt61pci.c where the driver waits for the MCU_CNTRL_CSR register to show up as "ready". The same error about "MCU Control register not ready" shows up.

I have no Windows machine to try this card out on, but I also can't find anything in Google that says F5D9010 ver.3000 works with linux at all.

Got any hints or tips? Any other info I can provide? This is mostly on Slackware 13.1, I don't know which version of iwconfig, iwprivs or iwlist it has. Slackware 13.1 with kernel 2.6.35.4 works great with an old Cisco Aironet 350 PCMCIA card, so it's not the slot hardware, or some other problem related to wireless.

bediger4000

30-09-2010 16:28:11

Tried another thing. I found an older web page reference to F5D9010 ver.3000 working under Ubuntu 7.04.

I found the ISO, burned it to CD, and booted the laptop in question with it. Turns out it's Linux kernel 2.6.20.13 and the old rt61 driver, CVS 1.1.0.

Naturally, this didn't work. When the driver loads the firmware, it doesn't set the MAC address. "ifconfig ra0" reports the MAC address as "FFFFFFFFFFFF". You can't set an access point MAC address, either, and as near as I can tell, it never associates with any access point.

I'm doing all my testing in the same small room as a Linksys WRT54GL running DD-WRT, by the way.

I did find a cheap Cisco Aironet 350 (802.11b only). It works with my 2.6.35.4 kernel with only a little real hassle, so, the wireless subsystem in that kernel is not to blame for the Belkin F5D9010 problems.

Also, I looked in Ralink's example Linux driver, the 2010-08 version. The firmware gets compiled in to the driver, so it doesn't really use the rt2661.bin file. I dumped out that compiled-in firmware as an 8K file, the did a Linux "cmp" on /lib/firmware/rt2661.bin. Only difference is the final 2, "checksum" bytes of the file.

Even though I broke up the InstallShield "cab" file that came on the CD-ROM with the F5D9010 card, and got the same rt2661.bin file used all over, I'm thinking there's some firmware difference that is compiled into the Windows driver. The kernel 2.6.35.4 driver cannot load the firmware, and get the MCU to say it's ready ever.