Contribute
Register

Reset/restart after wakeup from sleep in Haswell system / 10.9.4 / ASUS B85M-G

Status
Not open for further replies.
For other ASUS B85M-G users:

Below is the mostly working DSDT /SSDTs for a Asus ASUS B85M-G board using with OSX 10.9.4 and an ATI PCIe graphics card. I have an Intel i7 4770 with HD4600 graphics, so you maybe add a proper SSDT-1 (stepping for i7) for your processor.

What's not working:
- Intel HD4600 onboard graphics (assumed)
- Powernap
- _WAK isn't executed until end, since IGPU/HDAU (hdmi audio) device seem to be broken
- Intel power gadget crashes ....

You will find the Intel graphics device in SSDT-6. I believe it has to be placed under scope _SB.PCI.PEG0.IGPU and not like currently \_SB.PCI.PEG0.IGPU... I have no idea how to achieve this.

Clover setup is also attached.

You need FakeSMC and maybe GenericUSBXHCI (not sure about it) in the clover kext dir.
 

Attachments

  • dsdt_ssdt_working_no_powernap.zip
    26.5 KB · Views: 60
  • config.plist
    5.2 KB · Views: 200
But if \_SB and _SB are the same, why OSX doesn't find the display fix if I insert it into SSDT-6 under PEG0.PEGP and rename it to PEG0.GFX0? It seems it have to be under _SB.PCI.PEG0.GFX0 and not \_SB.PCI.PEG0.GFX0...?

I'd have to see more about what you're trying to do... but whatever path you use it must be consistent, especially when you're trying to "inject" something from SSDT.

Keep in mind any renames must be "balanced". If you rename something in DSDT, the same rename must be done in all SSDTs. SSDTs injecting into existing paths must match.

When I said they are the "same" I was referring mostly to the iasl compiler (from what I've seen). How various ACPI runtimes deal with it may differ. Also, if the code you're talking about is buried in some other scope other than the root, then _SB and \_SB would differ since \_SB is rooted, where _SB is relative.
 
I'd have to see more about what you're trying to do... but whatever path you use it must be consistent, especially when you're trying to "inject" something from SSDT.

Keep in mind any renames must be "balanced". If you rename something in DSDT, the same rename must be done in all SSDTs. SSDTs injecting into existing paths must match.

When I said they are the "same" I was referring mostly to the iasl compiler (from what I've seen). How various ACPI runtimes deal with it may differ. Also, if the code you're talking about is buried in some other scope other than the root, then _SB and \_SB would differ since \_SB is rooted, where _SB is relative.

My goal is to use the ATI HD5570 next to the Intel HD4600... For multi monitor setup. Also power nap would be nice. Currently AGPM again reports "unknown device", 2 times. I guess for the IGPU and HDAU device. This was already fixed when I had a IGPU device in the DSDT under scope _SB (which was then used as ATI accidentally). AGPM reported no errors then. So I guess IGPU must be under _SB....

I already use a proper "AAPL,ig-platform-id" with "0x06, 0x00, 0x26, 0x0A".
 
My goal is to use the ATI HD5570 next to the Intel HD4600... For multi monitor setup. Also power nap would be nice. Currently AGPM again reports "unknown device", 2 times. I guess for the IGPU and HDAU device. This was already fixed when I had a IGPU device in the DSDT under scope _SB (which was then used as ATI accidentally). AGPM reported no errors then. So I guess IGPU must be under _SB....

I already use a proper "AAPL,ig-platform-id" with "0x06, 0x00, 0x26, 0x0A".

You should check your OEM SSDTs to see where the IGPU is defined...

Usually it is at _SB.PCI0.GFX0
 
You should check your OEM SSDTs to see where the IGPU is defined...

Usually it is at _SB.PCI0.GFX0

It's at \_SB.PCI0.GFX0. The scope is my problem. Don't know how to transfer the whole GFX0/IGPU to scope _SB.
 
It's at \_SB.PCI0.GFX0. The scope is my problem. Don't know how to transfer the whole GFX0/IGPU to scope _SB.

Transfer? Not sure what you mean...

Let me give you a simple example of what I mean about \X and X being the same when at root scope.

Code:
DefinitionBlock ("test.aml", "DSDT", 2, "Test", "Tabl", 0x00000012)
{
    Method(BLAH)
    {
    }
    Method(\BLAH)
    {
    }
}

If you compile the above file, you'll get an error at line 6 (Method \BLAH), stating \BLAH already exists.

Change to:
Code:
DefinitionBlock ("test.aml", "DSDT", 2, "Test", "Tabl", 0x00000012)
{
    Method(BLAH)
    {
    }
    Method(\BLAT)
    {
    }
}

No error.

And if you load the resulting AML (eg. compile/disassemble cycle), you have:
Code:
{
    Method (BLAH, 0, NotSerialized)
    {
    }

    Method (BLAT, 0, NotSerialized)
    {
    }
}

The compiler optimizes away the \ in the original code for \BLAT.
 
Transfer? Not sure what you mean...

Let me give you a simple example of what I mean about \X and X being the same when at root scope.

Code:
DefinitionBlock ("test.aml", "DSDT", 2, "Test", "Tabl", 0x00000012)
{
    Method(BLAH)
    {
    }
    Method(\BLAH)
    {
    }
}


If you compile the above file, you'll get an error at line 6 (Method \BLAH), stating \BLAH already exists.
Oh ok! Now I understand what you mean :) But why does then the kernel crash if I insert PEG0.GFX0 ("add monitor fix") to SSDT6 under \_SB.PEG0 ?
 
Oh ok! Now I understand what you mean :) But why does then the kernel crash if I insert PEG0.GFX0 ("add monitor fix") to SSDT6 under \_SB.PEG0 ?

I would have to see the actual code to provide an answer...
 
I would have to see the actual code to provide an answer...

I fixed it by moving all stuff from SSDT-6 to DSDT and then delete SSDT-6. Now all stuff like PCI.PEG0.GFX0 (ati) and PCI.IGPU is in one DSDT. And this also fixed the _WAK breakup. _WAK now finishes completely. Sleep and wakeup work. Intel Power Gadget doesn't crash anymore.

The only problem is now some a lot of RED entries under IntelDBClientControl. Please see attached shot. Console doesn't show errors. Maybe it's because I did not connect any monitor to IGPU yet? Or AGPM seems to try manage PEG0.GFX0 ?

Attached the recent working DSDT. _WAK is working, maybe IntelHD also does?
 

Attachments

  • ioreg-redlines.png
    ioreg-redlines.png
    42.3 KB · Views: 94
  • dsdt_ssdt_working_intel_fix_wak.zip
    26.7 KB · Views: 55
  • config.plist
    5.2 KB · Views: 138
Maybe I should SSDT-7 which only consists of the device IAOE (Intel Smart Connect) also to DSDT? Seems to be the Powernap feature...
 
Status
Not open for further replies.
Back
Top