sdricoh_cs - pcmcia driver for Ricoh Bay1Controllers

sdricoh_cs is a driver for the Secure Digital and MMC Card Readers that 
can be found in some notebooks like the Samsung P35.


About the hardware:
The real chip name is probably R5C593. The device seems to be combined with a
Cardbus bridge and a Firewire Controller. The MMC Cardreader emulates a RL5c476 
cardbus bridge.

lspci -v output from the Samsung P35:


02:01.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev ac)
        Subsystem: Samsung Electronics Co Ltd P35 notebook
        Flags: bus master, medium devsel, latency 168, IRQ 5
        Memory at d0202000 (32-bit, non-prefetchable) [size=4K]
        Bus: primary=02, secondary=03, subordinate=03, sec-latency=176
        Memory window 0: 30000000-31fff000 (prefetchable)
        Memory window 1: 36000000-37fff000
        I/O window 0: 00004400-000044ff
        I/O window 1: 00004800-000048ff
        16-bit legacy interface ports at 0001

02:01.1 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev ac)
        Subsystem: Samsung Electronics Co Ltd P35 notebook
        Flags: bus master, medium devsel, latency 168, IRQ 11
        Memory at d0203000 (32-bit, non-prefetchable) [size=4K]
        Bus: primary=02, secondary=04, subordinate=07, sec-latency=176
        Memory window 0: 32000000-33fff000 (prefetchable)
        Memory window 1: 38000000-39fff000
        I/O window 0: 00004c00-00004cff
        I/O window 1: 00001400-000014ff
        16-bit legacy interface ports at 0001

02:01.2 FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller (rev 04) (prog-if 10 [OHCI])
        Subsystem: Samsung Electronics Co Ltd P35 notebook
        Flags: bus master, medium devsel, latency 64, IRQ 11
        Memory at d0201000 (32-bit, non-prefetchable) [size=2K]
        Capabilities: [dc] Power Management version 2


Driver limitations:
This driver is still considered EXPERIMENTAL. Only Secure Digital Cards have been tested.
Although reading seems to work ok it is quite slow (about 250 kByte/sec)

Writing is even slower and has to be enabled with the write=1 module parameter.
Some debug output can be gathered with the debug=1 module parameter.

Memory sticks are not supported at the moment.
MMC Cards and also MMC Plus cards do not seem to work. MMC Plus cards don't even work on windows.

Some Notebooks (JVC MP-XV941, Dell X300) seem to have the cards lock status the other way round so that
it is not possible to write to unlocked cards. Modprobe the driver with the switchlocked=1 parameter in this
case.

Make sure to backup your data before you use this driver. As no specification has
been released by Ricoh I'm not sure if this driver is programming the hardware
correctly or checking for the right error conditions.
It might therefore be possible that the driver damages your hardware or destroys the 
data on the mmc card.

You have been warned.

Compilation:
Make sure you have the following openSUSE 10.2 packages or similar packages for your distribution
installed:

kernel-default >= 2.6.18
gcc
make
kernel-source
kernel-syms

To compile the module simply type "make".
Afterwards use "make install" to install the module.

Thanks to all the beta testers!
Also many thanks to Hanno Böck for donating me a Sony Memory Stick.


16.06.2007 Sascha Sommer <saschasommer@freenet.de>
 


