Jump to content

Graphic card Personality edited,but doesn't work


Brd
 Share

6 posts in this topic

Recommended Posts

Hi all,i set up sierra on my asus k52j,everything works quite good,but the video card ( ATI Mobility 5470 ) is driving me crazy...i want to make one of the outputs work(actually works only the monitor,with edid injected),but patching personalities didn't work..here is what i've done:

 

Extracted personalities with ati-personality tool by bcc9 (I want to use "Langur" framebuffer):

 

00040000 04060000 00010000 00000000 21030402 00000000 

 

00040000 04060000 00010000 00000000 11020101 00000000 

 

 

04000000 14020000 00010000 00000000 02040503 00000000 

 

(Can someone confirm that they are exact? Because i ran into some problems using the script)

 

Then used firmware decoders(in order radeon bios and redsock):

 

 

ATOM BIOS Rom: 
SubsystemVendorID: 0x1043 SubsystemID: 0x1bf2
IOBaseAddress: 0xd000
Filename: k52j0121.pak
BIOS Bootup Message: 
Asus K52Jr-Park M2 XT DDR3 64Mx16 1Gbyte ASID:A31K52.010$                   
 
PCI ID: 1002:68e0
Connector at index 0
Type [@offset 45130]: LVDS (7)
Encoder [@offset 45134]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 45204]: 0x96, OSX senseid: 0x7
Connector at index 1
Type [@offset 45140]: HDMI-A (11)
Encoder [@offset 45144]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 45227]: 0x91, OSX senseid: 0x2
Connector at index 2
Type [@offset 45150]: VGA (1)
Encoder [@offset 45154]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 45254]: 0x97, OSX senseid: 0x8
 
k52j0121.pak:
 
Asus K52Jr-Park M2 XT DDR3 64Mx16 1Gbyte ASID:A31K52.010$                   
 
Subsystem Vendor ID: 1043
       Subsystem ID: 1bf2
Object Header Structure Size: 199
Connector Object Table Offset: 34
Router Object Table Offset: 0
Encoder Object Table Offset: 99
Display Path Table Offset: 12
Connector Object Id [14] which is [LVDS]
encoder obj id [0x1e] which is [iNTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false
Connector Object Id [12] which is [HDMI_TYPE_A]
encoder obj id [0x20] which is [iNTERNAL_UNIPHY1 (osx txmit 0x21 [duallink 0x1] enc 0x3)] linkb: true
Connector Object Id [5] which is [VGA]
encoder obj id [0x15] which is [iNTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false
 
Then i took values and put them into framebuffer:

 

00080000 04060000 00010000 00000000 21030402 00000000 

 

10000000 04060000 00010000 00000000 11020108 00000000 

 

02000000 14020000 00010000 00000000 02040507 00000000 

 

Then i tried to patch it via clover(at the beginning with the apposite function,then with kext patching) but none of them woked...seems that the modifications weren't applied(the card still behaves like none happened)...so i took an hex editor and i manually changed the values on the Ati5000 inside the kext...rebooted but same behavior(i used kextutil for rebuild and fix permissions every time)...so...how can i proceed? I'm out of ideas,if someone of you can point me on the right direction that should be great!!

I attach ATI5000Kext,ioreg,and my clover config and my ati-personality run after the patch...Thanks in advance!!

 

Link to comment
Share on other sites

Code construction is wrong.

10 00 14 07

21 03 12 02

00 10 05 08

 

Should be the values you place into the framebuffer.

 

So it would look like this:

    02  00  00  00  40  00  00  00  08  01  00  00  21  03  04  02
    00  08  00  00  02  00  00  00  00  02  00  00  11  02  01  01
    10  00  00  00  10  00  00  00  00  03  00  00  02  04  05  03

 

Let me know if it works

Link to comment
Share on other sites

So i have to put this (in clover)

 

    02  00  00  00  40  00  00  00  08  01  00  00  21  03  04  02
    00  08  00  00  02  00  00  00  00  02  00  00  11  02  01  01
    10  00  00  00  10  00  00  00  00  03  00  00  02  04  05  03

 

On the "ATI Connectors Patch" and this

 

   00 04 00 00 04 06 00 00 00 01 00 00 21 03 04 02

  00 04 00 00 04 06 00 00 00 01 00 00 11 02 01 01 

  04 00 00 00 14 02 00 00 00 01 00 00 02 04 05 03 

 

 

On the "ATI Connectors Data"?

Sorry but i didn't understand..also the patched framebuffer you gave me has " xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx" while sierra's ones looks like this "xx xx xx xx xx xx xx xx xx xx xx xx 00 00 00 00 xx xx xx xx 00 00 00 00"...which ones i have to use? Thanks in advance and sorry for the bad english  :blush:

 

Link to comment
Share on other sites

No no, it isn't in the ATI Connectors Patch. You have to patch the kext in clover. So you go in Clover Configurator in the kext patching section and then you must add the kext for the AMD5000Controller.kext. Then in the find you place the original framebuffer code and then in the other section you put the patched code. I was utilising the guide here http://www.insanelymac.com/forum/topic/303186-how-to-modification-of-amd-fb-clover-injection/

It appears that you are doing something different, so if my code doesn't work you may want to create a new one using that guide. It worked for my 270X and got all the ports working properly.

 

EDIT: It has come to my attention that Sierra DOES have extra digits in its code. This simply means that more zeros must be added. Try this one instead:

 

    02  00  00  00  40  00  00  00  08  01  00  00 00 00 00 00 00 21  03  04  02 00 00 00 00
    00  08  00  00  02  00  00  00  00  02  00  00 00 00 00 00 00 11  02  01  01 00 00 00 00
    10  00  00  00  10  00  00  00  00  03  00  00 00 00 00 00 00 02  04  05  03 00 00 00 00

 

My apologies for the confusion.

 

Good luck,

 

- Matt

Link to comment
Share on other sites

  • 2 weeks later...

Sorry for the delay but i was busy last days i was busy...so i managed to get it work by editing the file with an hex editor,but this code costruction ( 10 00 14 07   21 03 12 02   00 10 05 08) didn't work...after some tries i used this: 10 00 01 07   21 03 02 02   00 10 03 08 and it works! 

 

So those are the working strings 

 

02000000 40000000 08010000 00000000 10000107 00000000

00080000 00020000 00010000 00000000 21030302 00000000

 

10000000 10000000 00010000 00000000 00100208 00000000

 

HDMI Works,but VGA doesn't work , probably because the connector isn't probably detected(is 0x10? , maybe the "?" means something)...any ideas? 

  • Like 1
Link to comment
Share on other sites

Well VGA is a bit tricky. As real Macs don't use VGA it is very difficult to get working, however you can try getting it to work by playing around with the code. One thing you can try is to inject via DSDT, but as I do not have your card I cannot assist you with this.

Link to comment
Share on other sites

 Share

×
×
  • Create New...