Date: Thu, 10 Sep 1998 11:59:13 -0400 (EDT) From: Beric Farmer <bfarmer@xe.net> To: freebsd-questions@FreeBSD.ORG Subject: Strange multiple NIC / IRQ problem Message-ID: <Pine.SOL.3.91.980910102606.20003B-100000@xenon.xe.com>
next in thread | raw e-mail | index | archive | help
Hello all. Here's a summary of my situation (detailed account follows): - 486DX/33 FreeBSD 2.2.2 - Added a third 3Com 3C509B - Gave it (eventually) IRQ 12, 0x210. Other two NICs use IRQ 5, 0x310 and IRQ 10, 0x300. - It works with the kernel configured to disable sio1 and look for ep2 on IRQ 3 (see below for how I came to try this) - It doesn't work ("very long ping time" problem) with the kernel configured with sio1 enabled and looking for ep2 on IRQ 12. Any ideas? Now, here's the detailed account: I've just installed a third 3Com 3C509B NIC into our 486DX/33 box running FreeBSD 2.2.2. In configuring the IRQ and address of the card, the 3Com EtherDisk configuration program claimed that all of the apparently available IRQs (9, 11, 12, 15) were being used by other devices (which I thought was strange, especially since I had just physically removed a Mitsumi CDROM controller card which had been using IRQ 11). So, I decided to disable sio1 (COM2) and give the NIC its IRQ (IRQ 3). I made all the necessary changes to rc.conf and recompiled the kernel to add support for ep2 (and removed support for sio1). After rebooting, everything came up fine, ep2 was detected and all the routing info was correct. However, I ran into the "very long ping time" problem, which I managed to identify and diagnose thanks to the FreeBSD mailing list archives. Having discovered that the problem was most likely an IRQ conflict, I realized that while I had removed support for sio1, I hadn't actually disabled the second serial port on the Multi-IO card. Unfortunately, I don't have the manual for the Multi-IO card, and didn't want to go through a trial-and-error approach to figuring out how to set the jumpers to disable it. Also, it bothered me that EtherDisk was telling me that I couldn't use IRQs I was fairly certain were available. So, I decided to leave the second serial port enabled and reconfigure the new 3C509B to use IRQ 12, despite the config program's complaints. I rebooted the system (which was still running the kernel with no sio1 and looking for ep2 on IRQ 3) and everything worked great! I figured that FreeBSD must have been smart enough to tell that the card was actually on IRQ 12. So, I figured I'd recompile the kernel to actually reflect this working configuration (re-enabling sio1 and configuring ep2 to indicate that it was using IRQ 12). I did the recompile and installed the new kernel only to find that the "very long ping time" problem was back. I booted up again off the previous kernel and the problem was gone. So, I now have the situation where my NIC actually uses IRQ 12, it works if I boot with a kernel which says it uses IRQ 3, but doesn't work if I boot with a kernel which says it uses IRQ 12. Can anyone help to diminish my confusion? Also, is there a way to add, remove, or reconfigure devices without having to recompile the kernel? Even just for testing purposes until a working configuration is sorted out? Thanks very much for taking the time to read this, and for any responses. Beric Farmer ------------------------------------------------------------------------ E-mail: bfarmer@xe.net \\/ Xenon Laboratories Incorporated Voice: +1 416 214-5606 x24 /\\ Suite 1109 330 Bay Street Toronto Fax: +1 416 214-5607 Ontario M5H 2S8 CANADA To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SOL.3.91.980910102606.20003B-100000>