Jump to content

HD 6870 DVI Connectors SOLVED


billdlv
 Share

27 posts in this topic

Recommended Posts

I have a Gigabyte HD6870 1GB video card and I am running 10.7.3. The card has a DVI-I, DVI-D, HDMI-A, and 2 mini DP connectors on it.

 

I've been trying to get both of the DVI connectors to work with GraphicsEnabler=Yes. I can get them both to work with GraphicsEnabler=No and AtiConfig=Bulrushes. I can get the HDMI port to work with GraphicsEnabler=Yes as well. I don't want to use the HDMI port because it limits the resolution settings on the second monitor. I can't test the mini DP ports because I don't have the adapter. I've read from some of the forums that it is not possible and to buy an adapter. No one really says why.

 

Since I know the card hardware is capable of it, and I can operate both displays under Windows 7 and without GraphicsEnabler I did more research.

 

I tried all of the frame buffers and none of them worked with the 2 displays. I then found the following threads and was hopeful.

 

http://www.insanelym...pic=273937&st=0

http://www.insanelym...hreaded&start=0

 

I followed the threads and modfied a couple of personalities. I have not been able to get both working. The closest I have got is both displays show up in system info, but the 2nd display has no video signal. I've tried detect displays, unplugging / plugging in. I am working in 64 bit.

 

Some info on the card:

 

Output from radeon_bios_decode:

 

ATOM BIOS Rom:
SubsystemVendorID: 0x1458 SubsystemID: 0x21fa
IOBaseAddress: 0x0000
Filename: R687OGD.F20
BIOS Bootup Message: GV-R687OC-1GD/F20									  

PCI ID: 1002:6738
Connector at index 0
Type [@offset 44255]: DisplayPort (10)
Encoder [@offset 44259]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 44383]: 0x90, OSX senseid: 0x1
Connector at index 1
Type [@offset 44265]: DisplayPort (10)
Encoder [@offset 44269]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 44410]: 0x91, OSX senseid: 0x2
Connector at index 2
Type [@offset 44275]: HDMI-A (11)
Encoder [@offset 44279]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 44437]: 0x93, OSX senseid: 0x4
Connector at index 3
Type [@offset 44285]: DVI-D (3)
Encoder [@offset 44289]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 44464]: 0x95, OSX senseid: 0x6
Connector at index 4
Type [@offset 44295]: DVI-I (2)
Encoder [@offset 44299]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 44501]: 0x94, OSX senseid: 0x5
Connector at index 5
Type [@offset 44305]: DVI-I (2)
Encoder [@offset 44309]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 44501]: 0x94, OSX senseid: 0x5

 

Output from redsock_bios_decode:

 

R687OGD.F20 :
GV-R687OC-1GD/F20									  

Subsystem Vendor ID: 1458
   Subsystem ID: 21fa
Object Header Structure Size: 407
Connector Object Table Offset: 52
Router Object Table Offset: 0
Encoder Object Table Offset: 12a
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 [3] 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

 

You can see that from the redsock output the HDMI and DVI-D connector share the same transmitter and encoder. I did not think that was going to be a problem since I'm not using the HDMI port. The way I see it if something was plugged in to the HDMI it would turn off the DVI-D and vice versa. Plus they have different senseid numbers.

 

Here is my current framebuffer, which is a modified Gibba.

 

0000000: 0004 0000 0403 0000 0001 0000 1204 0101  ................
0000010: 0004 0000 0403 0000 0001 0000 2205 0502  ............"...
0000020: 0008 0000 0402 0000 0001 0000 2205 0304  ............"...
0000030: 0400 0000 0400 0000 0001 0000 1102 0406  ................
0000040: 0400 0000 1400 0000 0001 0000 1000 0605  ................

 

Connector 0 mini DP

Connector 1 mini DP

Connector 2 HDMI-A

Connector 3 DVI-D

Connector 4 DVI-I

 

I tested performance under Duckweed using Cinebench and compared to Gibba. Both where very close, Gibba was slightly better. Duckweed is what the system defaults to with GraphicsEnabler=Yes. I took the Duckweed personality since it matched except for the DVi-D connector and used it in Gibba which has the correct number of connectors. I used IOregistryExplorer to determine the connector type, and control flags for the 2 DVI connectors under GraphicsEnabler=No.

 

The above was the last iteration, I tried changing the transmitter/encoder for the HDMI connector because it was the same as the DVI-D.

 

Like I said I've tried a lot of combinations and none have worked.

 

Before I go out and buy the adapter I am wondering:

  1. If it is not possible to use both DVI connectors with GraphicsEnabler=yes why?
     
  2. Is there a way to determine the proper hotplug ID numbers? Changing these sometimes causes the mouse pointer to lag. I've read that in certain cases the hotplug id needs to match the sense id of a neighbooring connector so that if one is plugged in the other will turn off.
     
  3. Does the framebuffer personality have to have the correct number of connectors that the card has? If I am only using 2 connectors is it possible just to have 2 entries in the framebuffer personality and extra ones for the unused connectors?

Thanks for any info.

 

UPDATE UPDATE

SUCCESS SUCCESS :guitar: :guitar:

 

See FishCow post below. As I said in my response I thought I tried VCH888 Gibba frame buffer but I must not have....

 

Here is VCH888's edited framebuffer. Note it appears that the disk offset is for 32 bit.

 

Personality: Gibba
ConnectorInfo count in decimal: 5
Disk offset in decimal 523928
0000000 00 04 00 00 04 03 00 00 00 01 00 00 12 04 04 01 ---- DP 1
0000010 00 04 00 00 04 03 00 00 00 01 00 00 22 05 05 02 ---- DP 2
0000020 00 08 00 00 04 02 00 00 00 01 00 00 11 02 06 04 ---- HDMI
0000030 00 02 00 00 14 02 00 00 00 01 00 00 00 00 03 05 ---- DVI 1
0000040 04 00 00 00 04 02 00 00 00 01 00 00 11 02 01 06 ---- DVI 2
0000050
Link to comment
Share on other sites

Hi billdlv,

sorry to hear about the hassle with your card.

I used the same tutorial you used : http://www.insanelym...pic=273937&st=0

 

I have a Power Color HD 6870 1GB

 

I can confirm both my DVI outputs are working with GE = Yes

AtiConfig=Gabba

AtiPorts=5

 

I've never been able to use both DVI ports on this card until editing the ATI6000Controller.Kext as outlined by VCH888 's post.

Link to comment
Share on other sites

Hi billdlv,

sorry to hear about the hassle with your card.

I used the same tutorial you used : http://www.insanelym...pic=273937&st=0

 

I have a Power Color HD 6870 1GB

 

I can confirm both my DVI outputs are working with GE = Yes

AtiConfig=Gabba

AtiPorts=5

 

I've never been able to use both DVI ports on this card until editing the ATI6000Controller.Kext as outlined by VCH888 's post.

 

I saw VCH888's post and thought I tried it out. I did not use the AtiPorts=5 boot flag so I tried it again. SUCCESS!!

 

I am going to update my post thanks for pointing it out again.

  • Like 1
Link to comment
Share on other sites

I made this line for further updates, try this at your own risk. (Note: This is for the mDP/mDP/HDMI/DVI/DVI layout and worked for my Sapphire Radeon HD6870 Vapor-X)

Both my dvi ports work, can't test the hdmi as I have no hdmi display here.

sudo perl -pi -e 's|\x00\x04\x00\x00\x04\x03\x00\x00\x00\x01\x00\x00\x12\x04\x05\x01\x00\x04\x00\x00\x04\x03\x00\x00\x00\x01\x00\x00\x22\x05\x04\x02\x00\x08\x00\x00\x04\x02\x00\x00\x00\x01\x00\x00\x11\x02\x06\x04\x00\x02\x00\x00\x14\x02\x00\x00\x00\x01\x00\x00\x00\x00\x03\x05\x04\x00\x00\x00\x04\x02\x00\x00\x00\x01\x00\x00\x11\x02\x01\x03|\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\x06\x04\x00\x02\x00\x00\x14\x02\x00\x00\x00\x01\x00\x00\x00\x00\x03\x05\x04\x00\x00\x00\x04\x02\x00\x00\x00\x01\x00\x00\x11\x02\x01\x06|g' /System/Library/Extensions/ATI6000Controller.kext/Contents/MacOS/ATI6000Controller

Link to comment
Share on other sites

  • 1 month later...

Attached is my ATI600 kext, which was a 10.7.3. You will have to install it and rebuild your kernel cache.

 

It works for me, I suggest making a backup of your original file and take the necessary precautions. I'm not responsible if you mess up your installation.

 

Solved my xfx hd6870 dvi-i + dvi-d Works with your ati6000controller.kext e with setting graphicenable=yes e aticonfig=gibba in apple.boot.plis

Very very Thanks billdlv

 

 

Link to comment
Share on other sites

  • 2 months later...

Awesome! Was pulling my hair out with my HiS 6870 1GB trying to get dual monitors going using the main DVI and HDMI. Mostly I was getting one monitor or the other working but not both.

 

Using the custom ATIi6000 kext and GE=yes AtiConfig=Bulrushes Ports=4, everything now works! (Tried Gibba, Duckweed and others, no go.) DVD player works, the whole nine. Huge thanks to all for posting the info here!

Link to comment
Share on other sites

Today I upgraded to 10.7.4. In the update the aticontroller file was changed. I repeated the process in the post and everything works fine now. I don't have the disk offsets from the 10.7.3 file to compare and I don't know if anything else was changed in the file.

 

So if you update you will have to go through the process again or use a backup copy of the controller file.

Link to comment
Share on other sites

Attached is my ATI600 kext, which was a 10.7.3. You will have to install it and rebuild your kernel cache.

 

It works for me, I suggest making a backup of your original file and take the necessary precautions. I'm not responsible if you mess up your installation.

can you update 10.7.4 ple

Link to comment
Share on other sites

  • 3 weeks later...
  • 3 weeks later...

Hi there.

 

Used the perl script above (have a Gigabyte HD 6870 1GB) and when I rebooted the second DVI display came to live all the way until after the grey OSX booting screen. When the desktop came up the display went to sleep mode...

 

What can I do?

 

OSX 10.7.4

Link to comment
Share on other sites

Very new to this so be gentle.. installed 10.7.2 today on HP XW6400 with Power color 6870HD and had 1 x DVi, 1 x Mini display and HDMI working from the get go.. very happy with this but would like to get second DVi working as have 3 desktop screens and HDMI connected to 42" screen for movies. Any help would be appreciated.

Link to comment
Share on other sites

You can see that from the redsock output the HDMI and DVI-D connector share the same transmitter and encoder. I did not think that was going to be a problem since I'm not using the HDMI port. The way I see it if something was plugged in to the HDMI it would turn off the DVI-D and vice versa. Plus they have different senseid numbers.

 

Adding my two cents : no problem with HDMI/DVI_D because those two output definitions are meant for the same port.

The 1st one is for native HDMI port

The 2nd one is when using that same HDMI port but with a HDMI to DVI connector.

DVI-D and HDMI are logically identical, hence the close configuration, the only differences are so the card "knows" which one you're using.

 

Since you physically either use that port natively or with an adapter, no way to use both outputs at the same time.

Link to comment
Share on other sites

  • 3 months later...

This is VERY strange. I used VCH888's settings for the Powercolor 6870.

I installed the modded kext using Kext Wizard and rebooted.

 

bdmesg shows it recognized but then

>>

Using PCI-Root-UID value: 1

ATI Framebuffer Addr: @0xC0000000 MMIO Addr: @0xF9FC0000 I/O Port Addr: @0x0000A000 ROM Addr: @0xF9FA0000

ATI card POSTed, reading Video BIOS from legacy space

Framebuffer set to: Gibba using AtiConfig=Gibba

Number of ports set to: 5 using framebuffer's default.

AMD Radeon HD 6870 1024MB [1002:6738] (subsys [1002:00d0]) (Barts:Gibba) :: PciRoot(0x1)/Pci(0x3,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

nVidia GeForce GTX 560 Ti 448 -4095MB NV1ff [10de:1087] :: PciRoot(0x1)/Pci(0x3,0x0)/Pci(0x0,0x0)/Pci(0x2,0x0)/Pci(0x0,0x0)

Bad display config block signature (0xd1260867)

ERROR: nVidia ROM Patching Failed!

>>

 

Strange thing is, with any kext, no matter what I do, I only get this ioreg output..

 

>>

Anmols-Mac-Pro:MacOS anmol$ ioreg | grep ATY

| | | | | +-o ATY,ATY,RadeonFramebuffer@0 <class AtiFbStub, id 0x100000325, registered, matched, active, busy 0 (25 ms), retain 7>

| | | | | +-o ATY,ATY,RadeonFramebuffer@1 <class AtiFbStub, id 0x100000326, registered, matched, active, busy 0 (5 ms), retain 7>

| | | | | +-o ATY,ATY,RadeonFramebuffer@2 <class AtiFbStub, id 0x100000327, registered, matched, active, busy 0 (5 ms), retain 7>

| | | | | +-o ATY,ATY,RadeonFramebuffer@3 <class AtiFbStub, id 0x100000328, registered, matched, active, busy 0 (5 ms), retain 7>

| | | | | +-o ATY,ATY,RadeonFramebuffer@4 <class AtiFbStub, id 0x100000329, registered, matched, active, busy 0 (5 ms), retain 7>

>>

 

No other framebuffer gets recognized.

I have attached my boot.plist and the modded kext.

 

Any suggestions..?

Lion 10.7.5 if that matters.

org.chameleon.Boot.plist.txt

ATI6000Controller.kext.zip

dmesg.txt

Link to comment
Share on other sites

 Share

×
×
  • Create New...