dis·tal adj. located far from a point of reference
zo·u n. elephant

tod mcquillin, devin at sevenlayer dot studio

A Tale of Two Servers, or what's wrong with my machine?

A Tale of Two Servers, or what's wrong with my machine?

I recently set up a new server to replace my old server. The old server, glass, was a DEC Celebris 6200, a Pentium Pro 200MHz machine. The new server, borosilicate, is a Compaq Professional Workstation 5100, a dual CPU Pentium II 300MHz machine. Both machines are running FreeBSD 4-stable.

Everything is working fine on the new machine with the exception of the wireless network interface, a Lucent Orinico Gold pcmcia card in the Lucent ISA pcmcia adapter.

At boot time, the ISA card is probed:

pcic0: <Vadem 469> at port 0x3e2 iomem 0xd4000 irq 9 on isa0
pcic0: management irq 9
pccard0: <PC Card 16-bit bus (classic)> on pcic0
pccard1: <PC Card 16-bit bus (classic)> on pcic0
but when pccardd sees the card, it can't set up the driver properly:
wi0 at port 0x240-0x27f irq 10 slot 0 on pccard0
wi0: wi_cmd: busy bit won't clear.
wi0: wi_cmd: busy bit won't clear.
wi0: init failed
wi0: wi_cmd: busy bit won't clear.
wi0: wi_cmd: busy bit won't clear.
wi0: mac read failed 5
device_probe_and_attach: wi0 attach returned 5

On glass, the server that works, it is probed like this:

pcic0: <Vadem 469> at port 0x3e0 iomem 0xd0000 irq 11 on isa0
pcic0: management irq 11
pccard0: <PC Card 16-bit bus (classic)> on pcic0
pccard1: <PC Card 16-bit bus (classic)> on pcic0
wi0 at port 0x240-0x27f irq 15 slot 0 on pccard0
wi0: 802.11 address: 00:02:2d:2b:ab:06
wi0: using Lucent Technologies, WaveLAN/IEEE
wi0: Lucent Firmware: Station 8.10.01

Since the hardware works in another machine with exactly the same software, the problem must have something to do with how the two machines are different. The new server is dual CPU (though it fails the same way with a non-SMP kernel), has two pci buses and an isa bus. I gather there is some magic going on with the APIC to get the interrupts routed properly. The new server is faster (300MHz vs. 200MHz) and has more memory (512MB vs. 384MB).

Here are the relevant configuration details for the new server (borosilicate):

I have been reading the list archives and changing various settings for the past week, with no success so far. Here are some of the things I have tried:

  • Changed the definition of pcic0 in my kernel config file. I tried both port 0x3e0 iomem 0xd0000 and port 0x3e2 iomem 0xd4000 (this requires changing a jumper on the ISA card). I also tried irq's 9 and 10 as well as polling mode.
  • Changed settings in /etc/defaults/pccardd.conf. I tried irq's 9, 10 and 12.
  • Added hw.pcic.intr_path="1" and hw.pcic.init_routing="1" to /boot/loader.conf in varying combinations.
  • Tried both with and without options PNPBIOS in the kernel config.
  • Tried a non-SMP kernel.

Any suggestions would be most appreciated!

--
Tod McQuillin <devin@spamcop.net>