Jump to content
[ IMPORTANT ] Premium and Donators users ×
Olarila Professional Hackintosh Services ×

Finished* DSDT for Gigabyte GA-H77M-D3H


foobar

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...