Subject: PCMCIA driver for the m8xx series!

From: Magnus Damm <[email-masked]>
Date: Tue, 15 Feb 2000 15:36:37 +0100

Hello all,

I've written a PCMCIA socket driver for the m8xx family.
The driver is written to support one or two sockets, but when
compiled for two sockets the resources are limited.
See modules/m8xx_pcmcia.c for more info.

You also need to modify your kernel and I don't have a patch
for it. I will tell you more below.

I hope you find it useful, feedback is welcome!

Cheers /

Magnus

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

The driver needs the pcmcia-cs package written by David Hinds.

More information about the pcmcia-cs package can be found at:

http://pcmcia.sourceforge.org/

This patch should be applied to pcmcia-cs-3.1.10:

ftp://sourceforge.org/pcmcia/pcmcia-cs-3.1.10.tar.gz

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

The following hardware is supported:

Board      Cpu      Slot    Status

RPX CLLF   860DT    B       OK
RPX LITE   823      B       OK
RPX LITE   850      B       OK
ADS        860      A       OK
ADS        821      A       untested
FADS860T   860T     A       OK
FADSxxx    ?        A or B  untested

Some boards with the BMT (Bus monitor timer) enabled might
get in trouble with PCMCIA cards that are too slow.
The solution is to disable the BMT in SYPCR.

Please double-check with your manual that my board-specific
code that controls the power to the PCMCIA cards is correct.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Supported and tested PCMCIA cards:

ATA-Flash:     CompactFlash cards from SanDisk, Mitsubishi and Viking.
[ide_cs.o]     PCMCIA card from Feiya.

Modems:        V.34 CreditCard modem from Ericsson.
[serial_cs.o]  The modem part of a Xircom RealPort REM56G-100 works
               only on boards with BMT disabled.

Ethernet:      Xircom CE2-10.
[xirc2ps_cs.o] Xircom RealPort REM56G-100 works without BMT.

Non-supported and tested PCMCIA cards:

Ethernet:      3Com Megahertz 3CCFEM556B Ethernet/Modem.
[3c574_cs.o]   I tried but I only get 0xff from it..

Non-tested PCMCIA cards:

The rest:      Please tell me if you have any success!

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Kernel modification:
This is not included in the patch!

1. First of all you need to ioremap 64KByte at _IO_BASE.
   This is for the emulated ISA-bus.
   VIRT must be PHYS and I don't know how to do that
   from a module.

2. All bus operations that are 16 bit or more should be
   big endian - no swapping. This is the same as APUS in io.h.
   We need to figure out how this should co-exist with
   the swapped ISA.

3. My driver needs a bd_t * called mpc8xx_bdinfo to figure.
   out the busfrequency.
   A standard with the frequencyvalues in HZ would be good.

4. Kernel drivers that are used by pcmcia-cs.
   I havn't had any success with module-based ide code.
   But when I compile-in the ide code I need to pass
   "ide0=noprobe ide1=noprobe ide2=noprobe ide3=noprobe"
   to be able to boot. You also might have to play a bit
   with the ide code in m8xx_setup.c
   I've added an option to serial.c to avoid
   probing when the module is inserted.

5. The pcmcia code ioremaps/iounmaps quite much.
   It would be nice with a working iounmap!

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -