- Joined
- Sep 11, 2010
- Messages
- 38
- Motherboard
- MSI Z77A-G45 GAMING
- CPU
- i5-3570k
- Graphics
- GTX 970
- Mobile Phone
EDIT:
***IMPORTANT***
It seems that this card works (properly) only with Chameleon versions up to 2210.
Newer versions (2215 and up) just won't recognise the card and NO framebuffer personality is loaded (regardless of input type and/or number of displays)
After reporting ^^this^^ to chameleon team (LINK), they were quick to react and found the bug - the patch is in the chameleon trunk now (commit r2243)
So, more than a year after I started THIS thread (which is now part of the "legacy" read-only content, hence this thread) I decided it was time to solve the problem.
Problem: No framebuffer personality for use with two DVI connected displays.
With single monitor, personality Gibba works fine - The card is correctly reported in System Profiler as Radeon 6570/7570, no OpenGL crashes. With both monitors hooked up I could boot to desktop only without any framebuffer personalities used (ioreg shows it as RadeonFramebuffer.)
When I started the aforementioned thread, I was in the middle of a quite hectic professional period (edited a weekly-airing TV show), so I couldn't risk breaking my machine for even a single day. I just let it go and worked with no personalities loaded - when I needed apps that required working framebuffer I would reboot and used Gibba to work with a single monitor.
A few days ago I bought a new SSD and installed Mountain Lion (I was still on Snow Leopard), so I had something I could use to experiment.
Following the guide HERE and topics HERE, HERE, and HERE I got both monitors working on DVI with Gibba framebuffer personality.
Using tools radeon_bios_decode and redsock_bios_decoder on my ATI ROM (extracted by GPU-Z in Windows) I got this info:
Using tool ati-personality.pl.0.11 (last version by Slice - working with 10.8.3+) I got this info on Gibba personality:
EDIT: I added the text in red after I realized that Gibba personality was not the same inside AMD6000Controller (Mountain Lion 10.8.3) and ATI6000Controller (Snow Leopard 10.6.8)
And this is what Gibba looks like in Snow Leopard 10.6.8 ATI6000Controller - notice different control flags for DVI-SL device (0000030)
By following the guide I realised DVI-SL device (0000030) in Gibba personality was not in sync with my ROM, while DVI-DL (0000040) was fine. That is why only one monitor worked with Gibba.
So I found bits that needed changing (transmitter and control flags for DVI-SL port, and switched SenseId between HDMI and DVI-SL) from my ROM output, HEX edited AMD6000Controller or ATI6000Controller binary inside of ATI6000Controller.kext and - VOILA. Work done.
Changes in detail (Mountain Lion):
Changes (Mountain Lion):
DVI-SL port (0000030) - Transmitter (from 00 to 10)
DVI-SL port (0000030) and HDMI port (0000020) switched SenseId number
So, in AMD6000Controller (Mountain Lion) we need to find this HEX sequence:
0400020000140200000001000000000305
and change it to:
0500020000140200000001000010000304
Here's a nice perl script that will do this for you (Mountain Lion)
Changes in detail (Snow Leopard):
Changes (Snow Leopard):
DVI-SL port (0000030) - Control flags (from 04 02 00 00 to 14 02 00 00)
DVI-SL port (0000030) - Transmitter (from 00 to 10)
DVI-SL port (0000030) and HDMI port (0000020) switched SenseId number
And in ATI6000Controller (Snow Leopard) we need to find this HEX sequence:
0400020000040200000001000000000305
and change it to:
0500020000140200000001000010000304
Here's a perl script for Snow Leopard as well
Reboot - in Chameleon/Chimera type "AtiConfig=Gibba" (no quotes) or add these lines to your org.chameleon.boot.plist:
And you're done!
For those too lazy to do this on their own, I have attached my working kext for both 10.6.8, 10.8.3 and 10.8.4
Be warned: These kexts are edited with only this card in mind. They might work for similar cards with similar outputs, but I wouldn't count on it.
***IMPORTANT***
It seems that this card works (properly) only with Chameleon versions up to 2210.
Newer versions (2215 and up) just won't recognise the card and NO framebuffer personality is loaded (regardless of input type and/or number of displays)
After reporting ^^this^^ to chameleon team (LINK), they were quick to react and found the bug - the patch is in the chameleon trunk now (commit r2243)
So, more than a year after I started THIS thread (which is now part of the "legacy" read-only content, hence this thread) I decided it was time to solve the problem.
Problem: No framebuffer personality for use with two DVI connected displays.
With single monitor, personality Gibba works fine - The card is correctly reported in System Profiler as Radeon 6570/7570, no OpenGL crashes. With both monitors hooked up I could boot to desktop only without any framebuffer personalities used (ioreg shows it as RadeonFramebuffer.)
When I started the aforementioned thread, I was in the middle of a quite hectic professional period (edited a weekly-airing TV show), so I couldn't risk breaking my machine for even a single day. I just let it go and worked with no personalities loaded - when I needed apps that required working framebuffer I would reboot and used Gibba to work with a single monitor.
A few days ago I bought a new SSD and installed Mountain Lion (I was still on Snow Leopard), so I had something I could use to experiment.
Following the guide HERE and topics HERE, HERE, and HERE I got both monitors working on DVI with Gibba framebuffer personality.
Using tools radeon_bios_decode and redsock_bios_decoder on my ATI ROM (extracted by GPU-Z in Windows) I got this info:
Code:
ATOM BIOS Rom:
SubsystemVendorID: 0x1682 SubsystemID: 0x3195
IOBaseAddress: 0x0000
Filename: 657XZNH40
BIOS Bootup Message:
YODA 1G C24103 DDR3 128MX8
PCI ID: 1002:6759
Connector at index 0
Type [@offset 44278]: HDMI-A (11)
Encoder [@offset 44282]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 44362]: 0x94, OSX senseid: 0x5
Connector at index 1
Type [@offset 44288]: DVI-I (2)
Encoder [@offset 44292]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 44389]: 0x93, OSX senseid: 0x4
Connector at index 2
Type [@offset 44298]: DVI-I (2)
Encoder [@offset 44302]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 44426]: 0x92, OSX senseid: 0x3
Connector at index 3
Type [@offset 44308]: DVI-I (2)
Encoder [@offset 44312]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 44426]: 0x92, OSX senseid: 0x3
Code:
657XZNH40 :
YODA 1G C24103 DDR3 128MX8
Subsystem Vendor ID: 1682
Subsystem ID: 3195
Object Header Structure Size: 241
Connector Object Table Offset: 3e
Router Object Table Offset: 0
Encoder Object Table Offset: b5
Display Path Table Offset: 12
Connector Object Id [12] which is [HDMI_TYPE_A]
encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x12 [duallink 0x2] enc 0x4)] 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 [1] which is [DVI_I]
encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x11 [duallink 0x1] enc 0x2)] linkb: false
Connector Object Id [1] which is [DVI_I]
encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false
Using tool ati-personality.pl.0.11 (last version by Slice - working with 10.8.3+) I got this info on Gibba personality:
Code:
Personality: Gibba
ConnectorInfo count in decimal: 5
Disk offset in decimal 605248
0000000 00 04 00 00 04 03 00 00 00 01 00 00 12 04 05 01
0000010 00 04 00 00 04 03 00 00 00 01 00 00 22 05 04 02
0000020 00 08 00 00 04 02 00 00 00 01 00 00 11 02 06 04
0000030 00 02 00 00 14 02 00 00 00 01 00 00 00 00 03 05
0000040 04 00 00 00 04 02 00 00 00 01 00 00 11 02 01 03
0000050
EDIT: I added the text in red after I realized that Gibba personality was not the same inside AMD6000Controller (Mountain Lion 10.8.3) and ATI6000Controller (Snow Leopard 10.6.8)
And this is what Gibba looks like in Snow Leopard 10.6.8 ATI6000Controller - notice different control flags for DVI-SL device (0000030)
Code:
Personality: Gibba
ConnectorInfo count in decimal: 5
Disk offset in decimal 173024
0000000 00 04 00 00 04 03 00 00 00 01 00 00 12 04 05 01
0000010 00 04 00 00 04 03 00 00 00 01 00 00 22 05 04 02
0000020 00 08 00 00 04 02 00 00 00 01 00 00 11 02 06 04
0000030 00 02 00 00 04 02 00 00 00 01 00 00 00 00 03 05
0000040 04 00 00 00 04 02 00 00 00 01 00 00 11 02 01 03
By following the guide I realised DVI-SL device (0000030) in Gibba personality was not in sync with my ROM, while DVI-DL (0000040) was fine. That is why only one monitor worked with Gibba.
So I found bits that needed changing (transmitter and control flags for DVI-SL port, and switched SenseId between HDMI and DVI-SL) from my ROM output, HEX edited AMD6000Controller or ATI6000Controller binary inside of ATI6000Controller.kext and - VOILA. Work done.
Changes in detail (Mountain Lion):
Code:
Personality: Gibba
ConnectorInfo count in decimal: 5
Disk offset in decimal 605248
0000000 00 04 00 00 04 03 00 00 00 01 00 00 12 04 05 01
0000010 00 04 00 00 04 03 00 00 00 01 00 00 22 05 04 02
0000020 00 08 00 00 04 02 00 00 00 01 00 00 11 02 06 [B]04[/B]
0000030 00 02 00 00 14 02 00 00 00 01 00 00 [B]00[/B] 00 03 [B]05[/B]
0000040 04 00 00 00 04 02 00 00 00 01 00 00 11 02 01 03
0000050
to
0000000 00 04 00 00 04 03 00 00 00 01 00 00 12 04 05 01
0000010 00 04 00 00 04 03 00 00 00 01 00 00 22 05 04 02
0000020 00 08 00 00 04 02 00 00 00 01 00 00 11 02 06 [B]05[/B]
0000030 00 02 00 00 14 02 00 00 00 01 00 00 [B]10[/B] 00 03 [B]04[/B]
0000040 04 00 00 00 04 02 00 00 00 01 00 00 11 02 01 03
0000050
Changes (Mountain Lion):
DVI-SL port (0000030) - Transmitter (from 00 to 10)
DVI-SL port (0000030) and HDMI port (0000020) switched SenseId number
So, in AMD6000Controller (Mountain Lion) we need to find this HEX sequence:
0400020000140200000001000000000305
and change it to:
0500020000140200000001000010000304
Here's a nice perl script that will do this for you (Mountain Lion)
Code:
sudo perl -pi -e 's|\x04\x00\x02\x00\x00\x14\x02\x00\x00\x00\x01\x00\x00\x00\x00\x03\x05|\x05\x00\x02\x00\x00\x14\x02\x00\x00\x00\x01\x00\x00\x10\x00\x03\x04|g' /System/Library/Extensions/ATI6000Controller.kext/Contents/MacOS/AMD6000Controller
sudo touch /System/Library/Extensions
Changes in detail (Snow Leopard):
Code:
Personality: Gibba
ConnectorInfo count in decimal: 5
Disk offset in decimal 605248
0000000 00 04 00 00 04 03 00 00 00 01 00 00 12 04 05 01
0000010 00 04 00 00 04 03 00 00 00 01 00 00 22 05 04 02
0000020 00 08 00 00 04 02 00 00 00 01 00 00 11 02 06 [B]04[/B]
0000030 00 02 00 00 [B]04[/B] 02 00 00 00 01 00 00 [B]00[/B] 00 03 [B]05[/B]
0000040 04 00 00 00 04 02 00 00 00 01 00 00 11 02 01 03
0000050
to
0000000 00 04 00 00 04 03 00 00 00 01 00 00 12 04 05 01
0000010 00 04 00 00 04 03 00 00 00 01 00 00 22 05 04 02
0000020 00 08 00 00 04 02 00 00 00 01 00 00 11 02 06 [B]05[/B]
0000030 00 02 00 00 [B]14[/B] 02 00 00 00 01 00 00 [B]10[/B] 00 03 [B]04[/B]
0000040 04 00 00 00 04 02 00 00 00 01 00 00 11 02 01 03
0000050
Changes (Snow Leopard):
DVI-SL port (0000030) - Control flags (from 04 02 00 00 to 14 02 00 00)
DVI-SL port (0000030) - Transmitter (from 00 to 10)
DVI-SL port (0000030) and HDMI port (0000020) switched SenseId number
And in ATI6000Controller (Snow Leopard) we need to find this HEX sequence:
0400020000040200000001000000000305
and change it to:
0500020000140200000001000010000304
Here's a perl script for Snow Leopard as well
Code:
sudo perl -pi -e 's|\x04\x00\x02\x00\x00\x04\x02\x00\x00\x00\x01\x00\x00\x00\x00\x03\x05|\x05\x00\x02\x00\x00\x14\x02\x00\x00\x00\x01\x00\x00\x10\x00\x03\x04|g' /System/Library/Extensions/ATI6000Controller.kext/Contents/MacOS/ATI6000Controller
sudo touch /System/Library/Extensions
Reboot - in Chameleon/Chimera type "AtiConfig=Gibba" (no quotes) or add these lines to your org.chameleon.boot.plist:
Code:
<key>AtiConfig</key>
<string>Gibba</string>
And you're done!
For those too lazy to do this on their own, I have attached my working kext for both 10.6.8, 10.8.3 and 10.8.4
Be warned: These kexts are edited with only this card in mind. They might work for similar cards with similar outputs, but I wouldn't count on it.
Attachments
-
about-displays.png75.4 KB · Views: 508
-
system-information.png102.8 KB · Views: 1,031
-
ioreg-personality_in_use.png37.6 KB · Views: 346
-
ATI6000Controller.kext (10.6.8).zip213.5 KB · Views: 148
-
ATI6000Controller.kext (10.8.3).zip664.7 KB · Views: 124
-
ATI6000Controller.kext (10.8.4).zip666.8 KB · Views: 183