Bug 1404 - AE_AML_UNINITIALIZED_LOCAL, iasl can't re-build DSDT, CPQ Evo N600c
Summary: AE_AML_UNINITIALIZED_LOCAL, iasl can't re-build DSDT, CPQ Evo N600c
Status: CLOSED CODE_FIX
Alias: None
Product: ACPI
Classification: Unclassified
Component: ACPICA-Core (show other bugs)
Hardware: i386 Linux
: P2 normal
Assignee: Robert Moore
URL:
Keywords:
: 3098 (view as bug list)
Depends on:
Blocks:
 
Reported: 2003-10-22 13:41 UTC by Kjartan Maraas
Modified: 2006-09-28 13:22 UTC (History)
2 users (show)

See Also:
Kernel Version: 2.6.0-0.test9.1.93
Subsystem:
Regression: ---
Bisected commit-id:


Attachments
output from acpidmp (131.48 KB, application/octet-stream)
2003-10-22 13:41 UTC, Kjartan Maraas
Details
dmesg output (12.65 KB, text/plain)
2003-10-22 13:52 UTC, Kjartan Maraas
Details

Description Kjartan Maraas 2003-10-22 13:41:07 UTC
Distribution: Fedora Core test3

Hardware Environment: Compaq Evo N600c laptop

Software Environment:
Problem Description:

I get the following errors when trying to compile the dsdt from this machine

Compiling "dsdt.dsl"
dsdt.dsl    53:             If (LEqual (\C001, 0x00))
Error    1022 -       Object does not exist ^  (\C001)
 
dsdt.dsl   166:                     If (\_OSI ("Windows 2001"))
Warning  2030 -                             ^ Called method may not always
return a value
 
dsdt.dsl  3670:                             Method (_OFF, 0, NotSerialized)
Warning  2019 -   Not all control paths return a value ^  (_OFF)
 
dsdt.dsl  5003:                         \_SB.C03E.C052.C19E
Error    1022 -                     Object does not exist ^  (\_SB.C03E.C052.C19E)
 
dsdt.dsl  6164:                 \_PR.C000
Error    1022 -   Object does not exist ^  (\_PR.C000)
 
dsdt.dsl  6220:                         Notify (\_PR.C000, 0x80)
Error    1022 -                   Object does not exist ^  (\_PR.C000)
 
dsdt.dsl  6293:                         Notify (\_PR.C000, 0x80)
Error    1022 -                   Object does not exist ^  (\_PR.C000)
 
ASL Input:  dsdt.dsl - 6551 lines, 222973 bytes, 3919 keywords
Compilation complete. 5 Errors, 2 Warnings, 0 Remarks, 1103 Optimizations
[root@localhost kmaraas]#

Steps to reproduce:
Comment 1 Kjartan Maraas 2003-10-22 13:41:59 UTC
Created attachment 1136 [details]
output from acpidmp
Comment 2 Kjartan Maraas 2003-10-22 13:52:44 UTC
Created attachment 1137 [details]
dmesg output
Comment 3 Len Brown 2003-10-28 09:34:44 UTC
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 
 
 
 
Comment 4 Luming Yu 2003-11-09 18:24:21 UTC
Would you please try at http://bugzilla.kernel.org/show_bug.cgi?id=1520 to 
resolove AE_AML_BUFFER_LIMIT.
Comment 5 Kjartan Maraas 2003-11-20 14:29:37 UTC
 I still see the same errors/warnings after applying the patch to
2.6.0-test9.1.93 (arjan's kernels).
Comment 6 Luming Yu 2003-11-20 16:42:27 UTC
Please use latest patch at http://bugzilla.kernel.org/show_bug.cgi?id=1444
Comment 7 Kjartan Maraas 2004-02-18 03:14:03 UTC
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)
Comment 8 Len Brown 2004-05-17 22:26:15 UTC
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? 
 
Comment 9 Kjartan Maraas 2004-05-18 04:23:16 UTC
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.
Comment 10 Luming Yu 2004-10-14 08:42:30 UTC
..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....
Comment 11 Luming Yu 2004-10-14 08:43:35 UTC
 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.
Comment 12 Robert Moore 2004-11-17 13:56:04 UTC
Added optional support for uninitialized locals in ACPI CA version 20041105
Comment 13 Len Brown 2004-11-17 18:39:58 UTC
20041105 shipped in linux 2.6.10-rc2 -- closing.
Comment 14 Luming Yu 2004-12-06 06:38:46 UTC
*** Bug 3098 has been marked as a duplicate of this bug. ***

Note You need to log in before you can comment on or make changes to this bug.