On Sat, 20 Apr 2013 00:09:55 +0000, "Moore, Robert" <[email protected]> wrote: > Can you send the actual binary DSDT or the ASCII acpidump (not disassembled)
I missed this earlier, but I just noticed _OS and _OSI checks for Windows. I'll need to do some testing with hw.acpi.osname. Here is the binary DSDT: http://www.b1c1l1.com/media/debug/20130419-nvidia.dsdt > > > > -----Original Message----- > > From: Benjamin Lee [mailto:[email protected]] > > Sent: Friday, April 19, 2013 4:35 PM > > To: Moore, Robert > > Cc: John Baldwin; [email protected] > > Subject: Re: panic: acpi_pci_link_srs_from_crs: can't put non-ISA IRQ 20 > > in legacy IRQ resource type) > > > > On Fri, 19 Apr 2013 23:00:07 +0000, "Moore, Robert" > > <[email protected]> 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/20130418-nvidia.asl.gz > > > > > > > > > -----Original Message----- > > > > From: [email protected] [mailto:owner-freebsd- > > > > [email protected]] On Behalf Of Benjamin Lee > > > > Sent: Friday, April 19, 2013 3:51 PM > > > > To: John Baldwin > > > > Cc: [email protected] > > > > Subject: Re: panic: acpi_pci_link_srs_from_crs: can't put non-ISA > > > > IRQ 20 in legacy IRQ resource type) > > > > > > > > On Fri, 19 Apr 2013 15:21:10 -0700, Benjamin Lee <[email protected]> > > wrote: > > > > > On Fri, 19 Apr 2013 17:26:31 -0400, John Baldwin <[email protected]> > > > > wrote: > > > > > > On Friday, April 19, 2013 4:18:49 pm Benjamin Lee wrote: > > > > > > > On Fri, 19 Apr 2013 11:31:49 -0400, John Baldwin > > > > > > > <[email protected]> > > > > 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. > > > > > > > > This hack fixes everything (now the SATA controller works). It > > > > seems that the Resource->Length check might not be necessary for > > > > ACPI_RESOURCE_TYPE_END_TAG. > > > > > > > > blee@genesis /usr/src/sys/contrib/dev/acpica $ svn diff > > > > Index: components/resources/rscalc.c > > > > =================================================================== > > > > --- components/resources/rscalc.c (revision 249624) > > > > +++ components/resources/rscalc.c (working copy) > > > > @@ -234,6 +234,15 @@ > > > > > > > > if (!Resource->Length) > > > > { > > > > + if (Resource->Type == ACPI_RESOURCE_TYPE_END_TAG) { > > > > + TotalSize = AcpiGbl_AmlResourceSizes [Resource- > > >Type]; > > > > + printf("TotalSize: %u\n", TotalSize); > > > > + if (TotalSize != 0) { > > > > + printf("ACPI_RESOURCE_TYPE_END_TAG hack\n"); > > > > + *SizeNeeded = AmlSizeNeeded + TotalSize; > > > > + return_ACPI_STATUS (AE_OK); > > > > + } > > > > + } > > > > return_ACPI_STATUS (AE_AML_BAD_RESOURCE_LENGTH); > > > > } > > > > > > > > Index: components/resources/rslist.c > > > > =================================================================== > > > > --- components/resources/rslist.c (revision 249624) > > > > +++ components/resources/rslist.c (working copy) > > > > @@ -203,6 +203,11 @@ > > > > > > > > if (!Resource->Length) > > > > { > > > > + if (Resource->Type == 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); > > > > > > > > > > > > > > > > -- > > > > Benjamin Lee > > > > http://www.b1c1l1.com/ > > > > > > > > -- > > Benjamin Lee > > http://www.b1c1l1.com/ -- Benjamin Lee http://www.b1c1l1.com/
signature.asc
Description: PGP signature
