ACPI Problems: IRQ conflicts on USB controllers and SATA controller

John Baldwin jhb at freebsd.org
Thu Oct 12 19:19:12 UTC 2006


On Thursday 12 October 2006 12:42, Erik Norgaard wrote:
> John Baldwin wrote:
> > On Thursday 12 October 2006 09:07, Erik Norgaard wrote:
> >> Hi:
> >>
> >> I have previously written about my buggy Sony VAIO (FJ3S) and some 
> >> problems was resolved.
> >>
> >> In brief:
> >>
> >> I have IRQ conflicts on the USB controllers causing two controllers to 
> >> be non-functional:
> > 
> > Can you put a verbose dmesg (boot -v) from a boot with APIC enabled?
> 
> OK, I have updated source and rebuilt kernel just to make sure, sorry I 
> forgot to mention that I'm on RELENG_6.
> 
> The only reliable boot is with apic and pci_link disabled. Otherwise I 
> may have to boot multiple times before the system comes up correctly, 
> and when it fails this may not always happen at the same place: I may 
> get an infinite loop of AcpiEvGpeDispatch errors or it may hang after 
> finding disks or when gathering entropy.
> 
> I have dumped dmesg and other stuff with different options at boot, 
> since this is pretty verbose I've placed it on my website:
> 
> boot -v:
> 
> http://www.locolomo.org/src/acpi/dmesg-GENERIC-v
> http://www.locolomo.org/src/acpi/sysctl-GENERIC-v
> http://www.locolomo.org/src/acpi/pciconf-GENERIC-v
> http://www.locolomo.org/src/acpi/lspci-GENERIC-v
> http://www.locolomo.org/src/acpi/vmstat-GENERIC-v

Nothing here looks wrong.  Can you break into the debugger when the box
locks up?

> boot -v, acpi disabled:

Doesn't detect APIC.  BIOS is too dumb to provide $PIR.  That's a new
low for incompetence on the part of BIOS writers.

> boot -v, apic disabled:
> 
> http://www.locolomo.org/src/acpi/dmesg-GENERIC-v-no_apic

The problem here is (again) really stupid BIOS writers.  Maybe they can't
read.  Edit your ASL to change the resources to say that IRQ 10 (which
the BIOS assigns) is ok instead of IRQ 11.  You can probably get by just
with fixing LNKD's resource:

                Device (LNKD)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x04)
                    Method (_DIS, 0, Serialized)
                    {
                        Store (0x80, PDRC)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) 
{1,3,4,5,6,7,11,12,14,15}
                    })

Replace the '11' here with '10' and update it.  In fact, you should
fix the ones with IRQ's '10' and '12' to list '10' and '11' instead
and the ones with '11' and '12' to list '10' and '11' instead.

12 is used by your PS/2 mouse/trackpad, so it isn't suitable.

-- 
John Baldwin


More information about the freebsd-mobile mailing list