Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Apr 2013 11:59:40 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        "Moore, Robert" <robert.moore@intel.com>
Cc:        "freebsd-acpi@freebsd.org" <freebsd-acpi@freebsd.org>, "Zheng, Lv" <lv.zheng@intel.com>, "Guan, Chao" <chao.guan@intel.com>
Subject:   Re: panic: acpi_pci_link_srs_from_crs: can't put non-ISA IRQ 20 in legacy IRQ resource type)
Message-ID:  <201304291159.40609.jhb@freebsd.org>
In-Reply-To: <94F2FBAB4432B54E8AACC7DFDE6C92E36FE44F8D@FMSMSX153.amr.corp.intel.com>
References:  <20130418124940.47e3618a@b1c1l1.com> <20130426113948.10b5400e@b1c1l1.com> <94F2FBAB4432B54E8AACC7DFDE6C92E36FE44F8D@FMSMSX153.amr.corp.intel.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Friday, April 26, 2013 2:59:20 pm Moore, Robert wrote:
> 
> > -----Original Message-----
> > From: Benjamin Lee [mailto:ben@b1c1l1.com]
> > Sent: Friday, April 26, 2013 11:40 AM
> > To: Moore, Robert
> > Cc: John Baldwin; freebsd-acpi@freebsd.org; Zheng, Lv; Guan, Chao
> > Subject: Re: panic: acpi_pci_link_srs_from_crs: can't put non-ISA IRQ 20
> > in legacy IRQ resource type)
> > 
> > On Thu, 25 Apr 2013 02:28:25 +0000, "Moore, Robert"
> > <robert.moore@intel.com> wrote:
> > > > Thank you!  I backed out my hacks and with your 2 patches 10-CURRENT
> > > > boots successfully (with functional devices).  Loading a custom ASL
> > > > is not necessary.
> > >
> > > Do you mean that the change of a WORD field to a BYTE field is no longer
> > necessary?
> > >
> > > If so, I would really like to see the buffer that is being sent to _SRS.
> > 
> > Yes, the change of WORD to BYTE is not necessary with 10-CURRENT.
> > 
> > I don't understand ACPI well enough to answer your followup.  All I know
> > is that there is some change in the ACPI parsing behavior between 9-STABLE
> > (which triggers AE_AML_BUFFER_LIMIT in the broken _SRS method) and 10-
> > CURRENT (which used to panic but after jhb's fixes now boots correctly).
> > Could it be possible that _SRS is not being called at all with the new
> > ACPI code?
> > 
> 
> 
> _SRS is called from the driver software, so ACPICA is not involved. It may 
be that the resource descriptor is now a little longer and the WORD access no 
longer goes beyond the end of the buffer.
> 
> Still, I'm a bit worried about it anyway.

_SRS is expecting an ExtendedIRQ resource (hence why it is accessing a word 
field as in an ExtendedIRQ resource the IRQ is a word at that offset).  This 
is consistent with what _PRS returns for these links.  It is only _CRS that is 
using a non-Extended IRQ resource for these link devices.  I can give Benjamin
a patch to add a call to AcpiRsDumpResourceList() before calling 
AcpiSetCurrentResources() if you'd like to see the output of that.  Something 
like this I think:

Index: acpi_pci_link.c
===================================================================
--- acpi_pci_link.c     (revision 249767)
+++ acpi_pci_link.c     (working copy)
@@ -866,6 +866,8 @@
                status = acpi_pci_link_srs_from_crs(sc, &srsbuf);
 
        /* Write out new resources via _SRS. */
+       device_printf(dev, "Resource list:\n");
+       AcpiRsDumpResourceList(srsbuf.Pointer);
        status = AcpiSetCurrentResources(acpi_get_handle(dev), &srsbuf);
        if (ACPI_FAILURE(status)) {
                device_printf(dev, "Unable to route IRQs: %s\n",



-- 
John Baldwin



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