Jump to content
6 posts in this topic

Recommended Posts

I have Mavericks running fine on an i5-4670k and a VTX3D 7870 Tahiti on a single 1080p monitor(PC: HDMI to DVI-D [or] HDMI both ends). The second monitor(1600x900) is connected by a VGA(monitor) to DVI-I(PC) and Mavericks doesn't detect it.

I have enabled integrated graphics and tried plugging the VGA into the motherboard, and it can be detected then but the resolution is off.

Link to comment
https://www.insanelymac.com/forum/topic/298464-7870-tahiti-dual-screens/
Share on other sites

Hi, I never tried to run more than one monitor with the 7870 myself, but most probably you will need to patch a framebuffer to match the port layout of your VTX3D 7870. You can read more about the topic here.

 

Here is my modification process for an XFX HD 7870 DD. Your card's layout should be very similar and it should help you to get things started. Basically try adjusting txmit, enc and senseid. 

 

Original 10.9.3 Aji framebuffer read out by ati-personality.pl:

Kext /System/Library/Extensions/AMD7000Controller.kext/Contents/MacOS/AMD7000Controller
Personality: Aji
ConnectorInfo count in decimal: 4
Disk offset in decimal 810800
0000000    00  04  00  00  04  03  00  00  00  01  01  01  12  04  05  01
0000010    00  04  00  00  04  03  00  00  00  01  02  01  22  05  04  02
0000020    04  00  00  00  14  02  00  00  00  01  03  00  00  00  03  06
0000030    00  08  00  00  04  02  00  00  00  01  04  00  11  02  01  04
0000040
radeon_bios_decode output:

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
Connector Object Id [3] which is [DVI_D]
encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x21 [duallink 0x1] enc 0x3)] linkb: true
redsock_bios_decode output:

PCI ID: 1002:6818
Connector at index 0
Type [@offset 45160]: DisplayPort (10)
Encoder [@offset 45164]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 45288]: 0x90, OSX senseid: 0x1
Connector at index 1
Type [@offset 45170]: DisplayPort (10)
Encoder [@offset 45174]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 45315]: 0x91, OSX senseid: 0x2
Connector at index 2
Type [@offset 45180]: HDMI-A (11)
Encoder [@offset 45184]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 45342]: 0x92, OSX senseid: 0x3
Connector at index 3
Type [@offset 45190]: DVI-I (2)
Encoder [@offset 45194]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 45379]: 0x95, OSX senseid: 0x6
Connector at index 4
Type [@offset 45200]: DVI-I (2)
Encoder [@offset 45204]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 45379]: 0x95, OSX senseid: 0x6
Connector at index 5
Type [@offset 45210]: DVI-D (3)
Encoder [@offset 45214]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 45406]: 0x94, OSX senseid: 0x5
Summary of needed information from both dumps:

port txmit enc  sense
DP   0x22  0x5  0x2
HDMI 0x11  0x2  0x3
DVI  0x10  0x0  0x6
DVI  0x21  0x3  0x5
Original framebuffer split up in its parts and the modified one:

[original]
port     ctrl     feat ?    tx en id sense
00040000 04030000 0001 0101 12 04 05 01    dp
00040000 04030000 0001 0201 22 05 04 02    dp
04000000 14020000 0001 0300 00 00 03 06    dvi
00080000 04020000 0001 0400 11 02 01 04    hdmi
[patched]
port     ctrl     feat ?    tx en id sense
00040000 04030000 0001 0100 22 05 04 02    dp
00080000 04020000 0001 0200 11 02 03 03    hdmi
04000000 14020000 0001 0300 10 00 02 06    dvi
04000000 14020000 0001 0400 21 03 01 05    dvi
Framebuffer put together again to be used as a patch with Clover:

Original Aji:
00040000040300000001010112040501000400000403000000010201220504020400000014020000000103000000030600080000040200000001040011020104
Patched Aji:
00040000040300000001010022050402000800000402000000010200110203030400000014020000000103001000020604000000140200000001040021030105

The process is described at step 2, you need to type the command into the terminal. Also make sure to use both decoders, as they give you different information. Redsock's will show the sense-ids, the other one the txmit and enc values.

 

*EDIT*

Worked out how to decode the BIOS and have all the info stored in text files. Now I just need to move onto step4 and work out exactly what to do.

×
×
  • Create New...