Bug 7229 - iasl disassembler gets arguments of external methods wrong
Summary: iasl disassembler gets arguments of external methods wrong
Status: CLOSED DOCUMENTED
Alias: None
Product: ACPI
Classification: Unclassified
Component: ACPICA-Core (show other bugs)
Hardware: i386 Linux
: P2 normal
Assignee: Robert Moore
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-09-29 03:00 UTC by Thomas Renninger
Modified: 2007-12-28 20:16 UTC (History)
1 user (show)

See Also:
Kernel Version: ACPICA version (20060912)
Subsystem:
Regression: ---
Bisected commit-id:


Attachments
acpidump of affected BIOS (291.22 KB, text/plain)
2006-09-29 03:02 UTC, Thomas Renninger
Details

Description Thomas Renninger 2006-09-29 03:00:51 UTC
Also one External is declared as internal object, but it's a method with one 
argument.

I tried:
iasl -d -e DSDT.dat SSDT2.dat
iasl -sa SSDT2.dsl

There is:
    External (C0E5, MethodObj)    // 6 Arguments
    External (C0E0, IntObj)

But in DSDT those are declared as:

    Method (C0E5, 5, Serialized)
    Method (C0E0, 1, Serialized)

Therefore compiling SSDT2 results in wrong output:

        Store (C0E5 (0x00, 0x00, C333, C334, Local1, Local3), \_SB.C234)
        Local2
        Local3
        Local1
        C331

        Store (C0E0, 0x00)
        C334

I know this is known, I just want to note it down and add a table for 
verification/testing. Tell me how I can help further.
Comment 1 Thomas Renninger 2006-09-29 03:02:02 UTC
Created attachment 9123 [details]
acpidump of affected BIOS
Comment 2 Robert Moore 2006-09-29 14:00:28 UTC
Essentially, since there is no information in the AML that tells the 
disassembler how many arguments there are for an external method, the 
disassembler has to attempt an educated guess.

I'm not sure that there is any way to deterministically glean the number of 
arguments.

Any ideas on this are welcome.
Comment 3 Len Brown 2007-12-28 20:16:07 UTC
iASL issues should be filed 
in the (newly public) acpica bugzilla,
http://acpica.org/bugzilla/
rather than here in the kernel.org (Linux kernel specific) bugzilla.

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