netkas.org forum
September 19, 2018, 06:58:10 AM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: Information for registering users http://forum.netkas.org/index.php/topic,2246.0.html
 
   Home   Help Search Login Register  
Pages: [1] 2 3 ... 5
  Print  
Author Topic: displayport working with 5xxx cards and sandybridge (and Lion too?) ATI drivers  (Read 71270 times)
calvintml
Full Member
***
Offline Offline

Posts: 131


« on: May 18, 2011, 04:03:37 AM »

I figured out a hack (which I don't believe has been suggested before) to get displayport working for 5xxx ati cards using the sandybridge ATI kexts.   Hopefully (I think probably) this will also work for the Lion ATI kexts, allowing us 5xxx card owners with displayport monitors future proof our gear (at least until apple makes more changes).

I recently posted about how I edited the Zonalis framebuffer in the non-sandybridge 10.6.7 ati kexts to make my powercolor 5770 eyefinity 5 work.
This is what I used:
00 04 00 00 04 06 00 00 00 01 00 00 20 01 06 06
00 04 00 00 04 06 00 00 00 01 00 00 11 02 05 05
00 04 00 00 04 06 00 00 00 01 00 00 21 03 04 04
00 04 00 00 04 06 00 00 00 01 00 00 10 00 01 03
00 04 00 00 04 06 00 00 00 01 00 00 12 04 02 02
00 04 00 00 04 06 00 00 00 01 00 00 22 05 03 01

When I replace Zonalis in the ATI5000Controller of the sandybridge kexts, all my ports recognize my apple cinema display (minidp), but no display comes up on the screen, which I believe is the same problem that other people have reported with using displayport with these kexts.

I also read reports that the vanilla apple cards had no problems using displayport monitors with the lion drivers, so I decided to try using Hoolock, which is the default framebuffer for vanilla 5770 and edit the framebuffer to work with my card.

original hoolock in sandybridge ati5000controller
00 04 00 00 04 06 00 00 00 01 00 00 21 03 05 01
00 04 00 00 04 06 00 00 00 01 00 00 11 02 04 02
04 00 00 00 14 02 00 00 00 01 00 00 02 04 01 03

my edits:
00 04 00 00 04 06 00 00 00 01 00 00 22 05 03 01
00 04 00 00 04 06 00 00 00 01 00 00 12 04 02 02
00 04 00 00 04 06 00 00 00 01 00 00 10 00 01 03

The trained eye will notice that now there are 3 entries for displayport connectors instead of what was originally there, 2x displayport and 1x dvi.

So now when I inject my card with framebuffer Hoolock, I get 3 of my 5 ports working, and all work with my apple cinema display mini displayport monitor!

Either 1) apple deliberately broke displayport functionality for all framebuffers that weren't vanilla…but I don't see why they would do this and only break displayport and not disable all other framebuffers entirely or 2) this was just an inadvertent consequence during the driver development/bug fixing process…
Hopefully for the osx86 community, it's the latter.

This should probably work for people with other 5xxx cards having displayport issues.  For example if you use vervet normally, replace the hoolock entry in ATI5000Controller with your 3 favorite connectors from vervet, and inject hoolock.

Perhaps somebody else knows how to increase the number of ports for a Framebuffer personality.  I think that Hoolock is the vanilla 5xxx framebuffer with the most ports (3), but that still falls short of the 5 I need.  Let me know.
« Last Edit: June 15, 2011, 09:57:41 PM by netkas » Logged
Pegasusrjf
Not Newbie
*
Offline Offline

Posts: 28


« Reply #1 on: May 18, 2011, 06:34:48 PM »

Good catch.

Any idea how to make this type of change for 5870 cards that have the following ports:

2 DVI
1 Displayport
1 HDMI

My original modified BIOS worked, but with 10.6.7 and stock BIOS doesn't work anymore (as everyone else has said).

Not sure what exactly to change.
Logged
calvintml
Full Member
***
Offline Offline

Posts: 131


« Reply #2 on: May 18, 2011, 07:00:04 PM »

Good catch.

Any idea how to make this type of change for 5870 cards that have the following ports:

2 DVI
1 Displayport
1 HDMI

My original modified BIOS worked, but with 10.6.7 and stock BIOS doesn't work anymore (as everyone else has said).

Not sure what exactly to change.

Sure, I can give it a shot.  Could you just clarify a few things for me.
You shouldn't have had a problem upgrading to 10.6.7, did you?
Are you saying that with the 10.6.7 sandybridge kexts things stopped working?
And by things not working do you mean everything stopped working, or just displayport?  
Also, do you know how to change edit your modified BIOS to use other framebuffers besides Uakari (which I assume is what is being used for the 5870?)  I think there's one floating around that netkas made at the very beginning which uses a vanilla framebuffer, but i can't remember if that was for the apple 5770 or 5870.
I can help you with modifying the drivers, but not so much with modifying the roms.
As an alternative, we might try the stock bios plus ATY_init.kext to inject whatever framebuffer we want.

Also please extract some info from your stock bios using http://www.insanelymac.com/forum/index.php?act=attach&type=post&id=90340

put your rom file in the same directory and execute:
./radeon_bios_decode < nameofyourrom
« Last Edit: May 18, 2011, 08:07:52 PM by calvintml » Logged
Pegasusrjf
Not Newbie
*
Offline Offline

Posts: 28


« Reply #3 on: May 19, 2011, 12:56:09 PM »

Sure, I can give it a shot.  Could you just clarify a few things for me.
You shouldn't have had a problem upgrading to 10.6.7, did you?
Are you saying that with the 10.6.7 sandybridge kexts things stopped working?
And by things not working do you mean everything stopped working, or just displayport?  
Also, do you know how to change edit your modified BIOS to use other framebuffers besides Uakari (which I assume is what is being used for the 5870?)  I think there's one floating around that netkas made at the very beginning which uses a vanilla framebuffer, but i can't remember if that was for the apple 5770 or 5870.
I can help you with modifying the drivers, but not so much with modifying the roms.
As an alternative, we might try the stock bios plus ATY_init.kext to inject whatever framebuffer we want.

Also please extract some info from your stock bios using http://www.insanelymac.com/forum/index.php?act=attach&type=post&id=90340

put your rom file in the same directory and execute:
./radeon_bios_decode < nameofyourrom

The BIOS I am currently using the default for the XFX 5870 Radeon cards.  I had a modified BIOS, and that worked with 10.6.7 before adding the Lion drivers.

I can try to get the information you want, and will let you know if I get it.

Thanks
Logged
calvintml
Full Member
***
Offline Offline

Posts: 131


« Reply #4 on: May 19, 2011, 06:59:24 PM »



The BIOS I am currently using the default for the XFX 5870 Radeon cards.  I had a modified BIOS, and that worked with 10.6.7 before adding the Lion drivers.

I can try to get the information you want, and will let you know if I get it.

Thanks

http://www.mediafire.com/?u96cfl2s8prtqqw

Here is a link to an edited binary from ATI5000Controller.kext, replace the one that is already in there.  The binary is originally from the Lion DP3 drivers, but edited to replace Hoolock and Langur (the framebuffers for apple 5770 and 5870, respectively) with the values from Uakari (with some small optimizations).  

Try injecting both Langur and Hoolock.  For me and my 5770, both worked.  However, when using Langur, I got system instability.  I don't know if this was because of Langur being unstable, or because there is something that is optimized for 5870 when Langur and something optimized for 5770 when using Hoolock.  So please try injecting both Langur and Hoolock to see which one works better.  Can you use Netkas' ATY_init.kext and stock bios to do this?

The displayport and the two DVI ports should work.  HDMI is NOT mapped and should not work (because Langur and Hoolock only have room for 3 connections).
Logged
netkas
Administrator
Hero Member
*****
Offline Offline

Posts: 826



« Reply #5 on: May 19, 2011, 07:33:26 PM »

Perhaps somebody else knows how to increase the number of ports for a Framebuffer personality.  I think that Hoolock is the vanilla 5xxx framebuffer with the most ports (3), but that still falls short of the 5 I need.  Let me know.


easy.

Imac's ati5000:

Code:
          ..... ! __ZN11HoolockInfo10createInfoEhR18PlatformParameters:      │
│           ..... !   push        rbp                                          │
│           1c787 !   mov         rbp, rsp                                     │
│           1c78a !   lea         rax, [strz_Hoolock_2073e]                    │
│           1c791 !   mov         [rsi+8], rax                                 │
│           1c795 !   mov         byte ptr [rsi+3], 3

1c795 !   mov         byte ptr [rsi+3], 3

Bold 3 is what u need to change.

0x0001c790: c6 46 03-03

if u wanna 5 outputs, make it

c6 46 03-05
Logged
staticvoid
Newbie

Offline Offline

Posts: 1


« Reply #6 on: May 21, 2011, 01:35:26 PM »

Hi calvintml, I have a Sapphire 5770 running a 24" Apple LED Display via a displayport to mini-displayport adapter. It worked perfect in 10.6.7 using the Vervet framebuffer, but was broken when testing the sandybridge ATI kexts or under Lion.

Anyway I wanted to report that I applied your hack to Lion, as suggested replacing the hoolock personality with vervet in the ATI5000Controller binary. Set ATIConfig=Hoolock in my com.apple.boot.plist, rebooted and bam, my ACD display sprang to life!!

Before I found this post I was considering purchasing a 6870, thanks for saving me some money!   Cool
Logged
calvintml
Full Member
***
Offline Offline

Posts: 131


« Reply #7 on: May 21, 2011, 05:17:57 PM »

Hi calvintml, I have a Sapphire 5770 running a 24" Apple LED Display via a displayport to mini-displayport adapter. It worked perfect in 10.6.7 using the Vervet framebuffer, but was broken when testing the sandybridge ATI kexts or under Lion.

Anyway I wanted to report that I applied your hack to Lion, as suggested replacing the hoolock personality with vervet in the ATI5000Controller binary. Set ATIConfig=Hoolock in my com.apple.boot.plist, rebooted and bam, my ACD display sprang to life!!

Before I found this post I was considering purchasing a 6870, thanks for saving me some money!   Cool
Good news.  I almost bought a 6870 too  Smiley
Logged
Pegasusrjf
Not Newbie
*
Offline Offline

Posts: 28


« Reply #8 on: May 21, 2011, 05:20:39 PM »

http://www.mediafire.com/?u96cfl2s8prtqqw

Here is a link to an edited binary from ATI5000Controller.kext, replace the one that is already in there.  The binary is originally from the Lion DP3 drivers, but edited to replace Hoolock and Langur (the framebuffers for apple 5770 and 5870, respectively) with the values from Uakari (with some small optimizations).  

Try injecting both Langur and Hoolock.  For me and my 5770, both worked.  However, when using Langur, I got system instability.  I don't know if this was because of Langur being unstable, or because there is something that is optimized for 5870 when Langur and something optimized for 5770 when using Hoolock.  So please try injecting both Langur and Hoolock to see which one works better.  Can you use Netkas' ATY_init.kext and stock bios to do this?

The displayport and the two DVI ports should work.  HDMI is NOT mapped and should not work (because Langur and Hoolock only have room for 3 connections).

I have a 2008 Mac Pro, so I am not sure if Netkas' ATY_init.kext will work.  If it will, which one is it, and where do I find it. 

Also, just be make sure I am good on all of this, how do I inject either Langur or Hoolock instead of the standard Uakari for the 5870?
Logged
calvintml
Full Member
***
Offline Offline

Posts: 131


« Reply #9 on: May 21, 2011, 06:56:06 PM »

Sorry can't help with mac pro injection.  I don't have one, so I never learned how.
Logged
netkas
Administrator
Hero Member
*****
Offline Offline

Posts: 826



« Reply #10 on: May 21, 2011, 10:06:01 PM »

to have aty_init working on macpro you just need to add own bios dump(as hex string) to Info.plist to  section corresponding to your videocard.

Keyname - ATY,bin_image , key type - data.
Logged
MacRoy
Not Newbie
*
Offline Offline

Posts: 48



« Reply #11 on: May 22, 2011, 02:26:27 PM »

to have aty_init working on macpro you just need to add own bios dump(as hex string) to Info.plist to  section corresponding to your videocard.

Keyname - ATY,bin_image , key type - data.

Hi netkas!

Could you please do it for me, and include that string into ATY_init for my Sapphire 6870?

Attached Sapphire_HD6870.bin

Sincerely,

MacRoy

* Sapphire_HD6870.bin (128 KB - downloaded 207 times.)
« Last Edit: May 24, 2011, 11:55:17 AM by MacRoy » Logged
MacRoy
Not Newbie
*
Offline Offline

Posts: 48



« Reply #12 on: May 23, 2011, 03:23:20 PM »

to have aty_init working on macpro you just need to add own bios dump(as hex string) to Info.plist to  section corresponding to your videocard.

Keyname - ATY,bin_image , key type - data.

Do you mean the hole BIOS? Or what?

Could you be more specific please, and give some guidelines?!!!


/MacRoy

Logged
Rominator
Hero Member
*****
Offline Offline

Posts: 2328



« Reply #13 on: May 23, 2011, 07:37:58 PM »

to have aty_init working on macpro you just need to add own bios dump(as hex string) to Info.plist to  section corresponding to your videocard.

Keyname - ATY,bin_image , key type - data.

Hi netcas!

Could you please do it for me, and include that string into ATY_init for my Sapphire 6870?

Attached Sapphire_HD6870.bin

Sincerely,

MacRoy


if you can't be bothered to spell his name correctly, why should he do anything for you?

that thing behind your eyes is a brain...use it
Logged

Before asking a question, check your "Personal Settings" and be sure that you have "Brain Services" set to "On".
vnephos
Newbie

Offline Offline

Posts: 1


« Reply #14 on: May 23, 2011, 08:02:38 PM »

Guys, I have an HIS 5450 (0x68F9) with a DVI, DisplayPort and VGA connector that I've been trying to use with a 27" Cinema display. I was able to pretty easily add my PCI ID to the 10.6.7 iMac update kext and enable DVI output, but have been unsuccessful to ever get my DisplayPort connection working. After doing some other reading over at tonymacx86 I realize that I'm just using the normal ATIFrameBuffer so I'm unclear based on the other posts in this thread how I may get my DisplayPort working. Could someone please help me out? I purchased an XFX 6750 card with a Mini DisplayPort connector thinking that it was my DisplayPort to Mini DisplayPort cable that was the problem, but was never able to even get it working at native resolution via DVI. I don't do any gaming since this is a work machine. I just want to get my Cinema display working via the DisplayPort with the correct FrameBuffer. If I can get it working with the 5450 card, I'll be willing to donate my 6750 to "science" by sending it along to the appropriate genius in this forum. Thanks!
Logged
Pages: [1] 2 3 ... 5
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!