PCI Cardreader

Bernd Walter ticso at cicely12.cicely.de
Thu Nov 8 11:26:22 PST 2007


On Wed, Nov 07, 2007 at 10:13:10PM +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).

It can't work this way.
mmc is the bus support and mmcsd is the support for SD memory cards.
You still need a driver for the controller itself, such as the at91_mci
driver for AT91RM9200 controller, for which everything works fine.
This is similar to SCSI, where you need scbus and sd, but also a driver
for the bus controller, such as ahc, sym, etc...
That said - even if you have this driver for your controller this is
only for SD cards so far, not MMC cards, which are quite similar to SD
and of course not memory stick or any other of the large number of
flash card types.

-- 
B.Walter                http://www.bwct.de      http://www.fizon.de
bernd at bwct.de           info at bwct.de            support at fizon.de


More information about the freebsd-current mailing list