From owner-freebsd-acpi@FreeBSD.ORG Fri Oct 28 15:46:05 2005 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E712F16A427; Fri, 28 Oct 2005 15:46:04 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from mv.twc.weather.com (mv.twc.weather.com [65.212.71.225]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5B7C943D7B; Fri, 28 Oct 2005 15:45:56 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from [10.50.41.234] (Not Verified[10.50.41.234]) by mv.twc.weather.com with NetIQ MailMarshal (v6, 0, 3, 8) id ; Fri, 28 Oct 2005 12:02:13 -0400 From: John Baldwin To: Nate Lawson Date: Fri, 28 Oct 2005 09:58:58 -0400 User-Agent: KMail/1.8.2 References: <971FCB6690CD0E4898387DBF7552B90E0323D7B6@orsmsx403.amr.corp.intel.com> <200510272029.48815.jkim@FreeBSD.org> <4361774E.3010709@root.org> In-Reply-To: <4361774E.3010709@root.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <200510280958.59985.jhb@freebsd.org> Cc: freebsd-acpi@freebsd.org, Jung-uk Kim , Mathieu Prevot Subject: Re: ACPI errors on amd64 (sempron) X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Oct 2005 15:46:05 -0000 On Thursday 27 October 2005 08:56 pm, Nate Lawson wrote: > Jung-uk Kim wrote: > > On Thursday 27 October 2005 08:08 pm, Nate Lawson wrote: > >>Jung-uk Kim wrote: > >>>It's already fixed in (soon to be imported) ACPICA-20051021 code. > >> > >>There's no way we can get acpi-ca tested in -current and MFC'd > >>before 6.0. Instead, we should MFC just the logic Intel changed in > >>the header file to 6.0. > > > > IMHO, I think there's not enough time to do any fix at this point. I > > think we should fix it *after* 6.0-RELEASE because it only fixes half > > of his problem. > > I disagree. It's very clear what the alignment requirements are on > amd64 and that acpi-ca is being too strict, harming an actual > implementation. I think it only shuts up a warning, does it actually change the behavior? > > In fact, I have seen somebody else had similar problem: > > > > http://bsdforum.or.kr/viewtopic.php?p=3D5414#5414 > > > > It's Korean BSD User Forum but you may be able to read this: > > > > pci_link26: BIOS IRQ 10 for -2145771032.1.INTA is invalid > > pci_link21: BIOS IRQ 11 for -2145771032.2.INTA is invalid > > pci_link27: BIOS IRQ 3 for -2145771032.2.INTB is invalid > > pci_link23: BIOS IRQ 10 for -2145771032.10.INTA is invalid > > pci_link24: BIOS IRQ 11 for -2145771032.4.INTA is invalid > > pci_link29: BIOS IRQ 11 for -2145771032.7.INTA is invalid > > pci_link30: BIOS IRQ 10 for -2145771032.8.INTA is invalid > > Yes, I agree that this alone doesn't fix it. This looks to me like the > pci_link code is pointing the interrupt source at the wrong part of the > resource descriptor. Perhaps it is not incrementing the pointer > correctly for 64-bit arches. =46rom the actual code: /* Validate the BIOS IRQ. */ if (!link_valid_irq(link, bios_irq)) { device_printf(dev, "BIOS IRQ %u for %d.%d.INT%c is invalid\n", bios_irq, pcib_get_bus(pcib), slot, pin + 'A'); Thus, the weird value is being retuned by pcib_get_bus(), it's not coming o= ut=20 of ACPI at all. ACPI dosen't provide bus numbers, just the slot and pin, w= e=20 have to extract the bus number from the ACPI device that has a _PRT object.= =20 what's really odd is that he is even getting valid-looking IRQs, since we u= se=20 pcib_get_bus() as the bus number for configuration transactions. It's=20 probably getting truncated down to the low byte at some point and thus=20 reading the wrong bus, hence getting invalid IRQs I guess. The real questi= on=20 here is why pcib_get_bus() is broken on this bridge. =2D-=20 John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" =3D http://www.FreeBSD.org