Date: Fri, 19 Apr 2013 16:35:28 -0700 From: Benjamin Lee <ben@b1c1l1.com> To: "Moore, Robert" <robert.moore@intel.com> Cc: "freebsd-acpi@freebsd.org" <freebsd-acpi@freebsd.org> Subject: Re: panic: acpi_pci_link_srs_from_crs: can't put non-ISA IRQ 20 in legacy IRQ resource type) Message-ID: <20130419163528.204bf3ff@b1c1l1.com> In-Reply-To: <94F2FBAB4432B54E8AACC7DFDE6C92E36FE42E28@FMSMSX153.amr.corp.intel.com> References: <20130418124940.47e3618a@b1c1l1.com> <201304191131.49433.jhb@freebsd.org> <20130419131849.7357c8f6@b1c1l1.com> <201304191726.31089.jhb@freebsd.org> <20130419152110.213c7fbb@b1c1l1.com> <20130419155118.7bafe9fc@b1c1l1.com> <94F2FBAB4432B54E8AACC7DFDE6C92E36FE42E28@FMSMSX153.amr.corp.intel.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--Sig_/ik6aAYfxTUf.F3Usy8mqh5y Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Fri, 19 Apr 2013 23:00:07 +0000, "Moore, Robert" <robert.moore@intel.com= > wrote: > No, the length must be set in all descriptors, end tag included. Do you have any pointers on how I can fix my ASL? Where do I find the end tags and what should I set the lengths to? Here is the output from acpidump -dt: http://www.b1c1l1.com/media/debug/201= 30418-nvidia.asl.gz >=20 > > -----Original Message----- > > From: owner-freebsd-acpi@freebsd.org [mailto:owner-freebsd- > > acpi@freebsd.org] On Behalf Of Benjamin Lee > > Sent: Friday, April 19, 2013 3:51 PM > > To: John Baldwin > > Cc: freebsd-acpi@freebsd.org > > Subject: Re: panic: acpi_pci_link_srs_from_crs: can't put non-ISA IRQ 20 > > in legacy IRQ resource type) > >=20 > > On Fri, 19 Apr 2013 15:21:10 -0700, Benjamin Lee <ben@b1c1l1.com> wrote: > > > On Fri, 19 Apr 2013 17:26:31 -0400, John Baldwin <jhb@freebsd.org> > > wrote: > > > > On Friday, April 19, 2013 4:18:49 pm Benjamin Lee wrote: > > > > > On Fri, 19 Apr 2013 11:31:49 -0400, John Baldwin <jhb@freebsd.org> > > wrote: > > > > > > On Thursday, April 18, 2013 3:49:40 pm Benjamin Lee wrote: > > > > > > > I have a system that panics on boot with 10-CURRENT and boots > > > > > > > with many ACPI error messages and non-functional devices with > > 9.1-RELEASE. > > > > > > > > > > > > > > Motherboard is Foxconn C51XEM2AA (NVIDIA nForce 590) desktop > > board. > > > > > [...] > > > > > > > Even though 9.1-RELEASE boots successfully, devices such as > > > > > > > the ehci USB controller and SATA controller do not work. > > > > > > > > > > > > Ugh, your BIOS does unexpected things. It uses a _CRS for these > > > > > > pci link devices that uses a "short" IRQ resource, but uses an > > > > > > extended IRQ > > > > resource in > > > > > > _PRS (and expects an extended one in _SRS). We use _CRS as a > > > > > > template for > > > > the > > > > > > resource to build. > > > > > > > > > > > > Try this patch. It's a bit hackish, but it forces us to not use > > > > > > _CRS as a template if _CRS uses a "short" IRQ resource, but the > > > > > > link supports non- > > > > ISA > > > > > > IRQs. > > > > > [...] > > > > > > > > > > Thanks, that fixed the panic and the system boots. Now it is > > > > > complaining about AE_AML_BAD_RESOURCE_LENGTH and still unable to > > > > > route IRQs, but it definitely looks better than the ACPI parsing > > errors in 9: > > > > > > > > > > pcib0: allocated type 3 (0xdffff000-0xdfffffff) for rid 10 of > > > > > pci0:0:10:0 > > > > > pcib0: matched entry for 0.10.INTA (src \_SB_.PCI0.AUBA:0) > > > > > pci_link26: Picked IRQ 20 with weight 0 > > > > > pci_link26: Unable to route IRQs: AE_AML_BAD_RESOURCE_LENGTH > > > > > > > > > > Full boot -v output: > > > > > http://www.b1c1l1.com/media/debug/20130419-10-patched- > > > > boot.txt.gz > > > > > > > > Can you add some printfs to the places that return the > > > > AE_AML_BAD_RESOURCE_LENGTH to see which one is being triggered? > > > > (Just look for that constant in sys/contrib/dev/acpica to find the > > > > possible places.) > > > > > > Is there a macro for dumping information about Resource or > > > Resource->Data? Here's what I have for now at > > > sys/contrib/dev/acpica/resources/rscalc.c line 237: > > > > > > pcib0: matched entry for 0.10.INTA (src \_SB_.PCI0.AUBA:0) > > > pci_link26: Picked IRQ 20 with weight 0 > > > rscalc.c:237 > > > Resource->Type: 7 > > > Resource->Length: 0 > > > pci_link26: Unable to route IRQs: AE_AML_BAD_RESOURCE_LENGTH > > > > > > All of the errors are from there and look identical (Type 7, Length 0= ). > > > Type 7 appears to be ACPI_RESOURCE_TYPE_END_TAG. > >=20 > > This hack fixes everything (now the SATA controller works). It seems t= hat > > the Resource->Length check might not be necessary for > > ACPI_RESOURCE_TYPE_END_TAG. > >=20 > > blee@genesis /usr/src/sys/contrib/dev/acpica $ svn diff > > Index: components/resources/rscalc.c > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > --- components/resources/rscalc.c (revision 249624) > > +++ components/resources/rscalc.c (working copy) > > @@ -234,6 +234,15 @@ > >=20 > > if (!Resource->Length) > > { > > + if (Resource->Type =3D=3D ACPI_RESOURCE_TYPE_END_TAG) { > > + TotalSize =3D AcpiGbl_AmlResourceSizes [Resource->Type= ]; > > + printf("TotalSize: %u\n", TotalSize); > > + if (TotalSize !=3D 0) { > > + printf("ACPI_RESOURCE_TYPE_END_TAG hack\n"); > > + *SizeNeeded =3D AmlSizeNeeded + TotalSize; > > + return_ACPI_STATUS (AE_OK); > > + } > > + } > > return_ACPI_STATUS (AE_AML_BAD_RESOURCE_LENGTH); > > } > >=20 > > Index: components/resources/rslist.c > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > --- components/resources/rslist.c (revision 249624) > > +++ components/resources/rslist.c (working copy) > > @@ -203,6 +203,11 @@ > >=20 > > if (!Resource->Length) > > { > > + if (Resource->Type =3D=3D ACPI_RESOURCE_TYPE_END_TAG) { > > + printf("ACPI_RESOURCE_TYPE_END_TAG hack 2\n"); > > + return_ACPI_STATUS (AE_OK); > > + } > > + > > ACPI_ERROR ((AE_INFO, > > "Invalid zero length descriptor in resource list\n")); > > return_ACPI_STATUS (AE_AML_BAD_RESOURCE_LENGTH); > >=20 > >=20 > >=20 > > -- > > Benjamin Lee > > http://www.b1c1l1.com/ --=20 Benjamin Lee http://www.b1c1l1.com/ --Sig_/ik6aAYfxTUf.F3Usy8mqh5y Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) iQIcBAEBAgAGBQJRcdTAAAoJEHpz6H1iC6qDMEEP/3O7c8jqmiuwzJM6RIsoHg94 n+aAuf7fKFwMrx1Yclo16SjDLC2qi2at3n6BmEEvU7IgRA1REGJEv78spzFXt5CV kz+nUQvnhgTdXQYJiaZlyEta9/g4bI/7ETIzdJsqDrFKAh2ePLtp6tvxbkRiGpYf 1ZQV9eflTJQ0FmFiuA4AHxWhHy50WOEv7v/Ib+xkR7OANLZwkYonRQ0ju+HKblv5 JHWaVjiS9xJEn57pjYPYM1/pZvtB+AlYp4QR0VsHGeGx5ekq8eRVEqIBilv0wjF3 XaGJ2dOc74yyBp+AbS6zZEyYPVTPsgPyfFD7eReITXM0n+upI/pLk0a6clYp9c0P qR2kukuINs6gOwWQIsHxr6Ecr0cXBEO37aHTVKbYyuSaLpFjwMicFmOqRVSCKZQJ az/cYRbUdjvxsjcdl6p99TyuYRQFY3xTnHja/7I4F/s0Aceh21eI54bbSo7JLrXC e/wK6ANNyCQQu75aDT9w8gRs9kt+rx/5odCR8HEB/tOd77NGDSPxtuYHz/BZOnfK F7qyqGaGszLLX7CIfPNqeu2C1XnyCL0JsEJJUgFUjs98l3Ce5I5YoQjlzMQ8eFiT 9+3OYo1B7G+YZ9pW4k7jFdpcvsYHJDEJRFGvHW8DFF3J3iZhoAMiIVO+ohczwn2S w6u1NOWzYCp8IJgkdgkX =tN0D -----END PGP SIGNATURE----- --Sig_/ik6aAYfxTUf.F3Usy8mqh5y--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130419163528.204bf3ff>