From owner-freebsd-alpha Wed May 1 14:26:27 2002 Delivered-To: freebsd-alpha@freebsd.org Received: from alcanet.com.au (mail2.alcanet.com.au [203.62.196.17]) by hub.freebsd.org (Postfix) with ESMTP id 2915437B41A for ; Wed, 1 May 2002 14:26:21 -0700 (PDT) Received: from mfg1.cim.alcatel.com.au (localhost.localdomain [127.0.0.1]) by alcanet.com.au (8.12.1/8.12.1/Alcanet1.2) with ESMTP id g41LQ78t031080; Thu, 2 May 2002 07:26:09 +1000 Received: from gsmx07.alcatel.com.au by cim.alcatel.com.au (PMDF V5.2-32 #37645) with ESMTP id <01KH8SR5850W9S7PE7@cim.alcatel.com.au>; Thu, 2 May 2002 07:25:54 +1100 Received: (from jeremyp@localhost) by gsmx07.alcatel.com.au (8.11.6/8.11.6) id g41LQ4H52573; Thu, 02 May 2002 07:26:04 +1000 Content-return: prohibited Date: Thu, 02 May 2002 07:26:03 +1000 From: Peter Jeremy Subject: Re: AlphaServer 400 interrupt problems In-reply-to: <20020501084436.GH60196@cicely5.cicely.de>; from ticso@cicely5.cicely.de on Wed, May 01, 2002 at 10:44:36AM +0200 To: Bernd Walter Cc: freebsd-alpha@FreeBSD.ORG Mail-Followup-To: Bernd Walter , freebsd-alpha@FreeBSD.ORG Message-id: <20020502072602.U25071@gsmx07.alcatel.com.au> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-disposition: inline User-Agent: Mutt/1.2.5i References: <20020501114313.R25071@gsmx07.alcatel.com.au> <20020501084436.GH60196@cicely5.cicely.de> Sender: owner-freebsd-alpha@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org On 2002-May-01 10:44:36 +0200, Bernd Walter wrote: >On Wed, May 01, 2002 at 11:43:13AM +1000, Peter Jeremy wrote: >> A secondary problem is that all interrupts are treated as non-sharable >> ISA interrupts. I don't believe this is valid. Whilst the AS400 >> interrupt routing uses the standard 8259 pair and interrupts from >> ISA cards can't be shared, I don't see why the kernel doesn't permit >> PCI interrupts to be shared. The AS400 technical documentation >> definitely indicates that interrupts can be shared. > >Interesting. To clarify this, the following is from "Digital AlphaStation 200/400 Series, Technical Information", Part Number: EK-PCDSA-TI. A01 p6-3: "IRQ2: Device Interrupts" [The IRQ output from the master 8259 is routed to CPU IRQ2]. "When a device interrupt has been detected on CPU line IRQ2, the PALcode interrupt dispatcher must generate a PCI INTACK cycle. The PCI-ISA bridge chip sees this cycle and converts it into two cycles that freeze and then read the normal ISA-style interrupt priority encoders within the bridge chip. The bridge chip then returns a vector on data bits <7:0>. This INTACK cycle does not remove the source of the interrupt; specific code that accesses the device that interrupted must do this. The bridge chip releases its interrupt when the interrupt dispatcher issues an EOI command. This is a cooperative activity performed by some combination of PALcode and the particular operating system." p6-4: "Interrupt Inputs" ... "Because many of the interrupt requests that originate from an ISA slot can be connected to the same IRQ pin ("shared"), you must ensure that the jumpers selecting the actual connection are set up so that no sources are joined together, unless the single interrupt they would generate can be resolved as to its source." ... It also includes tables giving the PCI slot/INT to PIRQ routing: For an AS200: PIRQ0 = Ethernet | 1B | 2C PIRQ1 = 1A | 1D | 2B PIRQ2 = 1C | 2A | 2D PIRQ3 = SCSI For an AS400: PIRQ0 = 1A | 1D | 2B | 3C PIRQ1 = 2A | 2D | 3B | 1C PIRQ2 = 3A | 3D | 1B | 2C PIRQ3 = SCSI (These can be treated equivalently if you treat the AS200 embedded ethernet as PCI slot 1, INTA, with physical slots 1 and 2 equivalent to slots 2 & 3 on an AS400). The comments in dec_2100_a50_intr_map() are somewhat confusing (there are two slot 3's listed), but one interpretation of the code seems to agree with this table. Peter To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message