From owner-freebsd-hackers Mon Jul 28 20:56:53 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id UAA04607 for hackers-outgoing; Mon, 28 Jul 1997 20:56:53 -0700 (PDT) Received: from genesis.atrad.adelaide.edu.au (genesis.atrad.adelaide.edu.au [129.127.96.120]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id UAA04575 for ; Mon, 28 Jul 1997 20:56:27 -0700 (PDT) Received: (from msmith@localhost) by genesis.atrad.adelaide.edu.au (8.8.5/8.7.3) id NAA10082; Tue, 29 Jul 1997 13:26:13 +0930 (CST) From: Michael Smith Message-Id: <199707290356.NAA10082@genesis.atrad.adelaide.edu.au> Subject: Re: Sharing interrupts In-Reply-To: from FreeBSD Development at "Jul 28, 97 09:23:24 pm" To: freebsd@atipa.com (FreeBSD Development) Date: Tue, 29 Jul 1997 13:26:13 +0930 (CST) Cc: mouth@ibm.net, hackers@FreeBSD.ORG, terry@lambert.org X-Mailer: ELM [version 2.4ME+ PL28 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk FreeBSD Development stands accused of saying: > > On Mon, 28 Jul 1997 10:38:32 -0700 (MST), Terry Lambert wrote: > > > > > You can not share interrupts with ISA cards. Period. > > > You can share interrupts, but not use both SIMULTANEOUSLY. A very good > example would be to have LPT1: and a sound card on IRQ7 (both ISA). As > long as they have unique base addresses (0x378h and 0x220 for instance), > both devices can coexist. You just can't use them at the same time > without conflicting. Sharing IRQs is definitely not recommend, but I believe > your statement may require a bit more qualifying. More specifically, you can only allow _one_ device to drive an ISA IRQ line at any given time. 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". You can _only_ "share" interrupt lines by disabling drive of the line on one device before enabling it on another, or by using nonstandard ISA bus drivers (normally found only on cards specifically designed for this, eg. the AST 4-port serial adapter). See the comments and procedure in sioprobe() in i286/isa/sio.c and cross-reference the 8250 datasheet for an understanding of the quirks and complexities involved in getting this right. It is _not_ trivial. Far simpler to stick to "YOU CANNOT SHARE ISA INTERRUPTS BETWEEN CARDS". > Kevin -- ]] Mike Smith, Software Engineer msmith@gsoft.com.au [[ ]] Genesis Software genesis@gsoft.com.au [[ ]] High-speed data acquisition and (GSM mobile) 0411-222-496 [[ ]] realtime instrument control. (ph) +61-8-8267-3493 [[ ]] Unix hardware collector. "Where are your PEZ?" The Tick [[