To follow up on my own post, I grabbed pcmcia-cs 3.1.5, and compiled it against the 2.2.13 kernel with the following options:
fulcrum:/usr/src/pcmcia-cs$ cat config.out # # Automatically generated by 'make config' -- don't edit! # LINUX="/usr/src/linux" PREFIX="" MODDIR="/lib/modules/2.2.13" KFLAGS="" UFLAGS="" PCDEBUG="" USE_APM=y # UNSAFE_TOOLS is not defined CONFIG_CARDBUS=y # CONFIG_PNP_BIOS is not defined CONF_SRC=1
# Options from current kernel CHECK="/proc/version" CKSUM="3198913898 116" # CONFIG_PCMCIA is not defined # CONFIG_SMP is not defined CONFIG_PCI=y CONFIG_PCI_QUIRKS=y CONFIG_APM=y # CONFIG_SCSI is not defined CONFIG_INET=y # CONFIG_NET_RADIO is not defined # CONFIG_TR is not defined # CONFIG_NET_FASTROUTE is not defined CONFIG_MODVERSIONS=y CONFIG_PROC_FS=y MEMMAX=1GB CONFIG_1GB=y # CONFIG_2GB is not defined # CONFIG_3GB is not defined CONFIG_ISA=y
UTS_RELEASE="2.2.13" UTS_VERSION="#2 Wed Dec 8 00:47:40 CST 1999" LINUX_VERSION_CODE=131597
NEW_QLOGIC=y HAS_PROC_BUS=y RC_DIR=/etc SYSV_INIT=y INSTALL_DEPMOD=y HAS_FORMS=y
After making, the ethernet port worked fine. I think that the key setting is to disable CONFIG_PNP_BIOS during pcmcia-cs's make config.
The modem still does not work upon insertion and/or powerup, but I've worked around this problem by setting the serial_cs driver briefly to polled mode (setserial /dev/modem irq 0) then back to its assigned interrupt. I had to slightly hack /etc/pcmcia/serial to automate this.
The card itself does not revive properly from a suspend, but apmd can be used to electronically eject the card immediately before suspend. The card is automatically reconized when returning from suspend mode. Good enough for me.