From owner-freebsd-hackers@FreeBSD.ORG Sat Dec 3 00:51:06 2005 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3AECA16A420; Sat, 3 Dec 2005 00:51:06 +0000 (GMT) (envelope-from craig@tobuj.gank.org) Received: from ion.gank.org (ion.gank.org [69.55.238.164]) by mx1.FreeBSD.org (Postfix) with ESMTP id EB11043D53; Sat, 3 Dec 2005 00:51:05 +0000 (GMT) (envelope-from craig@tobuj.gank.org) Received: by ion.gank.org (mail, from userid 1001) id 380852AF4E; Fri, 2 Dec 2005 18:51:05 -0600 (CST) Date: Fri, 2 Dec 2005 18:51:04 -0600 From: Craig Boston To: John Baldwin Message-ID: <20051203005104.GA22567@nowhere> References: <20051130020734.GA6577@nowhere> <200512011342.19417.jhb@freebsd.org> <20051202013146.GA15424@nowhere> <200512020817.55769.jhb@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200512020817.55769.jhb@freebsd.org> User-Agent: Mutt/1.4.2.1i Cc: freebsd-hackers@freebsd.org, imp@freebsd.org Subject: Re: Weird PCI interrupt delivery problem X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Dec 2005 00:51:06 -0000 On Fri, Dec 02, 2005 at 08:17:53AM -0500, John Baldwin wrote: > If an MADT exists we do use the APIC and don't use ATPICs. That's > normal. > > > 2. I "solved" the previous problem by modifying the ASL to assume > > PIC mode, and then the tunables started working. It was only able > > to move devices on the "near" side of the bridge (i.e. on pci0), but > > they did work briefly on IRQ 10 before freezing just as before. > > You shouldn't have to do that. The ACPI standard clearly states that > machines boot up in PIC mode by default and you only need to call _PIC > to switch to either APIC or SAPIC (ia64) mode. Yeah, that was my bad. I misread apic_register_enumerator as acpi_register_enumerator. After tracing it down I see that the MADT check is called after the check for hint.apic.0.disabled. > Did you disable APIC before trying the tunables BTW? Yes, however the first time I only tried tunables for LNKA, B, and C (was typing them by hand). Later I tried with loader.conf and set all 8. Another odd thing is that the dmesg lines for the LNK objects still report irq 11, though the devices themselves do attach to 10. > Interesting. How about IRQ 11 in non-APIC mode, is it programmed to > level/low? If it's not mentioned in verbose dmesg, how do I tell what it's programmed to? Is there already some way to do it that's easier than writing something to read the PIC registers? > hw.pci9.1.INTA.irq=11 > Also, try this hint with ACPI without APIC. It looks like your BIOS doesn't > include entries for the PCI9 bus in the PIC version of the _PRT (see no PRT > messages in ACPI dmesg) so cbb0 doesn't get an IRQ there either. The hint "works" with ACPI, in that cbb0 attaches. However by the time I'm able to insert a card, irq 11 has already died so nothing happens. Craig