Contribute
Register

Guide How to Patch AMD Framebuffers for High Sierra using Clover

Status
Not open for further replies.
Yes both can work together on desktop systems but not in laptops. This is not a lilu and WhateverGreen support thread. So ditch them and start with post one of this thread. Read it fully in its entirety to gain a full understanding of the process, may need to read it a couple times. I will look at you attached files when I reach my machine. Currently on mobile
Okay, how further?
 

Attachments

  • Bildschirmfoto 2018-02-13 um 20.26.28.png
    Bildschirmfoto 2018-02-13 um 20.26.28.png
    1.1 MB · Views: 283
Hi,

Thank you so much for this guide.

I tried all step you mentioned but my sapphire 7970 vapor x ghz edition 3gb has different outputs than others =/

1xdp, 1xhdmi, 1xdvi_d, 1xdvi_i

decoder and decedo

Code:
Tahiti B0 XT2 C38620 GDDR5 3GB 500e/150m                                 

Subsystem Vendor ID: 1002
       Subsystem ID: 3000
Object Header Structure Size: 384
Connector Object Table Offset: 48
Router Object Table Offset: 0
Encoder Object Table Offset: 118
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 [12] which is [HDMI_TYPE_A]
    encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x22 [duallink 0x2] enc 0x5)] linkb: true
Connector Object Id [4] which is [DVI_D]
    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


Code:
ATOM BIOS Rom:
    SubsystemVendorID: 0x1002 SubsystemID: 0x3000
    IOBaseAddress: 0x0000
    Filename: 21030CH0.V4B
    BIOS Bootup Message:
Tahiti B0 XT2 C38620 GDDR5 3GB 500e/150m                                 

PCI ID: 1002:6798
Connector at index 0
    Type [@offset 45420]: DisplayPort (10)
    Encoder [@offset 45424]: INTERNAL_UNIPHY2 (0x21)
    i2cid [@offset 45538]: 0x90, OSX senseid: 0x1
    HotPlugID: 5
Connector at index 1
    Type [@offset 45430]: HDMI-A (11)
    Encoder [@offset 45434]: INTERNAL_UNIPHY2 (0x21)
    i2cid [@offset 45565]: 0x93, OSX senseid: 0x4
    HotPlugID: 1
Connector at index 2
    Type [@offset 45440]: DVI-D (3)
    Encoder [@offset 45444]: INTERNAL_UNIPHY1 (0x20)
    i2cid [@offset 45592]: 0x92, OSX senseid: 0x3
    HotPlugID: 6
Connector at index 3
    Type [@offset 45450]: DVI-I (2)
    Encoder [@offset 45454]: INTERNAL_UNIPHY (0x1e)
    i2cid [@offset 45629]: 0x95, OSX senseid: 0x6
    HotPlugID: 3
Connector at index 4
    Type [@offset 45460]: DVI-I (2)
    Encoder [@offset 45464]: INTERNAL_KLDSCP_DAC1 (0x15)
    i2cid [@offset 45629]: 0x95, OSX senseid: 0x6
    HotPlugID: 3

and i tried the make code construction

Code:
12040501 dp
22050104 hdmi
11020603 dvi
10000306 dvi

Could you please help me for last step.
 
Last edited:
I have followed this guide to create a connector layout that matches my MSI Radeon RX 560 video card. For some reason, when I put the patch in the config file, the system does not boot. I see the Apple logo and the progress bar reaches almost to the end but it never completes the boot. I used the Acre framebuffer as it matches my video card.

Code:
Acre (3) @ 0x622e0
DP, HDMI, DVI-D
000400000403000000010101000000001102020100000000
000800000402000000010200000000002103050400000000
040000000402000000010300000000000000030500000000

Here's my modified framebuffer:

Code:
000400000403000000010100000000001102020100000000
000800000402000000010200000000002103050400000000
040000001402000000010300000000001000030500000000

I created an entry for AMD9500Controller. Under Find, I put in the original framebuffer and under Replace I put the modified one.

Code:
<dict>
                <key>Comment</key>
                <string>MSI Radeon RX 560 Connector Patch</string>
                <key>Disabled</key>
                <false/>
                <key>Find</key>
                <data>
                AAQAAAQDAAAAAQEBAAAAABECAgEAAAAAAAgAAAQCAAAA
                AQIAAAAAACEDBQQAAAAABAAAAAQCAAAAAQMAAAAAAAAA
                AwUAAAAA
                </data>
                <key>Name</key>
                <string>AMD9500Controller</string>
                <key>Replace</key>
                <data>
                AAQAAAQDAAAAAQEAAAAAABECAgEAAAAAAAgAAAQCAAAA
                AQIAAAAAACEDBQQAAAAABAAAABQCAAAAAQMAAAAAABAA
                AwUAAAAA
                </data>
            </dict>

When I copy the framebuffer in Clover Configurator, should there be any spaces between 8 digit numbers? I also enabled ATI, selected Acre and RadeonDeInit.
 
Hi, I would like to buy this card using dual dvi port.
https://www.asus.com/us/Graphics-Cards/R9270XDC2T4GD5/

I read the guide, but don't understand at all.
What's the process for using it in dual monitor?
I don't find any framebuffer in 7000.kext with the same output, what to do?

Thanks, and excuse my noobing.
 
Why does running decoder in terminal result in this mess:
Code:
php /Users/gytisbanys/Desktop/redsock_bios_decoder
????3p
      ?P3?
          ????
              P?8__PAGEZERO?__TEXT  __text__TEXT??
??__cstring__TEXT,*?,__symbol_stub__TEXT?.$?__stub_helper__TEXT?.H??__unwind_info__TEXT0/X0__eh_frame__TEXT?/t?
                               `?__DATA0 __program_vars__DATA0 __nl_symbol_ptr__DATA0 __la_symbol_ptr__DATA$0$
__data__DATA<0< __common__DATAL8__LINKEDIT@0p"?00@@0P?0?D1?2?
                                                             P

    @2
          /usr/lib/dyld^{&:???    ߯d?P?
                                    4    /usr/lib/libstdc++.6.dylib
                                                                  4
}/usr/lib/libSystem.B.dylibj???????]?$??L$????ˉ\?????u??\$
                                                          ?
                                                           ?$?????U??WVS??|?[?$????b?D?D$?$???6??D$
                   ?D?D$??b?$???fH=??v??B
?$??$?[??b?E??@HE??E??p??d
?U??E???׹?t
?F??O?)ȅ?t??i
?U??B$??
     E??D$???
?}??G?D$???
?G?D$???
??b?E??x ??G0???D$???
?F?D$???
??D$??
?F    ?$?^
?D$??"
?F?D$??F?H
?G0?b?VЉE??v?uԀ8???E??E???f
                           ?U????
                                 ?M????
                                       ?}???h?E???m?U???s?M????
                                                               ?}??E؋UЍD?E??@E؋U???E??\?r?????|$?E??$?
                      ??????????????&9L_r???????$4DT???
                                                       ?$?
                                                         ????
                                                             ?$??
                                                                 ?s???
                                                                      ?$??
                                                                          ?`???
                                                                               ?$??
   ?M???
        ?$?
           ?:???
                ?$?
                   ?'???
                        ?$?
                           ????
                               ?$?
                                  ????
                                      ?$?p
                                          ?????
                                               ?$?]
                                                   ?????
                                                        ?$?J
                                                            ?????
                                                                 ?$?7
                                                                     ????
                                                                         ?$?$
                                                                             ????
?$?
    ????
        ?$??
????
    ?$??
?o???
     ?$??
?_???
     ?$??
?O???
     ?$?
?????
     ?$?
?/???
     ?$?
????
    ?$?
??|$?M??
        $?}
?}??<$?r
?E??P????????????E????U???.?M??}?E??Tx????%p??
                                              <?????҉UĉT$?M??
                                                             $?
??%?<???lj??!?b?MċU????????????
                              2EXk~??????)<Obu????????
                                                      ?$?H    ????
                                                                    ?$?5    ???
  ?$?"    ???,
            ?$?    ???;
                    ?$??y??I
                            ?$??f??W
                                    ?$??S??f
                                            ?$??@??u
                                                    ?$?-??|
                                                           ?$????
                                                                 ?$????
                                                                       ?$??????
                                                                               ?$??????
       ?$??????
               ?$?????
                      ?$?????
                             ?$????
                                   ?$????
                                         ?$???o???
?$??5????҃????"??????D?T$?E??$??                   ?$???\??
                               ?U??$?~???ɋE?DE??D$?}??<$?d?M??E?E??P????????9??????E܋U??;E??o??????|[^_??U??WVS???[???t????$????t????$??????t????$???t????$???t????$??? t????$???@t????$?x?ƀt????$?b??t????$?L??t????$?6??t????$? ?t????$?
??t????$?????t????$????t????$????"t????$???[^_??uhhh, u sure that is an AtomBIOS?ATOMATOM signature not found%s:
Subsystem Vendor ID: %x
       Subsystem ID: %x
Object Header Structure Size: %d
Connector Object Table Offset: %x
Router Object Table Offset: %x
Encoder Object Table Offset: %x
Display Path Table Offset: %x
Connector Object Id [%d] which is [NONEDVI_IDVI_DVGACTVSTVDINSCARTHDMI_TYPE_AHDMI_TYPE_BLVDSDISPLAY_PORTEDP(unknown)]
    encoder obj id [0x%x] which is [INTERNAL_LVDSINTERNAL_TMDS1INTERNAL_TMDS2INTERNAL_DAC1INTERNAL_DAC2INTERNAL_SDVOAINTERNAL_SDVOBSI170BCH7303CH7301INTERNAL_DVO1EXTERNAL_SDVOAEXTERNAL_SDVOBTITFP513INTERNAL_LVTM1VT1623HDMI_SI1930HDMI_INTERNALINTERNAL_KLDSCP_TMDS1INTERNAL_KLDSCP_DVO1INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)INTERNAL_KLDSCP_DAC2SI178MVPU_FPGAINTERNAL_DDIVT1625HDMI_SI1932DP_AN9801DP_DP501INTERNAL_UNIPHY (osx txmit 0x%x [duallink 0x0] enc 0x%x)INTERNAL_KLDSCP_LVTMAINTERNAL_UNIPHY1 (osx txmit 0x%x [duallink 0x1] enc 0x%x)INTERNAL_UNIPHY2 (osx txmit 0x%x [duallink 0x2] enc 0x%x)truefalse] linkb: %s
CRT1 LCD1 TV1 DFP1 CRT2 LCD2 DFP6 DFP2 CV DFP3 DFP4 DFP5 CRT DFP TV LCD ?%$0?%(0?%,0?%00?%40?%80h0?%0?h?????h
                             ?????h?????h'?????hC?????h5???? $ <<?<
                                                                   ?,)zPR??
                                                                           ?( 0????<0@0D0H0?.?.//$//@___gxx_personality_v0Qr?@___stdinp?@dyld_stub_binderr?r$@_exit?r(@_fread?r,@_malloc?r0@_memset?r4@_printf?r8@_puts?_
                                                         startu_5mainzNXArg?environ?rom_image?mh_execute_headerqZ21output_device_supportt_progname????1c?v??@?@?@?@?@_len??@?.0
<0
@0'?(C
H0Oc
D0l?r
     L0}
        P0???????????@@
  stub helpers_pvars_NXArgc_NXArgv__Z21output_device_supportt___progname__mh_execute_header_environ_main_rom_image_rom_image_lenstart___gxx_personality_v0___stdinp_exit_fread_malloc_memset_printf_putsdyld_stub_binder?????
                                                             ??H__PAGEZERO(__TEXT  __text__TEXT?
?__symbol_stub1__TEXT?*?__cstring__TEXT?__stub_helper__TEXT?V??__unwind_info__TEXT`__eh_frame__TEXTp?p
                      `?__DATA  __program_vars__DATA ( __nl_symbol_ptr__DATA(  ( __la_symbol_ptr__DATAH 8H
                           __data__DATA?  ? __common__DATA?
                                                            H__LINKEDIT00?"?00@@0`?0?X13?
         P


?2
   /usr/lib/dyld    ?QQq???k?̽K??j?*
                                       8    /usr/lib/libstdc++.6.dylib
                                                                          8
}/usr/lib/libSystem.B.dylibjH??H???H?H?u??????H?H???H?H?9u?H????
?UH??AWAVAUATSH??(??
H??H?#???r
H??H???@
????=??vH?=N
?C
??
H???CHL?$I?|$?H?5A
?
??tH?=6
?
???    A?t$
            H?43H?=/
???    A?|$H=h??    A?t$H?=

??    A?t$H?=
??    H?.E?d$ I?A?D$0H??3H?=?    ??l    ?sH?=
??W    ?H?=
??B    ?s
H?=+
??-    ?sH?=>
??    A?D$0H??SH?H?E??[?]Ȁ8?I?E?A?H??H?E?HcE?H?U?L?,A?EE?A?E?E???A?]D??D??H?=????=??H?    Hc?H???Xn?????4J`v??????H?=?    ???H?=p    ??H?=Z    ????H?=J    ????H?=4    ???xH?=$    ???bH?=    ???LH?=    ??}?6H?=??g? H?=??Q?
H?=??;??H?=??%??H?=????H?=????H?=????H?=????H?=???sH????`H?=????MH?=??~?:H?=??k?'H?=???X?D??H???BH?=???1A?U???????????^A?C?T?ډ?%p??
                                                   <?A????H?=??????%?<??A??!??A??H?
   Hc?H?????????
                "8Ndz??????*@Vl??????ATzH?=????H?=?????H?=??????H?=??????H?=????H?=????H?=????H?=???}?yH?=???g?cH?=???Q?MH?=???;?7H?=???%?!H?=????
                                                                  H?=??????H?=y?????H?=l?????H?=e???H?=V???H?=L???H?=D??u?qH?=D??_?[H?=G??I?EH?=a??3?/H?=`???H?=P???H?=D?????H?=;?????H?=,?????H?="???H?=??????????? ?????H?=???q?pH?=??^?]????????!??҃?H?=??8?7????????"??҃?H?=(???H?=??????H?5<H?:HD?H?=5???A?NI??A?U????????9??????A??H?U??D9???????H??([A\A]A^A_??UH??ATS????tH?=???s??tH?=???]I??A??tH?=???C?tH?=???-??tH?=????? tH?=?????@tH?=v?????yH?=g?????tH?=W?????tH?=E????tH?=5???tH?=%??~??tH?=??h???tH?=??OM??tH?=???9??"tH?=???#[A\???%\?%^?%`?%b?%d?%f?%huhhh, u sure that is an AtomBIOS?ATOMATOM signature not found%s:
Subsystem Vendor ID: %x
       Subsystem ID: %x
Object Header Structure Size: %d
Connector Object Table Offset: %x
Router Object Table Offset: %x
Encoder Object Table Offset: %x
Display Path Table Offset: %x
Connector Object Id [%d] which is [NONEDVI_IDVI_DVGACTVSTVDINSCARTHDMI_TYPE_AHDMI_TYPE_BLVDSDISPLAY_PORTEDP(unknown)]
    encoder obj id [0x%x] which is [INTERNAL_LVDSINTERNAL_TMDS1INTERNAL_TMDS2INTERNAL_DAC1INTERNAL_DAC2INTERNAL_SDVOAINTERNAL_SDVOBSI170BCH7303CH7301INTERNAL_DVO1EXTERNAL_SDVOAEXTERNAL_SDVOBTITFP513INTERNAL_LVTM1VT1623HDMI_SI1930HDMI_INTERNALINTERNAL_KLDSCP_TMDS1INTERNAL_KLDSCP_DVO1INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)INTERNAL_KLDSCP_DAC2SI178MVPU_FPGAINTERNAL_DDIVT1625HDMI_SI1932DP_AN9801DP_DP501INTERNAL_UNIPHY (osx txmit 0x%x [duallink 0x0] enc 0x%x)INTERNAL_KLDSCP_LVTMAINTERNAL_UNIPHY1 (osx txmit 0x%x [duallink 0x1] enc 0x%x)INTERNAL_UNIPHY2 (osx txmit 0x%x [duallink 0x2] enc 0x%x)truefalse] linkb: %s
CRT1 LCD1 TV1 DFP1 CRT2 LCD2 DFP6 DFP2 CV DFP3 DFP4 DFP5 CRT DFP TV LCD L?AS?%o?h'?????h5?????hC?????hQ?????h????h
                                  ????h???? $( << <
                                                   Xq??XzPRx??
??? ? ? ? ??????@___gxx_personality_v0Qr(?@___stdinp?@dyld_stub_binder?rH@_exit?rP@_fread?rX@_malloc?r`@_memcmp?rh@_memset?rp@_printf?rx@_puts?_
                                                                startu_5mainzNXArg?environ?rom_image?mh_execute_headerqZ21output_device_supportt_progname????0c?v??A?A?A?A?A_len??A?
?
? 'qC
? Oc
? lXr
     ? }
        ? ???????????
@@  stub helpers_pvars_NXArgc_NXArgv__Z21output_device_supportt___progname__mh_execute_header_environ_main_rom_image_rom_image_lenstart___gxx_personality_v0___stdinp_exit_fread_malloc_memcmp_memset_printf_putsdyld_stub_binderGytiss-iMac:~ gytiGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytGytissGytiss-iMac:GytGytGytGytGytGytGytGytGytGytGytiss-iMGytissGytissGytGytGytGytGytGytGytGytGytGytGytGytGytGyt
 
Last edited:
What do you do if some of your values from redsock and redgate are hex values such as 0xFF ? That isn't a 2 digit number...

What do you do if none of the framebuffers in the kext for your card have enough connectors? Mine has 5 and the AMD8000 kext only has 2 framebuffers and neither are even close?

FYI - my card is a FirePro m6100. It's an MXM card.

Thanks!
 
What do you do if some of your values from redsock and redgate are hex values such as 0xFF ? That isn't a 2 digit number...

What do you do if none of the framebuffers in the kext for your card have enough connectors? Mine has 5 and the AMD8000 kext only has 2 framebuffers and neither are even close?

FYI - my card is a FirePro m6100. It's an MXM card.

Thanks!

AMD9xxxController has many framebuffers with 5 connectors. Maybe you may want to try one of those. Even if the connectors don't match to your card, you can still modify those connectors to match your card.
 
AMD9xxxController has many framebuffers with 5 connectors. Maybe you may want to try one of those. Even if the connectors don't match to your card, you can still modify those connectors to match your card.

I will give it a shot. Thank you.
 
Thanks so much for this amazing guide. I am still digesting all this, but I would be most grateful if anyone could confirm one thing for me:

I am planning to buy a card such as the Asus 7970 DirectCU II which has 2 x DVI + 4 x DP ports. I then hope to use the following 5-monitor config: 3 x DP + DVI + DVI

Could anyone confirm that it should be possible for me to get 5 or 6 working displays on a 7970 which has 6 ports? I am worried that it appears that no reference/standard FrameBuffer has that many ports, at least not a recent one. The only one I can see on the Radeon Compatibility Guide which has 6+ ports is from 5xxx, a "5870 EyeFinity 6". Can I use one that old with a 7970?

EDIT: I've since looked through the 7000 personalities and see several that have six ports, but none with 2 x DVI + 4 x DP. I'm hoping it might be possible to patch to the required config.

However a bigger problem I didn't previously think enough about is the fact that I have no UEFI - I am on an X58/LGA1366 system with Legacy boot and no iGPU. The OP specifically states this is not supported for the patching method, so this may be my biggest problem.

I must say though I still don't fully understand the need for an iGPU in all cases, given that the real MacPro 5.1 uses LGA1366 and had no integrated GPU. It's possible to buy AMD 7XXX cards that specifically state they're for Mac Pros, eg a 7950. And in fact I could buy a refurbed MP 5.1 from a reseller which comes with an AMD RX 560.

So it seems to me that surely iGPU can't be a hard requirement in all cases? Unless this ia difference in Hack vs real Mac.
 
Last edited:
No luck yet with the m6100. Here is a summary of my efforts if anyone has time for a suggestion. Please note the hot plug id of "ff" and the enc value of "0x10?". Very odd to me. If I made the "ff" decimal, it would be 255, and more than 2 digits... :(

spreadsheet_screenshot.png
 
Status
Not open for further replies.
Back
Top