libertas sdio on bf548 w/ uclinux
Nick Moszer
nick.moszer at packetdigital.com
Mon Apr 14 11:56:32 EDT 2008
Hello,
I've been banging my head against the wall on this one for a few days now.
I'm trying to get a sdio wifi card working on a BF548-EZKIT running
uclinux w/ 2.6.24 from the blackfin.uclinux.org svn.
The card is a EWWMGMR05KIT-SDIO-US from embeddedworks.net:
http://www.embeddedworks.net/wlan/oem_sdio_80211g.html
On boot the kernel recognizes the card just fine:
mmc0: new SDIO card at address 0001
and it's got an entry in /sys/class/mmc_host/mmc0/mmc0:0001:1 that I can
poke at. Also, SD flash cards work just fine.
I've got the libertas driver building as a module, when I load it I get
root:/> modprobe
libertas_sdio
ieee80211: 802.11 data/management/control stack,
git-1.1.13
ieee80211: Copyright (C) 2004-2005 Intel Corporation
<jketreno at linux.intel.com>
libertas_sdio: Libertas SDIO
driver
libertas_sdio: Copyright Pierre
Ossman
(about a 60 second pause here, then)
libertas: can't load helper firmware
libertas: failed to load helper
firmware
libertas_sdio: probe of mmc0:0001:1 failed with error -2
I've got firmware in /lib/firmware as sd8686.bin and sd8686_helper.bin.
I came across this thread from last December:
http://lists.infradead.org/pipermail/libertas-dev/2007-December/001085.html
I talked to Hans and he said he was able to get it working by padding
the data so size%4 = 0
in the if_sdio_card_to_host and if_sdio_host_to_card functions of
if_sdio.c.
Just as is mentioned in the source.
As far as I can tell those functions aren't running for me, I added
printk's and they never fire.
Once if_sdio_probe is called in if_sdio.c it gets to ret =
if_sdio_prog_firmware(card) and never past.
This is all with MMC debugging disabled in the kernel and "Enable full
debugging output in the Libertas module" enabled.
When I enable MMC debugging and try again, I get this over and over from
dmesg
mmc0: starting CMD52 arg 00000a00 flags 00000195
sdh_request enter, mrp:005d3f20, cmd:005d3f54
sdh_start_cmd enter cmd:0x005d3f54
sdh_stat_irq enter
sdh_cmd_done enter cmd:005d3f54
sdh_finish_request enter
mmc0: req done (CMD52): 0: 00001000 00000000 00000000 00000000
sdh_stat_irq exit
This problem seems similar to this thread from last November as well:
http://linux.derkeiler.com/Mailing-Lists/Kernel/2007-11/msg04115.html
Is there something obvious here I'm missing? Been looking at this too
long I think.
Is this the same dumb Marvell firmware problem where one set won't work
for all the 8686 chips?
I grabbed my firmware from Marvell's site as well. I don't think
embeddedworks provides any.
Thanks!
More information about the libertas-dev
mailing list