Bug 1404
Summary: | AE_AML_UNINITIALIZED_LOCAL, iasl can't re-build DSDT, CPQ Evo N600c | ||
---|---|---|---|
Product: | ACPI | Reporter: | Kjartan Maraas (kmaraas) |
Component: | ACPICA-Core | Assignee: | Robert Moore (Robert.Moore) |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | CC: | acpi-bugzilla, ingram |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.0-0.test9.1.93 | Subsystem: | |
Regression: | --- | Bisected commit-id: | |
Attachments: |
output from acpidmp
dmesg output |
Description
Kjartan Maraas
2003-10-22 13:41:07 UTC
Created attachment 1136 [details]
output from acpidmp
Created attachment 1137 [details]
dmesg output
The following will get you down to 1 warning and 1 error: DefinitionBlock ("DSDT.aml", "DSDT", 1, "COMPAQ", "EVON600C", 65536) { + External(\C001) + External(\_PR.C000) + Name (C002, Package (0x04) The reason is that iasl is looking for names defined in the SSDT, and it doesn't automatically insert External refs for them, so you have to do it manually. acpixtract SSDT acpidmp > SSDT iasl -d SSDT cat SSDT.dsl /* * Intel ACPI Component Architecture * AML Disassembler version 20030522 * * Disassembly of SSDT, Tue Oct 28 12:23:14 2003 */ DefinitionBlock ("SSDT.aml", "SSDT", 1, "COMPAQ", "CPQCPU", 4097) { Name (C001, 0x01) Processor (\_PR.C000, 0x01, 0x00001080, 0x06) { Method (_CST, 0, NotSerialized) { Return (\C004) } } } --- iasl DSDT.new Intel ACPI Component Architecture ASL Optimizing Compiler / AML Disassembler version 20030522 [May 23 2003] Copyright (C) 2000 - 2003 Intel Corporation Supports ACPI Specification Revision 2.0b DSDT.new 3673: Method (_OFF, 0, NotSerialized) Warning 2019 - Not all control paths return a value ^ (_OFF) DSDT.new 5006: \_SB.C03E.C052.C19E Error 1022 - Object does not exist ^ (\_SB.C03E.C052.C19E) ASL Input: DSDT.new - 6554 lines, 223018 bytes, 3919 keywords Compilation complete. 1 Errors, 1 Warnings, 0 Remarks, 1104 Optimizations Would you please try at http://bugzilla.kernel.org/show_bug.cgi?id=1520 to resolove AE_AML_BUFFER_LIMIT. I still see the same errors/warnings after applying the patch to 2.6.0-test9.1.93 (arjan's kernels). Please use latest patch at http://bugzilla.kernel.org/show_bug.cgi?id=1444 After upgrading to the latest development kernel for Fedora Core 2 test1 I don't see this: ACPI: Using PIC for interrupt routing ACPI-1120: *** Error: Method execution failed [\_SB_.C03E.C04C] (Node cff0a5fc), AE_AML_BUFFER_LIMIT ACPI-1120: *** Error: Method execution failed [\_SB_.C03E.C050] (Node cff0a5d0), AE_AML_BUFFER_LIMIT ACPI-1120: *** Error: Method execution failed [\_SB_.C03E._CRS] (Node cff0a5a4), AE_AML_BUFFER_LIMIT ACPI-0098: *** Error: Method execution failed [\_SB_.C03E._CRS] (Node cff0a5a4), AE_AML_BUFFER_LIMIT any more. Now dmesg output looks like: ACPI: Subsystem revision 20040116 ACPI: IRQ9 SCI: Edge set to Level Trigger. ACPI: Interpreter enabled ACPI: Using PIC for interrupt routing ACPI: PCI Root Bridge [C03E] (00:00) PCI: Probing PCI hardware (bus 00) Transparent bridge - 0000:00:1e.0 ACPI: PCI Interrupt Routing Table [\_SB_.C03E._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.C03E.C03F._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.C03E.C052._PRT] ACPI: Power Resource [C14E] (on) ACPI: Power Resource [C162] (on) ACPI: Power Resource [C167] (on) ACPI: Power Resource [C16B] (on) ACPI: Power Resource [C174] (on) ACPI: PCI Interrupt Link [C0BA] (IRQs 5 10 *11) ACPI: PCI Interrupt Link [C0BB] (IRQs 5 10 *11) ACPI: PCI Interrupt Link [C0BC] (IRQs 5 10 *11) ACPI: PCI Interrupt Link [C0BD] (IRQs 5 10 *11) ACPI: PCI Interrupt Link [C0BE] (IRQs 5 10 *11) ACPI: PCI Interrupt Link [C0BF] (IRQs 5 10 *11) ACPI: PCI Interrupt Link [C0C0] (IRQs 5 10 *11) ACPI: PCI Interrupt Link [C0C1] (IRQs 5 10 11) ACPI: Power Resource [C1F3] (off) ACPI: Power Resource [C1F4] (off) ACPI: Power Resource [C1F5] (off) Linux Plug and Play Support v0.97 (c) Adam Belay ACPI: PCI Interrupt Link [C0BA] enabled at IRQ 11 ACPI: PCI Interrupt Link [C0BD] enabled at IRQ 11 ACPI: PCI Interrupt Link [C0BC] enabled at IRQ 11 ACPI: PCI Interrupt Link [C0BB] enabled at IRQ 11 ACPI: PCI Interrupt Link [C0C0] enabled at IRQ 11 ACPI: PCI Interrupt Link [C0BF] enabled at IRQ 11 ACPI: PCI Interrupt Link [C0BE] enabled at IRQ 11 PCI: Using ACPI for IRQ routing PCI: if you experience problems, try using option 'pci=noacpi' or even 'acpi=off' this. I still see this further down in dmesg though: ACPI: AC Adapter [C1A2] (on-line) ACPI-1120: *** Error: Method execution failed [\_SB_.C03E.C053.C0D1.C12E] (Node c1520af8), AE_AML_UNINITIALIZED_LOCAL ACPI-1120: *** Error: Method execution failed [\_SB_.C03E.C053.C0D1.C13D] (Node c1520f18), AE_AML_UNINITIALIZED_LOCAL ACPI-1120: *** Error: Method execution failed [\_SB_.C19F._BTP] (Node c15fccdc), AE_AML_UNINITIALIZED_LOCAL ACPI: Battery Slot [C19F] (battery present) ACPI: Battery Slot [C1A0] (battery absent) ACPI: Power Button (FF) [PWRF] ACPI: Sleep Button (CM) [C1A3] ACPI: Lid Switch [C1A4] ACPI: Fan [C1F6] (off) ACPI: Fan [C1F7] (off) ACPI: Fan [C1F8] (off) ACPI: Processor [C000] (supports C1 C2 C3) ACPI: Thermal Zone [TZ1] (52 C) Are those dmesg from the original DSDT, or are you modifying it and re-building it? Besides the dmesg warnings, does anything fail on the machine? I'm using the original DSDT and I don't see any particular problems that can be related to this. Suspend/resume isn't working with ACPI, but that's probably a more generic problem I guess. ..snippets from ASL language spec.(defined in ACPI spec). 17.5.69 Localx (Method Local Data Objects) ... On entry to a control method, these objects are uninitialized and cannot be used until some value or reference is stored into the object.... AML interpreter successfully catch a bug violating the rule above. Maybe we need to work out a workaround, despite it will violate ACPI spec. How about treating un-initialized local variable as null object with type of target operand. Added optional support for uninitialized locals in ACPI CA version 20041105 20041105 shipped in linux 2.6.10-rc2 -- closing. *** Bug 3098 has been marked as a duplicate of this bug. *** |