From owner-freebsd-current@FreeBSD.ORG Fri Jun 6 12:13:32 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 884B737B401; Fri, 6 Jun 2003 12:13:32 -0700 (PDT) Received: from srv1.cosmo-project.de (srv1.cosmo-project.de [213.83.6.106]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3F63143FE5; Fri, 6 Jun 2003 12:13:31 -0700 (PDT) (envelope-from ticso@cicely12.cicely.de) Received: from cicely5.cicely.de (cicely5.cicely.de [IPv6:3ffe:400:8d0:301:200:92ff:fe9b:20e7]) by srv1.cosmo-project.de (8.12.9/8.12.9) with ESMTP id h56JDJrN066109 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=OK); Fri, 6 Jun 2003 21:13:22 +0200 (CEST) (envelope-from ticso@cicely12.cicely.de) Received: from cicely12.cicely.de (cicely12.cicely.de [IPv6:3ffe:400:8d0:301::12]) by cicely5.cicely.de (8.12.9/8.12.9) with ESMTP id h56JDIOs080186 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 6 Jun 2003 21:13:18 +0200 (CEST) (envelope-from ticso@cicely12.cicely.de) Received: from cicely12.cicely.de (localhost [127.0.0.1]) by cicely12.cicely.de (8.12.9/8.12.9) with ESMTP id h56JDHAX001588; Fri, 6 Jun 2003 21:13:18 +0200 (CEST) (envelope-from ticso@cicely12.cicely.de) Received: (from ticso@localhost) by cicely12.cicely.de (8.12.9/8.12.9/Submit) id h56JDHnp001587; Fri, 6 Jun 2003 21:13:17 +0200 (CEST) Date: Fri, 6 Jun 2003 21:13:17 +0200 From: Bernd Walter To: "M. Warner Losh" Message-ID: <20030606191316.GB1290@cicely12.cicely.de> References: <20030606.123654.96603092.imp@bsdimp.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030606.123654.96603092.imp@bsdimp.com> X-Operating-System: FreeBSD cicely12.cicely.de 5.1-RELEASE alpha User-Agent: Mutt/1.5.4i cc: current@freebsd.org Subject: Re: [PATCH] Tweak re-routing of PCI interrupts X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: ticso@cicely.de List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Jun 2003 19:13:32 -0000 On Fri, Jun 06, 2003 at 12:36:54PM -0600, M. Warner Losh wrote: > In message: > John Baldwin writes: > : I have a small tweak to the PCI code that re-routes PCI interrupts. > : Basically, it does two things, 1) make the comment less ia64-specific > : and 2) if the interrupt route returns an invalid IRQ (i.e. 255), then > : we don't change the intline. In other words, if we can't route the > : interrupt, we just assume that the firmware knows more than we do and > : go with the value it stuck in the register. 1) is a no-brainer, but > : I wonder what people think about 2). Patch below: > > I think #2 isn't so good. #1 is a no-brainer :-) > > : #if ... > ... > : + irq = PCIB_ROUTE_INTERRUPT(pcib, dev, cfg->intpin); > : + if (PCI_INTERRUPT_VALID(irq)) > : + cfg->intline = irq; > : + else > : #endif > : + irq = cfg->intline; > : + resource_list_add(rl, SYS_RES_IRQ, 0, irq, irq, 1); > : } > : } > > The part I don't like is that if we can't route an interrupt, we > assume that the interrupt that was written there before is good and > routed. This strikes me as an unwise assumption. Also, we haven't Unless you find a reliable way to ask the BIOS how the board is wired, whatelse would you do than trust the inline register? > recorded our info in the underlying pci register. Don't know if that > will matter for other OSes that are booted after we are. -- B.Walter BWCT http://www.bwct.de ticso@bwct.de info@bwct.de