Mork vom Ork Posted October 25, 2017 Share Posted October 25, 2017 I know some of us have same or similar card and working dual monitor setup. It would be of great help if anyone can give me directions to get my setup working. Thanks. Which Framebuffer are you using? Which "AMD9xxxController.kext" will be loaded for your card? If you could give me this information, i could tell you, how to make multimonitor setup working or i could build a "dummy"-kext for you, which will enable multi-monitor setup 1 Link to comment Share on other sites More sharing options...
Mainul Posted October 26, 2017 Share Posted October 26, 2017 Which Framebuffer are you using? Which "AMD9xxxController.kext" will be loaded for your card? If you could give me this information, i could tell you, how to make multimonitor setup working or i could build a "dummy"-kext for you, which will enable multi-monitor setup I was trying to use Orinoco. BUT, I found your suggestion in hackintosh-forum.de (used google translator) and actually made CFG_USE_AGDC to false. For testing, I used WhateverGreen and used SSDT to inject CFG,CFG_USE_AGDC, 0x00 and dual monitor worked. I saw your dummy kext but figured SSDT and WhateverGreen was quicker option for me. To answer your original question: the controller is AMD9500Controller.kext and access is AMDRadeonX4250 - Ellesmere. Thanks for your help. was really desperately looking for the solution and you finally guided me to it. Link to comment Share on other sites More sharing options...
jsl Posted October 28, 2017 Share Posted October 28, 2017 @Mieze It's fantastic work! Confirm working with my Radeon 6450 in Sierra. I just made this patch as SSDT SSDT-AMD.aml.zip Thanks for this trick with SSDT.aml which worked for AMD R9 290X at 10.13.1(17B46a) in which no need of WhateverGreen.kext, but it seems not working at 10.12.6 or lower version in which I still need WhateverGreen.kext in /EFI/CLOVER/kexts/Other or 10.12 respectively. Is there anyone can confirm AMD Radeon HD 5770 or 6870 working by this method too ? Or need rolling back with Sierra's related kexts ? Link to comment Share on other sites More sharing options...
Slice Posted October 29, 2017 Share Posted October 29, 2017 Thanks for this trick with SSDT.aml which worked for AMD R9 290X at 10.13.1(17B46a) in which no need of WhateverGreen.kext, but it seems not working at 10.12.6 or lower version in which I still need WhateverGreen.kext in /EFI/CLOVER/kexts/Other or 10.12 respectively. Is there anyone can confirm AMD Radeon HD 5770 or 6870 working by this method too ? Or need rolling back with Sierra's related kexts ? But vice versa. This SSDT works for me in 10.12.6. For HighSierra I need also to replace 4 kexts from 10.12.6 related to this card. Don't know about radeon 5xxx. It should work without tricks. The method needed for 6xxx and later. 2 Link to comment Share on other sites More sharing options...
jsl Posted October 29, 2017 Share Posted October 29, 2017 But vice versa. This SSDT works for me in 10.12.6. For HighSierra I need also to replace 4 kexts from 10.12.6 related to this card. Don't know about radeon 5xxx. It should work without tricks. The method needed for 6xxx and later. Thanks for your advice & help. In 10.12.6 or lower my Z87/Z97 Intel hackintoshs can boot to desktop with both Intel HD 4600 & AMD Radeon HD 5770 at the same time. In 10.13.1 I must disable Intel HD 4600 at BIOS, otherwise it can not boot to desktop with AMD Radeon HD 5770. In Z97 Intel hackintosh no matter what display card enabled, always got blank screen on wake-up from sleep. There is no such an issue in Z87 Intel hackintosh if Lilu + WhateverGreen are applied. I'll test more with AMD Radeon 6870 & report later to confirm whether this SSDT.aml working or not at 10.12.6 & 10.13.1. Link to comment Share on other sites More sharing options...
Mieze Posted October 29, 2017 Author Share Posted October 29, 2017 Thanks for your advice & help. In 10.12.6 or lower my Z87/Z97 Intel hackintoshs can boot to desktop with both Intel HD 4600 & AMD Radeon HD 5770 at the same time. In 10.13.1 I must disable Intel HD 4600 at BIOS, otherwise it can not boot to desktop with AMD Radeon HD 5770. In Z97 Intel hackintosh no matter what display card enabled, always got blank screen on wake-up from sleep. There is no such an issue in Z87 Intel hackintosh if Lilu + WhateverGreen are applied. I'll test more with AMD Radeon 6870 & report later to confirm whether this SSDT.aml working or not at 10.12.6 & 10.13.1. There is a 95% probability that you have a broken framebuffer configuration (hotplug not working, etc.) and/or wrong BIOS settings. Mieze 1 Link to comment Share on other sites More sharing options...
jsl Posted October 29, 2017 Share Posted October 29, 2017 There is a 95% probability that you have a broken framebuffer configuration (hotplug not working, etc.) and/or wrong BIOS settings. Mieze Thanks for your reminding and what should I fix for this issue ? CLOVER's config.plist or Power management in BIOS ? Link to comment Share on other sites More sharing options...
Mieze Posted October 29, 2017 Author Share Posted October 29, 2017 @jsl: You probably need to inject a framebuffer personality matching your graphics card. Please read the topics about AMD framebuffer edits here on IM. Keep in mind that some framebuffer personalities also select special configuration options. Although I haven't tested this utility thoroughly, it might be worth to give it a try in case you have problems creating a framebuffer patch: https://github.com/JogleLew/amd-framebuffer-utility Good luck! Mieze 2 Link to comment Share on other sites More sharing options...
carlo_67 Posted October 29, 2017 Share Posted October 29, 2017 @:Mieze I tried your patch, with two rx 270x in CrossFirex, but always black screen I tried injectingFB Futomaki and Curacao.romFB Hamachi and Pitcairn.rom,both in Sierra and High SierraMaybe I'm wrong in compiling the Dsdt, but I think the problem is always the connectors my AMD 8350 processor, it has no igpu, I could only, CSM Enable and Legacy GPU sssmy AMD 8350 processor, it has no igpu, I could only, CSM Enable and Legacy GPU my AMD 8350 processor, it has no igpu, I could only, CSM Enable and Legacy GPU Link to comment Share on other sites More sharing options...
Mieze Posted October 29, 2017 Author Share Posted October 29, 2017 @carlo_76: correct! If the framebuffer personality doesn't match your card, you'll end up with a black screen because the display isn't recognized. Also keep in mind that Futomaki might not enable all of your display connecters. In my case only the DP and one of the DVI connectors work but that's more than enough for me. Mieze 1 Link to comment Share on other sites More sharing options...
Si Vis Pacem Posted October 30, 2017 Share Posted October 30, 2017 Try adding the connectors all as hdmi in your dsdt. Even dp screens are usable that way. Works for my R9 390 for which I had to eecode the connectors following VLADs guide before Whatevergreen and now PoweredByMieze. Thank you so much! And „PoweredByMieze“ seriously needs a logo 3 Link to comment Share on other sites More sharing options...
ic005k Posted October 31, 2017 Share Posted October 31, 2017 @Mieze Thanks a lot for this great solution. Does this method work on Legacy BIOS as well or it only applies to UEFI? I have an old GA-EP45-DS3R and a Sapphire 7790 GPU which was working with WheteverGreen and Lilu, but ever since macOS High Sierra it's not working anymore. I get the black screen. Thanks again Looks like no, I tried the G41 motherboard (775 platform) above the HD6450, wake up still black, OSX10.13. Although the patch code can initialize the graphics card, but still can not solve the problem of wake up the black screen. So, for the old motherboard, I may also need to continue to find a solution. 1 Link to comment Share on other sites More sharing options...
Cyberdevs Posted October 31, 2017 Share Posted October 31, 2017 Looks like no, I tried the G41 motherboard (775 platform) above the HD6450, wake up still black, OSX10.13. Although the patch code can initialize the graphics card, but still can not solve the problem of wake up the black screen. So, for the old motherboard, I may also need to continue to find a solution. I hope we can find a solution for older pc rigs. I didn’t have the time to play around with new ideas. Sent from my iPhone using Tapatalk Link to comment Share on other sites More sharing options...
Carpentryplus25 Posted October 31, 2017 Share Posted October 31, 2017 One more confirmed working VisionTek AMD HD 7970 devID 6798 with CSM disabled and iGPU as secondary and using Namako framebuffer with connector patch, Hamachi and Futomaki result in black screen even with connector patch. Sleep working great also. Thanks great work! Link to comment Share on other sites More sharing options...
zxv Posted October 31, 2017 Share Posted October 31, 2017 (edited) Seems to work perfectly for my R9 380X in UEFI boot. No more WhateverGreen needed, no Clover injection used. Using a tweaked ACPI 6.0 compatible SSDT. Could probably be slimmed down further by removing superfluous device properties: /* * Intel ACPI Component Architecture * AML/ASL+ Disassembler version 20170929 (64-bit version) * Copyright (c) 2000 - 2017 Intel Corporation * * Disassembling to symbolic ASL+ operators * * Disassembly of iASLVulVNL.aml, Tue Oct 31 19:55:21 2017 * * Original Table Header: * Signature "SSDT" * Length 0x000002BD (701) * Revision 0x02 * Checksum 0xF3 * OEM ID "APPLE " * OEM Table ID "SSDTAMDG" * OEM Revision 0x00001000 (4096) * Compiler ID "INTL" * Compiler Version 0x20170929 (538380585) */ DefinitionBlock ("", "SSDT", 2, "APPLE ", "SSDTAMDG", 0x00001000) { External (_SB_.PCI0, DeviceObj) External (_SB_.PCI0.PEG0, DeviceObj) External (_SB_.PCI0.PEG0.GFX0, DeviceObj) Scope (\_SB.PCI0.PEG0) { Scope (GFX0) { OperationRegion (PCIB, PCI_Config, Zero, 0x0100) Field (PCIB, AnyAcc, NoLock, Preserve) { Offset (0x10), BAR0, 32, BAR1, 32, BAR2, 64, BAR4, 32, BAR5, 32 } Method (_INI, 0, NotSerialized) // _INI: Initialize { If ((BAR5 == Zero)) { Local0 = BAR2 /* \_SB_.PCI0.PEG0.GFX0.BAR2 */ } Else { Local0 = BAR5 /* \_SB_.PCI0.PEG0.GFX0.BAR5 */ } OperationRegion (GREG, SystemMemory, (Local0 & 0xFFFFFFFFFFFFFFF0), 0x8000) Field (GREG, AnyAcc, NoLock, Preserve) { Offset (0x6800), GENA, 32, GCTL, 32, LTBC, 32, Offset (0x6810), PSBL, 32, SSBL, 32, PTCH, 32, PSBH, 32, SSBH, 32, Offset (0x6848), FCTL, 32, Offset (0x6EF8), MUMD, 32 } FCTL = Zero PSBH = Zero SSBH = Zero LTBC = Zero GENA = One MUMD = Zero } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If ((Arg2 == Zero)) { Return (Buffer (One) { 0x03 // . }) } Return (Package () { "AAPL,slot-name", Buffer () { "Slot-1" }, "@0,AAPL,boot-display", Buffer (One) { 0x00 // . }, "@0,name", Buffer () { "ATY,Lagotto" }, "@1,name", Buffer () { "ATY,Lagotto" }, "@2,name", Buffer () { "ATY,Lagotto" }, "@3,name", Buffer () { "ATY,Lagotto" }, "ATY,VendorID", Buffer () { 0x02, 0x10 // .. }, "ATY,DeviceID", Buffer () { 0x38, 0x69 // 8i }, "model", Buffer () { "AMD Radeon R9 380X" }, "hda-gfx", Buffer () { "onboard-1" } }) } } Device (HDAU) { Name (_ADR, One) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If ((Arg2 == Zero)) { Return (Buffer (One) { 0x03 // . }) } Return (Package () { "layout-id", Buffer () { 0x01, 0x00, 0x00, 0x00 // .... }, "hda-gfx", Buffer () { "onboard-1" } }) } } } } Oh, and thanks Mieze. Edit: Added HDAU device. Edited November 5, 2017 by zxv 1 Link to comment Share on other sites More sharing options...
ic005k Posted November 2, 2017 Share Posted November 2, 2017 I hope we can find a solution for older pc rigs. I didn’t have the time to play around with new ideas. Sent from my iPhone using Tapatalk I used to go back to OSX10.12.6, this patch code can work very well, wake up there is no black screen problem, everything is normal. And the motherboard seems to have nothing to do with the old and new, is 10.13.1 system problems, my HD6450 graphics card in 10.13.1 below is not really driven, it needs 10.12.6 related driver file to supplement the driver, it may be The root of the problem. I will continue to study 10.13.1 HD6450 sleep wake up the black screen problem, I hope to be able to break through. @Mieze This is a great discovery! After my initial verification, this patch code can almost solve all the ATI graphics card to wake up the black screen, the prerequisite is: ATI graphics card must be able to be the normal system driver. Of course, you can also use BAR2 as a judge to identify the card, the code is as follows: If (LEqual (BAR2, Zero)) { Store (BAR5, Local0) } Else { Store (BAR2, Local0) } Thank you again for the ATI graphics card to wake up the black screen of the efforts and contributions! I think WhateverGreen.kext can retire ~ ~ ha ha ~ ~ 3 Link to comment Share on other sites More sharing options...
jalavoui Posted November 4, 2017 Share Posted November 4, 2017 "The Radeon driver's source code tells us that the first display controller engine's registers can be found starting at offset 0x6800" Can u point to source code of this? can't seem to find it. Link to comment Share on other sites More sharing options...
jsl Posted November 4, 2017 Share Posted November 4, 2017 Thanks for your advice & help. In 10.12.6 or lower my Z87/Z97 Intel hackintoshs can boot to desktop with both Intel HD 4600 & AMD Radeon HD 5770 at the same time. In 10.13.1 I must disable Intel HD 4600 at BIOS, otherwise it can not boot to desktop with AMD Radeon HD 5770. In Z97 Intel hackintosh no matter what display card enabled, always got blank screen on wake-up from sleep. There is no such an issue in Z87 Intel hackintosh if Lilu + WhateverGreen are applied. I'll test more with AMD Radeon 6870 & report later to confirm whether this SSDT.aml working or not at 10.12.6 & 10.13.1. In FX-6300 hackintosh with AMD GPU Radeon HD 6870: this trick worked at 10.13.1(17B48), but it got instant reboot at 10.13.2(17C60c) & 10.12GM on wake up from S3 sleep. If booted by Enoch 2905 and Lilu/WhateverGreen.kext in /S/L/E at 10.12.6 it can wake up from S3 sleep without blank screen issue. But not working by Clover 4243 yet (still got blank screen on wake up from sleep). Link to comment Share on other sites More sharing options...
Mieze Posted November 4, 2017 Author Share Posted November 4, 2017 "The Radeon driver's source code tells us that the first display controller engine's registers can be found starting at offset 0x6800" Can u point to source code of this? can't seem to find it. Here you are: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/gpu/drm/radeon/evergreen_reg.h?h=next-20171103 Mieze Link to comment Share on other sites More sharing options...
Tusskan Posted November 4, 2017 Share Posted November 4, 2017 anyone would love to share his compiled aml of R9 290X? I'd like to try this new method. Link to comment Share on other sites More sharing options...
Mieze Posted November 4, 2017 Author Share Posted November 4, 2017 In FX-6300 hackintosh with AMD GPU Radeon HD 6870: this trick worked at 10.13.1(17B48), but it got instant reboot at 10.13.2(17C60c) & 10.12GM on wake up from S3 sleep. If booted by Enoch 2905 and Lilu/WhateverGreen.kext in /S/L/E at 10.12.6 it can wake up from S3 sleep without blank screen issue. But not working by Clover 4243 yet (still got blank screen on wake up from sleep). There is a 99% probability that the reason for this behavior lies somewhere else, maybe a broken DSDT, a BIOS issue, incorrect connector patch, etc. Mieze 1 Link to comment Share on other sites More sharing options...
Si Vis Pacem Posted November 4, 2017 Share Posted November 4, 2017 did u try booting into single user mode and rm /S/L/PrelinkedKernels/prelinkedkernel touch /S/L/E kextcache -u / and rebooting? Link to comment Share on other sites More sharing options...
jsl Posted November 5, 2017 Share Posted November 5, 2017 (edited) There is a 99% probability that the reason for this behavior lies somewhere else, maybe a broken DSDT, a BIOS issue, incorrect connector patch, etc. Mieze Thanks for your advice and help. Booted by Clover 4289 in FX-6300 hackintosh the instant reboot issue on wake up from sleep can be fixed by put FakeSMC.kext (3.5.0), Lilu (1.2.1), & WhateverGreen (1.1.2) in /S/L/E instead of EFI/CLOVER/kexts/Other at 10.10.5(14F1807), 10.11.6(15G1004), 10.12GM & 10.12.6 (16G1036), but not worked yet at 10.13.2 (17C60c). Only booted by Enoch 2905 can fix this issue at 10.13.2 up to now. [Edit] Booted by Clover 4288/4289 in Intel Z87 hackintosh the instant reboot issue on wake up from sleep can be fixed by put FakeSMC.kext (3.5.0), Lilu (1.2.1), & WhateverGreen (1.1.2) in /S/L/E instead of EFI/CLOVER/kexts/Other at 10.13.2(17C60c) at last ! However it is Not always working. Sometimes OK, most times failed. Need better solution ! Edited November 5, 2017 by jsl Link to comment Share on other sites More sharing options...
xtddd Posted November 5, 2017 Share Posted November 5, 2017 Just want to confirm, that Miezes patch from first post is working on my config as well. IGPU and CSM completely disabled in BIOS. just have to make some "preperations" to make a tripple-monitor-setup working and some cosmetic changes as well, as already Matthew82 has documented. So now, i no longer nee LILU and WhatEverGreen kexts. Thanx for another incredible work. Love it. Makes my Hackintosh so much easier. hi,how to let clover to apply this patch? Link to comment Share on other sites More sharing options...
Cyberdevs Posted November 5, 2017 Share Posted November 5, 2017 Another confirmation, after couple of days spending the time to figuring out what's what, I finally managed to activate my Sapphire Radeon HD 7790 with the DSDT patch that @Mieze found and a big thanks to her I didn't inject anything (No InjectATI, no framebuffer or Ati Connectors Controller) via my config.plist. Scope (_SB.PCI0.PEGP.GFX0) { Device (GFX0) { Name (_ADR, Zero) // _ADR: Address OperationRegion (PCIB, PCI_Config, Zero, 0x0100) Field (PCIB, AnyAcc, NoLock, Preserve) { Offset (0x10), BAR0, 32, BAR1, 32, BAR2, 64, BAR4, 32, BAR5, 32 } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Store (Package (0x1A) { "AAPL,slot-name", Buffer (0x07) { "Slot-1" }, "@0,name", Buffer (0x0B) { "ATY,Baladi" }, "@1,name", Buffer (0x0B) { "ATY,Baladi" }, "@2,name", Buffer (0x0B) { "ATY,Baladi" }, "@3,name", Buffer (0x0B) { "ATY,Baladi" }, "ATY,Card#", Buffer (0x11) { "113-1E253120-O46" }, "ATY,Copyright", Buffer (0x25) { "© 1988-2017, AMD Technologies Inc." }, "ATY,Rom#", Buffer (0x36) { "C58203 Bonaire XT A1 GDDR5 1GB 64Mx32 300e/150m" }, "ATY,VendorID", Buffer (0x02) { 0x02, 0x10 }, "ATY,DeviceID", Buffer (0x02) { 0x5C, 0x66 }, "device_type", Buffer (0x11) { "ATY,BaladiParent" }, "model", Buffer (0x1B) { "HD 7790 Sapphire Dual-X OC" }, "hda-gfx", Buffer (0x0A) { "onboard-1" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Method (_INI, 0, NotSerialized) // _INI: Initialize { If (LEqual (BAR5, Zero)) { Store (BAR2, Local0) } Else { Store (BAR5, Local0) } OperationRegion (GREG, SystemMemory, And (Local0, 0xFFFFFFFFFFFFFFF0), 0x8000) Field (GREG, AnyAcc, NoLock, Preserve) { Offset (0x6800), GENA, 32, GCTL, 32, LTBC, 32, Offset (0x6810), PSBL, 32, SSBL, 32, PTCH, 32, PSBH, 32, SSBH, 32, Offset (0x6848), FCTL, 32, Offset (0x6EF8), MUMD, 32 } Store (Zero, FCTL) Store (Zero, PSBH) Store (Zero, SSBH) Store (Zero, LTBC) Store (One, GENA) Store (Zero, MUMD) } } Device (HDAU) { Name (_ADR, One) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Store (Package (0x02) { "hda-gfx", Buffer (0x0A) { "onboard-1" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } OperationRegion (DGFX, PCI_Config, Zero, 0xF0) Field (DGFX, DWordAcc, Lock, Preserve) { Offset (0x0B), LNKV, 8 } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x09, 0x04)) } } Thanks to @Matthew82's R9 290X settings because my 7790 is working well with Baladi farmebuffer I just edited the essential information for my GPU. The only thing is that this patch only worked on my Asus P8H77-L ME which has UEFI support but still no luck on my GA-EP45-DS3R. There is no PEGP or GFX in the DSDT and I don't know what was used on older pc BIOS's ACPI tables to address the GPU. CSM is enabled and Boot from PCIe/PCI Expansion Devices is set to legacy. Thanks again for this solution Link to comment Share on other sites More sharing options...
Recommended Posts