Jump to content
  • Announcements

    • Allan

      Forum Rules   04/13/2018

      Hello folks! As some things are being fixed, we'll keep you updated. Per hour the Forum Rules don't have a dedicated "Tab", so here is the place that we have our Rules back. New Users Lounge > [READ] - InsanelyMac Forum Rules - The InsanelyMac Staff Team. 
billdlv

HD 6870 DVI Connectors SOLVED

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

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
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.

ATI6000Controller.kext.zip

Share this post


Link to post
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

Share this post


Link to post
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.

 

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

 

 

Share this post


Link to post
Share on other sites

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!

Share this post


Link to post
Share on other sites

My card only has 4 ports: 2 DVI HDMI and Displayport. Actually I need to test the Displayport and see it it works as well.

Share this post


Link to post
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.

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Well for me I use a simple perl terminal command that does the hexedits to the 6000Controller because whenever I update I already have QE working just no multi monitor output because the outputs are screwed.

Share this post


Link to post
Share on other sites

That's actually what problem I have. It's an XFX 6870 and only 1 DVI works. So just using terminal and pasting the perl command above will enable the second DVI port on my card?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Sup man, your connectors are the standard 6870 layout I presume? 2x DVI, HDMI, 2x miniDP.

 

it could be that your IDs might differ ever so slightly than that of my Sapphire branded 6870.

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

Hi @FishCow Could you post your modified ATIController kext ?

I am on 10.7.5 with Powercolor 6870 and it always gets recognize as 6xxx. Hence the framebuffers are screwed..

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

  • Posts

    • What did you add exactly, i did inject the unsupported 100 series kext and did see my macOS partition. I couldn't boot at all. I still get an error from VoodooPS2Mouse i think here is an image: https://drive.google.com/open?id=1dkcoWh2ZXj56ketONkrV8x9TNOVJdXkf
    • @Slice what's te correct russian translation for "copy to clip board"?   .. I need also a translation for "log copied to clip board!"
    • Hello MaLd0n,   Could you please make DSDT edits for my new Skylake desktop Lenovo M910t    RunMe files: https://www96.zippyshare.com/v/5bgqAiga/file.html
        Thank you very much in advance!
    • Have you tried adjusting the Khz in midi pref pane or editing the info plist to suit your needs. that sometimes corrects weird noise behavior.
    • Hello Mald0n:

      Nice to meet you, I have created a post about my problem on High Sierra before and I was redirected to this guide by Allan.

      As mentioned in the post, I was not able to get pass the login screen at initial boot and the system could not shutdown occasionally.

      However I solve the high temperature problem when I replace the clover folder you provide on first post, currently the cpu temperature is around 5x-6x'c after 10 mins up time.

      Attached is the clover folder, ioreg as well as the send me app, thanks for your help!

      p.s. I notice that your clover boot efi is a old traditional grey apple boot logo, Is there a version of modern dark and white logo one that I could replace with? Thank you!

      https://www.insanelymac.com/forum/topic/333867-cant-get-pass-2nd-stage-boot-logo-on-initial-boot-and-high-temperature/   My system:
      Gigabyte GA-X48-DQ6
      Core 2 Extreme QX9650 C0
      4 x Kingston DDR2 800ghz Ram
      Galaxy GTX460 1GB
      120GB SSD Leven JS500120C, high Sierra installed
      250GB seagate ST3250310AS
      250GB WDC WD2500JS-08NCB1
      File: https://drive.google.com/file/d/1_k3_jxvzGaLfDzin0zSAUT5ml16Hq15c/view?usp=sharing      


×