ACPI errors on amd64 (sempron)

John Baldwin jhb at freebsd.org
Fri Oct 28 13:13:47 PDT 2005


On Friday 28 October 2005 03:43 pm, Moore, Robert wrote:
> > > > 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.
>
> I would be interested in knowing if FreeBSD is using the ACPI CA
> resource manager code, or is parsing the raw AML resource template
> buffers on its own.

Well, the acpi_pci_link code mostly uses AcpiWalkResources(), but when doing 
_SRS to route an IRQ, we do build up a resource list that we hand to 
AcpiSetCurrentResources().

> One advantage to using the resource manager is that the resources are
> converted to a format that is easier for upper code to analyze (and
> therefore less prone to error.)

In this case though we aren't getting PCI bus numbers out of anything that 
comes from ACPI.  The bus number comes out of the device object for the 
PCI-PCI or Host-PCI bridge device that is the parent of the bus.  While 
attaching the ACPI PCI bridge driver, we walk the _PRT to build count the 
number of references from each link device has in the various _PRT tables so 
that when we assign IRQs we try to spread the reference loads (which aren't 
but so accurate) evenly across the available IRQs.

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


More information about the freebsd-acpi mailing list