Contribute
Register

DSDT/SSDT-patching AMD RX 580 proper working advise

Status
Not open for further replies.
Hey guys,

I'm a bit lost when it comes to techniques to get proper working AMD RX 580 with sleep/wake. I read on the interwebs; Whatervergreen and Lilu with personalities, framebuffer injection, kext-patching, DSDT-patching, SSDT-patching. Not using Whatevergreen. I'm totally lost. I don't know what is best practice today. I prefer DSDT/SSDT-patching.

I've got a Gigabyte Z87M-D3H Mobo, use Identity imac-14.2 and a Sapphire RX 580 8GB (with 2x DP, 2x HDMI and DVI-D. Think this is personality= Orinoco). I've dumped ACPI-tables with Clover (and later with Patchmatic).
  • Whatevergreen + Lilu doesn't work with Clover framebuffer personalities. A get artifacts on background of DP-screen. Second screen with HDMI doesn't work but is recognized in macOS Mojave > stays black though.
  • The DSDT-patch that did the best trick is "has=dsdt-ami-8_series_hdmi_audio.txt" (it's a laptop-patch) alongside with setting igpu to primary in BIOS. But sometimes video/system just crash. Or doesn't wake or doesn't boot. igpu is now recognized in Mojave, second screen works. Don't use Whatevergreen and Clover personalities. Sometimes second screen doesn't work and sometimes primary screen doesn't work > stays black. Have to do reattach cable.
  • Then did some reading on Insanelymac and here about "Tracing back the AMD GPU wakeup issue to its origin" and "Radeons Compatibility Guide - ATI/AMD Graphic Cards". Maybe I shouldn't patch DSDT for IGPU and GFX0 but SSDT-1-SaSsdt.aml. I'm not sure though. The unpatched DSDT (with patchmatic) contains device PEG0.PEGP and GFX0. DSDT.aml shows in External _SB_.PCIE.IGPU.xxx and _SB_.PCIE.PEGP.GFX0.xxx. I'm not sure what this means.

Who is willing to give me some pointers....

I've attached original APCI-tables dumped with Patchmatic. Also included Clover's config.plist.
Do this:
  1. Attach your screens to RX580 (not to the motherboard)
  2. Copy the latest Whatevergreen.kext and Lilu.kext into EFI/CLOVER/kexts/Other
  3. Delete your EFI/CLOVER/ACPI/Patched/*.aml (i.e. your dsdt and ssdt aml files)
  4. Copy the attached jambek2003-MacNB-config.plist to EFI/CLOVER
  5. Reboot and enter BIOS
  6. In BIOS, set the RX580 as the PRIMARY GPU
  7. In BIOS, set the Intel GPU as secondary, or ENABLED (not AUTO).
  8. Save BIOS settings and reboot into Clover Menu
  9. In Clover Menu and hit O (for Options)
  10. arrow down to config->
  11. arrow down to jambek2003-MacNB-config and press enter
  12. arrow down to Return
  13. arrow down to Return (again to ensure new config is used) back to the main Clover menu
  14. Hit Enter to boot.
Whatevergreen will set the following for you:
  • Setup all your ports (2x DP, 2x HDMI and 1xDVI)
  • setup IGPU and GFX0 in the ACPI tables
  • Setup Radeon framebuffer (nothing wrong with it and no need for Orinoco)
The attached config will set the following:
  • Inject Intel=Yes to enable the following settings:
    • IntelGFX to 0x04128086
    • ig-platform-id to 0x04120004 (connectorless)
  • PluginType=Yes to enable proper power management
  • Clean SMBIOS (you can put your own Serial, Board-serial & UUID but it's not necessary for testing)
 

Attachments

  • jambek2003-MacNB-config.plist
    7.7 KB · Views: 281
Do this:
  1. Attach your screens to RX580 (not to the motherboard)
  2. Copy the latest Whatevergreen.kext and Lilu.kext into EFI/CLOVER/kexts/Other
  3. Delete your EFI/CLOVER/ACPI/Patched/*.aml (i.e. your dsdt and ssdt aml files)
  4. Copy the attached jambek2003-MacNB-config.plist to EFI/CLOVER
  5. Reboot and enter BIOS
  6. In BIOS, set the RX580 as the PRIMARY GPU
  7. In BIOS, set the Intel GPU as secondary, or ENABLED (not AUTO).
  8. Save BIOS settings and reboot into Clover Menu
  9. In Clover Menu and hit O (for Options)
  10. arrow down to config->
  11. arrow down to jambek2003-MacNB-config and press enter
  12. arrow down to Return
  13. arrow down to Return (again to ensure new config is used) back to the main Clover menu
  14. Hit Enter to boot.
Whatevergreen will set the following for you:
  • Setup all your ports (2x DP, 2x HDMI and 1xDVI)
  • setup IGPU and GFX0 in the ACPI tables
  • Setup Radeon framebuffer (nothing wrong with it and no need for Orinoco)
The attached config will set the following:
  • Inject Intel=Yes to enable the following settings:
    • IntelGFX to 0x04128086
    • ig-platform-id to 0x04120004 (connectorless)
  • PluginType=Yes to enable proper power management
  • Clean SMBIOS (you can put your own Serial, Board-serial & UUID but it's not necessary for testing)


THANK YOU for your input :wave:

I am going to try your suggestions. I have been running my iGPU set to Auto. I have wondered if there is a difference from Enabled. When I set it to Enabled, I get a reboot loop. It boots so far then reboots. The verbose text is so fast I cannot see what is happening just before the reboot. I am configuring my Gigabyte GA-Z77X-up5 TH. Any thoughts? I notice we have the same exact rig.
 
THANK YOU for your input :wave:

I am going to try your suggestions. I have been running my iGPU set to Auto. I have wondered if there is a difference from Enabled. When I set it to Enabled, I get a reboot loop. It boots so far then reboots. The verbose text is so fast I cannot see what is happening just before the reboot. I am configuring my Gigabyte GA-Z77X-up5 TH. Any thoughts? I notice we have the same exact rig.
I forgot one step: 7a. In BIOS, disable CSM.
 
Do this:
  1. Attach your screens to RX580 (not to the motherboard)
  2. Copy the latest Whatevergreen.kext and Lilu.kext into EFI/CLOVER/kexts/Other
  3. Delete your EFI/CLOVER/ACPI/Patched/*.aml (i.e. your dsdt and ssdt aml files)
  4. Copy the attached jambek2003-MacNB-config.plist to EFI/CLOVER
  5. Reboot and enter BIOS
  6. In BIOS, set the RX580 as the PRIMARY GPU
  7. In BIOS, set the Intel GPU as secondary, or ENABLED (not AUTO).
  8. Save BIOS settings and reboot into Clover Menu
  9. In Clover Menu and hit O (for Options)
  10. arrow down to config->
  11. arrow down to jambek2003-MacNB-config and press enter
  12. arrow down to Return
  13. arrow down to Return (again to ensure new config is used) back to the main Clover menu
  14. Hit Enter to boot.
Whatevergreen will set the following for you:
  • Setup all your ports (2x DP, 2x HDMI and 1xDVI)
  • setup IGPU and GFX0 in the ACPI tables
  • Setup Radeon framebuffer (nothing wrong with it and no need for Orinoco)
The attached config will set the following:
  • Inject Intel=Yes to enable the following settings:
    • IntelGFX to 0x04128086
    • ig-platform-id to 0x04120004 (connectorless)
  • PluginType=Yes to enable proper power management
  • Clean SMBIOS (you can put your own Serial, Board-serial & UUID but it's not necessary for testing)


Thank You. Yes, I have done that previously. Here is where I am now. I tried setting iGPU to enable in BIOS and got a reboot loop. So I decided to chose another drive and start a fresh install to try a few things. I set iGPU back to Enabled, 512M, Max. Install went wonderfully and I show both Graphics cards in System Report. All was good until Multibeast. Downloaded 11.0.1 and I have just received an error while building. Screen shot attached. Digging in, not sure where the log is. Don't know if you have seen this one. I may go back and try 11.0.0.

SCRATCH THAT: Found the log. Don't know what that stuff about Volumes/Google Chrome is about. Rebooted, all went fine.
 

Attachments

  • Screen Shot 2018-12-07 at 9.50.35 PM.png
    Screen Shot 2018-12-07 at 9.50.35 PM.png
    79.3 KB · Views: 156
  • Screen Shot 2018-12-07 at 10.12.34 PM.png
    Screen Shot 2018-12-07 at 10.12.34 PM.png
    117.5 KB · Views: 132
Last edited:
Well Bummer. After MultiBeast install I went back into reboot loop with iGPU enabled in BIOS. I had to change it back to Auto to boot. I wonder if it is some sort of clover issue? Anyone with any thoughts? Booted fine and showed both Graphics Adapters in System Report before MultiBeast 11.0.1 install. Is the verbose output from the boot screen recorded anywhere? It goes by too fast to catch.

Currently working on the GA-Z77x-UP5 TH in my signature.
 
Well Bummer. After MultiBeast install I went back into reboot loop with iGPU enabled in BIOS. I had to change it back to Auto to boot. I wonder if it is some sort of clover issue? Anyone with any thoughts? Booted fine and showed both Graphics Adapters in System Report before MultiBeast 11.0.1 install. Is the verbose output from the boot screen recorded anywhere? It goes by too fast to catch.

Currently working on the GA-Z77x-UP5 TH in my signature.
Confused you with OP and you should really start your own thread.
Those steps and specially that config.plist file does NOT apply to your system.

I do not use multibeast and prefer to configure my system manually (more control of what I am doing and understanding how things work).

If you have the same motherboard as I have (GA-Z77X-UP5 TH) with i7-3770K, then it's straight forward to get Mojave working.
I am using a stable modded BIOS (attached) for many years.

When you say "boot reloop", are you booting in verbose mode ?
If not, then most likely, the os is panicking and rebooting.
You should use the -v debug=x100 boot flags which will halt on panic to allowing you to see what was the last steps in the boot and then take a picture.

You can try my config.plist attached in the EFI directory (based on Clover r4769). I have my own DSDT.aml and SSDT's for SATA and HDMI audio.
The easiest way to test my EFI is to copy it OVER the Installer USB drive's EFI, boot off that USB and select your mojave HD.
 

Attachments

  • F12JmZ77.rom.zip
    3.9 MB · Views: 80
  • MacNB-Z77X-EFI.zip
    1.9 MB · Views: 98
Confused you with OP and you should really start your own thread.
Those steps and specially that config.plist file does NOT apply to your system.

I do not use multibeast and prefer to configure my system manually (more control of what I am doing and understanding how things work).

If you have the same motherboard as I have (GA-Z77X-UP5 TH) with i7-3770K, then it's straight forward to get Mojave working.
I am using a stable modded BIOS (attached) for many years.

When you say "boot reloop", are you booting in verbose mode ?
If not, then most likely, the os is panicking and rebooting.
You should use the -v debug=x100 boot flags which will halt on panic to allowing you to see what was the last steps in the boot and then take a picture.

You can try my config.plist attached in the EFI directory (based on Clover r4769). I have my own DSDT.aml and SSDT's for SATA and HDMI audio.
The easiest way to test my EFI is to copy it OVER the Installer USB drive's EFI, boot off that USB and select your mojave HD.


THANK YOU!! New thread here: https://www.tonymacx86.com/threads/...-reboot-issue-rebootloop.267095/#post-1868928
 
Confused you with OP and you should really start your own thread.
Those steps and specially that config.plist file does NOT apply to your system.

Thread hi-jack:crazy:

Actually I left my hack for several weeks for what is was; case opened and ditched in the corner. Getting hackintosh with Mojave is a big pain. I'll try your config.plist this weekend. Anyway thanks in advance.
 
Do this:
  1. Attach your screens to RX580 (not to the motherboard)
  2. Copy the latest Whatevergreen.kext and Lilu.kext into EFI/CLOVER/kexts/Other
  3. Delete your EFI/CLOVER/ACPI/Patched/*.aml (i.e. your dsdt and ssdt aml files)
  4. Copy the attached jambek2003-MacNB-config.plist to EFI/CLOVER
  5. Reboot and enter BIOS
  6. In BIOS, set the RX580 as the PRIMARY GPU
  7. In BIOS, set the Intel GPU as secondary, or ENABLED (not AUTO).
  8. Save BIOS settings and reboot into Clover Menu
  9. In Clover Menu and hit O (for Options)
  10. arrow down to config->
  11. arrow down to jambek2003-MacNB-config and press enter
  12. arrow down to Return
  13. arrow down to Return (again to ensure new config is used) back to the main Clover menu
  14. Hit Enter to boot.
Whatevergreen will set the following for you:
  • Setup all your ports (2x DP, 2x HDMI and 1xDVI)
  • setup IGPU and GFX0 in the ACPI tables
  • Setup Radeon framebuffer (nothing wrong with it and no need for Orinoco)
The attached config will set the following:
  • Inject Intel=Yes to enable the following settings:
    • IntelGFX to 0x04128086
    • ig-platform-id to 0x04120004 (connectorless)
  • PluginType=Yes to enable proper power management
  • Clean SMBIOS (you can put your own Serial, Board-serial & UUID but it's not necessary for testing)

Okay I've copied jambek2003-MacNB-config.plist to /EFI/EFI/Clover. System booted fine so I renamed it to config.plist
All SSDT's and DSDT in /ACPI/Patched are gone.
I tought "okay let's follow An iDiot's Guide To Lilu and its Plug-ins to the letter", so I ditched all kexts in Kexts/Other except from FakeSMC.
Then installed KextBeast/ Piece of ****. Doesn't install kexts to /Library/Extensions. So after some fiddling...
copied WhateverGreen.kext, Lilu.kext and AppleIntele1000.kext to /Library/Extentions
KextUtility didn't add kexts to the cache. So
Well have to disable SIP in config.plist by setting CsrActiveConfig to 67

Code:
<key>RtVariables</key>
    <dict>
        <key>BooterConfig</key>
        <string>0x28</string>
        <key>CsrActiveConfig</key>
        <string>0x67</string>
        <key>ROM</key>
        <string>UseMacAddr0</string>
    </dict>
Then rebooted, removed kexts from /Library/Extensions and then copied them again because SIP is now disabled.
Then did a 'sudo kextcache -i /'
Okay system is up and running with Lilu, WEG and IntelNIC... Aaaaandddddd.....

It didn't fix the problem. Second screen connected to HDMI is still black. Screen is visible in System Preferences > Monitors. The HP LP2475w is there. It does sometimes make effort to light on but stops then again and goes black.
In System Report > Graphics/Displays only Radeon RX 580 exists. Should headless ig-platform-id completely hide iGPU?

EDIT; HP also has DVI-D port so I tried that one. Let the monitor scan for new input-port it sees as "Active Digital". Again System recognise HP. Input-port DVI1 goes to "No signal" and switches off. During this handshaking procedure of turning the second monitor on system becomes really unresponsive. Seconds-indicator in right top corner freezes for several seconds.

So to summerize; no luck whatsoever. Also first monitor seems te be really laggy. It's like page refresh is back to the 70's
 
Last edited:
Okay I've copied jambek2003-MacNB-config.plist to /EFI/EFI/Clover. System booted fine so I renamed it to config.plist
All SSDT's and DSDT in /ACPI/Patched are gone.
I tought "okay let's follow An iDiot's Guide To Lilu and its Plug-ins to the letter", so I ditched all kexts in Kexts/Other except from FakeSMC.
Then installed KextBeast/ Piece of ****. Doesn't install kexts to /Library/Extensions. So after some fiddling...
copied WhateverGreen.kext, Lilu.kext and AppleIntele1000.kext to /Library/Extentions
KextUtility didn't add kexts to the cache. So
Well have to disable SIP in config.plist by setting CsrActiveConfig to 67

Code:
<key>RtVariables</key>
    <dict>
        <key>BooterConfig</key>
        <string>0x28</string>
        <key>CsrActiveConfig</key>
        <string>0x67</string>
        <key>ROM</key>
        <string>UseMacAddr0</string>
    </dict>
Then rebooted, removed kexts from /Library/Extensions and then copied them again because SIP is now disabled.
Then did a 'sudo kextcache -i /'
Okay system is up and running with Lilu, WEG and IntelNIC... Aaaaandddddd.....

It didn't fix the problem. Second screen connected to HDMI is still black. Screen is visible in System Preferences > Monitors. The HP LP2475w is there. It does sometimes make effort to light on but stops then again and goes black.
In System Report > Graphics/Displays only Radeon RX 580 exists. Should headless ig-platform-id completely hide iGPU?

EDIT; HP also has DVI-D port so I tried that one. Let the monitor scan for new input-port it sees as "Active Digital". Again System recognise HP. Input-port DVI1 goes to "No signal" and switches off. During this handshaking procedure of turning the second monitor on system becomes really unresponsive. Seconds-indicator in right top corner freezes for several seconds.

So to summerize; no luck whatsoever

I never use kext utilities, I always install manually using terminal (that way I know what is happening).
Now you system is up, post your EFI folder (without the themes folder), IOREG file, list of kexts in /Library/Extensions, and the output of kextstat command.
 
Status
Not open for further replies.
Back
Top