Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Oct 1997 14:27:55 -0600
From:      Kenneth Ingham <ingham@i-pi.com>
To:        mobile@freebsd.org
Subject:   2.2.5-RELEASE and PC Cards
Message-ID:  <19971023142754.64160@fatman.i-pi.com>

next in thread | raw e-mail | index | archive | help
Sigh.  I'm fairly sure that I have seen the answer to this go by
recently, but I can't find it searching the mailing list archives at
www.freebsd.org.

I just upgraded my laptop which used to run 2.2.2+PAO to 2.2.5-RELEASE.
The upgrade went OK except for the PCCArds no longer work.  I built a
new kernel with the ep, crd, and pcic drivers and booted it.

Relevant parts of the boot messages (from dmesg) are:

FreeBSD 2.2.5-RELEASE #0: Wed Oct 22 21:04:11 MDT 1997
    ingham@socrates.i-pi.com:/usr/src/sys/compile/SOCRATES
CPU: i486 DX4 (486-class CPU)
  Origin = "GenuineIntel"  Id = 0x480  Stepping=0
  Features=0x3<FPU,VME>
pccard driver sio added
sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 not found at 0x2f8
sio2 not found at 0x3e8
sio3 not found at 0x2e8
pccard driver ep added
ep0 not found at 0x300
apm0 on isa
apm: found APM BIOS version 1.1
PC-Card Vadem 468 (5 mem & 2 I/O windows)
pcic: controller irq 3
Card inserted, slot 1
Card inserted, slot 0

I've verified with pccardc dumpcis that the manufacturer and version
match.  This is not the PAO pccard.conf file that I was using (but
it didn't work either).  In fact, here's my pccard.conf file (I
removed everything except the info for the cards I am trying to
use (hmmm, the date in this is old, but I didn't see a newer one
in the upgrade files):

# Sample PCCARD configuration file
#
# Removing all IRQ conflicts from this file can't be done because of some
# IRQ-selfish PC-cards.  So if you want to use some of these cards in
# your machine, you will be forced to modify their IRQ parameters from
# the following list.
#
# IRQ == 0 means "allocate free IRQ from IRQ pool"
# IRQ == 16 means "do not use IRQ (e.g. PIO mode)"
#
# $Id: pccard.conf.sample,v 1.4 1996/06/19 01:28:07 nate Exp $

# Generally available IO ports
io	0x240-0x360
# Generally available IRQs (Built-in sound-card owners remove 5)
irq	3 5 10 11 13 15
# Available memory slots
memory	0xd4000  96k

# 3Com Etherlink III 3C589B, 3C589C
card "3Com Corporation" "3C589"
	config	0x1 "ep0" ?
	insert	echo 3Com Etherlink III inserted
	insert	/etc/pccard_ether ep0 -link0 link1
#	insert	/etc/pccard_ether ep0 link0 -link1
	remove	echo 3Com Etherlink III removed
	remove	/sbin/ifconfig ep0 delete

# US Robotics Sportster PCMCIA V.34
# US Robotics COURIER PCMCIA V.34
card "USRobotics" "PCMCIA 28800 Data/Fax"
	config  0x3 "sio2" 3
	insert  echo USRobotics PCMCIA Modem inserted
	remove  echo USRobotics PCMCIA Modem removed

And, I used the undocumented pccardc dumpcis on the cards and got the
following.

USR Sportster:

code Manufacturer ID ignored
Code 129 not found
Code 129 not found
code Unknown ignored
Configuration data for card in slot 0
Tuple #1, code = 0x1 (Common memory descriptor), length = 3
    000:  00 01 ff
	Common memory device information:
		Device number 1, type No device, WPS = OFF
		Speed = No speed, Memory block size = 2Kb, 1 units
Tuple #2, code = 0x15 (Version 1 info), length = 41
    000:  04 01 55 53 52 6f 62 6f 74 69 63 73 00 50 43 4d
    010:  43 49 41 20 32 38 38 30 30 20 44 61 74 61 2f 46
    020:  61 78 00 56 36 2e 31 00 ff
	Version = 4.1, Manuf = [USRobotics],card vers = [PCMCIA 28800 Data/Fax]
	Addit. info = [V6.1],[ÿ]
Tuple #3, code = 0x0 (Null tuple), length = 9
    000:  15 01 30 37 34 39 2d 00 ff
Tuple #4, code = 0x21 (Functional ID), length = 3
    000:  02 00 ff
	Serial port/modem
Tuple #5, code = 0x22 (Functional EXT), length = 4
    000:  00 02 0f 7c
	Serial interface extension:
		16550 UART, Parity - Space,Mark,Odd,Even,
Tuple #6, code = 0x22 (Functional EXT), length = 9
    000:  01 1f 09 00 08 00 00 06 00
	Modem interface capabilities:
Tuple #7, code = 0x22 (Functional EXT), length = 13
    000:  02 06 00 3f 0c 03 03 07 07 00 00 b5 20
	Data modem services available:
Tuple #8, code = 0x22 (Functional EXT), length = 8
    000:  13 06 00 0f 00 02 b5 20
Tuple #9, code = 0x22 (Functional EXT), length = 8
    000:  23 06 00 0f 00 02 b5 20
Tuple #10, code = 0x0 (Null tuple), length = 22
    000:  55 53 52 01 04 01 f0 01 08 02 01 00 03 04 30 33
    010:  31 37 04 01 14 ff
Tuple #11, code = 0x1a (Configuration map), length = 5
    000:  01 04 e6 01 07
	Reg len = 2, config register addr = 0x1e6, last config = 0x4
	Registers: XXX----- 
Tuple #12, code = 0x1b (Configuration entry), length = 22
    000:  c1 41 9a 37 55 4d 5d 36 46 21 8e 7d 55 aa 60 f8
    010:  03 07 30 b8 86 08
	Config index = 0x1(default)
	Interface byte = 0x41 (I/O)  +RDY/-BSY active
	Vcc pwr:
		Nominal operating supply voltage: 5 x 1V
		Minimum operating supply voltage: 4.5 x 1V
		Maximum operating supply voltage: 5.5 x 1V
		Max current average over 1 second: 3 x 100mA
		Max current average over 10 ms: 4 x 100mA
	Vpp pwr:
		Nominal operating supply voltage: 1.2 x 10V, ext = 0x7d
		Max current average over 10 ms: 5 x 10mA
	Card decodes 10 address lines, 8 Bit I/O only
		I/O address # 1: block start = 0x3f8 block length = 0x8
		IRQ modes: Level
		IRQs:  4 5 11 12 13 15
	Max twin cards = 0
	Misc attr: (Audio-BVD2)
Tuple #13, code = 0x1b (Configuration entry), length = 11
    000:  83 41 18 aa 60 f8 02 07 30 b8 86
	Config index = 0x3
	Interface byte = 0x41 (I/O)  +RDY/-BSY active
	Card decodes 10 address lines, 8 Bit I/O only
		I/O address # 1: block start = 0x2f8 block length = 0x8
		IRQ modes: Level
		IRQs:  4 5 11 12 13 15
Tuple #14, code = 0x1b (Configuration entry), length = 11
    000:  82 41 18 aa 60 e8 03 07 30 b8 86
	Config index = 0x2
	Interface byte = 0x41 (I/O)  +RDY/-BSY active
	Card decodes 10 address lines, 8 Bit I/O only
		I/O address # 1: block start = 0x3e8 block length = 0x8
		IRQ modes: Level
		IRQs:  4 5 11 12 13 15
Tuple #15, code = 0x1b (Configuration entry), length = 11
    000:  84 41 18 aa 60 e8 02 07 30 b8 86
	Config index = 0x4
	Interface byte = 0x41 (I/O)  +RDY/-BSY active
	Card decodes 10 address lines, 8 Bit I/O only
		I/O address # 1: block start = 0x2e8 block length = 0x8
		IRQ modes: Level
		IRQs:  4 5 11 12 13 15
Tuple #16, code = 0x14 (No link), length = 0
Tuple #17, code = 0xff (Terminator), length = 0
2 slots found

For the 3Com card (a 3c589c):

Configuration data for card in slot 0
Tuple #1, code = 0x1 (Common memory descriptor), length = 2
    000:  00 ff
	Common memory device information:
		Device number 1, type No device, WPS = OFF
		Speed = No speed, Memory block size = reserved, 32 units
Tuple #2, code = 0x17 (Attribute memory descriptor), length = 3
    000:  43 02 ff
	Attribute memory device information:
		Device number 1, type EEPROM, WPS = OFF
		Speed = 150nS, Memory block size = 8Kb, 1 units
Tuple #3, code = 0x20 (Manufacturer ID), length = 4
    000:  01 01 89 05
	PCMCIA ID = 0x101, OEM ID = 0x589
Tuple #4, code = 0x21 (Functional ID), length = 2
    000:  06 00
	Network/LAN adapter
Tuple #5, code = 0x15 (Version 1 info), length = 57
    000:  04 01 33 43 6f 6d 20 43 6f 72 70 6f 72 61 74 69
    010:  6f 6e 00 33 43 35 38 39 00 54 50 2f 42 4e 43 20
    020:  4c 41 4e 20 43 61 72 64 20 56 65 72 2e 20 32 61
    030:  00 30 30 30 30 30 32 00 ff
	Version = 4.1, Manuf = [3Com Corporation],card vers = [3C589]
	Addit. info = [TP/BNC LAN Card Ver. 2a],[000002]
Tuple #6, code = 0x1a (Configuration map), length = 6
    000:  02 03 00 00 01 03
	Reg len = 3, config register addr = 0x10000, last config = 0x3
	Registers: XX------ 
Tuple #7, code = 0x1b (Configuration entry), length = 15
    000:  c1 01 1d 71 55 35 55 54 e0 72 5d 64 30 ff ff
	Config index = 0x1(default)
	Interface byte = 0x1 (I/O)
	Vcc pwr:
		Nominal operating supply voltage: 5 x 1V
		Max current average over 1 second: 3 x 10mA
		Max current average over 10 ms: 5 x 10mA
		Power down supply current: 5 x 1mA
	Wait scale Speed = 7.0 x 100 ns
	RDY/BSY scale Speed = 7.0 x 100 ns
	Card decodes 18 address lines, full 8/16 Bit I/O
		IRQ modes: Level, Pulse
		IRQs:  IOCK 1 4 5 6 8 10 11 12 14
Tuple #8, code = 0x1b (Configuration entry), length = 7
    000:  03 01 71 55 26 26 54
	Config index = 0x3
	Vcc pwr:
		Nominal operating supply voltage: 5 x 1V
		Max current average over 1 second: 2 x 100mA
		Max current average over 10 ms: 2 x 100mA
		Power down supply current: 5 x 1mA
Tuple #9, code = 0x19 (JEDEC descr for attribute memory), length = 3
    000:  00 00 ff
Tuple #10, code = 0x14 (No link), length = 0
Tuple #11, code = 0x10 (Checksum), length = 5
    000:  89 ff 80 00 00
	Checksum from offset -119, length 128, value is 0x0
Tuple #12, code = 0xff (Terminator), length = 218
    000:  00 03 00 00 00 00 00 00 43 32 20 54 45 41 4d 2d
    010:  45 61 72 6c 20 41 6c 64 72 69 64 67 65 2c 20 52
    020:  65 78 20 41 6c 6c 65 72 73 2c 20 52 75 73 73 65
    030:  6c 6c 20 43 68 61 6e 67 2c 20 44 61 76 69 64 20
    040:  43 68 69 68 2c 20 48 65 72 6d 61 6e 20 4c 61 6f
    050:  2c 20 47 65 6e 65 20 4c 69 6e 2c 20 4c 69 61 6e
    060:  67 20 4c 69 6e 2c 20 48 69 65 6e 20 4e 67 75 79
    070:  65 6e 2c 20 4b 61 70 20 53 6f 68 2c 20 47 61 72
    080:  79 20 57 61 6e 67 00 ff ff ff ff ff ff ff ff ff
    090:  ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0a0:  ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0b0:  ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0c0:  ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0d0:  ff ff ff ff ff ff ff ff ff ff
2 slots found

The link light lights on the 3com card.  When I insert it (or the modem),
the following appear in the log:

Oct 23 13:18:00 socrates cardd[264]: driver allocation failed for 3Com Corporation
Oct 23 13:18:09 socrates su: ingham to root on /dev/ttyp3
Oct 23 14:06:37 socrates /kernel: Card removed, slot 0
Oct 23 14:06:45 socrates /kernel: Card inserted, slot 0
Oct 23 14:06:51 socrates /kernel: Card removed, slot 0
Oct 23 14:06:56 socrates cardd[264]: ioctl (PIOCSIO): Device not configured
Oct 23 14:06:58 socrates /kernel: Card inserted, slot 1
Oct 23 14:06:58 socrates /kernel: Card inserted, slot 0
Oct 23 14:07:08 socrates cardd[264]: driver allocation failed for USRobotics
Oct 23 14:07:18 socrates cardd[264]: driver allocation failed for 3Com Corporation

(The dreaded ``driver allocation failed'' message! :-)

One thing that might be useful in troubleshooting is to know what
device is not configured in the message above...

Thanks for putting up with what is probably a duplicate question to one
asked recently.

-- 
Kenneth Ingham
ingham@i-pi.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19971023142754.64160>