rmmod libertas_sdio and reinsert causes problems with firmwareupload.

Jonathan Cameron jic23 at cam.ac.uk
Wed Sep 3 09:47:04 EDT 2008

Hi Johan and Dan,
>>> > frontend.
>>> No luck unfortunately.
>>> I'm still getting a time out when I try to read the scratch pad after
>>> doing
>>> this.
>>> Can someone with the relevant firmware docs (anything more recent
>>> that 5.1
>>> - using 9.70.3) confirm the form of the command is correct.
>>> The command definition in hostcmd.h has an action field whereas the 5.1
>>> firmware spec claims there are no data fields at all.  Would make
>>> life easier
>>> to know which is correct
>> That field isn't set with the 8.0 GPL drivers and I think it's a
>> holdover from earlier firmware.  I'm pretty sure it's no longer used.
> Ack, it's not present in the doc for firmware 9 either.
Thanks for clearing that up.
> The doc says to wait at least 100 ms before trying to reload the firmware.
ok, I've put that in, but no luck as yet.
> I have some similar(?) issues when trying to reload the modules,
> even though I attempt to pull the hardware reset line.
Hmm. I can pull the power supply to the sdio which definitely works ;) but
that's nasty and board specific. 
> Marvell have some app notes and errats explaining some issues with reset
> and the critical timing related to the hardware reset.
Oh goody.  

All I've really be able to establish is that sending the reset command seems
to completely freeze the device (even after giving it 1 sec to sort itself

Attempts to read or write anything fail with a timeout (-110).
Thus the sdio_disable_func calls suggested previously fail

with debugging enabled the reset looks like

mmc0: starting CMD52 arg 10004000 flags 00000195
PXAMCI: irq 00000004 stat 00002140
mmc0: req done (CMD52): 0: 00001008 00000000 00000000 00000034
mmc0: starting CMD53 arg 9200000c flags 000001b5
mmc0:     blksz 12 blocks 1 flags 00000100 tsac 1000 ms nsac 0
PXAMCI: irq 00000004 stat 00003940
PXAMCI: irq 00000001 stat 00003940
mmc0: req done (CMD53): 0: 00002000 00000000 00000000 00000035
mmc0:     12 bytes transferred: 0
PXAMCI: irq 00000800 stat 0000b940

So all looks fine - interestingly that last irq is a suspend acknowledgment.
Not quite sure what is meant to be happening, but that seems a little odd to

failure looks like...

SDIO: Disabling device mmc0:0001:1...
mmc0: starting CMD52 arg 00000400 flags 00000195
PXAMCI: irq 00000004 stat 00002142
mmc0: req done (CMD52): -110: 00002000 00000000 00000000 00000035
SDIO: Failed to disable device mmc0:0001:1

Any thoughts?


More information about the libertas-dev mailing list