s3c2416 AW-GH321 (sdio8686 wifi)

tommy jiujin.hong at mid-fun.com
Fri Oct 16 07:21:04 EDT 2009


hi,George,thanks  for sharing!
i   test both built in and kernel module!

BTW,how ot compile the firmware blobs into the kernel image?

On 五, 2009-10-16 at 12:01 +0100, George Shore wrote:
> 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.  
> -
> 
> 
> _______________________________________________
> libertas-dev mailing list
> libertas-dev at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/libertas-dev
> 




More information about the libertas-dev mailing list