PCI Cardreader
Max Laier
max at love2party.net
Thu Nov 8 18:00:13 PST 2007
On Friday 09 November 2007, Benjamin Close wrote:
> Rene Ladan wrote:
> > 2007/11/8, Rene Ladan <r.c.ladan at gmail.com>:
> >> 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 at 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 at 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 at 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 at 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 at 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, | mlaier at freebsd.org
\ / Max Laier | ICQ #67774661
X http://pf4freebsd.love2party.net/ | mlaier at EFnet
/ \ ASCII Ribbon Campaign | Against HTML Mail and News
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: This is a digitally signed message part.
Url : http://lists.freebsd.org/pipermail/freebsd-mobile/attachments/20071109/e519533d/attachment.pgp
More information about the freebsd-mobile
mailing list