Jump to content
foobar

Finished* DSDT for Gigabyte GA-H77M-D3H

Recommended Posts

Hello, I've been trying to edit my own DSDT since there are no pre-edited ones out there. But I still can't get it to compile.


I've applied these three patches: _T_x rename, WAK, and Possible operator timeout is ignored, which fixed a lot of errors, but I could only get so far on my own.


Now I'm stuck with these five errors:

2100 Warning ResourceTag larger than Field (Tag: 64 bits, Field: 32 bits)

2314 Error Invalid object type for reserved name (found ZERO, requires Buffer)

9892 Warning Not all control paths return a value (_HID)

9892 Warning Reserved method must return a value (Integer/String required for _HID)

10439 Error _HID suffix must be all hex digits (GH)

 

Google gives me irrelevant answers, so I'd appreciate any help with this.


I attached my unedited DSDT if that would help too.

DSDT.dsl.zip

 


Edit:

After about 4 more hours of work I've managed to get down to 1 error:


"Reserved method must return a value (Integer/String required for _HID)"

"Not all control paths return a value (_HID)"


Actually two errors, but both come from the same place (line 9894):

            If (TCMF) {}
           Else
           {
               Return (0x0201D824)
           }

 

I fixed it by adding making the if statement return the same thing for both conditions:

            If (TCMF)
           {
               Return (0x0201D824)
           }
           Else
           {
               Return (0x0201D824)
           }

 

But I'm not sure if this is the proper way to fix the problem.


The ACPI specification says it returns a hardware ID for plug and play devices. But I still don't know what exactly it should return?



Edit 2:

I made my own fix for the error above though I'm not sure if it's the correct one, but it works.

Files attached here + DSDT Editor patch file for anyone else with this motherboard.

Patched GA-H77M-D3H.zip

 

Cheers.

Link to comment
Share on other sites

The "If (TCMF) {}" is there for a reason. It simply says that if TCMF is true then do nothing. Returning something at this point would be wrong so I suggest you should find a better solution to this problem.


I'm also having the same problems as you so you're not alone. This happened after I flashed the BIOS to the latest REV. And I'm using "Asus P8P67 WS Revolution B3" btw.


The most annoying issue here is obviously the one error: "_HID suffix must be all hex digits (GH)". So if you've found a solution for that, please report back.


EDIT:

For "Warning ResourceTag larger than Field (Tag: 64 bits, Field: 32 bits)" simply change Dword to Qword.


EDIT 2:

For "Not all control paths return a value (_HID)" change:

If (TCMF) {}

To:

If (TCMF) 
{
Return(Zero)
}

 

For "Error _HID suffix must be all hex digits (GH)" change "ABDCEFGH" to "PNP0C15". (Source: http://www.tonycrapx86.com/viewtopic.php?f=14&t=61284)


Good luck.

Link to comment
Share on other sites

I changed to (ASUS P9X79 LE 504 BIOS)

 

If (TCMF)
           {
               Return (0x0201D824)
           }
           Return (Zero) 

 

I believe that is compliant and the errors go away.


My sole remaining warning in my DSDT is: "_REG has no corresponding Operation Region"


From this section:

                Device (EC0)
               {
                   Name (_HID, EisaId ("PNP0C09"))
                   Name (_CRS, ResourceTemplate ()
                   {
                       IO (Decode16,
                           0x0062,             // Range Minimum
                           0x0062,             // Range Maximum
                           0x00,               // Alignment
                           0x01,               // Length
                           )
                       IO (Decode16,
                           0x0066,             // Range Minimum
                           0x0066,             // Range Maximum
                           0x00,               // Alignment
                           0x01,               // Length
                           )
                   })
                   Name (_GPE, 0x1E)
                   Name (REGC, Zero)
                   Method (_REG, 2, NotSerialized)  //error shows at this line
                   {
                       If (LEqual (Arg0, 0x03))
                       {
                           Store (Arg1, REGC)
                       }
                   }

Link to comment
Share on other sites

I there i fixed all the errors. I have attached both .dsl and .aml format.

Thank you! :D


I'm sorry if this is a noob question but why does the "dsl" say "DSDT_No Errors" while the "aml" only says "DSDT"? I get the the dsl is without errors but does that also apply to the aml? (Asking because multishit uses amls)

Link to comment
Share on other sites

any change for a H77-D3H (not the "M" model) or these are the same?


Thank you in advance

 

I'm curious as well. Has anybody used this edited DSDT with the not-M H77-D3H (or is it the same like SomniusX suggests?)

And if so, has it solved any specific issues for anybody? (I would like to have my USB-3 ports recognize none-USB-3 devices and working vga/dvi mobo ports e.g.)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.





×
  • Create New...
The popup will be closed in 15 seconds...