Jump to content

[HOW TO] Modification of AMD FB + Clover injection


Vlada.
 Share

397 posts in this topic

Recommended Posts

So as you can tell I have been doing alot of research and trying different things and I still can not get my R9 290x 8Gb DP and HDMI to work while using the Baladi framebuffer, below is what I have so far any suggestions?

 

282X08E0.OU4:

 

C67101 Hawaii XT A0 GDDR5 8GB 128Mx32 300e/150m                             

 

Subsystem Vendor ID: 174b

       Subsystem ID: e282

Object Header Structure Size: 271

Connector Object Table Offset: 3e

Router Object Table Offset: 0

Encoder Object Table Offset: ce

Display Path Table Offset: 12

 

Connector Object Id [19] which is [DISPLAY_PORT] (10)

encoder obj id [0x21] 0x90 which is [iNTERNAL_UNIPHY2 (osx txmit 0x12 [duallink 0x2] enc 0x4)] linkb: false senseid: 0x1

 

Connector Object Id [12] 0x92 which is [HDMI_TYPE_A] (11)

encoder obj id [0x21] 0x93 which is [iNTERNAL_UNIPHY2 (osx txmit 0x22 [duallink 0x2] enc 0x5)] linkb: true senseid: 0x3

 

Connector Object Id [4] which is [DVI_D] (3)

encoder obj id [0x20] 0x95 which is [iNTERNAL_UNIPHY1 (osx txmit 0x11 [duallink 0x1] enc 0x2)] linkb: false senseid: 0x4

 

Connector Object Id [4] which is [DVI_D] (3)

encoder obj id [0x1e] which is [iNTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false senseid: 0x6

 

PCI ID: 1002:67b0

Connector at index 0

Type [@offset 42502]: DisplayPort (10)

Encoder [@offset 42506]: INTERNAL_UNIPHY2 (0x21)

i2cid [@offset 42594]: 0x90, OSX senseid: 0x1

Connector at index 1

Type [@offset 42512]: HDMI-A (11)

Encoder [@offset 42516]: INTERNAL_UNIPHY2 (0x21)

i2cid [@offset 42621]: 0x92, OSX senseid: 0x3

Connector at index 2

Type [@offset 42522]: DVI-D (3)

Encoder [@offset 42526]: INTERNAL_UNIPHY1 (0x20)

i2cid [@offset 42648]: 0x93, OSX senseid: 0x4

Connector at index 3

Type [@offset 42532]: DVI-D (3)

Encoder [@offset 42536]: INTERNAL_UNIPHY (0x1e)

i2cid [@offset 42675]: 0x95, OSX senseid: 0x6

 

ConnectorType:

Connector Type DVIDL 0 × 00000004 = 04 00 00 00 Note: Dual Link DVI

Connector Type DP = 0 × 00000400 00 04 00 00

Connector Type HDMI 0 × 00000800 = 00 08 00 00

Connector Type DVISL 0 × 00000200 = 00 02 00 00 Note: Single Link DVI

ATY, ControlFlags:

Connector Type DP 04 03 00 00

Connector Type HDMI 04 02 00 00

Connector Type DVIDL 14 02 00 00

Connector Type_DVISL 04 02 00 00

Features:

1st Pair:

0 × 0200: DVI 0x00 = 00

0 × 0400: Display Port 0 × 00 = 00

0 × 0800: HDMI 0 × 00 = 00

Second Pair:

Use Internal * 0 × 01 = 01

Use RGB YUV On 0 × 04 = 04

Use Backlight * 0 × 08 = 08

Backlight Inverted 0 × 10 = 10

Use Clamshell 0 × 20 = 20

Third Pair:

01 = first active connector

02 = second active connector

03 = third active connector

etc. ...

 

 

Kext /System/Library/Extensions/AMD8000Controller.kext/Contents/MacOS/AMD8000Controller

Personality: Exmoor

ConnectorInfo count in decimal: 4

Disk offset in decimal 1685792

02  00  00  00  00  01  00  00  00  01  01  03  22  05  02  02

02  00  00  00  00  01  00  00  00  01  02  03  12  04  01  01

00  04  00  00  04  03  00  00  00  01  03  07  11  02  03  03

00  04  00  00  04  03  00  00  00  01  04  07  21  03  04  04

 

Personality: Baladi

ConnectorInfo count in decimal: 6

Disk offset in decimal 1686112

00  04  00  00  04  03  00  00  00  01  03  00  12  04  03  03

00  04  00  00  04  03  00  00  00  01  01  00  11  02  01  01

00  04  00  00  04  03  00  00  00  01  02  00  21  03  02  02

00  04  00  00  04  03  00  00  00  01  04  00  22  05  04  04

00  04  00  00  04  03  00  00  00  01  05  00  10  00  05  05

00  04  00  00  04  03  00  00  00  01  06  00  20  01  06  06

 

01 [DISPLAY_PORT] 

redsock_bios_decoder :

enc obj 0x21 transmitter 0x12 dual link 0x2 enc 0x4

radeon_bios_decode:

Connector at index 0

Type [@offset 43522]: DisplayPort (10)

Encoder [@offset 43526]: INTERNAL_UNIPHY2 (0x21) 

i2cid [@offset 43632]: 0x90, OSX senseid: 0x1

 

12 04 01 01

 

02 [HDMI_TYPE_A]

redsock_bios_decoder:

encoder obj 0x21 txmit 0x22 duallink 0x2 enc 0x5

radeon_bios_decoder:

Connector at index 1

Type [@offset 42512]: HDMI-A (11)

Encoder [@offset 42516]: INTERNAL_UNIPHY2 (0x21)

i2cid [@offset 42621]: 0x92, OSX senseid: 0x3

 

22 05 02 03

 

03 [DVI_D]

redsock_bios_decoder:

encoder obj id 0x20 txmit 0x11 duallink 0x1 enc 0x2

radeon_bios_decoder:

Connector at index 2

Type [@offset 42522]: DVI-D (3)

Encoder [@offset 42526]: INTERNAL_UNIPHY1 (0x20)

i2cid [@offset 42648]: 0x93, OSX senseid: 0x4

 

11  02  03  04

 

04 [DVI_D]

redsock_bios_decoder:

encoder obj id 0x1e txmit 0x10 duallink 0x0 enc 0x0

radeon_bios_decoder:

Connector at index 3

Type [@offset 42532]: DVI-D (3)

Encoder [@offset 42536]: INTERNAL_UNIPHY (0x1e)

i2cid [@offset 42675]: 0x95, OSX senseid: 0x6

 

10  00  04  06

 

Original Output:

00  04  00  00  04  03  00  00  00  01  03  00  12  04  03  03

00  04  00  00  04  03  00  00  00  01  01  00  11  02  01  01

00  04  00  00  04  03  00  00  00  01  02  00  21  03  02  02

00  04  00  00  04  03  00  00  00  01  04  00  22  05  04  04

00  04  00  00  04  03  00  00  00  01  05  00  10  00  05  05

00  04  00  00  04  03  00  00  00  01  06  00  20  01  06  06

 

Edited Output:

00  04  00  00  04  03  00  00  00  01  00  00  12  04  01  01 <—Displayport

00  08  00  00  04  02  00  00  00  01  00  00  22  05  02  03 <—HDMI

04  00  00  00  14  02  00  00  00  01  00  00  11  02  03  04 <—DVI-D

04  00  00  00  14  02  00  00  00  01  00  00  10  00  04  06 <—DVI2

Link to comment
Share on other sites

  • 2 weeks later...

There is only 2 framebuffers in the 10.10.3 AMD8000Controller.kext Exmour and Baladi, the info.plist has the device id already in it, so can't use any other framebuffers besides the one in AMD8000Controller.kext

Link to comment
Share on other sites

Hi Vlada, can u check my edited kext :( i cannot boot into yosemite with HDMI. Thanks so much :( My VGA's Asus R9 270 (ID: 0x6811)

 

FB Futomaki

Original

00040000040300000001010112040401

00040000040300000001020122050502

04000000140200000001030000000606

00080000040200000001040011020103

My Patch (I dont know right or wrong??)

00040000040300000001000012040101

00020000040200000001000010000306

04000000140200000001000011020505

00080000040200000001000022050402

 

Redsock

Subsystem Vendor ID: 1043

       Subsystem ID: 48d

Object Header Structure Size: 355

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 [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 [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

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

Radeon

ATOM BIOS Rom:

         SubsystemVendorID: 0x1043 SubsystemID: 0x048d

         IOBaseAddress: 0x0000

         Filename: as03oc.bin

         BIOS Bootup Message:

6811HB.15.39.0.1.AS03                                                      

PCI ID: 1002:6811

Connector at index 0

         Type [@offset 43540]: DisplayPort (10)

         Encoder [@offset 43544]: INTERNAL_UNIPHY2 (0x21)

         i2cid [@offset 43650]: 0x90, OSX senseid: 0x1

Connector at index 1

         Type [@offset 43550]: HDMI-A (11)

         Encoder [@offset 43554]: INTERNAL_UNIPHY2 (0x21)

         i2cid [@offset 43677]: 0x91, OSX senseid: 0x2

Connector at index 2

         Type [@offset 43560]: DVI-I (2)

         Encoder [@offset 43564]: INTERNAL_UNIPHY (0x1e)

         i2cid [@offset 43714]: 0x95, OSX senseid: 0x6

Connector at index 3

         Type [@offset 43570]: DVI-I (2)

         Encoder [@offset 43574]: INTERNAL_KLDSCP_DAC1 (0x15)

         i2cid [@offset 43714]: 0x95, OSX senseid: 0x6

Connector at index 4

         Type [@offset 43580]: DVI-D (3)

         Encoder [@offset 43584]: INTERNAL_UNIPHY1 (0x20)

         i2cid [@offset 43741]: 0x94, OSX senseid: 0x5

Link to comment
Share on other sites

Great and very comprehensive tutorial !!

 

Many thanks, Vlada.

 

 

Here is for an old but not expansive Sapphire HD6450 1Gb (10.10.2):

 

01 HDMI-A

redsock_bios_decoder :

enc obj 0x20 transmitter 0x21 dual link 0x1 enc 0x3

 

radeon_bios_decode:

Connector at index 0

Type [@offset 44526]: HDMI-A (11)

Encoder [@offset 44530]: INTERNAL_UNIPHY1 (0x20)

i2cid [@offset 44600]: 0x91, OSX senseid: 0x2

 

Code construction: 21 03 01 02

 

 

02 DVI-D

redsock_bios_decoder :

enc obj 0x1e transmitter 0x10 dual link 0x0 enc 0x0

 

radeon_bios_decode:

Connector at index 1

Type [@offset 44536]: DVI-D (3)

Encoder [@offset 44540]: INTERNAL_UNIPHY (0x1e)

i2cid [@offset 44627]: 0x93, OSX senseid: 0x4

 

Code construction: 10 00 02 04

 

 

03 VGA

redsock_bios_decoder :

enc obj 0x15 transmitter 0x00  enc 0x10?

 

radeon_bios_decode:

Connector at index 2

Type [@offset 44546]: VGA (1)

Encoder [@offset 44550]: INTERNAL_KLDSCP_DAC1 (0x15)

i2cid [@offset 44654]: 0x90, OSX senseid: 0x1

 

Code construction: 00 10 03 01

 

 

Duckweed original (HDMI OK - no DVI)

0000000    00  04  00  00  04  03  00  00  00  01  00  00  12  04  04  01 /DP

0000010    00  04  00  00  04  03  00  00  00  01  00  00  22  05  05  02 /DP

0000020    00  08  00  00  04  02  00  00  00  01  00  00  11  02  03  04 /HDMI

0000030    00  02  00  00  14  02  00  00  00  01  00  00  00  00  06  05 /DVI SL

Duckweed modded (DVI OK - no HDMI)

0000000    04  00  00  00  14  02  00  00  00  01  00  00  10  00  02  04 /DVI DL

0000010    00  04  00  00  04  03  00  00  00  01  00  00  22  05  05  02

0000020    00  08  00  00  04  02  00  00  00  01  00  00  21  03  01  02 /HDMI

0000030    00  02  00  00  14  02  00  00  00  01  00  00  00  00  06  05

Duckweed modded and swap line 2-3 (DVI & HDMI OK)

0000000    04  00  00  00  14  02  00  00  00  01  00  00  10  00  02  04 /DVI DL

0000010    00  08  00  00  04  02  00  00  00  01  00  00  21  03  01  02 /HDMI

0000020    00  04  00  00  04  03  00  00  00  01  00  00  22  05  05  02

0000030    00  02  00  00  14  02  00  00  00  01  00  00  00  00  06  05

  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...

Great and very comprehensive tutorial !!

 

Many thanks, Vlada.

 

 

Here is for an old but not expansive Sapphire HD6450 1Gb (10.10.2):

 

01 HDMI-A

redsock_bios_decoder :

enc obj 0x20 transmitter 0x21 dual link 0x1 enc 0x3

 

radeon_bios_decode:

Connector at index 0

Type [@offset 44526]: HDMI-A (11)

Encoder [@offset 44530]: INTERNAL_UNIPHY1 (0x20)

i2cid [@offset 44600]: 0x91, OSX senseid: 0x2

 

Code construction: 21 03 01 02

 

 

02 DVI-D

redsock_bios_decoder :

enc obj 0x1e transmitter 0x10 dual link 0x0 enc 0x0

 

radeon_bios_decode:

Connector at index 1

Type [@offset 44536]: DVI-D (3)

Encoder [@offset 44540]: INTERNAL_UNIPHY (0x1e)

i2cid [@offset 44627]: 0x93, OSX senseid: 0x4

 

Code construction: 10 00 02 04

 

 

03 VGA

redsock_bios_decoder :

enc obj 0x15 transmitter 0x00  enc 0x10?

 

radeon_bios_decode:

Connector at index 2

Type [@offset 44546]: VGA (1)

Encoder [@offset 44550]: INTERNAL_KLDSCP_DAC1 (0x15)

i2cid [@offset 44654]: 0x90, OSX senseid: 0x1

 

Code construction: 00 10 03 01

 

 

Duckweed original (HDMI OK - no DVI)

0000000    00  04  00  00  04  03  00  00  00  01  00  00  12  04  04  01 /DP

0000010    00  04  00  00  04  03  00  00  00  01  00  00  22  05  05  02 /DP

0000020    00  08  00  00  04  02  00  00  00  01  00  00  11  02  03  04 /HDMI

0000030    00  02  00  00  14  02  00  00  00  01  00  00  00  00  06  05 /DVI SL

Duckweed modded (DVI OK - no HDMI)

0000000    04  00  00  00  14  02  00  00  00  01  00  00  10  00  02  04 /DVI DL

0000010    00  04  00  00  04  03  00  00  00  01  00  00  22  05  05  02

0000020    00  08  00  00  04  02  00  00  00  01  00  00  21  03  01  02 /HDMI

0000030    00  02  00  00  14  02  00  00  00  01  00  00  00  00  06  05

Duckweed modded and swap line 2-3 (DVI & HDMI OK)

0000000    04  00  00  00  14  02  00  00  00  01  00  00  10  00  02  04 /DVI DL

0000010    00  08  00  00  04  02  00  00  00  01  00  00  21  03  01  02 /HDMI

0000020    00  04  00  00  04  03  00  00  00  01  00  00  22  05  05  02

0000030    00  02  00  00  14  02  00  00  00  01  00  00  00  00  06  05

You should try the below because replacing the areas the sense id matches makes more sense:

 

00  04  00  00  04  03  00  00  00  01  00  00  12  04  04  01 /DP

00  08  00  00  04  02  00  00  00  01  00  00  21  03  01  02 /HDMI

04  00  00  00  14  02  00  00  00  01  00  00  10  00  02  04 /DVI DL

00  02  00  00  14  02  00  00  00  01  00  00  00  00  06  05 /DVI SL

Link to comment
Share on other sites

  • 3 weeks later...

Small correction for HDMI.

 

According to the reference material that I was using for this guide, original control flag for HDMI should be 0x0200 or inverted and translated in to FB code it should be 0002.

 

I didn't notice that till now, but It seems that I was forgot to switch 0402 in to 0002 for HDMI control flag in this example. Sorry guys...

  • Like 1
Link to comment
Share on other sites

Hi Vlada.
 
The attachments from the first post are not available to download. Could you reattach them? 
 
All i got when trying to get them is: 
 

Oops! Something went wrong!
 
[#10173]
We could not find the attachment you were attempting to view.

 

 

Edit:

 

I found your post here:

https://www.hackintosh.rs/t/modifikovanje-amd-drajvera-clover-injector/301

and used downloads from that location.

Link to comment
Share on other sites

Well, everything seems fine in your case, hmm... 
 
It might be important how did you make connectors code order or did you or not inserted specific values in the code which defines activation order (check red marked digits)

 
00 04 00 00 04 03 00 00 00 01 04 01 12 04 01 01 - DP
00 02 00 00 04 02 00 00 00 01 01 01 10 00 03 06 - DVI-I
04 00 00 00 14 02 00 00 00 01 02 00 11 02 05 05 - DVI-D
00 08 00 00 04 02 00 00 00 01 03 00 22 05 02 03 - HDMI


If you switch these values to zero, each connector will be activated automatically, but I think that this also might cause conflicts in certain situations.

 

But that's not all... You should know that some parts in code have alternatives.

 
Per example, for second set of 8 digits (ControlFlags) you can use next values:
 
0×0002 : LVDS   ControlFlag : 0×0040 and 0×0100
0×0004 : DVI    ControlFlag : 0×0016, 0×0014, and 0×214
0×0010 : VGA    ControlFlag : 0×0010 
0×0080 : S-Video ControlFlag : 0×0002
0×0200 : DVI    ControlFlag : 0×0014, 0×0214, and 0×0204
0×0400 : DisplayPort  ControlFlag : 0×0100, 0×0104, 0×0304, 0×0604, and 0×0400 
0×0800 : HDMI  ControlFlag : 0×0200
0×1000 : DVI  ControlFlag : 0×0016
 
The code from here is written inverted in FB code. Per example for DP I was using 0×0304 and in FB code should be 0403. That one should be ok, but just in case you can check others too...
 
And here is reference material for transmitter code:
 
UNIPHY    0×00 = 00
UNIPHY1   0×01 = 01
UNIPHY2   0×02 = 02
DUALLINK  0×00 = 00  = LINKA + LINKB
LINKA     0×10 = 10
LINKB     0×20 = 20
UNIPHYA   0×10 = 10  = UNIPHY:LINKA
UNIPHYB   0×20 = 20  = UNIPHY:LINKB
UNIPHYAB  0×00 = 00  = UNIPHY:DUALLINK
UNIPHYC   0×11 = 11  = UNIPHY1:LINKA
UNIPHYD   0×21 = 21  = UNIPHY1:LINKB
UNIPHYCD  0×01 = 01  = UNIPHY1:DUALLINK
UNIPHYE   0×12 = 12  = UNIPHY2:LINKA
UNIPHYF   0×22 = 22  = UNIPHY2:LINKB
UNIPHYEF  0×02 = 02  = UNIPHY2:DUALLINK
DACA      0×00 = 00
DACB      0×10 = 10
 

You can also try to find additional explanation from rampagedev

 

Hopefully, you will find solution. Good luck!  :)

 
Link to comment
Share on other sites

I had a perfect 10.10.2 yosemite setup but after this "stupid" 10.10.3 my system dosent work over Display Port (black screen) but system loads. I have AMD r270x. I'm using HDMI now and it work's. I need DP because my DELL u3415w doesnt support 60Hz over HDMI at 3440x1440 :( On 10.10.2 it was working just fine over DVI, HDMI, DP all ports. 

 

So I think they have changed something in ATIConnectorsData. What are the new values? Can i use clover to patch ATIConnectorsData back to ones that work for me in 10.10.2 (default ones were - 00040000040300000001010112040401000400000403000000010201220505020400000014020000000103000000060600080000040200000001040011020103 ... correct??) 

 

So I need to :

<key>ATIConnectorsData</key>
<string>"new values from 10.10.3" - can you tell me please what these are??</string>
<key>ATIConnectorsPatch</key>
<string>00040000040300000001010112040401000400000403000000010201220505020400000014020000000103000000060600080000040200000001040011020103 (orginal values from 10.10.2 becouse DP worked on them no problem with my card)</string>
 
I'm thinking right?? Or better is it possible to patch kext files 10.10.3 to values that worked for me in 10.10.2 ? (but i don't know how to do this:))
 
Link to comment
Share on other sites

Thx I'll try them all, I didn't think to try the alternatives

 

Here is a IOREG with both DVIs working

https://www.dropbox.com/s/6a0kwzd6o9o2qqo/Henry%E2%80%99s%20iMac.ioreg?dl=0

 

@Pavo

 

I think that you have problem with order.

 

In your case

 

FB Baladi@0 - port-number 0x1

FB Baladi@1 - port-number 0x0

FB Baladi@2 - port-number 0x3

FB Baladi@3 - port-number 0x5

FB Baladi@4 - port-number 0x2

 

In my case

 

FB Futomaki@0 - port-number 0x0

FB Futomaki@1 - port-number 0x1

FB Futomaki@2 - port-number 0x2

FB Futomaki@3 - port-number 0x3

 

You should try to match that...

 

-------------------------------------------------------------------

 

@gonzolak

 

You can translate FB code in to binary patch and basically apply it via terminal.

 

Here is example how:

 

You will need to separate two digits by two and to add in front of them \x. Then just like in Clover you'll need to add original code and modified in the same line...

 

Here is example:

 

Blue / (Find hex)

Red / (Replace hex)

 

binpatch for EAH-6850
 
sudo perl -pi -e 's|\x00\x04\x00\x00\x04\x03\x00\x00\x00\x01\x00\x00\x12\x04\x04\x01\x00\x04\x00\x00\x04\x03\x00\x00\x00\x01\x00\x00\x22\x05\x05\x02\x00\x08\x00\x00\x04\x02\x00\x00\x00\x01\x00\x00\x11\x02\x03\x04\x00\x02\x00\x00\x14\x02\x00\x00\x00\x01\x00\x00\x00\x00\x06\x05|\x00\x04\x00\x00\x04\x03\x00\x00\x00\x01\x00\x00\x12\x04\x04\x01\x00\x08\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x22\x05\x06\x04\x00\x02\x00\x00\x04\x00\x00\x00\x00\x01\x00\x00\x11\x02\x01\x06\x04\x00\x00\x00\x14\x02\x00\x00\x00\x01\x00\x00\x10\x00\x03\x05|g' /System/Library/Extensions/AMD6000Controller.kext/Contents/MacOS/AMD6000Controller
 
 I love hacking, yup!  :yes:
Link to comment
Share on other sites

 

@Pavo

 

I think that you have problem with order.

 

In your case

 

FB Baladi@0 - port-number 0x1

FB Baladi@1 - port-number 0x0

FB Baladi@2 - port-number 0x3

FB Baladi@3 - port-number 0x5

FB Baladi@4 - port-number 0x2

 

In my case

 

FB Futomaki@0 - port-number 0x0

FB Futomaki@1 - port-number 0x1

FB Futomaki@2 - port-number 0x2

FB Futomaki@3 - port-number 0x3

 

You should try to match that..

I can not figure out how to match that, can you give me and example from this:

 

00080000000200000001020022050203 <—HDMI

00040000040300000001010012040101 <—DisplayPort

00040000040300000001060021030602

04000000140200000001030011020304 <—DVI_D

00040000040300000001050010000505

00020000040200000001040010000406 <—DVI_D

Link to comment
Share on other sites

You need to rearrange lines in the code for each connector, so that you get for FB@0, port-number 0x0 and IOFBDependentIndex 0x0, for FB@1 it should be 0x1, etc.…

 
Check the example picture
 
post-458468-0-90671800-1428949890_thumb.png
 
I must add that I’m not sure will this help you at the end, but that is something that I was notice that is mismatched in your case…
 
[EDIT]
 
I think it should be something like this:
 
Current:
 
00080000 00020000 00010200 22050203 <—HDMI
00040000 04030000 00010100 12040101 <—DisplayPort
00040000 04030000 00010600 21030602 <—DisplayPort
04000000 14020000 00010300 11020304 <—DVI_D
00040000 04030000 00010500 10000505 <—DisplayPort
00020000 04020000 00010400 10000406 <—DVI_SL
 
Rearranged:
 
00080000 00020000 00010000 22050203 <—HDMI
00040000 04030000 00010000 12040101 <—DisplayPort
00040000 04030000 00010000 10000505 <—DisplayPort
00040000 04030000 00010000 21030602 <—DisplayPort
04000000 14020000 00010000 11020304 <—DVI_D
00020000 04020000 00010000 10000406 <—DVI_SL
 
Or maybe inverted because in my case the proper order is next one:
 
00020000 04020000 00010000 10000306 <—DVI_SL
04000000 14020000 00010000 11020505 <—DVI_D
00080000 00020000 00010000 22050203 <—HDMI
00040000 04030000 00010000 12040101 <—DisplayPort
Link to comment
Share on other sites

Hm... I was afraid of that. 

 

Well that was attempt for simplification of this procedure but since it doesn’t work in your case you will have a bit more work to do. Those highlighted numbers are managing order of activation so you should focus on them. They can also affect port-order, or at least that was in my case, so my suggestion would be that you arrange lines in a bit more logical manner, let say: DVI-SL, DVI-D, HDMI, and than DP,s… and then try to match them by using those highlighted numbers (01, 02, 03 etc) 

 

Sure that will take you some time but I don’t see any other option. You can also check during your testing what’s going on with order from IORegistryExplorer. That will probably give you some idea where is the problem and which way you need to go…

Link to comment
Share on other sites

My patch, vga MSI HD7750 1GB

 

04  00  00  00  14  03  00  00  00  01  01  01  10  00  02  04

00  08  00  00  04  03  00  00  00  01  02  01  22  05  03  05

00  04  00  00  04  02  00  00  00  01  03  00  12  04  01  02

00  04  00  00  04  02  00  00  00  01  04  00  12  04  04  02

 

ATOM BIOS Rom: 

SubsystemVendorID: 0x1462 SubsystemID: 0x2792

IOBaseAddress: 0x0000

Filename: v279-25s.sb 

BIOS Bootup Message: 

113-MSITV279MS.1K0 MSI C445 VERDE PRO 1G GDDR5 64MX32                         

PCI ID: 1002:683f

Connector at index 0

Type [@offset 43654]: DisplayPort (10)

Encoder [@offset 43658]: INTERNAL_UNIPHY2 (0x21)

i2cid [@offset 43746]: 0x91, OSX senseid: 0x2

Connector at index 1

Type [@offset 43664]: HDMI-A (11)

Encoder [@offset 43668]: INTERNAL_UNIPHY2 (0x21)

i2cid [@offset 43773]: 0x94, OSX senseid: 0x5

Connector at index 2

Type [@offset 43674]: DVI-I (2)

Encoder [@offset 43678]: INTERNAL_UNIPHY (0x1e)

i2cid [@offset 43810]: 0x93, OSX senseid: 0x4

Connector at index 3

Type [@offset 43684]: DVI-I (2)

 

Encoder [@offset 43688]: INTERNAL_KL

 
113-MSITV279MS.1K0 MSI C445 VERDE PRO 1G GDDR5 64MX32                         

Subsystem Vendor ID: 1462

       Subsystem ID: 2792

Object Header Structure Size: 296

Connector Object Table Offset: 3e

Router Object Table Offset: 0

Encoder Object Table Offset: d0

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 [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

 
Boot with ATI Injector = No boot ok but Graphic is HD 7xxx, boot with ATI Injector = Yes boot ok Graphic is HD 7750 but restart monitor no signal.Please help me ! I use displayport cable.Thanks
Link to comment
Share on other sites

I am a newbie in hackintosh, my graphic card is Asus HD7870-DC2-2GD

 

I followed this guide to modify AMD FB and works great!!

 

my result is as follow for the reference of any one use this card.

 

01 [Display_Port]

encoder obj id [0x21] which is [iNTERNAL_UNIPHY2 (osx txmit 0x12 [duallink 0x2] enc 0x4)] linkb: false

Connector at index 0
    Type [@offset 45610]: DisplayPort (10)
    Encoder [@offset 45614]: INTERNAL_UNIPHY2 (0x21)
    i2cid [@offset 45720]: 0x90, OSX senseid: 0x1

12 04 01 01

02 [Display_Port]

encoder obj id [0x21] which is [iNTERNAL_UNIPHY2 (osx txmit 0x22 [duallink 0x2] enc 0x5)] linkb: true

Connector at index 1
    Type [@offset 45620]: DisplayPort (10)
    Encoder [@offset 45624]: INTERNAL_UNIPHY2 (0x21)
    i2cid [@offset 45747]: 0x91, OSX senseid: 0x2

22 05 02 02

03 [HDMI-A]

encoder obj id [0x20] which is [iNTERNAL_UNIPHY1 (osx txmit 0x11 [duallink 0x1] enc 0x2)] linkb: false

Connector at index 2
    Type [@offset 45630]: HDMI-A (11)
    Encoder [@offset 45634]: INTERNAL_UNIPHY1 (0x20)
    i2cid [@offset 45774]: 0x92, OSX senseid: 0x3

11 02 03 03

04 [DVI-I]

encoder obj id [0x1e] which is [iNTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false

Connector at index 3
    Type [@offset 45640]: DVI-I (2)
    Encoder [@offset 45644]: INTERNAL_UNIPHY (0x1e)
    i2cid [@offset 45811]: 0x95, OSX senseid: 0x6

10 00 04 06


05 [DVI-I]

encoder obj id [0x15] which is [iNTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false

Connector at index 4
    Type [@offset 45650]: DVI-I (2)
    Encoder [@offset 45654]: INTERNAL_KLDSCP_DAC1 (0x15)
    i2cid [@offset 45811]: 0x95, OSX senseid: 0x6

00 10 05 06

-----------------------------------------------------------------------

Personality: Futomaki 10.9.2
ConnectorInfo count in decimal: 4
Disk offset in decimal 811280

00 04 00 00 04 03 00 00 00 01 01 01 12 04 04 01  DP
             
00 04 00 00 04 03 00 00 00 01 02 01 22 05 05 02  DP

04 00 00 00 14 02 00 00 00 01 03 00 00 00 06 06  DVI

00 08 00 00 04 02 00 00 00 01 04 00 11 02 01 03  HDMI

------------------------------------------------------------------------

00 04 00 00 04 03 00 00 00 01 03 00 12 04 01 01  DP
                            
00 04 00 00 04 03 00 00 00 01 04 00 22 05 02 02  DP
                            
04 00 00 00 14 02 00 00 00 01 01 00 10 00 04 06  DVI
                            
00 08 00 00 00 02 00 00 00 01 02 00 11 02 03 03  HDMI
                            
-------------------------------------------------------------------------

 

I use DVI as the main output to my monitor, so I made the order as DVI 1st and HDMI 2nd, rests are disport ports, you may change them to whatever you want.

 

clover bootloader

 

ATI inject / load VBios / FBName Futomaki

 

Kext patch:

 

AMDAMD7000Controller

 

Original :

00040000040300000001010112040401
00040000040300000001020122050502
04000000140200000001030000000606
00080000040200000001040011020103


Patched :

00040000040300000001030012040101
00040000040300000001040022050202
04000000140200000001010010000406
00080000000200000001020011020303

 

My graphic card was displayed AMD 7xxx series, now display correctly to AMD 7870 series...

 

Vlada, thanks for this very useful guide!!

 

 

  • Like 1
Link to comment
Share on other sites

Hey Vlada, 

 

because of the forum crash I can't download any of your files. Could you please upload them somewhere else?

I just upgraded from a Radeon HD 5770 that worked out of the box, unfortunately my new card does not :(

 

Nevermind. I got the files when I googled the filenames and found them on another site where you posted them as well.

Thank you for this well written How To.

Link to comment
Share on other sites

  • 4 weeks later...

Is this process still relevant for an r9 290 (non-x)?  I got the card working with a single (DVI) Monitor connected, using only FakeID of the 290x (0x67B11002) in clover. only issues are: 

 

Flashing screen on boot - have to unplug and re-plug monitor on startup - very annoying with the way my desk is set up.

Can't have a 2nd screen plugged in. Again very inconvenient as I like to leave my TV plugged in (HDMI) for gaming in windows. 

 

I'm hoping getting my connectors patch data can resolve this issue?

Link to comment
Share on other sites

Hi, 

 

are there already news about the R9 290x?

I would be great to hear that this card is running now with more than only on display attached to it. 

 

Happy greetings,

 

Werner

I am using 290X with 3 monitors using both DVIs and HDMI

Link to comment
Share on other sites

 Share

×
×
  • Create New...