From owner-freebsd-smp Sun Sep 27 12:45:42 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id MAA03666 for freebsd-smp-outgoing; Sun, 27 Sep 1998 12:45:42 -0700 (PDT) (envelope-from owner-freebsd-smp@FreeBSD.ORG) Received: from midten.fast.no (midten.fast.no [195.139.251.11]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id MAA03625; Sun, 27 Sep 1998 12:45:18 -0700 (PDT) (envelope-from tegge@fast.no) Received: from fast.no (IDENT:tegge@midten.fast.no [195.139.251.11]) by midten.fast.no (8.9.1/8.9.1) with ESMTP id VAA01789; Sun, 27 Sep 1998 21:42:18 +0200 (CEST) Message-Id: <199809271942.VAA01789@midten.fast.no> To: freebsd@magnet.geophysik.tu-freiberg.de Cc: freebsd-scsi@FreeBSD.ORG, freebsd-smp@FreeBSD.ORG Subject: Re: AHA 2742T+CAM+SMP problems 2nd. try #3 From: Tor.Egge@fast.no In-Reply-To: Your message of "Sun, 27 Sep 1998 13:14:06 +0200 (CEST)" References: <199809271114.NAA09487@magnet.geophysik.tu-freiberg.de> X-Mailer: Mew version 1.70 on Emacs 19.34.1 Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Date: Sun, 27 Sep 1998 21:42:18 +0200 Sender: owner-freebsd-smp@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org > EISA INTCONTROL = 00000e00 Interrupts 10, 11 and 12 are level sensitive. > ahc0: at 0x1c00-0x1cff irq 11 on eisa0 slot 1 > ahc0: Using Level Sensitive Interrupts The scsi card generates an active low/level interrupt 11. With an MP table that says I/O Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN# INT conforms conforms 0 11 2 11 this means that int pin 11 on the IOAPIC is currently programmed as active high/edge trigger. It should probably be programmed as active high/level trigger. I assume you have the MP spec document. If you configure your scsi card to use edge interrupts, you'll probably avoid this problem. Index: mpapic.c =================================================================== RCS file: /home/ncvs/src/sys/i386/i386/mpapic.c,v retrieving revision 1.32 diff -u -r1.32 mpapic.c --- mpapic.c 1998/09/06 22:41:40 1.32 +++ mpapic.c 1998/09/27 18:39:04 @@ -303,12 +303,7 @@ printf("EISA INTCONTROL = %08x\n", intcontrol); } - /* - * EISA IRQ's are identical to ISA irq's, regardless of - * whether they are edge or level since they go through - * the level/polarity converter gadget. - */ - level = 0; + level = ((intcontrol >> eirq) & 1); if (level) *flags |= IOART_TRGRLVL; @@ -378,7 +373,8 @@ * level/polarity converter gadget. */ if (level == 1) /* XXX Always false */ - pol = 0; /* if level, active low */ + /* level => active high on IO APIC (low on EISA bus) */ + pol = 1; /* if level, active high */ else pol = 1; /* if edge, high edge */ - Tor Egge To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-smp" in the body of the message