PCMCIA support for S3C2410

Ed Daelli edaelli at invocon.com
Mon Oct 30 13:25:22 EST 2006


> Hello all,
>
> I am working in porting pcmcia support for the s3c2410
> processor under 2.6.15. I am working on a SMDK2410 dev kit.
> I have pasted a log with some sys info about my system.
> I am using a PD6710 controller and modified the i82365.c
> driver to work with my specific hardware.
> I can recognize card insertions and removal, am able to map
> memory and io and get CIS information from the cards.
> My problem is when I insmod the drivers for the specific
> cards, I get some messages that the socket was attached to
> the driver with the correct IRQ and port, but I cannot use
> the device.
> I am using 2 different types of cards:
> 1. Serial. The serial_cs driver attaches to the socket and
> uses /dev/ttyS0, but I cannot communicate with the modem, 2.
> Ethernet. The 3c589_cs driver attaches to the socket and uses
> eth1, but I cant talk to the device.
> Hare is some info:
>
> Intel ISA PCIC probe:
>   Cirrus PD6710 ISA-to-PCMCIA at port 0xe20003e0 ofs 0x00, 1 socket
>     host opts [0]: [ring] [dyn mode] [freq bypass] [5/20/5] [5/44/5]
>   statuts change on irq 19
> SetIOMap(0, 0, 0x00, 0 ns, 0x0-0x1)
> SetIOMap(0, 1, 0x00, 0 ns, 0x0-0x1)
> SetMemMap(0, 0, 0x00, 0 ns, 0x0-0x1000, 0x0) SetMemMap(0, 1,
> 0x00, 0 ns, 0x0-0x1000, 0x0) SetMemMap(0, 2, 0x00, 0 ns,
> 0x0-0x1000, 0x0) SetMemMap(0, 3, 0x00, 0 ns, 0x0-0x1000, 0x0)
> SetMemMap(0, 4, 0x00, 0 ns, 0x0-0x1000, 0x0)
>
> ~ # pcmcia-socket-startup
> SetMemMap(0, 0, 0x21, 300 ns, 0x0-0x1000, 0x0) SetMemMap(0,
> 0, 0x21, 300 ns, 0x0-0x1000, 0x0) SetMemMap(0, 0, 0x21, 300
> ns, 0x0-0x1000, 0x0) SetMemMap(0, 0, 0x21, 300 ns,
> 0x0-0x1000, 0x0) SetMemMap(0, 0, 0x21, 300 ns, 0x0-0x1000,
> 0x0) SetMemMap(0, 0, 0x21, 300 ns, 0x0-0x1000, 0x0)
> SetMemMap(0, 0, 0x21, 300 ns, 0x0-0x1000, 0x0) SetMemMap(0,
> 0, 0x21, 300 ns, 0x0-0x1000, 0x0) SetMemMap(0, 0, 0x21, 300
> ns, 0x0-0x1000, 0x0) SetMemMap(0, 0, 0x21, 300 ns,
> 0x0-0x1000, 0x0) SetMemMap(0, 0, 0x21, 300 ns, 0x0-0x1000,
> 0x0) SetMemMap(0, 0, 0x21, 300 ns, 0x0-0x1000, 0x0)
> SetMemMap(0, 0, 0x21, 300 ns, 0x0-0x1000, 0x0)
> pcmcia: registering new device pcmcia0.0 SetMemMap(0, 0,
> 0x21, 300 ns, 0x0-0x1000, 0x0) SetMemMap(0, 0, 0x21, 300 ns,
> 0x0-0x1000, 0x0)
>
> ~ # pccardctl info
> PRODID_1="3Com Corporation"
> PRODID_2="3C589D"
> PRODID_3="TP/BNC LAN Card Ver. 2a"
> PRODID_4="000002"
> MANFID=0101,0589
> FUNCID=6
>
> ~ # insmod 3c589_cs.ko
> SetMemMap(0, 0, 0x21, 300 ns, 0x0-0x1000, 0x0) SetMemMap(0,
> 0, 0x21, 300 ns, 0x0-0x1000, 0x10000) SetMemMap(0, 0, 0x21,
> 300 ns, 0x0-0x1000, 0x10000) SetIOMap(0, 0, 0x03, 0 ns, 0x300-0x30f)
> eth1: 3Com 3c589, io 0xe2000300, irq 52, hw_addr 00:60:97:CC:AA:C8
>   8K FIFO split 5:3 Rx:Tx, auto xcvr
>
> ~ # ifconfig eth1
> eth1      Link encap:Ethernet  HWaddr 00:60:97:CC:AA:C8
>           inet addr:192.168.34.83  Bcast:192.168.34.255
> Mask:255.255.255.0
>           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:1000
>           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
>           Interrupt:52 Base address:0x300
>
> ~ # eth1: flipped to 10baseT
> eth1: interrupt(s) dropped!
>
> Swapping cards...
>
> ~ # pccardctl info
> PRODID_1="Motorola"
> PRODID_2="DELL 33.6 DATA/14.4 FAX MODEM"
> PRODID_3="V3.0"
> PRODID_4=""
> MANFID=0109,0505
> FUNCID=2
>
> ~ # insmod serial_cs.ko
> SetMemMap(0, 0, 0x01, 300 ns, 0x0-0x1000, 0x0) SetMemMap(0,
> 0, 0x21, 300 ns, 0x0-0x1000, 0x0) SetMemMap(0, 0, 0x01, 300
> ns, 0x0-0x1000, 0x0) SetMemMap(0, 0, 0x21, 300 ns,
> 0x0-0x1000, 0x0) SetMemMap(0, 0, 0x21, 300 ns, 0x0-0x1000,
> 0x0) SetMemMap(0, 0, 0x21, 300 ns, 0x0-0x1000, 0x0)
> SetIOMap(0, 0, 0x01, 0 ns, 0x3f8-0x3ff)
> 0.0: ttyS0 at I/O 0xe20003f8 (irq = 52) is a 16550A
>
> ~ # cat /proc/interrupts
>            CPU0
>  19:          9   i82365
>  25:          0   s3c2410-wdt
>  30:      42375   S3C2410 Timer Tick
>  53:        102   eth0
>  70:        213   s3c2410-uart
>  71:        642   s3c2410-uart
> Err:          0
>
> # cat /proc/ioports
> e20003e0-e20003e1 : i82365
> e20003f8-e20003ff : serial
>
> Thank you in advance for you time and help!
> Ed
> edaelli at invocon.com
>

Got it!
If anybody is interested, my problem was in the i82365 driver. I wasn't
setting the I365_INTCTL register correctly!
Anyway, the pcmcia cards mentioned before work now!
Thank you!

Ed Daelli
edaelli at invocon.com






More information about the linux-pcmcia mailing list