Contribute
Register

Can't compile native DSDT?

Status
Not open for further replies.
Joined
May 10, 2013
Messages
20
Motherboard
GA-H81M-H
CPU
i3-4130T
Graphics
HD4400
Mac
  1. 0
Classic Mac
  1. 0
Mobile Phone
  1. 0
Hi guys,

Total noob here, trying to make sense of the DSDT and stuff. So I've downloaded the latest MaciASL, booted my system with no DSDT, extracted vanilla System DSDT through File -> New from ACPI -> DSDT, and tried to compile it just for kicks. Unexpectedly, I see a compiler error:

Code:
Line: 9947 Code: 6126 syntax error, unexpected PARSEOP_ARG0

The chunk of DSL in question:

Code:
Method (ADBG, 1, Serialized)
{
    If (CondRefOf (MDBG))
    {
        Return (MDBG)
        Arg0 // This is the line with the error
    }

    Return (Zero)
}

Any suggestions?

Regards,
Alex.
 
Hi guys,

Total noob here, trying to make sense of the DSDT and stuff. So I've downloaded the latest MaciASL, booted my system with no DSDT, extracted vanilla System DSDT through File -> New from ACPI -> DSDT, and tried to compile it just for kicks. Unexpectedly, I see a compiler error:

Code:
Line: 9947 Code: 6126 syntax error, unexpected PARSEOP_ARG0

The chunk of DSL in question:

Code:
Method (ADBG, 1, Serialized)
{
    If (CondRefOf (MDBG))
    {
        Return (MDBG)
        Arg0 // This is the line with the error
    }

    Return (Zero)
}

Any suggestions?

Regards,
Alex.

Very easily fixable; comment out the ARG0 so it changes from :

Code:
ARG0
To :

Code:
// ARG0
Now, please follow the forum rules and update your hardware in your profile so people can see what you are working with, otherwise it will be much more difficult for folks to help you in future.
 
Very easily fixable; comment out the ARG0 so it changes from :

Code:
ARG0
To :

Code:
// ARG0

Um, like that? Is that line insignificant then?

Now, please follow the forum rules and update your hardware in your profile so people can see what you are working with, otherwise it will be much more difficult for folks to help you in future.

Sorry, haven't seen any posted rules in this forum.

Regards,
Alex.
 
Another attempt with commented out Arg0 line:

Code:
External (_SB_.PCI0.PEG0)           // Line 62
External (_SB_.PCI0.PEG0.PEGP)      // 63
External (_SB_.PCI0.PEG1)           // 64
External (_SB_.PCI0.PEG2)           // 65

New errors:

Code:
Line 62 Code 6074 Name already exists in scope (_SB_.PCI0.PEG0)
Line 64 Code 6074 Name already exists in scope (_SB_.PCI0.PEG1)
Line 65 Code 6074 Name already exists in scope (_SB_.PCI0.PEG2)

There are warnings at the beginning of the DSL file though, that seem to be related to the erroneous variable names:

Code:
    /*
     * iASL Warning: There were 8 external control methods found during
     * disassembly, but additional ACPI tables to resolve these externals
     * were not specified. This resulting disassembler output file may not
     * compile because the disassembler did not know how many arguments
     * to assign to these methods. To specify the tables needed to resolve
     * external control method references, use the one of the following
     * example iASL invocations:
     *     iasl -e <ssdt1.aml,ssdt2.aml...> -d <dsdt.aml>
     *     iasl -e <dsdt.aml,ssdt2.aml...> -d <ssdt1.aml>
     */
    External (_SB_.PCI0.GFX0.GLID, MethodObj)    // Warning: Unresolved Method, guessing 1 arguments (may be incorrect, see warning above)
    External (_SB_.PCI0.GFX0.GSCI, MethodObj)    // Warning: Unresolved Method, guessing 0 arguments (may be incorrect, see warning above)
    External (_SB_.PCI0.GFX0.IUEH, MethodObj)    // Warning: Unresolved Method, guessing 1 arguments (may be incorrect, see warning above)
    External (_SB_.PCI0.PEG0.HPME, MethodObj)    // Warning: Unresolved Method, guessing 0 arguments (may be incorrect, see warning above)
    External (_SB_.PCI0.PEG1.HPME, MethodObj)    // Warning: Unresolved Method, guessing 0 arguments (may be incorrect, see warning above)
    External (_SB_.PCI0.PEG2.HPME, MethodObj)    // Warning: Unresolved Method, guessing 0 arguments (may be incorrect, see warning above)
    External (_SB_.TPM_.PTS_, MethodObj)    // Warning: Unresolved Method, guessing 1 arguments (may be incorrect, see warning above)
    External (LIDS, MethodObj)    // Warning: Unresolved Method, guessing 0 arguments (may be incorrect, see warning above)

I'm not sure how to interpret the warnings and instructions given there. Any advice?

I've attached the full DSL file in case that helps: View attachment System_DSDT.zip

Regards,
Alex.
 
Another attempt with commented out Arg0 line:

Code:
External (_SB_.PCI0.PEG0)           // Line 62
External (_SB_.PCI0.PEG0.PEGP)      // 63
External (_SB_.PCI0.PEG1)           // 64
External (_SB_.PCI0.PEG2)           // 65

New errors:

Code:
Line 62 Code 6074 Name already exists in scope (_SB_.PCI0.PEG0)
Line 64 Code 6074 Name already exists in scope (_SB_.PCI0.PEG1)
Line 65 Code 6074 Name already exists in scope (_SB_.PCI0.PEG2)

There are warnings at the beginning of the DSL file though, that seem to be related to the erroneous variable names:

Code:
    /*
     * iASL Warning: There were 8 external control methods found during
     * disassembly, but additional ACPI tables to resolve these externals
     * were not specified. This resulting disassembler output file may not
     * compile because the disassembler did not know how many arguments
     * to assign to these methods. To specify the tables needed to resolve
     * external control method references, use the one of the following
     * example iASL invocations:
     *     iasl -e <ssdt1.aml,ssdt2.aml...> -d <dsdt.aml>
     *     iasl -e <dsdt.aml,ssdt2.aml...> -d <ssdt1.aml>
     */
    External (_SB_.PCI0.GFX0.GLID, MethodObj)    // Warning: Unresolved Method, guessing 1 arguments (may be incorrect, see warning above)
    External (_SB_.PCI0.GFX0.GSCI, MethodObj)    // Warning: Unresolved Method, guessing 0 arguments (may be incorrect, see warning above)
    External (_SB_.PCI0.GFX0.IUEH, MethodObj)    // Warning: Unresolved Method, guessing 1 arguments (may be incorrect, see warning above)
    External (_SB_.PCI0.PEG0.HPME, MethodObj)    // Warning: Unresolved Method, guessing 0 arguments (may be incorrect, see warning above)
    External (_SB_.PCI0.PEG1.HPME, MethodObj)    // Warning: Unresolved Method, guessing 0 arguments (may be incorrect, see warning above)
    External (_SB_.PCI0.PEG2.HPME, MethodObj)    // Warning: Unresolved Method, guessing 0 arguments (may be incorrect, see warning above)
    External (_SB_.TPM_.PTS_, MethodObj)    // Warning: Unresolved Method, guessing 1 arguments (may be incorrect, see warning above)
    External (LIDS, MethodObj)    // Warning: Unresolved Method, guessing 0 arguments (may be incorrect, see warning above)

I'm not sure how to interpret the warnings and instructions given there. Any advice?

I've attached the full DSL file in case that helps: View attachment 88497

Regards,
Alex.

Look at the top of the page, 5th menu option in from the left and read that. It says 'Rules'. They are there for everyones benefit.

Also, have you searched the forum to see if anyone else has a build with the same motherboard, that may give you some clues ?

That DSDT you have attached, does it have any edits or changes done to it already ?
 
Look at the top of the page, 5th menu option in from the left and read that. It says 'Rules'. They are there for everyones benefit.

Thanks, it was hidden in plain sight. :) Hopefully my profile conforms to the rules now.

Also, have you searched the forum to see if anyone else has a build with the same motherboard, that may give you some clues ?

Yes, in fact I was perusing this thread: [thread]123760[/thread] and there were several suggestions to apply some code. I wrongly assumed that RehabMan was talking about DSDT, while in fact he mentioned SSDT, which I now recognize as being somewhat different. Hence my attempt to compile DSDT as a first step before "patching in" RehabMan's suggestions.

I've been able to compile the suggested SSDT though, and will continue in that thread since it's directly related to HD4400 woes.

That DSDT you have attached, does it have any edits or changes done to it already ?

No, it's vanilla DSDT extracted by MaciASL. That's what bothered me, isn't DSDT supposed to compile cleanly if it was just extracted but not modified? I do not have any use for it now but may have in the future, so I'd like to have better understanding of how to create custom DSDTs.

I've experimented with DSDT Editor software from the other forum, and found it possible to extract DSDT and compile it - but again, only after commenting out the Arg0 line. This is something I don't understand; how come a disassembled source of a binary extracted from BIOS could not be compiled back? There's something wrong here, it just doesn't compute. Smells like a bug either in disassembler, or in compiler...

Regards,
Alex.
 
Status
Not open for further replies.
Back
Top