Contribute
Register

Guide How to Patch AMD Framebuffers for High Sierra using Clover

Status
Not open for further replies.
Sorry, I have updated build signature. And just in case it didn’t update.

CPU: i5 4460
MB: Asus z97m-plus
GPU: diamond radeon 7850
OS: Sierra 10.12.4

I’m not sure if you just wanted the rom file, but I have also attached both radeon & redsock BIOS codes. I also found the original vBIOS from techpowerup database that is exactly for my GPU. Please let me know if I need to upload anything else. Thanks.

Code:
ATOM BIOS Rom:
    SubsystemVendorID: 0x1787 SubsystemID: 0x2320
    IOBaseAddress: 0x0000
    Filename: C40304A1.005
    BIOS Bootup Message:
D2307JBA.HH2 860E/1200M 2GB 256BIT                                
    
PCI ID: 1002:6819
Connector at index 0
    Type [@offset 44804]: DisplayPort (10)
    Encoder [@offset 44808]: INTERNAL_UNIPHY2 (0x21)
    i2cid [@offset 44914]: 0x90, OSX senseid: 0x1
    HotPlugID: 4
Connector at index 1
    Type [@offset 44814]: DisplayPort (10)
    Encoder [@offset 44818]: INTERNAL_UNIPHY2 (0x21)
    i2cid [@offset 44941]: 0x91, OSX senseid: 0x2
    HotPlugID: 5
Connector at index 2
    Type [@offset 44824]: HDMI-A (11)
    Encoder [@offset 44828]: INTERNAL_UNIPHY1 (0x20)
    i2cid [@offset 44968]: 0x92, OSX senseid: 0x3
    HotPlugID: 1
Connector at index 3
    Type [@offset 44834]: DVI-I (2)
    Encoder [@offset 44838]: INTERNAL_UNIPHY (0x1e)
    i2cid [@offset 45005]: 0x95, OSX senseid: 0x6
    HotPlugID: 6
Connector at index 4
    Type [@offset 44844]: DVI-I (2)
    Encoder [@offset 44848]: INTERNAL_KLDSCP_DAC1 (0x15)
    i2cid [@offset 45005]: 0x95, OSX senseid: 0x6
    HotPlugID: 6

Code:
C40304A1.005:

D2307JBA.HH2 860E/1200M 2GB 256BIT                                
    
Subsystem Vendor ID: 1787
       Subsystem ID: 2320
Object Header Structure Size: 360
Connector Object Table Offset: 48
Router Object Table Offset: 0
Encoder Object Table Offset: fd
Display Path Table Offset: 12
Connector Object Id [19] which is [DISPLAY_PORT]
    encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x12 [duallink 0x2] enc 0x4)] linkb: false
Connector Object Id [19] which is [DISPLAY_PORT]
    encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x22 [duallink 0x2] enc 0x5)] linkb: true
Connector Object Id [12] which is [HDMI_TYPE_A]
    encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x11 [duallink 0x1] enc 0x2)] linkb: false
Connector Object Id [2] which is [DVI_I]
    encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false
Connector Object Id [2] which is [DVI_I]
    encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false

Problem reporting files are incomplete. Missing IOReg and Clover folder omitting themes. Also you need to be extracting the rom file. Don't try to do this method with a rom you download unless you flashed the vBios with that rom.
 
Problem reporting files are incomplete. Missing IOReg and Clover folder omitting themes. Also you need to be extracting the rom file. Don't try to do this method with a rom you download unless you flashed the vBios with that rom.

Gotcha. I'm not sure if i am uploading the rom correctly because when i try to upload the rom file by upload file, it says does not have allowed extension. So I used dropbox.
 

Attachments

  • IOreg.ioreg
    4 MB · Views: 210
  • CLOVER.zip
    1.3 MB · Views: 144
Gotcha. I'm not sure if i am uploading the rom correctly because when i try to upload the rom file by upload file, it says does not have allowed extension. So I used dropbox.

Ok to start with what symptoms are you experiencing? I noticed right off that the framebuffer matched is the RadeonFramebuffer and not the one you are injecting via clover. Are you certain that this is the correct config.plist your system is using? Have you installed clover in legacy mode and UEFI mode? According to the IOReg you posted you don't even have a display connected to the Radeon graphics card. If you did it would show up even if the display was black. Also did you even try to follow the guide? I ask because there is no AMD7000Controller.kext in the kexttopatch section of the config.plist. There is a very simple template to add your constructed code to in the guide. Follow the guide very carefully.
 
Ok to start with what symptoms are you experiencing? I noticed right off that the framebuffer matched is the RadeonFramebuffer and not the one you are injecting via clover. Are you certain that this is the correct config.plist your system is using? Have you installed clover in legacy mode and UEFI mode? According to the IOReg you posted you don't even have a display connected to the Radeon graphics card. If you did it would show up even if the display was black. Also did you even try to follow the guide? I ask because there is no AMD7000Controller.kext in the kexttopatch section of the config.plist. There is a very simple template to add your constructed code to in the guide. Follow the guide very carefully.

The symptoms i am experienceing is a black screen freeze with applpe logo tear. I the have to then hard reset with power button. This happens when my secondary monitor is connected via DVID during boot.
I did a fresh install of clover UEFI only. I originally came from el capitan which used chameleon booter at the time. That is the only config.plist file i know of unless something else got transferred from my time mcahine migration from when i had el capitan.
Right now, i have unpluggged the DVID cable from my GPU because of black screen apple logo freeze on boot. I am currently only booting off integrated intel graphics setting my primary display to CPU in asus bios.
My L/E shows i have an AMD7000controller kext that i installed using kext beast.
I basically removed the information i had from clover configuration under kexttopatch because it wasn't working. Hope this makes sense.
 
The symptoms i am experienceing is a black screen freeze with applpe logo tear. I the have to then hard reset with power button. This happens when my secondary monitor is connected via DVID during boot.
I did a fresh install of clover UEFI only. I originally came from el capitan which used chameleon booter at the time. That is the only config.plist file i know of unless something else got transferred from my time mcahine migration from when i had el capitan.
Right now, i have unpluggged the DVID cable from my GPU because of black screen apple logo freeze on boot. I am currently only booting off integrated intel graphics setting my primary display to CPU in asus bios.
My L/E shows i have an AMD7000controller kext that i installed using kext beast.
I basically removed the information i had from clover configuration under kexttopatch because it wasn't working. Hope this makes sense.

Ok so you need to restore your system to it's native state for any methods here to work for you. So remove that kext from /L*/E* and if you've modified the original AMD7000Controller.kext in /S*/L*/E*/ rerun the installer to restore it to it's original state. Then in the UEFI/BIOS setting set iGPU to primary with multi monitor enabled and CSM enabled. Then try with this config.plist. Also verify that you don't have Clover installed both legacy and UEFI mode bot searching the root of your disk for an EFI folder for legacy mode. If it don't work for you I will need new problem reporting files.
 

Attachments

  • config.plist
    11.6 KB · Views: 385
Ok so you need to restore your system to it's native state for any methods here to work for you. So remove that kext from /L*/E* and if you've modified the original AMD7000Controller.kext in /S*/L*/E*/ rerun the installer to restore it to it's original state. Then in the UEFI/BIOS setting set iGPU to primary with multi monitor enabled and CSM enabled. Then try with this config.plist. Also verify that you don't have Clover installed both legacy and UEFI mode bot searching the root of your disk for an EFI folder for legacy mode. If it don't work for you I will need new problem reporting files.

OK. I have deleted the kext from L/E and haven't modified the original 7000 kext in S/L/E at all. So i copied 7000 kext from S/L/E to desktop and installed to L/E using kextbeast.
My asus BIOS settings has cpu as primary display with multiple monitor support enabled and CSM already enabled. I don't see any other EFI folder besides the one when i mount via clover configurator. I only see a EFI backup folder in my root disk but thats about it.
I copied over your config into my mounted clover folder, but still resulted in a frozen screen. I have attached another IoReg file from safe mode that has my display attached to GPU if it helps.
 

Attachments

  • IOreg2.ioreg
    3.4 MB · Views: 170
  • IMG_20171106_171515.jpg
    IMG_20171106_171515.jpg
    956.4 KB · Views: 245
OK. I have deleted the kext from L/E and haven't modified the original 7000 kext in S/L/E at all. So i copied 7000 kext from S/L/E to desktop and installed to L/E using kextbeast.
My asus BIOS settings has cpu as primary display with multiple monitor support enabled and CSM already enabled. I don't see any other EFI folder besides the one when i mount via clover configurator. I only see a EFI backup folder in my root disk but thats about it.
I copied over your config into my mounted clover folder, but still resulted in a frozen screen. I have attached another IoReg file from safe mode that has my display attached to GPU if it helps.

There is no need in installing a native kext to a location that it is not native to. Remove AMD7000Controller.kext from /L*/E*/ . You don’t need to install any kexts for this process to work. We are patching the binary on the fly at boot time via clover. To give the kext the proper connector data for your card. Also is this a single monitor setup? Or multiple monitors?If it is a single monitor setup you may need to hotplug to the dedicated graphics card from the integrated graphics card when the Apple logo appears to freeze. This is really meant for multiple monitors. But you can do it like blind booting. Also problem reporting files are incomplete need clover folder.
 
There is no need in installing a native kext to a location that it is not native to. Remove AMD7000Controller.kext from /L*/E*/ . You don’t need to install any kexts for this process to work. We are patching the binary on the fly at boot time via clover. To give the kext the proper connector data for your card. Also is this a single monitor setup? Or multiple monitors?If it is a single monitor setup you may need to hotplug to the dedicated graphics card from the integrated graphics card when the Apple logo appears to freeze. This is really meant for multiple monitors. But you can do it like blind booting. Also problem reporting files are incomplete need clover folder.

Sorry, I misread and deleted the kext from L/E (still froze). And yes, this is a multi monitor setup. I just wanted to show what was happening on the monitor connected to integrated intel graphics because the secondary monitor connected to radeon is just a black screen when the freeze happens. I have attached clover folder.
 

Attachments

  • CLOVER.zip
    1.3 MB · Views: 130
Sorry, I misread and deleted the kext from L/E (still froze). And yes, this is a multi monitor setup. I just wanted to show what was happening on the monitor connected to integrated intel graphics because the secondary monitor connected to radeon is just a black screen when the freeze happens. I have attached clover folder.
Ok so I noticed you were not injecting Intel with ig-platform-id which should be 0x0d220003 for haswell systems so give this config.plst a try. This time we will try patching the Futomaki framebuffer for the AMD graphics card. Also as always if it doesn't work I will need new problem reporting files. And if it does work please provide feedback that it does.
 

Attachments

  • config.plist
    12 KB · Views: 283
Ok so I noticed you were not injecting Intel with ig-platform-id which should be 0x0d220003 for haswell systems so give this config.plst a try. This time we will try patching the Futomaki framebuffer for the AMD graphics card. Also as always if it doesn't work I will need new problem reporting files. And if it does work please provide feedback that it does.

I tried with the current config and still froze. I have reinstalled Sierra and everything is native to start on a clean slate. In addition, I have tried your two edited config.plist with my fresh install with no success as well.
Below is current clover folder (fresh install) with your previous config.plist edit. I have attached my untouched clover config.plist from my fresh install. I also uploaded a new copy of Ioreg from fresh install just in case it helps.
Another symptom I wanted to mention is that when I plug my second monitor through DVID on radeon while computer has booted successfully from only IGPU, it begins to lag and then freezes right away. Thanks again.
 

Attachments

  • CLOVER.zip
    2.3 MB · Views: 130
  • config (fresh install).plist
    6.5 KB · Views: 295
  • IOREG (clean install).ioreg
    4.2 MB · Views: 284
Status
Not open for further replies.
Back
Top