Contribute
Register

Guide How to Patch AMD Framebuffers for High Sierra using Clover

Status
Not open for further replies.
Hiya friends, I have a MSI RX480 Gaming X 8GB (2x DP, 2x HDMI, 1x DVI-D) but the DisplayPorts won't do anything. I've been digging through these framebuffer topics, but I'm stuck regardless whether option I input, the card works fine except for the DP ports. This is on 10.13.6

Code:
Hack-Pro:ATI hans$ /Users/hans/Desktop/ATI/radeon_bios_decode < /Users/hans/Desktop/ATI/rx480.rom
ATOM BIOS Rom:
    SubsystemVendorID: 0x1462 SubsystemID: 0x3413
    IOBaseAddress: 0x0000
    Filename: 06s.r01   
    BIOS Bootup Message:
113-MSITV341MH.154                                                         

PCI ID: 1002:67df
Connector at index 0
    Type [@offset 40760]: DisplayPort (10)
    Encoder [@offset 40764]: INTERNAL_UNIPHY2 (0x21)
    i2cid [@offset 40870]: 0x90, OSX senseid: 0x1
Connector at index 1
    Type [@offset 40770]: DisplayPort (10)
    Encoder [@offset 40774]: INTERNAL_UNIPHY2 (0x21)
    i2cid [@offset 40897]: 0x92, OSX senseid: 0x3
Connector at index 2
    Type [@offset 40780]: HDMI-A (11)
    Encoder [@offset 40784]: INTERNAL_UNIPHY1 (0x20)
    i2cid [@offset 40924]: 0x91, OSX senseid: 0x2
Connector at index 3
    Type [@offset 40790]: HDMI-A (11)
    Encoder [@offset 40794]: INTERNAL_UNIPHY1 (0x20)
    i2cid [@offset 40951]: 0x93, OSX senseid: 0x4
Connector at index 4
    Type [@offset 40800]: DVI-D (3)
    Encoder [@offset 40804]: INTERNAL_UNIPHY (0x1e)
    i2cid [@offset 40978]: 0x95, OSX senseid: 0x6
Hack-Pro:ATI hans$ /Users/hans/Desktop/ATI/radeon_bios_decode_fork < /Users/hans/Desktop/ATI/rx480.rom
ATOM BIOS Rom:
    SubsystemVendorID: 0x1462 SubsystemID: 0x3413
    IOBaseAddress: 0x0000
    Filename: 06s.r01   
    BIOS Bootup Message:
113-MSITV341MH.154                                                         

PCI ID: 1002:67df
Connector at index 0
    Type [@offset 40760]: DisplayPort (10)
    Encoder [@offset 40764]: INTERNAL_UNIPHY2 (0x21)
    i2cid [@offset 40870]: 0x90, OSX senseid: 0x1
    HotPlugID: 6
Connector at index 1
    Type [@offset 40770]: DisplayPort (10)
    Encoder [@offset 40774]: INTERNAL_UNIPHY2 (0x21)
    i2cid [@offset 40897]: 0x92, OSX senseid: 0x3
    HotPlugID: 4
Connector at index 2
    Type [@offset 40780]: HDMI-A (11)
    Encoder [@offset 40784]: INTERNAL_UNIPHY1 (0x20)
    i2cid [@offset 40924]: 0x91, OSX senseid: 0x2
    HotPlugID: 1
Connector at index 3
    Type [@offset 40790]: HDMI-A (11)
    Encoder [@offset 40794]: INTERNAL_UNIPHY1 (0x20)
    i2cid [@offset 40951]: 0x93, OSX senseid: 0x4
    HotPlugID: 5
Connector at index 4
    Type [@offset 40800]: DVI-D (3)
    Encoder [@offset 40804]: INTERNAL_UNIPHY (0x1e)
    i2cid [@offset 40978]: 0x95, OSX senseid: 0x6
    HotPlugID: 3

Hack-Pro:~ hans$ /Users/hans/Desktop/ATI/redsock_bios_decoder < /Users/hans/Desktop/ATI/rx480.rom
06s.r01     :

113-MSITV341MH.154                                                         

Subsystem Vendor ID: 1462
       Subsystem ID: 3413
Object Header Structure Size: 350
Connector Object Table Offset: 48
Router Object Table Offset: 0
Encoder Object Table Offset: fb
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 [12] which is [HDMI_TYPE_A]
    encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x21 [duallink 0x1] enc 0x3)] linkb: true
Connector Object Id [4] which is [DVI_D]
    encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false

From this I made the following Orinoco FB patch:

Code:
00040000 04030000 00010000 00000000 12040601 00000000
00040000 04030000 00010000 00000000 22050403 00000000
00080000 04020000 00010000 00000000 11020102 00000000
00080000 04020000 00010000 00000000 21030504 00000000
04000000 14020000 00010000 00000000 10000306 00000000

It doesn't seem to matter whether I inject any properties, or use Whatevergreen.kext, or even inject ATI besides RadeonDeinit, the result is the same.

Screens, connectors, and cables are tested and working on Windows the the rest of the machine:
X299-Deluxe
i9-7900X
32GB DDR3-3000

2x HP E231 1080p (DVI or DP, testing HDMI with DVI<>HDMI adapter).


Hope I supplied the right information for a pro to figure this out :)
 

Attachments

  • CLOVER.zip
    1.5 MB · Views: 108
  • DCPIMan.png
    DCPIMan.png
    81.6 KB · Views: 323
  • ioreg.ioreg
    5.9 MB · Views: 195
  • rx480.rom.zip
    44.1 KB · Views: 99
Hope I supplied the right information for a pro to figure this out
Try this slightly modified version of your config.plist :
 

Attachments

  • config.plist
    26.5 KB · Views: 231
@P1LGRIM Thank you!

I had exactly the same framebuffer patch before, but didn't see a change. I'm sure I must have set one of the Graphics sections flags wrong at that point, so I missed my chance.

Cheers!
 
@P1LGRIM Thank you!

I had exactly the same framebuffer patch before, but didn't see a change. I'm sure I must have set one of the Graphics sections flags wrong at that point, so I missed my chance.

Cheers!
I didn't change any patches.
 
Can anyone help me out? I followed the guide (thank you) and have my custom port configuration all set-up. I can patch any of the framebuffers and they work for my system, the issue is the color depth in High Sierra. I am getting color banding, bad gradients, my system info reports 24-Bit Color. It's a mobile amd card, R9 375x, using Buri framebuffer with custom port patching:
0004 0000 0403 0000 0000 0100 0000 0000 2205 0404 0000 0000 eDP
0004 0000 0403 0000 0000 0200 0000 0000 1102 0101 0000 0000 DP
0004 0000 0403 0000 0000 0300 0000 0000 2103 0202 0000 0000 DP
0004 0000 0403 0000 0000 0400 0000 0000 1204 0303 0000 0000 DP

I have been looking around for hours trying to find a resolution.. but can't seem to fix it. Any help would be awesome! I am not using Lilu or whatevergreen; I am just using verde.kext for the cape verde power gating fix.
 
Thanks for a great guide!
I finally got my eGPU (STRIX gaming RX-580 with orinoco FB and custom connectors layout) working somewhat - showing a screen.

The issue I have is that after about 20s of login, the screen goes blank and powers down. Not sure what might be causing that issue. Anyone have any thoughts?
 
Thanks for a great guide!
I finally got my eGPU (STRIX gaming RX-580 with orinoco FB and custom connectors layout) working somewhat - showing a screen.

The issue I have is that after about 20s of login, the screen goes blank and powers down. Not sure what might be causing that issue. Anyone have any thoughts?
Are you using the eGPU over usb type-c thunderbolt 3? It's possible power management isn't setup correctly. I just know that the thunderbolt usbs are configured differently then the normal usbs by mac.
 
@firebat Yes - I am. Do you know of how they are configured? I'll start digging down that path now :)
 
@firebat Yes - I am. Do you know of how they are configured? I'll start digging down that path now :)
Honestly I wouldn't know where to start :C Is it a desktop or a laptop? I haven't been able to get usb-c on my laptop working, but on desktops they work fine for me. I would just post in either the desktop or laptop forum that you're having power issues over usb-c and maybe Rehabman can help you out. He is a legend! :D
 
Status
Not open for further replies.
Back
Top