Contribute
Register

<< Solved >> Opencore GA-Z97M-D3H Screen Freeze after waking

Status
Not open for further replies.
Joined
Nov 11, 2013
Messages
58
Motherboard
AsRock H97M-Pro4
CPU
i7-4790K
Graphics
RX580
Mac
  1. iMac
  2. MacBook Pro
I was upgrading my GA-Z97M-D3H from clover-High Sierra to OC-Big Sur. After a long process of trouble shooting bad RAM, bad thermal paste, and dirty PCie slot (due to bad thermal paste running into it)

Everything works well except for the the fact that my screen would freeze after long sleep (longer than 4 hours). Mouse would still work.

I found that if I leave XhciPortLimit quirk enabled, all works fine and no screen freeze. I've looked over the custom USBPorts.kext (Hackintool), the paths and names look fine. Looked at the USB ports themselves, they all seem to be working well. So currently, I using the custom USBport.kext with XhciPortLimit quirk enabled

- i7 4790K - SMBIOS iMacPro1,1 (i wanted the DRM - just in case you're wondering, the freeze also happens with iMac15,1 with iGPU enabled)
- iGPU disabled in BIOS
- using only Sapphire RX580

Ideally, I like to disable the XHCIPortlimit quirk, but what could be the problem causing the screen freeze? - Thx
 

Attachments

  • IMG_2932.jpg
    IMG_2932.jpg
    3.5 MB · Views: 115
I would say it was due to your RX580 not reinitialising after the sleep.

You using the RadeonDeInit SSDT with OpenCore? As there is no RadeonDeInit=true option like there was with Clover.

A copy of the SSDT is attached for you to try, add it to your /OC/ACPI folder and an entry in your config.plist.

See if that helps.
 

Attachments

  • SSDT-Radeon_Deint.aml.zip
    972 bytes · Views: 82
Thanks for the thought @Edhawk . I had forgotten about this. When I upgraded the AsRock H97M board +RX580 and it didn't require it. I've just added the SSDT, will let it sleep for a while and see. Thank you
 
Results using RadeonDeInit SSDT: The first 6 hours sleep then waking up was fine.

However, I then left it overnight. Woke it up, worked for about 2 minutes, then screen froze. The difference was that the screen was not garbled pixelated like the image attached in the previous post. The screen just froze as is, it's almost as if the MacOS Finder was frozen. The Mouse was working, but Keyboard was not responsive.

I left it alone to see what would happen. The power setting was set for sleep @1min. Instead of going to sleep, it switched to the LogIn screen. Login was fine, but now shows a kernel panic:


panic(cpu 2 caller 0xffffff8018889d2a): Sleep transition timed out after 180 seconds while entering darkwake on way to sleep. Suspected bundle: com.apple.iokit.IOGraphicsFamily. Thread 0x75. Failure code:: 0xef8876fc 00000031 Kernel Extensions in backtrace: com.apple.iokit.IOGraphicsFamily

Because everything worked fine withXhciPortLimit quirk enabled, would it have something to do with the SSDT-EC ? Right now, to decrease variables while I'm still testing, I was using the prebuilt (SSDT-EC-DESKTOP.aml). This board seems a little different. I also noticed that the device path was different than typical.

I just switched to the custom SSDT-EC.aml . I'll let it sleep again and see what happens
 
Did you create the SSDT-EC.aml using your system DSDT.aml and Corpnewt's SSDTTime python script?

Have you added the other SSDT's available from the SSDTTime script, i.e. SSDT-HPET.aml and SSDT-PLUG.aml, plus the config.plist patches for SSDT-HPET.aml? The SSDT-HPET won't work without the patches being present in your OC config.plist.

I have attached a copy of an OC folder created using OC 0.6.3 for a very similar Haswell system, the serial numbers etc. have been redacted. But it is what I use with my iMac1 & iMac3 systems, as listed in my signature below.

Have a look and see if any of the SSDT's, Kexts, config.plist patches etc. I use would be helpful with your system. I don't expect the SSDT-UIAC.aml to be useful, as that is set for one of my systems, but the rest should be suitable for your Haswell system.
 

Attachments

  • EFI copy.zip
    8.2 MB · Views: 144
Thanks, I did use Corpnewt's SSDTTime python script. Right now, I didn't want to add more variables, so I've only replaced the pre-built EC and Plug with the custom. If this fails, I was going to add the HPET then. Do you think I should just add it now?
 
Yes! Along with the OC config.plist patches generated with the SSDT-HPET.aml. It will eliminate a frequent IRQ issue, which effect a lot of Haswell systems.
 
Just to follow up on this. I was almost excited. 1st 6hours = good, 2nd 6hours = good, after 3rd 6hours = Froze again, mouse working, no kernel panic.

However, looking at the console crash report shows the crash events happens with GPU Reset (gpuRestart) - ie, the GPU is trying to reconnect and can't. I already have: SSDT-EC.aml, SSDT-HPET.aml, SSDT-PLUG.aml, SSDT-Radeon_Deint.aml, and the correct USBPorts.kext

Since there is no pattern to this freeze, and the fact that it only happens after sleep, I'm wondering if it might be due to something related to the reading of the sleepimage file upon waking. I don't think it's the NVRAM. I've already looked into that, and at the beginning of each test run, I do reset NVRAM.

I was trying to see why this GA-Z97M is different than my AsRock H97M. One thing stands out is that the The GA-Z97M is running Big Sur instead of Catalina. Looking through the OpenCore guide again, I noticed they mentioned

1. using CtlnaAHCIPort.kext instead of SATA-unsupported.kext for Big Sur
2. Enable Kernel > Quirk > DisableLinkedJettison (This option lets Lilu.kext and possibly some others function in macOS Big Sur with best performance)

Also as a thought,
3. in DeviceProperties > I've deleted the keys AAPL,slot-name, device_type, model. Since it's an RX580, MacOS should be able to see it and handle it correctly. Maybe because I had it in there, MacOS was having a hard time. when it wakes up
 
Possibly item 3. The Sleep/Wake issues are not related to items 1 and 2.

You won't need the CtlnaAHCIPort.kext, as your 9-Series SATA ports are not covered by that kext. That kext is I believe aimed at newer SATA controllers. If you need a SATA AHCI kext for a 9-series system, try using the two I have attached below. They are what I use in my Z87 & Z97 Gigabyte systems. I have five Haswell systems, all running macOS Catalina &/or Big Sur.
  • AHCI_3rdPArty_SATA.kext covers Marvell, Asmedia and other controllers
  • AHCI_Intel_Generic_SATA.kext covers series-9, x79, x99 and series-20 controllers.
The Kernel > Quirk > DisableLinkedJettison is enabled by default in all the Sample.plist versions I have seen or used. I updated a three of my systems to OC 0.6.6 today and didn't need to set that quirk, as it was already enabled.

While updating my systems, I noticed something was being raised about the SSDT-Radeon_DeInit.aml, when reviewing the system log on my main Hack. The SSDT was causing an error, as it was looking in the wrong acpi-address for my RX 580. Same could be happening with your system.

If you post a copy of your IOReg, I will adapt the SSDT to match your cards acpi-address, if it is required. It may have the correct address already. Read the guide and use the version of IORegistryExplorer linked here - https://www.tonymacx86.com/threads/guide-how-to-make-a-copy-of-ioreg.58368/

I use four additional SSDT's with my 9-series systems, as listed below, the last one may be of interest:
  • SSDT-EHCx_OFF.aml
    • Forces EHC1 and EHC2 controllers to be disabled and USB ports to be shunted to XHC controller.
  • SSDT-Fix-USB-Shutdown.aml
    • Fixes USB related shutdown issues.
  • SSDT-SBUS-MCHC.aml
    • Injecting Device MCHC which is missing, and injects DVL0 device for SMBUS Controller
  • SSDT-XWAK.aml
    • Fixes known issues after sleep i.e Kernel Panics out of cold long sleep states/fixed instant wake ups.
Some of these SSDT's were created and made available by VioletDragon on his GitHub page(s) - https://github.com/VoiletDragon/Series-9-Patches

Unfortunately he no longer supports or uses macOS Hacks. But thankfully his patches and SSDT's are still viable and available.

The SSDT-XWAK.aml has a corresponding config.plist patch, for OC and Clover. Which I have posted a screenshot of from my iMac1's config.plist.

Screenshot 2021-02-05 at 19.49.47.png

This needs to be added to your config.plist for the SSDT to work.

The SSDT's and all the config.plist patches are available in the copy of my /EFI/OC folder, which I attached above in post #5. So there is no need to go searching for any SSDT's or patches, they are all contained in the folder and config.plist.
 

Attachments

  • AHCI_3rdParty_SATA.kext.zip
    2 KB · Views: 59
  • AHCI_Intel_Generic_SATA.kext.zip
    1.4 KB · Views: 67
Status
Not open for further replies.
Back
Top