Jump to content

Editing custom personalities for ATI Radeon HD[45]xxx


  • Please log in to reply
735 replies to this topic

#701
khe91

khe91

    InsanelyMac Protégé

  • Members
  • PipPip
  • 66 posts
  • Gender:Male
  • Location:Germany
It's a minor release, but the ATI drivers change a lot because of the ATI D300/D500/D700 in the MacPro6,1.
ati-personality.pl shows all the connector counts 0.

Attached Files



#702
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,277 posts
  • Gender:Male
Thanks for the debug dump.
Ok, I've updated the script in post #1 so that it finds the connector count in a slightly more generic way. Looks like as of 10.9.1, the instruction for setting the connection count changed again, as it did with the 10.9 release. Since this latest change left the script busted since 10.9.1, not 10.9.2 beta, I'm surprised nobody mentioned this before. Are most ATI users just relying upon clover, or something else, to hack their connector tables for them?
If so then maybe it's unnecessary to keep this script updated.

#703
khe91

khe91

    InsanelyMac Protégé

  • Members
  • PipPip
  • 66 posts
  • Gender:Male
  • Location:Germany
Thanks for the update, it works also in latest 10.9.2b62.
In 10.9.1. I didn't need the script, my ATI graphic card worked OOB.
But in 10.9.2. it's totally different. Can't even boot with a screen connected to a DP connector, it reboots right away before opening the Workspace.
So I'm hoping I can fix it by patching connector infos.

#704
meteorite

meteorite

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts
  • Gender:Male
  • Location:Thailand

Is ver .14 backward compatible 10.9?

 

because I'm get no hex value of any connectors. 

LPPGMs-Mac-Pro:a lppgm$ sudo ./ati-personality.pl AMD6000Controller.kext
Password:
Script version 0.14
Kext AMD6000Controller.kext/Contents/MacOS/*Controller
Personality: Pithecia
ConnectorInfo count in decimal: 2
Disk offset in decimal 648896
od: /tmp/x: No such file or directory
od: /tmp/x: Bad file descriptor
Personality: Bulrushes
ConnectorInfo count in decimal: 6
Disk offset in decimal 648928
od: /tmp/x: No such file or directory
od: /tmp/x: Bad file descriptor

and so on...

 

Thank you.



#705
meteorite

meteorite

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts
  • Gender:Male
  • Location:Thailand

Never mine, It's worked.

 

I'v to replace "/Contents/MacOS/*Controller" to "/Contents/MacOS/AMD6000Controller" in the code.

Personality: Pondweed
ConnectorInfo count in decimal: 3
Disk offset in decimal 649776
0000000    02  00  00  00  00  01  00  00  09  01  01  00  10  00  05  05
0000010    00  04  00  00  04  03  00  00  00  01  02  00  11  02  01  01
0000020    00  04  00  00  04  03  00  00  00  01  03  00  21  03  02  02
0000030


#706
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,277 posts
  • Gender:Male

I'v to replace "/Contents/MacOS/*Controller" to "/Contents/MacOS/AMD6000Controller" in the code.

I don't know why you're finding that necessary, simply providing the kext name as an argument works fine for me. Looks like a busted shell environment with "set noglob" turned on...

And no, there's no backwards compatibility issue introduced with the 0.14 change; I was extra conservative and treated 10.9.1+ as a special case in the script. Now that I've went back and tested with the older release, I see that my new 10.9.1+ check actually works for all of 10.9+. Will simplify the check next time around...

#707
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,925 posts
  • Gender:Male
  • Location:Moscow

In 10.9.1 I am still using connectors discovered in 10.8. They work also in 10.7.5. Same digits from 10.7.5 up to 10.9.1. (Ipomoea)

Clover has nothing to detect connectors. Manual work needed.



#708
meteorite

meteorite

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts
  • Gender:Male
  • Location:Thailand

I don't know why you're finding that necessary, simply providing the kext name as an argument works fine for me. Looks like a busted shell environment with "set noglob" turned on...

And no, there's no backwards compatibility issue introduced with the 0.14 change; I was extra conservative and treated 10.9.1+ as a special case in the script. Now that I've went back and tested with the older release, I see that my new 10.9.1+ check actually works for all of 10.9+. Will simplify the check next time around...

I'm asking to soon before take a look into your code. And found out later that you actually check the os version ($osxvers >= "10.9":P

 

And yes I'm given the kext's name as argument but it did not work.

 

The od command give an error cannot find /tmp/x so I' looking into the dd command which redirect its output to /tmp/x.

I'm manually execute the output of printf($ddcmd.....($cnt*16)); and it give error file not found.

So there must be something about $kextbin.

I just tried replace "/Contents/MacOS/*Controller" to "/Contents/MacOS/AMD6000Controller" and it just work like that  :surprised:

 

 

p.s. forgive me if my English is weird. 



#709
meteorite

meteorite

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts
  • Gender:Male
  • Location:Thailand

In 10.9.1 I am still using connectors discovered in 10.8. They work also in 10.7.5. Same digits from 10.7.5 up to 10.9.1. (Ipomoea)

Clover has nothing to detect connectors. Manual work needed.

 

Hello bcc9, Slice and other,

 

Could you guys advise me please?

I'm try to patch the connector of ATI Radeon HD 7670m on Toshiba L840.

 

This is Pondweed of AMD6000Controller.kext on 10.9.1

Personality: Pondweed
ConnectorInfo count in decimal: 3
Disk offset in decimal 649776
0000000    02  00  00  00  00  01  00  00  09  01  01  00  10  00  05  05
0000010    00  04  00  00  04  03  00  00  00  01  02  00  11  02  01  01
0000020    00  04  00  00  04  03  00  00  00  01  03  00  21  03  02  02

02  00  00  00  - laptop lcd
00  04  00  00  - displayport
00  04  00  00  - displayport

 

 

 

And this is my vbios

ATOM BIOS Rom: 
SubsystemVendorID: 0x1002 SubsystemID: 0x1002
IOBaseAddress: 0x3000
Filename: BR44148.001 
BIOS Bootup Message: 
Toshiba/Quanta BY3/BY4 Thames XT DDR3                                       


PCI ID: 1002:6840
Connector at index 0
Type [@offset 44688]: LVDS (7)
Encoder [@offset 44692]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 44762]: 0x91, OSX senseid: 0x2
Connector at index 1
Type [@offset 44698]: HDMI-A (11)
Encoder [@offset 44702]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 44785]: 0x90, OSX senseid: 0x1
Connector at index 2
Type [@offset 44708]: VGA (1)
Encoder [@offset 44712]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 44812]: 0x92, OSX senseid: 0x3
LVDS: 02
HDMI: 01
VGA: 03
 

so and I make change to this

0000000    02  00  00  00  00  01  00  00  09  01  01  00  10  00  05  02
0000010    00  04  00  00  04  03  00  00  00  01  02  00  11  02  01  01
0000020    00  04  00  00  04  03  00  00  00  01  03  00  21  03  02  03

And give the Clove patch Connector, Now Mac OS can identify my card as AMD Radeon HD 7670m in About This Mac but only 3 MB and the resolution is bad 1024x768 but the native is 1366x768

 

This is my config.plist

<key>Graphics</key>
<dict>
<key>FBName</key>
<string>Pondweed</string>
<key>InjectEDID</key>
<true/>
<key>Inject</key>
<dict>
<key>Intel</key>
<false/>
<key>ATI</key>
<true/>
<key>NVidia</key>
<false/>
</dict>
</dict>
<key>KernelAndKextPatches</key>
<dict>
<key>ATIConnectorsController</key>
<string>6000</string>
<key>ATIConnectorsData</key>
<string>020000000001000009010100100005050004000004030000000102001102010100040000040300000001030021030202</string>
<key>ATIConnectorsPatch</key>
<string>020000000001000009010100100005020004000004030000000102001102010100040000040300000001030021030203</string>
<key>AppleRTC</key>
<true/>
<key>AsusAICPUPM</key>
<true/>
<key>KextsToPatch</key>
<array>
<dict>
<key>Name</key>
<string>AppleAHCIPort</string>
<key>Find</key>
<data>
RXh0ZXJuYWw=
</data>
<key>Replace</key>
<data>
SW50ZXJuYWw=
</data>
<key>Comment</key>
<string>External icons patch</string>
</dict>
</array>
</dict>

Any help/advice would be appreciate.

Thanks in advance.



#710
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,925 posts
  • Gender:Male
  • Location:Moscow

You are near to success. Make this

	<key>Graphics</key>
	<dict>

		<key>LoadVBios</key>
		<true/>

And change HDMI connector, second line, to 0000010    00  08



#711
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,277 posts
  • Gender:Male

In 10.9.1 I am still using connectors discovered in 10.8. They work also in 10.7.5. Same digits from 10.7.5 up to 10.9.1. (Ipomoea)
Clover has nothing to detect connectors. Manual work needed.

Good to hear the patches are holding up. Probably worth revisiting that effort to standardize the kext patch syntax. Then a script could auto-generate the patch commands.

#712
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,277 posts
  • Gender:Male

The od command give an error cannot find /tmp/x so I' looking into the dd command which redirect its output to /tmp/x.

Oh you're right, sorry, the dd command was in fact always failing to work when the kext was specified in the command line. I never noticed since I always had a /tmp/x file from previous runs :(
I've cleaned up the code, added error checking, fixed this bug, etc. and posted an updated version: version 0.15.

#713
meteorite

meteorite

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts
  • Gender:Male
  • Location:Thailand

You are near to success. Make this

	<key>Graphics</key>
	<dict>

		<key>LoadVBios</key>
		<true/>

And change HDMI connector, second line, to 0000010    00  08

 

Thanks Slic, I did change the second line as suggested.

 

But if I set LoadVBios to true then I got black screen. If set to false I get it boot into Desktop with 1366x768 and AMD Radeon HD 7670m 4MB in About This Mac.

So because black screen, maybe incorrect patch connector?

 

any ideas?

 

EDIT:

I followed this guid http://applelife.ru/...-11#post-339043 and it works! :thumbsup_anim:

 

12670999153_3accc95cee_o.png



#714
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,925 posts
  • Gender:Male
  • Location:Moscow

Good to hear the patches are holding up. Probably worth revisiting that effort to standardize the kext patch syntax. Then a script could auto-generate the patch commands.

The syntax is as follow

		<key>ATIConnectorsController</key>
		<string>6000</string>
		<key>ATIConnectorsData</key>
		<string>000400000403000000010000120401050008000004020000000100001102040310000000100000000001000000000002</string>
		<key>ATIConnectorsPatch</key>
		<string>040000000403000000010000100001061000000010000000000100000000000100080000040200000001000012040403</string>

But the script can't produce the patch. His intelligence is not enough for the job.



#715
khe91

khe91

    InsanelyMac Protégé

  • Members
  • PipPip
  • 66 posts
  • Gender:Male
  • Location:Germany

I'm using a ATI 7970 (aka R9 280X aka D700) in 10.9.1. it works OOB, in 10.9.2. it reboots OSX on boot before the Workspace opens.

7970 mysteries in 10.9.2. - ATi - InsanelyMac Forum

Still trying to get it work, so here is some stuff I found out about the personalities in 10.9.2.:

 

With 10.9.2. Apple changed the ConnectorInfos inside of ATI7000Controller.kext, so the patches from version <10.9.2. will not work anymore.

Comparing the output of ati-personality.pl of 10.9.1. and 10.9.2. (release 62) shows that Apple changed exactly the 2 unknown bytes, after the Feature bytes and before the Transmitter byte.

From original MacPro6,1 IOReg dumps its known that Apple using IkuraS, KaniS and MaguroS for their D300/D500/D700.

Maybe the first unknown byte is just a counter for ports, since it's 01 02 03 04 05 06 for the 6 ports in this 3 personalities.

I guess Apple don't care about personalities that they don't use, thats why this first unknown byte is 00 for other personalities with less then 6 ports.

The second unknown byte changed from 00 to 07 for IkuraS, KaniS and MaguroS in 10.9.2. so it must be important for MacPro6,1.

Apple also changed this second unknown byte from 00 to 01 for other personalities with 6 DP ports Junsai and OPM.

 

Somebody knows where to find the ConnectorInfos for the default personality AMD,RadeonFramebuffer ?

Because for me AMD,RadeonFramebuffer don't have any problems with ports in 10.9.1. It always detects the correct ports (any combinations of DVI,DVI-DL,DP, up to 5 displays) and gives the correct resolutions. It also gives the highest LuxMark for my card. So it would be interesting how that ConnectorInfo looks like.



#716
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,277 posts
  • Gender:Male

The syntax is as follow

		<key>ATIConnectorsController</key>
		<string>6000</string>
		<key>ATIConnectorsData</key>
		<string>000400000403000000010000120401050008000004020000000100001102040310000000100000000001000000000002</string>
		<key>ATIConnectorsPatch</key>
		<string>040000000403000000010000100001061000000010000000000100000000000100080000040200000001000012040403</string>

But the script can't produce the patch. His intelligence is not enough for the job.

Scripts can't read the user's mind, but they can have a lot of intelligence. A relatively dumb script could read the PCI id of the video card, and spit out the best-commonly used patch for that card. A more intelligent script could read the video bios, parse the connectors, and output a patch for the connectors that were found. And so on.

And, if the above syntax were more general, it could be used by both clover&chameleon, at which point there would be more reason to make a script to auto-generate the config statements.

#717
X-Gray

X-Gray

    InsanelyMac Protégé

  • Members
  • Pip
  • 9 posts
Hi …
my card AMD Radeon HD 6570M/5700 Series
my internal screen is working with patched Eulumer and Edid override
the problem is that my display0 in ioreg is detected as “AppleDisplay”
I’m trying to load it as AppleBacklightDisplay
patches which worked
 

these two gives built-in display in system preferences  but "display0" in ioreg is still "AppleDisplay"

02 00 00 00 14 00 00 00 01 08 00 00 10 02 01 07 
02 00 00 00 14 00 00 00 09 01 00 00 10 02 01 07
whenever I change “14 00 00 00″ to “02 00 00 00″ or “00 01 00 00″ (which are for internal screen)
 
02 00 00 00 02 00 00 00 09 01 00 00 10 02 01 07 // no display even in ioreg
02 00 00 00 00 01 00 00 09 01 00 00 10 02 01 07 // no display even in ioreg
 
I never get a working screen (black screen) … even in ioreg no display0

thanks in advance

Attached Files



#718
zerokool75

zerokool75

    InsanelyMac Protégé

  • Members
  • Pip
  • 14 posts

ATI FRAME BUFFER

 

Hello!

I have an Ati Firepro V4800. I was told I have to add ( Vendor: ATI (0x1002) , and  (Device ID: 0x68c8) so I did. Work better but the video are very slow in full screen. I don't know how to add the right frame buffer to my card. Could some one tell what I have to do with this. Here is what I have until now.

 

Thank you in advance!

 

 

ATI Radeon HD 5000:

 

  Chipset Model: ATI Radeon HD 5000

  Type: GPU

  Bus: PCIe

  PCIe Lane Width: x16

  VRAM (Total): 1024 MB

  Vendor: ATI (0x1002)

  Device ID: 0x68c8

  Revision ID: 0x0000

  Displays:

VX2450 SERIES:

  Resolution: 1920 x 1080 @ 60 Hz

  Pixel Depth: 32-Bit Color (ARGB8888)

  Display Serial Number: S4Z111500168

  Main Display: Yes

  Mirror: Off

  Online: Yes



#719
RobertX

RobertX

    InSanelyMac Maverick

  • Members
  • PipPipPipPipPipPipPip
  • 532 posts
  • Gender:Not Telling

...hi, from 10.9.2    :smoke:

 

Spoiler

 

...and my card...

 

Spoiler

 

let's see... :smoke:



#720
mashnoon731

mashnoon731

    InsanelyMac Protégé

  • Members
  • Pip
  • 2 posts

is it gonna work on AMD a8 apu (redeon 7640g)







0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy