lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 14 Nov 2007 19:02:47 +0100
From:	Pierre Ossman <drzeus-mmc@...eus.cx>
To:	Bill Gribble <grib@...lgribble.com>
Cc:	linux-kernel@...r.kernel.org
Subject: Re: 2.6.24-rc2 libertas_sdio fails to initialize Marvell SD8686

On Tue, 13 Nov 2007 16:21:57 -0500
Bill Gribble <grib@...lgribble.com> 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@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists