Skip site navigation (1)Skip section navigation (2)
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>