i build Kernel 2.6.34 adding the libertas_tf driver and firmware to the fs and when booting i get the following error:
libertas_tf_sdio: Libertas Thinfirmware SDIO driver
libertas_tf_sdio: Copyright cozybit Inc.
libertas_tf_sdio: buildstamp: 6
libertas_tf_sdio mmc1:0001:1: firmware: requesting sd8686_helper.bin
libertas_tf_sdio mmc1:0001:1: firmware: requesting sd8686tf.bin
libertas_tf_sdio: Error fetching MAC address from hardware.
libertas_tf_sdio: error -110 sending packet to firmware
libertas_tf_sdio: probe of mmc1:0001:1 failed with error -1
I've a Tobi + Overo Air.
any tips ?
> I tried removing the libertas module and at boot the firmware status is
> still 0x8000.
This must be how the scratch register is reported in your hardware.
What is the hardware arrangement? What sdio controller are you using?
Perhaps we need to mask off the high bit. I wonder if it actually
> This does not work.
>> You might try setting "libertas_tf_reset_fw" on module load. It
>> should attempt to reset the device and then force firmware load. It
>> might not help -> I had to abandon that line of research in my
>> development due to various problems.
I didn't expect it to. Perhaps some adjustments to that code should
be done, or perhaps I should just cut it.
> There are two gpio (one for reset, one for power down), but they did not
> help. The good news is that treating the 0x8000 value as if it were 0 and
> letting the module load the firmware anyway seems to work OK (both helper
> and firmware are loaded and the final status is IF_SDIO_FIRMWARE_OK).
These aren't the same GPIOs as what I was talking about on the XO's.
Don't worry, doesn't matter. At least you have something that works.
> There is another problem in if_sdio_update_hw_spec; the call to
> if_sdio_wait_status(card, IF_SDIO_UL_RDY) times out (the status is 9 instead
> of 2)
> [ 60.037994] lbtf_sdio enter: if_sdio_update_hw_spec()
> [ 60.043121] lbtf_sdio enter: _if_sdio_host_to_card(type 1, bytes 46)
> [ 60.049560] lbtf_sdio leave: _if_sdio_host_to_card(), ret 0
> [ 60.060791] lbtf_sdio enter: if_sdio_host_to_card_worker()
> [ 60.066467] lbtf_sdio sdio: host->card called during init, assuming
> device exists
> status=9, condition=2
> [ 61.069213] lbtf_sdio sdio: error waiting on IO ready
> lbtf_sdio leave: if_sdio_update_hw_spec()
> [ 61.078002] libertas_tf_sdio: Error fetching MAC address from hardware.
> lbtf_sdio sdio: prob error jump: reclaim> lbtf_sdio sdio: prob error jump: release_int
> lbtf_sdio sdio: prob error jump: disable
> lbtf_sdio sdio: prob error jump: release> lbtf_sdio sdio: prob error jump: freestatus=1, condition=8
> [ 62.113311] libertas_tf_sdio: error -110 sending packet to firmware
> [ 62.119659] lbtf_sdio leave: if_sdio_host_to_card_worker()
> [ 62.125701] lbtf_sdio leave: if_sdio_probe(), ret -1
> [ 62.130798] libertas_tf_sdio: probe of mmc1:0001:1 failed with error -1
> [ 62.137542] lbtf_sdio leave: if_sdio_init_module(), ret 0
> since it seemed a timing problem, I added an msleep(1) before the
> if_sdio_wait_status, and it seems to work (the module reads the MAC address
> and completes initialization).
> I doubt that the msleep() is the right solution; at the very least I
> suppose it should loop, calling msleep() until card->packets becomes NULL,
> but I'm sure you have a better suggestion.
Better suggestion at this point: no. Maybe we need to take a closer
look at this. I don't have a full understanding of the timing of this
code or how it relates to the hardware, mostly because I pretty much
just adapted the original libertas_sdio code for this part, and since
it worked for me I never examined it closely. If you can figure out
what is going on I'd love to hear it. I'll look at it myself when I
get a chance.
> hostap is still compiling (will let you know whether it works or not).
Did you get a wlan0 device? Did you manage to associate to an AP and
could you ping the device?
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
gumstix-users mailing list