From owner-freebsd-current Mon Apr 2 14:42:22 2001 Delivered-To: freebsd-current@freebsd.org Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) by hub.freebsd.org (Postfix) with ESMTP id A6A6937B71D for ; Mon, 2 Apr 2001 14:42:16 -0700 (PDT) (envelope-from gallatin@cs.duke.edu) Received: from grasshopper.cs.duke.edu (grasshopper.cs.duke.edu [152.3.145.30]) by duke.cs.duke.edu (8.9.3/8.9.3) with ESMTP id RAA20738; Mon, 2 Apr 2001 17:42:16 -0400 (EDT) Received: (from gallatin@localhost) by grasshopper.cs.duke.edu (8.11.3/8.9.1) id f32LfkE94197; Mon, 2 Apr 2001 17:41:46 -0400 (EDT) (envelope-from gallatin@cs.duke.edu) From: Andrew Gallatin MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15048.61977.954793.801365@grasshopper.cs.duke.edu> Date: Mon, 2 Apr 2001 17:41:45 -0400 (EDT) To: Bernd Walter Cc: freebsd-current@freebsd.org Subject: Re: Funny Interrupt settings on AXPpci33 (fwd) In-Reply-To: References: X-Mailer: VM 6.75 under 21.1 (patch 12) "Channel Islands" XEmacs Lucid Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Bernd, The problem is that the lca gives totally bogus intline values that aren't 255; so the MI code thinks they are valid & never calls the platform specific inter_route code to correct them. Please try the appended fix, which is basically what we do on x86 SMP. Matt Dodd said he had a better idea, but it doesn't look like he had time to implement it. Mike Smith suggested it, and if it works for you, I'll commit it. Drew ------------------------------------------------------------------------------ Andrew Gallatin, Sr Systems Programmer http://www.cs.duke.edu/~gallatin Duke University Email: gallatin@cs.duke.edu Department of Computer Science Phone: (919) 660-6590 Index: alpha/pci//lca_pci.c =================================================================== RCS file: /home/ncvs/src/sys/alpha/pci/lca_pci.c,v retrieving revision 1.9 diff -u -r1.9 lca_pci.c --- alpha/pci//lca_pci.c 2000/12/08 22:11:23 1.9 +++ alpha/pci//lca_pci.c 2001/03/16 21:38:02 @@ -34,6 +34,8 @@ #include #include #include +#include +#include #include #include @@ -134,6 +136,12 @@ lca_pcib_read_config(device_t dev, u_int b, u_int s, u_int f, u_int reg, int width) { + if ((reg == PCIR_INTLINE) && (width == 1)) { + int pin; + + pin = lca_pcib_read_config(dev, b, s, f, PCIR_INTPIN, 1); + return (platform.pci_intr_route(NULL, dev, pin)); + } switch (width) { case 1: CFGREAD(b, s, f, reg, BYTE, u_int8_t); To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message