Subject: PCMCIA and 1.1: Issues, questions, and direction
To: None <port-i386@NetBSD.ORG>
From: Roy Sutton <rsutton@zabriskie.EECS.Berkeley.EDU>
List: port-i386
Date: 12/15/1995 00:06:27
In attempt to incorporate PCMCIA support for my Compaq
Contura 410C, I've applied the patches for PCMCIA support,
originally done by Stefan Grefen, and modified for 1.1
by John Kohl found at ftp://sipb.mit.edu/pub/netbsd/ .
I wish to support my Megahertz XJ2144 and 3COM 3C589B.
The patches install and compile with no problem. I've
used the TUAREG kernel config file with the addition
of all PCMCIA debugging options (PCIC_DEBUG,CFG_DEBUG,
PCMCIA_ISA_DEBUG,PCMCIA_DEBUG).
At this point, I've identified four problems, one of
which I've managed to fixed. As for the other three, which
seem to be likely related, I haven't figured out what
to do; They might be related to the pcmcia support model
and/or incorrect assumptions??? (not sure).
1) Compaq Contura 400 series Laptops use two VL82C146
PCMCIA interface controllers, which reports 0x84
(or 0x85 for later revisions) as their ID. I've
incorporated definitions for ID type 0x84 and 0x85
into the driver, including the ID types, CHIP types,
and descriptions string. This seems to work.
2) pcic0 resides at 0x3E0h and pcic1 at 0x34h (slot1 on
both _IS_NOT_ used). I've added an entry in the kernel
config file for the pcic0 and pcic1, but it only attempts
to register pcic0.
3) Each 146 _does_ support two slots, but it seems that
Compaq has chosen to use only slot0 on each 146. The
pcmcia driver doesn't seem to figure out that there is
only one slot for each pcic and continuously reports:
> pcic0: slot 1 iocard status statchange cardchange
about one every 500-1000ms. I imagine this could be
fixed it the driver were aware that there was only
one slot in use on each pcic and did not attempt to
service interrupts on non-existent slots. Is there
a way to indicate in the config file that a pcic
only has has one slot attached?
4) Finally, when the driver attempts to read the card
information structure, it fails, reporting:
> failed to get cis info 19
The 146 is supposedly register compatible with the 365,
even though it has a few extended registers which are
not required. The 146 docs I have says it provides
a `superset' of the 365 register set.
Below, I've attached the results of a boot on the TUAREG
kernel. What I would like to accomplish via this email is:
1) Make those people who develop pcmcia code aware of
these issues. Is anyone taking to lead in developing
official PCMCIA support for NetBSD?
2) Share the experience with others who have similar
hardware configurations.
3) Solicit help and/or advice as to how I could modify
(or hack) the existing pcmcia support code to work
with my setup. Stefan?? John?? Others??
In addition, I would be willing to consolidate and provide
a web site for distributions of information related to pcmcia
support for 1.1. If I receive favorable response, I'll put
this in motion... I would appreciate a comment on this offer
from someone on the NetBSD development team. If the
development team plans/wished to do this themself, thats
fine also, but I rather make the offer than assume someone
else if going to do it. Chris???
Roy Sutton
rsutton@eecs.berkeley.edu
--------- start: section of /var/log/messages --------
Dec 17 02:35:02 joshua /netbsd: NetBSD 1.1 (TUAREG) #3: Sat Dec 16 21:05:05 PST 1995
Dec 17 02:35:03 joshua /netbsd: root@joshua.HIP.Berkeley.EDU:/usr/src/sys/arch/i386/compile/TUAREG
Dec 17 02:35:03 joshua /netbsd: CPU: i486DX (GenuineIntel 486-class CPU)
Dec 17 02:35:03 joshua /netbsd: real mem = 12189696
Dec 17 02:35:03 joshua /netbsd: avail mem = 10067968
Dec 17 02:35:03 joshua /netbsd: using 174 buffers containing 712704 bytes of memory
Dec 17 02:35:03 joshua /netbsd: isa0 (root)
Dec 17 02:35:03 joshua /netbsd: npx0 at isa0 port 0xf0-0xff: using exception 16
Dec 17 02:35:03 joshua /netbsd: vt0 at isa0 port 0x60-0x6f irq 1: wd90c00, 80 col, color, 8 scr, mf2-kbd, [R3.32]
Dec 17 02:35:03 joshua /netbsd: - pcmcia_register
Dec 17 02:35:03 joshua /netbsd: pcic0 at isa0 port 0x3e0-0x3e1: VL82146 (82365sl clone) Rev. 6 slots 0-1 (f86a7a34 f86a7ab0)
Dec 17 02:35:03 joshua /netbsd: - pcmciabusmatch
Dec 17 02:35:03 joshua /netbsd: PARENT isa0
Dec 17 02:35:03 joshua /netbsd: pcmcia0 at isa0 iomem 0xd4000-0xd4fff- pcmciabusattach
Dec 17 02:35:03 joshua /netbsd: PARENT isa0
Dec 17 02:35:03 joshua /netbsd:
Dec 17 02:35:03 joshua /netbsd: - pcmcia_probe_bus
Dec 17 02:35:03 joshua /netbsd: - pcmcia_probe_dev
Dec 17 02:35:03 joshua /netbsd: pcic0 slot 0:- pcmcia_read_cis
Dec 17 02:35:03 joshua /netbsd: pcic_map_mem f8231000 d4000 0 1000 110
Dec 17 02:35:04 joshua /netbsd: mapmem 2:3f2c 4000 0
Dec 17 02:35:04 joshua /netbsd: pcic_map_mem f8231000 d4000 0 1000 410
Dec 17 02:35:04 joshua /netbsd: f81f0bfc f81f0dfc
Dec 17 02:35:04 joshua /netbsd: failed to get cis info 19
Dec 17 02:35:04 joshua /netbsd: - pcmcia_probe_dev
Dec 17 02:35:04 joshua /netbsd: pcic0 slot 1:- pcmcia_read_cis
Dec 17 02:35:04 joshua /netbsd: pcic_map_mem f8231000 d4000 0 1000 110
Dec 17 02:35:04 joshua /netbsd: mapmem 2:3f2c 4000 0
Dec 17 02:35:04 joshua /netbsd: pcic_map_mem f8231000 d4000 0 1000 410
Dec 17 02:35:04 joshua /netbsd: f81f0bfc f81f0dfc
Dec 17 02:35:04 joshua /netbsd: failed to get cis info 19
Dec 17 02:35:04 joshua /netbsd: com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
Dec 17 02:35:04 joshua /netbsd: wdc0 at isa0 port 0x1f0-0x1f7 irq 14
Dec 17 02:35:04 joshua /netbsd: wd0 at wdc0 drive 0: 777MB, 1579 cyl, 16 head, 63 sec, 512 bytes/sec <TOSHIBA MK1926FCV>
Dec 17 02:35:05 joshua /netbsd: wd0: using 16-sector 16-bit pio transfers, lba addressing
Dec 17 02:35:05 joshua /netbsd: pms0 at isa0 port 0x60-0x67 irq 12
Dec 17 02:35:05 joshua /netbsd: fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
Dec 17 02:35:05 joshua /netbsd: fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
Dec 17 02:35:05 joshua /netbsd: pcic0: slot 1 iocard status statchange cardchange
Dec 17 02:35:05 joshua last message repeated 24 times
[** OTHER NON-RELEVANT STUFF DELETED **]
Dec 17 02:35:46 joshua syslogd: exiting on signal 15
--------- end: section of /var/log/messages --------