s3c2416 AW-GH321 (sdio8686 wifi)

George Shore George.Shore at imgtec.com
Fri Oct 16 07:01:00 EDT 2009


Hi Tommy,

One question I have: are you loading the libertas driver as a module, or is it being built-in to the kernel?
I had quite a similar problem where I had the driver built-in to the kernel with the firmware in /lib/firmware, and was receiving the same error. I found that the firmware loader is requesting the firmware through the sysfs interface, but at the time where the device is being initialised sysfs has not been mounted.
My solution was to compile the firmware blobs into the kernel image, which takes precedence over firmware on a filesystem.

Hope this helps,

George.

> -----Original Message-----
> From: libertas-dev-bounces at lists.infradead.org [mailto:libertas-dev-
> bounces at lists.infradead.org] On Behalf Of tommy
> Sent: 16 October 2009 11:40
> To: libertas-dev at lists.infradead.org
> Subject: Re: s3c2416 AW-GH321 (sdio8686 wifi)
> 
> 1:Chip reference hw design
> 2: My board wifi design
> 
> On 五, 2009-10-16 at 18:32 +0800, tommy wrote:
> > Platform:Linux 2.6.29
> > Soc:S3C2416
> > HSMMC:s3c-hsmmc.c (in attachment)
> >
> > rootfs: busybox1.13 -->rootfs,have mdev/firmware loading support
> > /lib/firmware have firmware bin
> >
> >
> >
> >  libertas enter: if_sdio_probe()
> > libertas sdio: class = 0x7, vendor = 0x2DF, device = 0x9103, model =
> > 0xB, ioport = 0x10000
> > libertas enter: if_sdio_prog_firmware()
> > libertas enter: if_sdio_prog_helper()
> > libertas_sdio mmc0:0001:1: firmware: requesting sd8686_helper.bin
> > libertas: can't load helper firmware
> > libertas: failed to load helper firmware
> > libertas leave: if_sdio_prog_helper(), ret -2
> > libertas leave: if_sdio_prog_firmware(), ret -2
> > libertas leave: if_sdio_probe(), ret -2
> > libertas_sdio: probe of mmc0:0001:1 failed with error -2
> > libertas enter: if_sdio_prog_helper()
> > ====1=====/n=1=
> > libertas_sdio mmc0:0001:1: firmware: requesting sd8686_helper.bin
> > =2=
> > =3=
> > =3.1=
> > =3.2=
> > s3c-hsmmc: hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195
> > retries:0
> > s3c-hsmmc: Sending cmd=(52), arg=0xa00
> > s3c-hsmmc: s3c-hsmmc: Got interrupt = 0x00000001
> > s3c-hsmmc: command done
> > s3c-hsmmc: cmd (52) resp[0] = 0x1000
> > s3c-hsmmc: Ending cmd (52)
> > s3c-hsmmc:
> >
> >
> > hsmmc debug:
> >
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> > hsmmc request: [CMD] opcode:52 arg:0x00000a00 flags:0x195 retries:0
> > cmd (52) resp[0] = 0x1000
> >
> > i want to say ,when it is requesting firmware downloading ,it doesn't
> > request an interrupt from SDIO wifi chip ?
> > is it a HW issue ?
> >
> > thanks all first!
> > _______________________________________________
> > libertas-dev mailing list
> > libertas-dev at lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/libertas-dev
-
This message is subject to Imagination Technologies' e-mail terms: http://www.imgtec.com/e-mail.htm

Imagination Technologies Ltd is a limited company registered in England No:  1306335 
Registered Office: Imagination House, Home Park Estate, Kings Langley, Hertfordshire, WD4 8LZ.  

Email to and from the company may be monitored for compliance and other administrative purposes.  
-




More information about the libertas-dev mailing list