Jump to content

No graphics / USB / Audio after wake


anor4k
 Share

586 posts in this topic

Recommended Posts

I have HD6670 so it controlled by 6000 controller. In maverics all is OK. I can boot without ATI injection and can boot with ATI injection with FB=Ipomoea and with connectors patch. All works fine including sleep and wake. Smbios set to iMac12,2 which has Radeon HD6770M also Turks as my Radeon.

Installed ElCapitan I encounter strange problem: black screen with or without ATI injection. My deviceID=6758 is still present in all AMD kexts but now it is not enough.

To make graphics working I have to apply FakeID=0x67401002 as in real iMac12,2. It is enough if without injection but I have to do something else (I didn't remember) to make it also working with injection.

I know that my prototype iMac12,2 sleep and wake, so I copied all device properties from it to my config. No. It is not a way to go.

Tested changes in AppleGPUPM, no success.

Tested additional SMC key, same results.

Tested different DSDT trick, same results.

Tested PCI bus tuning by additional kext, no success.

Tested different ways to make Intel HD2000 working, the best result is frosen desktop. Else "no kext loaded" and no wake.

Try to load kexts from previous systems. Not working. If AMD6000Controller is not working then monitor wakes. 

 

I also controlled information from internet if someone has a success or approach to it.

Two successes:

1. hibernation,

2. Intel HD4000 set primary.

Link to comment
Share on other sites

Look also at  /System/Library/Extensions/AppleGraphicsControl.kext/Contents/PlugIns/AppleGraphicsDevicePolicy.kext/Contents/Info.plist

there are predefine configurations based on SMBIOS used (ConfigMap/Default that use config1, config2 and none). Maybe can be used to change default behavior from the mac model emulation used:

post-674334-0-09301200-1452442445_thumb.png

a custom configuration can be added (config3?) for specific model I guess.

 

(ha ha, GFX1 is used in MacPro6,1 with two cards?.. but why is unloaded? :worried_anim: user have to break the kext signature to make it work if installed? :hysterical: )

Link to comment
Share on other sites

I've interrupted my test to fix my sound card and will continue soon.

 

I had it working, tried more then 10 successful wakes but was not satisfying.

Because i remember that i've patched a framebuffer with LVDS at 1st port where the 1st port was not working, the working port was the 3rd HDMI.

 

1st port plugged in DP1 non functional (cable must remain plugged in)

2nd port DP2 working (but no wake fron sleep)

3rd port HDMI working 

 

It was not usable for me, because 4K@30 is laggy

I'm sorry crappy explained, but maybe it helps

Also strange  power settings

 

 

post-448675-0-42342700-1452445623_thumb.png

Link to comment
Share on other sites

We shouldn't forget that mainboard BIOS plays an important role. The solution I found is working properly on the Asrock H97M Pro 4 but nothing I tried was able to make the AMD GPU wakeup on the Asrock B85 Killer and some of us might have the same problem, i.e. are out of luck with their hardware configuration. Yes, this sounds pessimistic but there is little hope to resolve this issue for those who got the wrong hardware.  :(

 

Mieze

  • Like 1
Link to comment
Share on other sites

Yes, this sounds pessimistic but there is little hope to resolve this issue for those who got the wrong hardware.  :(

 

 

That's unfortunate!   :( 

 

Seems to me like that our best option would be, switching to NVIDIA... Obviously, not a very popular move, but after all, it is a sort of solution...  B)

Link to comment
Share on other sites

I'm sorry, I fixed the reboot issue on wake and I have the:

 

Mac-Pro kernel[0] <Notice>: AMDFramebufferSI::setPowerState(0xa43045eeb16a1311, 0 -> 2) timed out after 45473 ms

 

so Maguro only works for display sleep on my setup.

 

I tried inserting my old NVIDIA card as a secondary and I get this log message upon wake (I have to reboot of course). Isn't it strange?

 

Mac-Pro kernel[0] <Notice>: AMDFramebufferSI::setPowerState(0xa43045eeb16a1311, 0 -> 2) timed out after 45473 ms

Mac-Pro kernel[0] <Notice>: NVDATesla::setPowerState(0xa43045eeb17a1311, 0 -> 2) timed out after 45476 ms

Link to comment
Share on other sites

I'm sorry, I fixed the reboot issue on wake and I have the:

 

Mac-Pro kernel[0] <Notice>: AMDFramebufferSI::setPowerState(0xa43045eeb16a1311, 0 -> 2) timed out after 45473 ms

 

so Maguro only works for display sleep on my setup.

 

I tried inserting my old NVIDIA card as a secondary and I get this log message upon wake (I have to reboot of course). Isn't it strange?

 

Mac-Pro kernel[0] <Notice>: AMDFramebufferSI::setPowerState(0xa43045eeb16a1311, 0 -> 2) timed out after 45473 ms

Mac-Pro kernel[0] <Notice>: NVDATesla::setPowerState(0xa43045eeb17a1311, 0 -> 2) timed out after 45476 ms

What happens when the NVIDIA card is set as primary?

 

Mieze

Link to comment
Share on other sites

@Mieze

 

1. Nvidia as the only card: sleep wake ok

2. Nvidia as primary, Radeon secondary, Radeon connected to display nvidia connected to display: crashes on boot

3. Nvidia As primary, Radeon secondary, Radeon connected nvidia disconnected to display: both cards timeout on wake

4. Radeon as primary, nvidia secondary, Radeon connected nvidia connected or disconnected: both cards timeout on wake

 

For both 3 and 4, status led display on asus mainboard is stuck on the value "30" meaning waking up from s3 status.

Link to comment
Share on other sites

See logic:

0000000000104744 B810680000                      mov        eax, 0x6810                   ; XREF=0x104699
0000000000104749 488B4DF8                        mov        rcx, qword [ss:rbp-0x90+var_136]
000000000010474d 3B4104                          cmp        eax, dword [ds:rcx+0x4]
0000000000104750 0F8549000000                    jne        0x10479f
...
0000000000104756 B86B100000                      mov        eax, 0x106b
000000000010475b 488B4DF8                        mov        rcx, qword [ss:rbp-0x90+var_136]
000000000010475f 3B4114                          cmp        eax, dword [ds:rcx+0x14]
0000000000104762 0F8537000000                    jne        0x10479f
....
00000000001047a3 E828F30000                      call       _PhwSIslands_InitializePowerTuneDefaults_113ad0

So.... good Power Tune will be for DeviceID=0x6810 and SubsystemVendorID=0x106B (Apple)

  • Like 1
Link to comment
Share on other sites

Just updated to 10.11.3 - this update doesn't change anything on wake issue with AMD GPUs.

 

 

May this help?

Image

 

Tried it right now on R9 390 and wake still doesn't work. LuxMark also doesn't display my card as FirePro D700, but it's probably because of that D700 is Tahiti and R9 390 is Hawaii. Worth a note I tried Clover patch, aswell as manual binpatch by hex editor.

 

See logic:

0000000000104744 B810680000                      mov        eax, 0x6810                   ; XREF=0x104699
0000000000104749 488B4DF8                        mov        rcx, qword [ss:rbp-0x90+var_136]
000000000010474d 3B4104                          cmp        eax, dword [ds:rcx+0x4]
0000000000104750 0F8549000000                    jne        0x10479f
...
0000000000104756 B86B100000                      mov        eax, 0x106b
000000000010475b 488B4DF8                        mov        rcx, qword [ss:rbp-0x90+var_136]
000000000010475f 3B4114                          cmp        eax, dword [ds:rcx+0x14]
0000000000104762 0F8537000000                    jne        0x10479f
....
00000000001047a3 E828F30000                      call       _PhwSIslands_InitializePowerTuneDefaults_113ad0

So.... good Power Tune will be for DeviceID=0x6810 and SubsystemVendorID=0x106B (Apple)

 

The whole idea stands on changing the SubVendorID from Apple to your card's SubVendorID, am I right? But is it possible with another DeviceIDs (0x6810 is R9 270X as I recall)?

Link to comment
Share on other sites

Just updated to 10.11.3 - this update doesn't change anything on wake issue with AMD GPUs.

 

 

 

Tried it right now on R9 390 and wake still doesn't work. LuxMark also doesn't display my card as FirePro D700, but it's probably because of that D700 is Tahiti and R9 390 is Hawaii. Worth a note I tried Clover patch, aswell as manual binpatch by hex editor.

 

 

The whole idea stands on changing the SubVendorID from Apple to your card's SubVendorID, am I right? But is it possible with another DeviceIDs (0x6810 is R9 270X as I recall)?

I think 6810 can also be changed to your DeviceID.

It's a pity it doesn't explain why iMac12,2 can wake.

Link to comment
Share on other sites

D700 faking will probably only work with a 7970 & using MacPro6,1 SMBIOS.

 

I will give it a try 

 

@Slice what do you think? 

 

I will try this patch and use Mac Pro 6,1 Smbios 

<key>KextsToPatch</key>
<array>
<dict>
    <key>FirePro D700</key>
    <string>AMDRadeonX4000</string>
    <key>Find</key>
    <data>axAnAQ==</data>    /* 6B102701 */
    <key>Replace</key>
    <data>YhR1Jw==</data>    /* 62147527 */
</dict>
</array>
Link to comment
Share on other sites

 

I will give it a try 

 

@Slice what do you think? 

 

I will try this patch and use Mac Pro 6,1 Smbios 

<key>KextsToPatch</key>
<array>
<dict>
    <key>FirePro D700</key>
    <string>AMDRadeonX4000</string>
    <key>Find</key>
    <data>axAnAQ==</data>    /* 6B102701 */
    <key>Replace</key>
    <data>YhR1Jw==</data>    /* 62147527 */
</dict>
</array>

Good, this trick make my Z97Z-SLI with 2x R9 280x (IGPU DISABLE) works fine with macpro6,1 AND AIRPLAY MIRROR WORKING!!!

no change in performance wise, at least during this short time test. BruceX is under 12 seconds and old Luxmark SALA over 5100 points...

I will test a little bit more about sleep, and still need to fix USB 3.0 but it seems a lot better than iMac14,2 with IGPU enable (with works fine, but didn't sleep and wake like yosemite, and IGPU was aways at top speed)

 

For those who has has well with  2x identical Radeon R9 280X this could be a better solution. Remember to path AppleTyMCEDriver and run ssdtgen and freqVectorsEdit from piker alpha to fix several CPU related things....

 

UPDATE1: sleep doesn't work.... maybe because device GCON is not define right, and don't load the AppleMGPUControl drivers....

Link to comment
Share on other sites

UPDATE1: sleep doesn't work.... maybe because device GCON is not define right, and don't load the AppleMGPUControl drivers....

As far as I know device GCON takes the place of the IGPU on MacPro6,1 with regard to wakeup.

 

Mieze

Link to comment
Share on other sites

As far as I know device GCON takes the place of the IGPU on MacPro6,1 with regard to wakeup.

 

Mieze

Yes, but I create the DSDT entries for GCON, but the drivers didn't load. I dont know how to make it load the drivers. the DSDT code I use is this:

 

 

Device (GCON)

{

OperationRegion (GPIO, SystemIO, 0x0500, 0x64)

Field (GPIO, ByteAcc, NoLock, Preserve)

{

GP06, 1

}

Name (_HID, EisaId ("APP000B"))

Name (_CID, "gcon")

Name (_STA, 0x0B)

Name (_CRS, ResourceTemplate ()

{

IO (Decode16,

0x0700, // Range Minimum

0x07FF, // Range Maximum

0x01, // Alignment

0xFF, // Length

)

})

Name (_PRW, Package (0x02)

{

0x16,

0x04

})

Name (GMGP, 0x16)

Method (GMSP, 1, NotSerialized)

{

If (LLessEqual (Arg0, One))

{

Or (GP06, Arg0, GP06)

}

}

Method (GMLV, 0, NotSerialized)

{

Return (GP06)

}

}

but the kexts AppleMGPUPowerControl didnt load...

Link to comment
Share on other sites

@oculto: The driver probably fails initialization because GCON is a piece of real hardware not just some ACPI pseudo device.

 

@Slice: I've got an original iMac12,1. If there is anything you might need in order to find a solution for your machine, please let me know!

 

Mieze

Link to comment
Share on other sites

@oculto: The driver probably fails initialization because GCON is a piece of real hardware not just some ACPI pseudo device.

 

@Slice: I've got an original iMac12,1. If there is anything you might need in order to find a solution for your machine, please let me know!

 

Mieze

Thank you for your proposition but I don't know what to look.

I already have two darwindumper reports from iMac12,2. Before and after sleep. I analysed them several months without any conclusions.

I think the answer is inside binaries.

  • Like 1
Link to comment
Share on other sites

One strange thing happened today.. Recently my main system was Windows, but decided to use OS X, since it's better for me for programming. So I entered the BIOS, changed primary graphics from PEG to IGP and guess what.. my system booted just fine, without blind boot. Intel HD4600 pops up in Clover setting and in OS X. Multi-monitor works, but no luck with wake (I will reinstall OS X and try once more). I don't know how it happened, most likely it's just some glitch in BIOS settings. 

 

@edit: No luck with wake after reinstall. I guess I will reflash the BIOS

@edit2: Reflashed BIOS, the issue is still there. When I boot with IGD as primary I get boot up output on the display attached to my R9 390. One thing is curious. If I boot the system with no display attached, and I attach a display after OS X boots, wake is working. Otherwise, when booting with display <-> R9 390, wake isn't working. Apparently having fully working HD4600 isn't enough for OS X to wake with Radeon card.

  • Like 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...