FreeBSD : Compaq presario v3000 Ricoh card reader


In my previous post on FreeBSD : Compaq Presario V3010AU, the Ricoh SD/MMC card reader attached to my laptop was not functioning on FreeBSD 6.2R. Following the post by Hajimu UMEMOTO on freebsd-mobile mailing list, I’ve tested his driver and able to write on Kingston SD card.

Update :
New driver at http://www.agt.ne.jp/~a-gota/programs/driver/FBSD6.2R/memcard/sdmmc-20070627.tar.gz

Writing speed

coeus# mount_msdosfs /dev/sd0s1 /mnt/card
coeus# cd /mnt/card
coeus# dd if=/dev/zero of=test.img bs=1k count=10k
10240+0 records in
10240+0 records out
10485760 bytes transferred in 10.765308 secs (974033 bytes/sec)

Here are some of the dmesg and pciconf details:

dmesg

sdshc0: <Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter> mem 0xc3100800-0xc31008ff irq 22 at device 9.1 on pci5
sdshcbus0: <SD Standard Host Controller slot bus> on sdshc0
sdshcbus0: capability: 3.3V Suspend/Resume
sdshcbus0: card inserted in slot #0
sd0: <Toshiba TM SD256 rev 0.7> on sdshcbus0
sd0: Ver 1.x SD memory card
sd0: 243MB (498176 x 512-byte blocks)
sd0: access time: read 200.0us, write 6.4ms
sd0: speed class 0
sd0: max clock 25MHz, drive at 16.500MHz
sd0: 8.250MB/s transfers with 4-bit bus width

pciconf -lv

sdshc0@pci5:9:1:        class=0x080500 card=0x30b5103c chip=0x08221180 rev=0x19 hdr=0x00
    vendor     = 'Ricoh Co Ltd'
    device     = 'SD Bus Host Adapter'
    class      = base peripheral
none11@pci5:9:2:        class=0x088000 card=0x30b5103c chip=0x08431180 rev=0x01 hdr=0x00
    vendor     = 'Ricoh Co Ltd'
    class      = base peripheral
none12@pci5:9:3:        class=0x088000 card=0x30b5103c chip=0x05921180 rev=0x0a hdr=0x00
    vendor     = 'Ricoh Co Ltd'
    device     = 'Memory Stick Bus Host Adapter'
    class      = base peripheral
none13@pci5:9:4:        class=0x088000 card=0x30b5103c chip=0x08521180 rev=0x05 hdr=0x00
    vendor     = 'Ricoh Co Ltd'
    class      = base peripheral

4 Comments to “FreeBSD : Compaq presario v3000 Ricoh card reader”

  1. kaeru Says:

    Many thanks for digging this up. It works great for me on my x40’s reader.

  2. Kevin Foo (chfl4gs_) Says:

    No worries. But I think big “Thank you” should go to Hajimu UMEMOTO for writing the driver.

  3. Antonio Hilario Says:

    Thanks very much for posting this - I now have working the Ricoh SD/MMC cardreader in my ECS 223 notebook.

    The sdmmc driver exposes three sysctls:

    hw.sdshc.wait_after_insertion: 5000
    hw.sdshc.polling_interval: 10
    hw.sdshc.timeout_interval: 100

    I had to adjust the wait_after_insertion delay to 5000 (~ 5 secs) to get an old 32MB Sandisk card to work, and put

    hw.sdshc.wait_after_insertion=5000

    into my /etc/sysctl.conf to ensure the setting is carried over between boots.

  4. Kevin Foo (chfl4gs_) Says:

    1 sec (1000) delay is good enough for my 256MB Toshiba/Kingston card. Thanks for sharing the info anyway. :)

Leave a Reply