Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Oct 2005 14:34:39 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        Jung-uk Kim <jkim@freebsd.org>
Cc:        freebsd-acpi@freebsd.org, Mathieu Prevot <mathieu_prevot@yahoo.fr>
Subject:   Re: ACPI errors on amd64 (sempron)
Message-ID:  <200510281434.41236.jhb@freebsd.org>
In-Reply-To: <200510281231.43130.jkim@FreeBSD.org>
References:  <971FCB6690CD0E4898387DBF7552B90E0323D7B6@orsmsx403.amr.corp.intel.com> <200510280958.59985.jhb@freebsd.org> <200510281231.43130.jkim@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Friday 28 October 2005 12:31 pm, Jung-uk Kim wrote:
> > > > In fact, I have seen somebody else had similar problem:
> > > >
> > > > http://bsdforum.or.kr/viewtopic.php?p=5414#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.
> > >
> > >From 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 out of ACPI at all.  ACPI dosen't provide bus numbers, just
> > the slot and pin, we have to extract the bus number from the ACPI
> > device that has a _PRT object. what's really odd is that he is even
> > getting valid-looking IRQs, since we use pcib_get_bus() as the bus
> > number for configuration transactions.  It's probably getting
> > truncated down to the low byte at some point and thus reading the
> > wrong bus, hence getting invalid IRQs I guess.  The real question
> > here is why pcib_get_bus() is broken on this bridge.
>
> Please note that the message I posted is not from the same chipset, i.
> e., nForce4 chipset.  The only common thing here is Athlon64/Sempron
> with Award BIOS.  Maybe the BIOS is culprit here?  Shrug...

pcib_get_bus() being broken is not really a BIOS issue, that's some sort of 
FreeBSD bug that needs to be tracked down I think.

-- 
John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200510281434.41236.jhb>