s3c6410 linux 2.6.27 firmware load error

梁亦飞 dinuxlyf at gmail.com
Sat Jul 24 00:09:11 EDT 2010


I use to have the same problem, but after i disable the following
quirks in sdhci_s3c_probe, sdhci-s3c.c,
it worked well.
/* PIO currently has problems with multi-block IO */
// host->quirks |= SDHCI_QUIRK_NO_MULTIBLOCK;

may be you can try this.
Liang
>
> On Thu, 2010-07-01 at 16:20 +0800, ÁÖ•Fƒ| wrote:
> > My target is s3c6410 and I am using the linux 2.6.27 kernel and the
> > associated libertas driver.
>
> This looks like either the SD host controller isn't correctly set up,
> doesn't support features that Libertas requires, or there is some
> mis-wiring of the libertas chip to the SD host controller.  Sometimes
> host controller errata require workarounds on your part too.  The list
> archives are full of issues with host controllers that are eventually
> solved in various ways.
>
> Dan
>
> > And my sd8686 chip is build on the board.
> >
> > When I start the libertas driver, I got the following message
> >
> > mmc0: starting CMD52 arg 10004000 flags 00000195
> >
> > mmc0: req done (CMD52): 0: 0000100d 00000000 00000000 00000000
> >
> > mmc0: starting CMD52 arg 10002000 flags 00000195
> >
> > mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000
> >
> > mmc0: starting CMD52 arg 80022000 flags 00000195
> >
> > mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000
> >
> > libertas: failed to load firmware
> >
> > SDIO: Disabling IRQ for mmc0:0001:1...
> >
> > mmc0: IRQ thread exiting with code 1
> >
> > mmc0: starting CMD52 arg 00000800 flags 00000195
> >
> > mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000
> >
> > SDIO: Disabling device mmc0:0001:1...
> >
> > mmc0: starting CMD52 arg 00000400 flags 00000195
> >
> > mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000
> >
> > SDIO: Failed to disable device mmc0:0001:1
> >
> > libertas_sdio: probe of mmc0:0001:1 failed with error -110
> >
> >
> >
> > I trace the if_sdio.c , then I found the driver break on
> >
> > static int if_sdio_prog_real(struct if_sdio_card *card)
> >
> > {
> >
> >         ......
> >
> >
> >
> >                 req_size = sdio_readb(card->func, IF_SDIO_RD_BASE,
> > &ret); => ret always return -110
> >
> >                 if (ret){
> >
> >                         goto release;
> >
> >                 }
> >
> >
> >
> >
> >
> >                 req_size |= sdio_readb(card->func, IF_SDIO_RD_BASE +
> > 1, &ret) << 8;
> >
> >                 if (ret){
> >
> >                         goto release;
> >
> >                 }
> >
> >         .......
> >
> > }
> >
> >
> >
> > Can tell me how to fix this issue ?
> >
> >
> >
> > Thanks
> >
> >
> >
> >
> >
> > Õ²Ó›¿Æ¼¼(¹É)¹«Ë¾
> >
> > Minyi Lin, ÁÖ•Fƒ|
> >
> > 114 ̨±±ÊЃȺþ…^Èð¹â·258Ïï2Ì–4˜ÇÖ®3
> >
> > 4F-3., No. 2, Lane 258, Rui Guang Rd., Taipei, Taiwan 114
> >
> > TEL: 02-27993616 ext.303
> >
> > FAX: 02-27995519
> >
> > http://www.ahoya.com.tw
> >
> > http://www.clara-comm.com
> >
> > http://www.areagroup.com.tw
> >
> >
> >
> >
> >
> > --
> > This message has been scanned for viruses and
> > dangerous content by MailScanner, and is
> > believed to be clean.
> > _______________________________________________
> > libertas-dev mailing list
> > libertas-dev at lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/libertas-dev
>
>
>
> _______________________________________________
> 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