Date: Tue, 29 Jul 1997 16:53:40 GMT From: mouth@ibm.net (John Kelly) To: Michael Smith <msmith@atrad.adelaide.edu.au> Cc: freebsd@atipa.com (FreeBSD Development), hackers@FreeBSD.ORG, terry@lambert.org Subject: Re: Sharing interrupts Message-ID: <33df1cb8.2144876@smtp-gw01.ny.us.ibm.net> In-Reply-To: <199707290356.NAA10082@genesis.atrad.adelaide.edu.au> References: <199707290356.NAA10082@genesis.atrad.adelaide.edu.au>
next in thread | previous in thread | raw e-mail | index | archive | help
>More specifically, you can only allow _one_ device to drive an ISA >IRQ line at any given time. Not strictly true, see below. >ISA bus drivers use totem-pole outputs, so a device which has control >of an interrupt line but not asserting an interrupt still counts as >"driving" A standard totem-pole output is either driving the line to ground (logic low) or 3.5-4.5 volts (logic high). But if the device has a tri-state driver, that third state is "floating," and it can be on the line at the same time in the floating state without interfering with another device. But in any event, that's not what I'm talking about. I'm talking about sharing an edge-triggered, ISA interrupt among two or more serial cards (with single or multiple UARTS per card). >See the comments and procedure in sioprobe() in i286/isa/sio.c and I have, and that documentation does not tell the electrical story. >cross-reference the 8250 datasheet for an understanding of the quirks >and complexities involved in getting this right. It is _not_ trivial. I have. It's not hard at all. In the 8259 datasheet, what many people overlook are its electrical characteristics. As I said in another post, with a little knowledge of electricity, a few $0.50 parts, and a soldering iron, you can share a single, edge-triggered, ISA interrupt among two or more serial cards. I'll post the gory details if anyone wants to know. John
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?33df1cb8.2144876>