ACPI errors on amd64 (sempron)
Moore, Robert
robert.moore at intel.com
Fri Oct 28 13:45:28 PDT 2005
If you are using ACPI_RESOURCE, then you are probably getting the list
from the resource manager (GetCurrentResources, etc.)
> -----Original Message-----
> From: Nate Lawson [mailto:nate at root.org]
> Sent: Friday, October 28, 2005 1:18 PM
> To: Moore, Robert
> Cc: John Baldwin; Jung-uk Kim; freebsd-acpi at freebsd.org; Mathieu
Prevot
> Subject: Re: ACPI errors on amd64 (sempron)
>
> 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.
> >
> > 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.)
>
> We use our own (acpi_resource.c):
> while (curr < last) {
> res = (ACPI_RESOURCE *)curr;
> curr += res->Length;
>
> /* Handle the individual resource types */
> switch(res->Id) {
> case ACPI_RSTYPE_END_TAG:
> ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "EndTag\n"));
> curr = last;
> break;
> case ACPI_RSTYPE_FIXED_IO:
> if (res->Data.FixedIo.RangeLength <= 0)
> break;
> ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "FixedIo 0x%x/%d\n",
> res->Data.FixedIo.BaseAddress,
> res->Data.FixedIo.RangeLength));
> set->set_ioport(dev, context,
> res->Data.FixedIo.BaseAddress,
> res->Data.FixedIo.RangeLength);
> break;
>
> I haven't looked at the acpi ca resource manager but it will have to
> match the rest of our rman system to be a viable replacement.
>
> --
> Nate
More information about the freebsd-acpi
mailing list