Jump to content

[KEXT] XFX 5870 ATI card


panpansh
 Share

24 posts in this topic

Recommended Posts

Because I have some problem with my screen .. I'm re-doing the kext for Mavericks

 

Need GraphicEnabler=yes and AtiConfig=Hoolock

 

Because I have re-mapped the Hoolock only..

 

Need to sleep :) Have fun

 

PS : this is for people want two screens with a good resolution.

the problem at the start is I have just one monitor detected ..

Now I have my two screens detected with the good resolution 1920*1080.

Connected to HDMI and the first DVI on top..

AMD5000Controller.kext.zip

Link to comment
Share on other sites

No luck on fresh install..this card is driving me crazy

In my opinion, it's not the best way to take stranger solution even if the model coincides, it can have different personalities for each laptop or desktop.

Gain you Vbios by AIda, at first, and show what you have.

Link to comment
Share on other sites

I was comparing this kext file to the original and saw no changes..upload wrong one by chance? I was going to try and go the clover method but i'm not too impressed with the bootloader and the instructions to install it...it doesn't even create a bootable partition

Link to comment
Share on other sites

Ok, first of all my card is an XFX 5870.

I have modified and replaced these lines for Hoolock :

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

by that :

00  02  00  00  14  00  00  00  00  71  00  00  00  00  06  05
00  04  00  00  00  04  00  00  00  71  00  00  12  04  04  01
00  08  00  00  00  02  00  00  00  71  00  00  22  05  05  04

with an hexadecimal editor ...

what is these lines ? it's the value extracted from the rom of this card.

 

I re put the kext and the rom if anyone want to try ....

 

Here is my org.chameleon.Boot.plist :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>GraphicsEnabler</key>
	<string>Yes</string>
	<key>AtiConfig</key>
	<string>Hoolock</string>
	<key>EnableC3State</key>
	<string>Yes</string>
	<key>EthernetBuiltIn</key>
	<string>Yes</string>
	<key>GenerateCStates</key>
	<string>Yes</string>
	<key>GeneratePStates</key>
	<string>Yes</string>
	<key>Graphics Mode</key>
	<string>1920x1080x32</string>
	<key>KeyLayout</key>
	<string>mac-fr</string>
	<key>Legacy Logo</key>
	<string>Yes</string>
	<key>Timeout</key>
	<string>5</string>
	<key>UseKernelCache</key>
	<string>Yes</string>
</dict>
</plist>

My two screen works by this modification on the first DVI port (on top) and the HDMI port.

If you have the XFX 5870 I think your card can work ..

Kext_and_Rom_XFX_5870.zip

Link to comment
Share on other sites

So does your Graphics work now?

Yes and no..still having a hard time trying to figure out why this card being natively supported by the OS doesn't want to cooperate. I'm considering going back nvidia and generating my own efi strings.

Link to comment
Share on other sites

  • 3 weeks later...

Hey,

 

May be you can check with this kext with AtiConfig=Zonalis

I have remake that and I have small better performance ..

:)

Exciting!  How large are your performance gains?  Did this solve the stuttering in 3D accelerated applications?  What exactly have you gained by entering in your ROM information?  

 

I have an ASUS HD5870 :::: Vendor ATI 0x1002 Device 0x6898 Revision 0x0000.  Do you think that it would it be worth my while to input my own ROM information into a kext?    

 

::::Spare Parts RIG::::

IntelCore i7 950

Asus P6T Deluxe_v2

3x2GB Corsair DDR3 1066

Asus HD 5870

Seagate Barracuda 320GB 7200RPM

Link to comment
Share on other sites

Hey,

Test it :) it take just 5 minutes to backup original kext, put mine, and reboot.

Here is my last kext.

May be so late I need to do modifications on hot plug id because is the same for dvi and display port.

I use two screens, DVI + HDMI or HDMI + DP. Cannot test DVI + DP for now.

Regards.

 

Here is the output of Unigine Heaven Benchmark 4.0 in "Basic preset"

 

Unigine Heaven Benchmark 4.0 FPS:
55.1
Score:
1388
Min FPS:
8.9
Max FPS:
113.7
System Platform:
Darwin 13.0.0 x86_64
CPU model:
Intel® Xeon® CPU E5520 @ 2.27GHz (2267MHz) x16
GPU model:
ATI Radeon HD 5870 Series (1024MB) x1
Settings Render:
OpenGL
Mode:
1280x720 2xAA windowed
Preset
Basic
 

AMD5000Controller.kext.zip

Link to comment
Share on other sites

Hello,

 

I have run trials with your new AMD5000Controller.kext.

 

Original AMD5000Controller.kext

Unigine Heaven Benchmark 4.0
FPS:
64.8
Score:
1631
Min FPS:
9.2
Max FPS:
121.6
System
Platform: Darwin 13.0.0 x86_64
CPU model: Intel® Core i7 CPU 950 @ 3.07GHz (3073MHz) x8
GPU model: ATI Radeon HD 5000 (1024MB) x1
Settings
Render: OpenGL
Mode: 1280x720 2xAA windowed
Preset
Basic
 
Your new AMD5000Controller.kext from the post above.  No changes to Boot.plist
Unigine Heaven Benchmark 4.0
FPS:
66.9
Score:
1686
Min FPS:
9.3
Max FPS:
126.9
System
Platform: Darwin 13.0.0 x86_64
CPU model: Intel® Core i7 CPU 950 @ 3.07GHz (3073MHz) x8
GPU model: ATI Radeon HD 5000 (1024MB) x1
Settings
Render: OpenGL
Mode: 1280x720 2xAA windowed
Preset
Basic
 
There are some modest FPS gains using your AMD5000Controller.kext.  Do I need to change anything in my Boot.plist to take full advantage of your AMD5000Controller.kext?
 
How did you get your system to assign the ATI Radeon HD 5870 Series (1024MB) x1 ID to your GPU instead of the generic ATI Radeon HD 5000 (1024MB) x1?
 
Thank you for everything you have done!
 
Regards,
-209
Link to comment
Share on other sites

Thank you for the link.  Here is my work so far.

 

I had to use the radeon_bios_decode by bcc9 to get the sense IDs. http://www.insanelymac.com/forum/topic/249642-editing-custom-personalities-for-ati-radeon-hd45xxx/?pid=1649902&mode=threaded 

6898.12.20.0.5.AS02 U126                              
                      
Subsystem Vendor ID: 1043
       Subsystem ID: 346
Object Header Structure Size: 320
Connector Object Table Offset: 3e
Router Object Table Offset: 0
Encoder Object Table Offset: eb
Display Path Table Offset: 12
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 [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 [2] which is [DVI_I]
	encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false


ATOM BIOS Rom: 
	SubsystemVendorID: 0x1043 SubsystemID: 0x0346
	IOBaseAddress: 0x0000
	Filename: SV36460.107 
	BIOS Bootup Message: 
6898.12.20.0.5.AS02 U126                              
                      
PCI ID: 1002:6898
Connector at index 0
	Type [@offset 44298]: DisplayPort (10)
	Encoder [@offset 44302]: INTERNAL_UNIPHY2 (0x21)
	i2cid [@offset 44398]: 0x92, OSX senseid: 0x3
Connector at index 1
	Type [@offset 44308]: HDMI-A (11)
	Encoder [@offset 44312]: INTERNAL_UNIPHY2 (0x21)
	i2cid [@offset 44425]: 0x93, OSX senseid: 0x4
Connector at index 2
	Type [@offset 44318]: DVI-I (2)
	Encoder [@offset 44322]: INTERNAL_UNIPHY (0x1e)
	i2cid [@offset 44462]: 0x94, OSX senseid: 0x5
Connector at index 3
	Type [@offset 44328]: DVI-I (2)
	Encoder [@offset 44332]: INTERNAL_KLDSCP_DAC1 (0x15)
	i2cid [@offset 44462]: 0x94, OSX senseid: 0x5
I was able to use the guide to turn this into...

Connector Type DP 	00 04 00 00
Control Flags Choices	00 01 00 00   04 01 00 00   04 03 00 00   04 06 00 00   00 04 00 00
Output Features		00 01
Output Unknown		00 00
Output Transmitter	22
Output Encoder		05
Output Hotplug ID	01
Output Sense ID		03

Connector Type HDMI 	00 08 00 00
Control Flag Choices	00 02 00 00
Output Features		00 01
Output Unknown		00 00
Output Transmitter	12
Output Encoder		04
Output Hotplug ID	02
Output Sense ID		04

Connector Type DVISL	00 02 00 00
Control Flag Choices	14 00 00 00   14 02 00 00   04 02 00 00
Output Features		00 01
Output Unknown		00 00
Output Transmitter	10
Output Encoder		00
Output Hotplug ID	03
Output Sense ID		05

Connector Type DVISL	00 02 00 00
Control Flag Choices	14 00 00 00   14 02 00 00   04 02 00 00
Output Features		00 01
Output Unknown		00 00
Output Transmitter	00
Output Encoder		10
Output Hotplug ID	04
Output Sense ID		05
I guess that I need to start trying out the control flags now. :)

 

Regards,

-209

Link to comment
Share on other sites

Yes great !

you need to try different control flags.

And you need to try different Hotplug ID ...

 

For me the Hotplug ID by order is not working.

 

Here is my bios decodes in order to look what is the difference between your card and my card :

panpansh$ /InstallBox/modif-ATI5000-kext/radeon_bios_decode < /InstallBox/modif-ATI5000-kext/5870.rom 
ATOM BIOS Rom: 
	SubsystemVendorID: 0x1682 SubsystemID: 0x2960
	IOBaseAddress: 0x0000
	Filename: 587ZNF12.BIN
	BIOS Bootup Message: 
CYPRESS XT GDDR5 32Mx32 MARVIN BIOS UCODEv:120                              

PCI ID: 1002:6898
Connector at index 0
	Type [@offset 44670]: DisplayPort (10)
	Encoder [@offset 44674]: INTERNAL_UNIPHY2 (0x21)
	i2cid [@offset 44798]: 0x90, OSX senseid: 0x1
Connector at index 1
	Type [@offset 44680]: HDMI-A (11)
	Encoder [@offset 44684]: INTERNAL_UNIPHY2 (0x21)
	i2cid [@offset 44825]: 0x93, OSX senseid: 0x4
Connector at index 2
	Type [@offset 44690]: DVI-I (2)
	Encoder [@offset 44694]: INTERNAL_UNIPHY1 (0x20)
	i2cid [@offset 44862]: 0x92, OSX senseid: 0x3
Connector at index 3
	Type [@offset 44700]: DVI-I (2)
	Encoder [@offset 44704]: INTERNAL_KLDSCP_DAC2 (0x16)
	i2cid [@offset 44862]: 0x92, OSX senseid: 0x3
Connector at index 4
	Type [@offset 44710]: DVI-I (2)
	Encoder [@offset 44714]: INTERNAL_UNIPHY (0x1e)
	i2cid [@offset 44899]: 0x94, OSX senseid: 0x5
Connector at index 5
	Type [@offset 44720]: DVI-I (2)
	Encoder [@offset 44724]: INTERNAL_KLDSCP_DAC1 (0x15)
	i2cid [@offset 44899]: 0x94, OSX senseid: 0x5


panpansh$ /InstallBox/modif-ATI5000-kext/redsock_bios_decoder < /InstallBox/modif-ATI5000-kext/5870.rom 
587ZNF12.BIN:

CYPRESS XT GDDR5 32Mx32 MARVIN BIOS UCODEv:120                              

Subsystem Vendor ID: 1682
       Subsystem ID: 2960
Object Header Structure Size: 413
Connector Object Table Offset: 52
Router Object Table Offset: 0
Encoder Object Table Offset: 12c
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 [12] which is [HDMI_TYPE_A]
	encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x22 [duallink 0x2] enc 0x5)] linkb: true
Connector Object Id [2] which is [DVI_I]
	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 [0x16] which is [INTERNAL_KLDSCP_DAC2] 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

The difference between DP and HDMI is : inverted values ...

 

It's maybe the reason why it's not working.

 

PS : for my HDMI control flag I have "04 02 00 00" because "00 02 00 00" not working for me. For DP Control flag I have : "00 04 00 00"

 

Continue on this way, good work :)

Link to comment
Share on other sites

Redsock's bios decoder provides some good information.

 

http://nologic.com/redsock_bios_decoder.zip

 

Your card has way more outputs than mine does.... I have a working driver now but my displays tab now shows two copies of the monitor connected to my DVI-I port. Both of the Control Flag Choices 14 00 00 00 14 02 00 00 seem to work for the DVI-I port but both of these are causing a monitor duplication problem. Have you run into this problem before?

Link to comment
Share on other sites

yes you maybe can post what is the result of your work ? what framebuffer is used ?

 

here is mine :

Personality: Zonalis
ConnectorInfo count in decimal: 6
Disk offset in decimal 591296
0000000 00 04 00 00 00 04 00 00 00 01 00 00 12 04 04 01
0000010 00 08 00 00 04 02 00 00 00 01 00 00 22 05 02 04
0000020 00 02 00 00 04 02 00 00 00 01 00 00 11 02 03 03
0000030 00 02 00 00 04 02 00 00 00 01 00 00 10 01 04 03
0000040 00 02 00 00 04 02 00 00 00 01 00 00 10 00 05 05
0000050 00 02 00 00 04 02 00 00 00 01 00 00 00 10 06 05
0000060

But when I can test DVI + DP, I can have problems because I have the same hotplugID.

 

You can try like this ? (play with hotplugID and Control flag for HDMI port). (for me "00 02 00 00" not working for HDMI).

0000000 00 04 00 00 00 04 00 00 00 01 00 00 22 05 04 03
0000010 00 08 00 00 04 02 00 00 00 01 00 00 12 04 02 04
0000020 00 02 00 00 04 02 00 00 00 01 00 00 10 00 05 05
0000030 00 02 00 00 04 02 00 00 00 01 00 00 00 10 06 05

Regards.

Link to comment
Share on other sites

This is my current driver.

Personality: Vervet
ConnectorInfo count in decimal: 4
Disk offset in decimal 635664
0000000    00  04  00  00  00  04  00  00  00  71  00  00  12  04  04  02
0000010    00  08  00  00  00  02  00  00  00  01  00  00  12  04  02  04
0000020    00  02  00  00  14  00  00  00  00  01  00  00  10  00  03  05
0000030    00  02  00  00  14  00  00  00  00  01  00  00  00  10  04  05
0000040
The card shows up as a Graphics ATI Radeon HD 5800 Series 1024 MB now instead of a 5000 series.ATI Radeon HD 5800 Series:

 

Chipset Model: ATI Radeon HD 5800 Series

Type: GPU

Bus: PCIe

PCIe Lane Width: x16

VRAM (Total): 1024 MB

Vendor: ATI (0x1002)

Device ID: 0x6898

Revision ID: 0x0000

Displays:

DELL S1709W:

Resolution: 1440 x 900 @ 60 Hz

Pixel Depth: 32-Bit Color (ARGB8888)

Display Serial Number: K419D88C2EWL

Mirror: On

Mirror Status: Hardware Mirror

Online: Yes

Rotation: Supported

DELL S1709W:

Resolution: 1440 x 900 @ 60 Hz

Pixel Depth: 32-Bit Color (ARGB8888)

Display Serial Number: K419D88C2EWL

Main Display: Yes

Mirror: On

Mirror Status: Master Mirror

Online: Yes

Rotation: Supported

 

It lists the monitor twice though and it will crash the OpenGL engine after it runs once. I do not have a display port adapter to test the display port. My hotplug ID increment up from 01 to 04. I am guessing this is wrong.

Link to comment
Share on other sites


Third Driver—DOES NOT WORK
0000000 00 04 00 00 00 01 00 00 00 01 00 00 22 05 01 03
0000010 00 08 00 00 00 02 00 00 00 01 00 00 12 04 02 04
0000020 00 02 00 00 04 02 00 00 00 01 00 00 10 00 03 05
0000030 00 02 00 00 04 02 00 00 00 01 00 00 00 10 04 05
0000040
This driver using control flag 04 02 00 00 for the DVII port causes a black screen at boot.
Link to comment
Share on other sites

  • 3 weeks later...

Personality: Uakari
ConnectorInfo count in decimal: 4
Disk offset in decimal 635392
0000000 00 04 00 00 00 04 00 00 00 01 00 00 12 04 04 01
0000010 00 08 00 00 00 02 00 00 00 01 00 00 22 05 05 04
0000020 00 02 00 00 04 02 00 00 00 01 00 00 11 02 03 03
0000030 00 02 00 00 14 00 00 00 00 01 00 00 10 00 06 05
0000040
This personality seems to work for the most part. The only issue it has is that ti oversamples screens connected via HDMI causing them to not fit properly and the audio does not work via HDMI. Should I try changing the encoder from 05 to 04 to get the HDMI working properly?
Link to comment
Share on other sites

  • 2 weeks later...
 Share

×
×
  • Create New...