Re: PCI Cardreader

Max Laier <[email protected]>
Newsgroups gmane.os.freebsd.devel.mobile
Organization FreeBSD
Message-ID <200711090242.57554.max__11938.6895480149$1194573665$gmane$org@love2party.net>
On Friday 09 November 2007, Benjamin Close wrote:
> Rene Ladan wrote:
> > 2007/11/8, Rene Ladan <[email protected]>:
> >> Alexandre "Sunny" Kovalenko schreef:
> >>> On Wed, 2007-11-07 at 22:13 +0100, Rene Ladan wrote:
> >>>> Bachilo Dmitry schreef:
> >>>>> Hello all.
> >>>>> I always used USB cardreaders and had no problem with it, but now
> >>>>> in my notebook I have a cardreader, that appears to be onboard
> >>>>> PCI device. And so FreeBSD sees it as this:
> >>>>> pci6: <memory, flash> at device 4.1 (no driver attached)
> >>>>> pci6: <base peripheral> at device 4.2 (no driver attached)
> >>>>> pci6: <memory, flash> at device 4.3 (no driver attached)
> >>>>> pci6: <memory, flash> at device 4.4 (no driver attached)
> >>>>>
> >>>>>
> >>>>> That's even more odd because three are recognized as flash and
> >>>>> one is not. pciconf -lv shows this:
> >>>>>
> >>>>> none13@pci6:4:1:        class=0x050100 card=0x009f1025
> >>>>> chip=0x05301524 rev=0x01 hdr=0x00
> >>>>>     vendor     = 'ENE Technology Inc'
> >>>>>     device     = 'PCI Memory Stick Card Reader Controller'
> >>>>>     class      = memory
> >>>>>     subclass   = flash
> >>>>>
> >>>>> Well, in 7.0-CURRENT it showed all four devices and now in BETA-2
> >>>>> only this one.
> >>>>
> >>>> On my 8.0-CURRENT box (20071105) it shows all four devices:
> >>>>
> >>>> cbb0@pci0:4:1:0:     class=0x060700 card=0x14371043
> >>>> chip=0x04761180 rev=0xb3 hdr=0x02 vendor     = 'Ricoh Company,
> >>>> Ltd.'
> >>>>     device     = 'unknown Ricoh R/RL/5C476(II)'
> >>>>     class      = bridge
> >>>>     subclass   = PCI-CardBus
> >>>> fwohci0@pci0:4:1:1:  class=0x0c0010 card=0x14371043
> >>>> chip=0x05521180 rev=0x08 hdr=0x00 vendor     = 'Ricoh Company,
> >>>> Ltd.'
> >>>>     device     = 'RL5c552 IEEE-1394 Controller'
> >>>>     class      = serial bus
> >>>>     subclass   = FireWire
> >>>> none0@pci0:4:1:2:    class=0x080500 card=0x14371043
> >>>> chip=0x08221180 rev=0x17 hdr=0x00 vendor     = 'Ricoh Company,
> >>>> Ltd.'
> >>>>     device     = 'R5C832, R5C843 SDA Standard Compliant SD Host
> >>>> Controller' class      = base peripheral
> >>>> none1@pci0:4:1:3:    class=0x088000 card=0x14371043
> >>>> chip=0x05921180 rev=0x08 hdr=0x00 vendor     = 'Ricoh Company,
> >>>> Ltd.'
> >>>>     device     = '13871043 Ricoh Memory Stick Host Controller'
> >>>>     class      = base peripheral
> >>>>
> >>>>> Is there any way I can make them work?
> >>>>
> >>>> You can add these lines to your kernel configuration:
> >>>>
> >>>> device          mmc
> >>>> device          mmcsd
> >>>>
> >>>> But don't expect any magic.  mmc(4) and mmcsd(4) tell that nothing
> >>>> currently works, which seems to be true on my Asus A6JE (using a
> >>>> Kingston micro-SD card with adapter).
> >>>>
> >>>> imp@ is the last person who touched the driver which lives in
> >>>> /usr/src/sys/dev/mmc/
> >>>
> >>> Thing below is on my list to try out when I get enough breathing
> >>> room (or when I would have a dire need to read SD cards on my
> >>> ThinkPad X60 ;). Did you, by any chance, try it? Any experiences to
> >>> share?
> >>>
> >>> http://www.freebsd.org/cgi/getmsg.cgi?fetch=17399+21119
> >>> +/usr/local/www/db/text/2007/freebsd-mobile/20070916.freebsd-mobile
> >>
> >> Not yet, I didn't see the message until now since I'm not (yet) on
> >> the mobile list. A quick try showed that it does not compile on my
> >> box.  I'll investigate why. The author did not leave an email
> >> address in the files.
> >
> > The short story is bus_setup_intr() gained some parameters, I'll
> > figure out which.  According to a blog at bsdimp.blogspot.com, Ricoh
> > based readers should work with this driver :)
>
> The attached patch gets it compiling but I think there might be some
> locking issues still as I got an immediate panic at module load. Not
> sure who put up the tar.gz but I know Max has done some work porting it
> from OpenBSD in p4:
>
> http://perforce.freebsd.org/changeList.cgi?CMD=changes&FSPC=//depot/use
>r/mlaier/sdmmc/sys/...

Nah, that's crap.  Never got anywhere.  Just me toying around.

>
> diff -ur sdmmc-20070627/dev/sdmmc/sdshc.c
> sdmmc-20070627-devel/dev/sdmmc/sdshc.c
> --- sdmmc-20070627/dev/sdmmc/sdshc.c    2007-06-25 19:55:52.000000000
> +0930 +++ sdmmc-20070627-devel/dev/sdmmc/sdshc.c      2007-11-09
> 11:45:00.779789122 +1030
> @@ -42,6 +42,8 @@
>  #include <sys/systm.h>
>  #include <sys/conf.h>
>  #include <sys/malloc.h>
> +#include <sys/bus.h>
> +#include <machine/bus.h>
>
>  #include <dev/pci/pcireg.h>
>  #include <dev/pci/pcivar.h>
> @@ -342,7 +344,7 @@
>       * Hook our interrupt after all initialization is complete.
>       */
>      LOG(0x10, (dev, "Setup Intr\n"));
> -    error = bus_setup_intr(dev, sc->irq, INTR_TYPE_NET|INTR_MPSAFE ,
> +    error = bus_setup_intr(dev, sc->irq, INTR_TYPE_NET|INTR_MPSAFE ,
> NULL, sdshc_intr, sc, &sc->ih);
>      if (error != 0) {
>         MSG((dev, "could not set up interrupt\n"));
> diff -ur sdmmc-20070627/dev/sdmmc/sdshcbus.c
> sdmmc-20070627-devel/dev/sdmmc/sdshcbus.c
> --- sdmmc-20070627/dev/sdmmc/sdshcbus.c 2007-06-20 03:12:28.000000000
> +0930 +++ sdmmc-20070627-devel/dev/sdmmc/sdshcbus.c   2007-11-09
> 11:49:18.706315189 +1030
> @@ -41,6 +41,8 @@
>  #include <sys/conf.h>
>  #include <sys/malloc.h>
>  #include <sys/ctype.h>
> +#include <sys/bus.h>
> +#include <machine/bus.h>
>
>  #include "sdbus_if.h"



-- 
/"\  Best regards,                      | [email protected]
\ /  Max Laier                          | ICQ #67774661
 X   http://pf4freebsd.love2party.net/  | mlaier@EFnet
/ \  ASCII Ribbon Campaign              | Against HTML Mail and News
signature.asc (application/pgp-signature, 187 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)

iD8DBQBHM7shXyyEoT62BG0RAmWsAJkBZbXkX8vFAuO2Da3wUwUbQSgGiACdH5p7
e9CKfIvD9Na+2eZKEAZr34Q=
=nOh4
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.