Re: 2.6.24-rc2 libertas_sdio fails to initialize Marvell SD8686

From: Pierre Ossman
Date: Wed Nov 14 2007 - 13:03:31 EST


On Tue, 13 Nov 2007 16:21:57 -0500
Bill Gribble <grib@xxxxxxxxxxxxxxx> wrote:

>
> After the first time I saw the line "Failed to load helper firmware" I
> downloaded fresh copies of the firmware from Marvell and installed
> them in /lib/firmware to paths as indicated in the module source:
>
> -rwxr-xr-x 1 root root 120716 Nov 12 12:35 sd8686.bin
> -rwxr-xr-x 1 root root 2140 Nov 12 12:36 sd8686_helper.bin
>
> Having those there doesn't seem to change anything.
>

Marvell tend to not have a one true firmware, but one for each device, so you might end up having to dig out the ones shipped with the device.

Still, my understanding is that the device won't boot the helper firmware until it is entirely loaded, so that shouldn't be the problem.

> Nov 13 14:40:09 pequin kernel: mmc0: starting CMD53 arg 9a000002 flags 000001b5
> Nov 13 14:40:09 pequin kernel: mmc0: blksz 32 blocks 2 flags 00000100 tsac 1000 ms nsac 0
> Nov 13 14:40:09 pequin kernel: sdhci [sdhci_irq()]: *** sdhci:slot0 got interrupt: 0x00000001
> Nov 13 14:40:11 pequin kernel: sdhci [sdhci_irq()]: *** sdhci:slot0 got interrupt: 0x00108000
> Nov 13 14:40:11 pequin kernel: mmc0: req done (CMD53): 0: 00002000 00000000 00000000 00000000
> Nov 13 14:40:11 pequin kernel: mmc0: 32 bytes transferred: -110

Your problem is here. The card chokes for some reason and times out when it's supposed to receive a chunk of the firmware. Odd, as the loading loop first queries the card if it is ready for more data.

You could try adding a delay to the helper firmware loading loop (if_sdio_prog_helper() in if_sdio.c). Add an msleep(100); in there and see if that gets things further. Loading will be slow as hell though.

Rgds
--
-- Pierre Ossman

Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/