Jump to content
bcc9

Editing custom personalities for ATI Radeon HD[45]xx

775 posts in this topic

Recommended Posts

 

Sir Slice, if you have time, can you help-me with a patch? Junsai from 10.9.3

 

 
→ ./radeon_bios_decode OLDBIOS.BIN
ATOM BIOS Rom:
SubsystemVendorID: 0x1043 SubsystemID: 0x0442
IOBaseAddress: 0x0000
Filename: AS08U2.bin
BIOS Bootup Message:
6798.15.12.0.4.AS08.U2
 
PCI ID: 1002:6798
Connector at index 0
Type [@offset 45292]: DisplayPort (10)
Encoder [@offset 45296]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 45428]: 0x92, OSX senseid: 0x3
Connector at index 1
Type [@offset 45302]: DisplayPort (10)
Encoder [@offset 45306]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 45455]: 0x93, OSX senseid: 0x4
Connector at index 2
Type [@offset 45312]: DisplayPort (10)
Encoder [@offset 45316]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 45482]: 0x90, OSX senseid: 0x1
Connector at index 3
Type [@offset 45322]: DVI-I (2)
Encoder [@offset 45326]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 45519]: 0x91, OSX senseid: 0x2
Connector at index 4
Type [@offset 45332]: DVI-I (2)
Encoder [@offset 45336]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 45519]: 0x91, OSX senseid: 0x2
Connector at index 5
Type [@offset 45342]: DVI-D (3)
Encoder [@offset 45346]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 45546]: 0x94, OSX senseid: 0x5

→ ./redsock_bios_decoder OLDBIOS.BIN
AS08U2.bin  :
 
6798.15.12.0.4.AS08.U2
 
Subsystem Vendor ID: 1043
       Subsystem ID: 442
Object Header Structure Size: 453
Connector Object Table Offset: 52
Router Object Table Offset: 0
Encoder Object Table Offset: 145
Display Path Table Offset: 12
Connector Object Id [19] which is [DISPLAY_PORT]
encoder obj id [0x20] which is [iNTERNAL_UNIPHY1 (osx txmit 0x11 [duallink 0x1] enc 0x2)] linkb: false
Connector Object Id [19] which is [DISPLAY_PORT]
encoder obj id [0x20] which is [iNTERNAL_UNIPHY1 (osx txmit 0x21 [duallink 0x1] enc 0x3)] linkb: true
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 [1] which is [DVI_I]
encoder obj id [0x21] which is [iNTERNAL_UNIPHY2 (osx txmit 0x22 [duallink 0x2] enc 0x5)] linkb: true
Connector Object Id [1] which is [DVI_I]
encoder obj id [0x15] which is [iNTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false
Connector Object Id [4] which is [DVI_D]

encoder obj id [0x1e] which is [iNTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false

 

 

 

 

Choose personallity Ikura and you may not correct connectors.

Also your DeviceID=6798 is natively supported by 10.9

Share this post


Link to post
Share on other sites
Advertisement

Hello All,


 


Thank you for your time.  It looks like this is the place to reach out.  I would very much appreciate any hints.  I have done my research, but can't understand why I have a DisplayPort?  My Sapphire HD 6450 1 GB only has physical HDMI, DVI-I and DVI-D ports.  In Windows, it supposedly can handle 3x monitors In "eyefinity" mode, but I need to edit the kext to get all of the ports working for 10.9.3...


 


Redsockosx's dump:


206P13MA.SH5:


 


SA HD6450 FX DDR3 1GB                                                       


 


Subsystem Vendor ID: 174b


       Subsystem ID: e206


Object Header Structure Size: 246


Connector Object Table Offset: 3e


Router Object Table Offset: 0


Encoder Object Table Offset: b5


Display Path Table Offset: 12


Connector Object Id [19] which is [DISPLAY_PORT]  <<----   :rofl: 


encoder obj id [0x20] which is [iNTERNAL_UNIPHY1 (osx txmit 0x21 [duallink 0x1] enc 0x3)] 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


 


Radeon dump:


ATOM BIOS Rom: 


SubsystemVendorID: 0x174b SubsystemID: 0xe206


IOBaseAddress: 0x0000


Filename: 206P13MA.SH5


BIOS Bootup Message: 


SA HD6450 FX DDR3 1GB                                                       


 


PCI ID: 1002:6779


Connector at index 0


Type [@offset 44311]: DisplayPort (10)  <<----   :rofl: 


Encoder [@offset 44315]: INTERNAL_UNIPHY1 (0x20)


i2cid [@offset 44395]: 0x93, OSX senseid: 0x4


Connector at index 1


Type [@offset 44321]: HDMI-A (11)


Encoder [@offset 44325]: INTERNAL_UNIPHY2 (0x21)


i2cid [@offset 44422]: 0x90, OSX senseid: 0x1


Connector at index 2


Type [@offset 44331]: DVI-I (2)


Encoder [@offset 44335]: INTERNAL_UNIPHY (0x1e)


i2cid [@offset 44459]: 0x92, OSX senseid: 0x3


Connector at index 3


Type [@offset 44341]: DVI-I (2)


Encoder [@offset 44345]: INTERNAL_KLDSCP_DAC1 (0x15)


i2cid [@offset 44459]: 0x92, OSX senseid: 0x3


 


Ioreg dump:


Idavold:Desktop Sam$ ioreg | grep ATY


    | |   |   | +-o ATY,Pithecia@0  <class AtiFbStub, id 0x1000004e8, registered, matched, active, busy 0 (16 ms), retain 8>


    | |   |   | +-o ATY,Pithecia@1  <class AtiFbStub, id 0x1000004e9, registered, matched, active, busy 0 (7 ms), retain 8>


    | |   |   | +-o ATY,Pithecia@0  <class AtiFbStub, id 0x1000004ea, registered, matched, active, busy 0 (14 ms), retain 8>


    | |   |   | +-o ATY,Pithecia@1  <class AtiFbStub, id 0x1000004eb, registered, matched, active, busy 0 (7 ms), retain 8>


 


Pithecia has worked well so far through DVI-I to HDMI adapter to monitor's HDMI.  I have gotten the HDMI working directly to a 2nd monitor, but HDCP (snow) always reared it head with things slept or whatever...  And so I'm tired of settling...  I'll happily creating the profile soon as I reread BCC9, Alexander Martinez, and other forums for the umpteenth time, but I noticed this DisplayPort issue right away and thought I'd ask.  I haven't seen it mentioned with any 6450 card...


 


Thank you for any insight!


Share this post


Link to post
Share on other sites

Hi, could somebody helps with patch for 5770?

/radeon_bios_decode < c0000.bin
ATOM BIOS Rom: 
	SubsystemVendorID: 0x1043 SubsystemID: 0x03b6
	IOBaseAddress: 0xe000
	Filename: 5770F.BIN   
	BIOS Bootup Message: 
68B8.12.20.0.47.AS01.U126                                                   

PCI ID: 1002:68b8


Connector at index 0
	Type [@offset 44350]: HDMI-A (11)
	Encoder [@offset 44354]: INTERNAL_UNIPHY2 (0x21)
	i2cid [@offset 44442]: 0x94, OSX senseid: 0x5


Connector at index 1
	Type [@offset 44360]: DVI-I (2)
	Encoder [@offset 44364]: INTERNAL_UNIPHY1 (0x20)
	i2cid [@offset 44479]: 0x93, OSX senseid: 0x4


Connector at index 2
	Type [@offset 44370]: DVI-I (2)
	Encoder [@offset 44374]: INTERNAL_KLDSCP_DAC2 (0x16)
	i2cid [@offset 44479]: 0x93, OSX senseid: 0x4


Connector at index 3
	Type [@offset 44380]: VGA (1)
	Encoder [@offset 44384]: INTERNAL_KLDSCP_DAC1 (0x15)
	i2cid [@offset 44506]: 0x90, OSX senseid: 0x1


68B8.12.20.0.47.AS01.U126                                                   

Subsystem Vendor ID: 1043
       åSubsystem ID: 3b6
Object Header Structure Size: 287
Connector Object Table Offset: 3e
Router Object Table Offset: 0
Encoder Object Table Offset: cc
Display Path Table Offset: 12



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 [5] which is [VGA]
	encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false

Share this post


Link to post
Share on other sites

Hi,

for Yosemite, the frame buffer kext isn't called ATIFramebuffer.kext anymore - it's now AMDFramebuffer.kext

I corrected that in the "ati-personality.pl" script and I don't get any errors but also no results back from the script.

Maxims-iMac:~ maxim$ /Users/maxim/Desktop/ati-personality.pl.0.15/ati-personality.pl 
Script version 0.15
Kext /System/Library/Extensions/AMDFramebuffer.kext/Contents/MacOS/AMDFramebuffer
Maxims-iMac:~ maxim$

I guess something else has to be edited - but I don't know what :(

 

Thanks!

Share this post


Link to post
Share on other sites

Any success story's on patching 10.9.4 ATI kexts for ATI RadeonHD 5470 512MB?

At the moment only got it the internal LCD working under 10.9.4 with 10.9.0 kexts.

Or with the 10.9.4 kext but it needs a connected monitor on hdmi port then.

Share this post


Link to post
Share on other sites

Hi,

for Yosemite, the frame buffer kext isn't called ATIFramebuffer.kext anymore - it's now AMDFramebuffer.kext

I corrected that in the "ati-personality.pl" script and I don't get any errors but also no results back from the script.

Maxims-iMac:~ maxim$ /Users/maxim/Desktop/ati-personality.pl.0.15/ati-personality.pl 
Script version 0.15
Kext /System/Library/Extensions/AMDFramebuffer.kext/Contents/MacOS/AMDFramebuffer
Maxims-iMac:~ maxim$

I guess something else has to be edited - but I don't know what :(

 

Thanks!

 

Just append '-o=10.9' at the end of the command like this: ./ati-personality.pl -o=10.9

It works. :D

Share this post


Link to post
Share on other sites

Trying to get the following device to work.

 

01:00.0 VGA compatible controller [0300]: Advanced Micro Devices [AMD] nee ATI RV710 [Mobility Radeon HD 4500/5100 Series] [1002:9553]

 

 

Modifying the Shrike frame buffer :

 

Personality: Shrike

ConnectorInfo count in decimal: 3

Disk offset in decimal 658240

0000000    02  00  00  00  40  00  00  00  09  01  00  00  02  01  00  03

0000010    02  00  00  00  00  01  00  00  09  01  00  00  20  01  02  02

0000020    00  04  00  00  04  03  00  00  00  01  00  00  10  00  01  01

 
Here's the info from my bios dump:
 

PCI ID: 1002:9553

Connector at index 0

Type [@offset 45712]: VGA (1)

Encoder [@offset 45716]: INTERNAL_KLDSCP_DAC1 (0x15)

i2cid [@offset 45774]: 0x95, OSX senseid: 0x6

Connector at index 1

Type [@offset 45722]: HDMI-A (11)

Encoder [@offset 45726]: INTERNAL_UNIPHY (0x1e)

i2cid [@offset 45797]: 0x91, OSX senseid: 0x2

Connector at index 2

Type [@offset 45732]: LVDS (7)

Encoder [@offset 45736]: INTERNAL_UNIPHY2 (0x21)

i2cid [@offset 45824]: 0x90, OSX senseid: 0x1

 

I've come up with the following replacements for personalities:

 

02000000 40000000 0901 0000 12 00 00 01 <-LVDS

10000000 10000000 0001 0000 10 10 01 06 <-VGA

00080000 00020000 0001 0000 20 01 02 02 <-HDMI

 
Here's the relevant portion of my clover config for this patching :
 

        <key>KernelAndKextPatches</key>

        <dict>

                <key>ATIConnectorsController</key>

                <string>4600</string>

                <key>ATIConnectorsData</key>

                <string>020000004000000009010000020100030200000000010000090100002001020200040000040300000001000010000101</string>

                <key>ATIConnectorsPatch</key>

                <string>020000004000000009010000120000011000000010000000000100001010010600080000000200000001000020010202</string>

 

When I boot with the following clover configuration I end up at a black screen (using only LVDS, haven't test VGA or HDMI at all).

 

        <key>Graphics</key>

        <dict>

                <key>DualLink</key>

                <integer>0</integer>

                <key>FBName</key>

                <string>Shrike</string>

                <key>Inject</key>

                <dict>

                        <key>ATI</key>

                        <true/>

                        <key>Intel</key>

                        <false/>

                        <key>NVidia</key>

                        <false/>

                </dict>

                <key>InjectEDID</key>

                <true/>

                <key>LoadVBios</key>

                <true/>

                <key>PatchVBios</key>

                <true/>

                <key>VideoPorts</key>

                <integer>3</integer>

        </dict>

        <key>Devices</key>

        <dict>

                <key>FakeID</key>

                <dict>

                        <key>ATI</key>

                        <string>0x94901002</string>

                </dict>

        </dict>

 

 

Any ideas on what I've done wrong?

 

Thank you!!

Share this post


Link to post
Share on other sites

@agroman

I am sorry but ATIConnectorsController patch is not intended tested for 4600.

It is for 5000/6000/7000/

I may propose you to do the same with common kext patch ability of Clover.

Share this post


Link to post
Share on other sites

I am trying to make frame buffers work on my ASUS 280, but I don't understand how to edit it properly.
 

 

Here is the frame buffer I want to use:

Personality: Futomaki
ConnectorInfo count in decimal: 4
Disk offset in decimal 1490208
0000000    00  04  00  00  04  03  00  00  00  01  01  01  12  04  04  01
0000010    00  04  00  00  04  03  00  00  00  01  02  01  22  05  05  02
0000020    04  00  00  00  14  02  00  00  00  01  03  00  00  00  06  06
0000030    00  08  00  00  04  02  00  00  00  01  04  00  11  02  01  03
0000040

 
So, I know: 

00 04 00 00 - Connector type
04 03 00 00 - Control flags (ATY,ControlFlags)
00 01 - Features
01 01 - Unknown
12 - Transmitter
04 - Encoder
04 - HotPlug ID
01 - Sense ID

BIOS decode from radeon_bios_decode:

ATOM BIOS Rom: 
SubsystemVendorID: 0x1043 SubsystemID: 0x047e
IOBaseAddress: 0x0000
Filename: AS02.bin    
BIOS Bootup Message: 
679AHB.15.44.0.5.AS02                                                       


PCI ID: 1002:679a
Connector at index 0
Type [@offset 43640]: DisplayPort (10)
Encoder [@offset 43644]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 43758]: 0x93, OSX senseid: 0x4
Connector at index 1
Type [@offset 43650]: HDMI-A (11)
Encoder [@offset 43654]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 43785]: 0x92, OSX senseid: 0x3
Connector at index 2
Type [@offset 43660]: DVI-I (2)
Encoder [@offset 43664]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 43822]: 0x91, OSX senseid: 0x2
Connector at index 3
Type [@offset 43670]: DVI-I (2)
Encoder [@offset 43674]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 43822]: 0x91, OSX senseid: 0x2
Connector at index 4
Type [@offset 43680]: DVI-D (3)
Encoder [@offset 43684]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 43849]: 0x95, OSX senseid: 0x6

 What I know:

 

0000000

Connector Type = 00 04
Sense ID = 04
Hotplug ID = 00
Control Flags = ?
Encoder = ?
Transmitter = ?
Features = ?

0000010

Connector Type = 00 08
Sense ID = 03
Hotplug ID = 01
Control Flags = ?
Encoder = ?
Transmitter = ?
Features = ?

0000020

Connector Type = 04 00
Sense ID = 02
Hotplug ID = 02
Control Flags = ?
Encoder = ?
Transmitter = ?
Features = ?

0000030

Connector Type = 04 00
Sense ID = 06
Hotplug ID = 03
Control Flags = ?
Encoder = ?
Transmitter = ?
Features = ?

I tried to use redsock_bios_decoder to get more detailed information (like econder) but it shows error:

./redsock_bios_decoder < Tahiti.rom
uhhh, u sure that is an AtomBIOS?

What is wrong? I use the same rom extracted with GPU-Z, it works in radeon_bios_decode but not in redsock.

 

Since I could not get that information from redsock, how do I see what the encoder should be for each port?

What should I set transmitter to for each port? Is it (0x20) (0x20) (0x21) (0x15) (0x1e)? I see that Port 3 (DVI) is listed 2 times and has 2 transmitters so it confuses me, unsure which I should use.

Share this post


Link to post
Share on other sites

Ok so your encoder for your first display port is is 0x20, HDMI is 0x20, your first DVI (DVI-I) is 0x21, and your second DVI (DVI-D) is 0x1E.

 

I see why you're confused about port 3. The reason it's listed twice is that DVI-I can carry both a digital and analog signal. The INTERNAL_KLDSCP_DAC1 part on the Second DVI-I listing from what I understand is for if you're using a DVI to VGA adapter. So unless you plan on doing that, just don't worry about that one and pretend it's not even there, you don't need to use 0x15.

 

As for the control flags, just look at RampageDev's guide and you'll see that he has several different control flag options listed for each type of port. Your BIOS dump won't tell you this, so you just have to try the different options listed for each type of port until you find one that works. Personally, I would do that last.

 

For "Features," you should have all of them at 00 01 I believe... If you look at that section of the guide, you will see that all of your ports have 00 for the second value:

 

0x0002 : LVDS*            0x09 = 09
0x0004 : DVI                 0x00 = 00
0x0010 : VGA                0x00 = 00
0x0080 : S-Video         0x04 = 04
0x0200 : DVI                0x00 = 00
0x0400 : DisplayPort  0x00 = 00
0x0800 : HDMI            0x00 = 00
0x1000 : DVI                 0x00 = 00

 

and for the first value you just need to use the "internal" option. The other options would probably only be used for a notebook.

 

Use Internal*                    0x01 = 01
Use RGB On YUV            0x04 = 04
Use Backlight*                 0x08 = 08
Backlight Inverted          0x10 = 10
Use Clamshell                 0x20 = 20

 

So you end up with 0x01 for the first option and 0x00 for the second option. Since you need to flip the bytes you end up with 00 01 for all of your ports.

 

Now on to the transmitter...

 

UNIPHY                    0x00 = 00
UNIPHY1                   0x01 = 01
UNIPHY2                  0x02 = 02
DUALLINK               0x00 = 00            = LINKA + LINKB
LINKA                        0x10 = 10
LINKB                        0x20 = 20
UNIPHYA                  0x10 = 10            = UNIPHY:LINKA
UNIPHYB                  0x20 = 20           = UNIPHY:LINKB
UNIPHYAB               0x00 = 00          = UNIPHY:DUALLINK
UNIPHYC                  0x11 = 11             = UNIPHY1:LINKA
UNIPHYD                  0x21 = 21           = UNIPHY1:LINKB
UNIPHYCD               0x01 = 01           = UNIPHY1:DUALLINK
UNIPHYE                  0x12 = 12           = UNIPHY2:LINKA
UNIPHYF                  0x22 = 22          = UNIPHY2:LINKB
UNIPHYEF               0x02 = 02          = UNIPHY2:DUALLINK
DACA                         0x00 = 00
DACB                         0x10 = 10

 

Just compare these to your BIOS dump where it says UNIPHY blah blah blah on each port. The problem is that with bcc9's radeon_bios_decode it doesn't tell you if it's link a or link b, etc. Redsock's will tell you, it will either say "linkb: true" or "linkb: false."

 

The hotplug ID as far as I know you just start with 01, then 02, 03, 04, etc. Don't ask me why the default framebuffers don't do that, because I have no idea... You may want to do everything else and test it before you change those, I don't really understand what they do or how much they matter, except that they have to be different for each port.


So... You should end up with this... Notice I changed the hotplug IDs, I just did that because in the guide he started with 01 instead of 00. I don't know if it matters.

 

0000000

Connector Type = 00 04
Sense ID = 04
Hotplug ID = 01
Control Flags = test the different ones for DP.
Encoder = 20
Transmitter = Find out if your port is link a or link b with redsock's decoder.
Features = 00 01

 

0000010

Connector Type = 00 08
Sense ID = 03
Hotplug ID = 02
Control Flags = test the different ones for HDMI.
Encoder = 20
Transmitter = Find out if your port is link a or link b with redsock's decoder.
Features = 00 01

 

0000020

NOTE: This connector should actually be 00 02 since it's single link DVI.

Connector Type = 00 02
Sense ID = 02
Hotplug ID = 03
Control Flags = test the different ones for DVI-I.
Encoder = 21
Transmitter = Find out if your port is link a or link b with redsock's decoder.
Features = 00 01

 

0000030

Connector Type = 04 00
Sense ID = 06
Hotplug ID = 04
Control Flags = test the different ones for DVI-D.
Encoder = 1E
Transmitter = Find out if your port is link a or link b with redsock's decoder.
Features = 00 01

Now, as for why Redsock is not working for you, I'm not sure. I would try extracting your vbios with clover instead by pressing F6 at the Clover menu. You will then find c000.bin in EFI/Clover/misc. Try using Redsock with that and see if it reads it. 

Share this post


Link to post
Share on other sites
Transmitter = Find out if your port is link a or link b with redsock's decoder.

Now, as for why Redsock is not working for you, I'm not sure. I would try extracting your vbios with clover instead by pressing F6 at the Clover menu. You will then find c000.bin in EFI/Clover/misc. Try using Redsock with that and see if it reads it. 

 

Ok, thanks. Well, I tried to extract vbios with Clover and use the .bin file with redsock but it complained about atom signature so that did not work either. I will also try is to extract vbios by using atifllash, or downloading a BIOS for ASUS 280x from Techpowerup Video Bios Collection and use that, even if it is not same model it seems to have same port layout.  And if that does not work either I will have to guess if each port is A or B.

Share this post


Link to post
Share on other sites

Ok, thanks. Well, I tried to extract vbios with Clover and use the .bin file with redsock but it complained about atom signature so that did not work either. I will also try is to extract vbios by using atifllash, or downloading a BIOS for ASUS 280x from Techpowerup Video Bios Collection and use that, even if it is not same model it seems to have same port layout.  And if that does not work either I will have to guess if each port is A or B.

That would be the only other thing I can think of. I think as long as it has the same port layout it should be okay. Double check it with bcc9's first to make sure it looks the same as yours. FWIW I get the impression the Link A Link B thing is pretty standardized so having to guess wouldn't be the end of the world

Share this post


Link to post
Share on other sites

That would be the only other thing I can think of. I think as long as it has the same port layout it should be okay. Double check it with bcc9's first to make sure it looks the same as yours. FWIW I get the impression the Link A Link B thing is pretty standardized so having to guess wouldn't be the end of the world

 

I saved rom with ATIFlash from WINPE USB, and it works with redsock:

 

AS02.bin    :


679AHB.15.44.0.5.AS02                                                       


Subsystem Vendor ID: 1043
       Subsystem ID: 47e
Object Header Structure Size: 384
Connector Object Table Offset: 48
Router Object Table Offset: 0
Encoder Object Table Offset: 118
Display Path Table Offset: 12
Connector Object Id [19] which is [DISPLAY_PORT]
encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x21 [duallink 0x1] enc 0x3)] linkb: true
Connector Object Id [12] which is [HDMI_TYPE_A]
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 [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 [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false
Connector Object Id [4] which is [DVI_D]
encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false
2- ATY,ControlFlags:
/* 4 byte the same as found on ioreg key: ATY,ControlFlags. hardcoded for each connector type
        u can try one by one until u find the working one for u
        0x0002 : LVDS         >     ControlFlag : 0x0040 / 0x0100
        0x0004 : DVI-?         >     ControlFlag : 0x0016 - 0x0014 / 0x214
        0x0010 : VGA            >     ControlFlag : 0x0010
        0x0080 : S-Video        >     ControlFlag : 0x0002    
        0x0200 : DVI-?            >     ControlFlag : 0x0014 / 0x0214 - 0x0204
        0x0400 : DisplayPort    >     ControlFlag : 0x0100 - 0x0104 - 0x0304 / 0x0604 - 0x0400
        0x0800 : HDMI         >     ControlFlag : 0x0200
        0x1000 : DVI-?         >     ControlFlag : 0x0016
        */

So im gonna try with:

0000000    00  04  00  00  04  03  00  00  00  01  01  01  20  20  01  04
0000000    00  04  00  00  00  01  00  00  00  01  01  01  20  20  01  04
0000000    00  04  00  00  04  01  00  00  00  01  01  01  20  20  01  04
0000000    00  04  00  00  04  06  00  00  00  01  01  01  20  20  01  04
0000000    00  04  00  00  00  04  00  00  00  01  01  01  20  20  01  04

Edit: Tried all of them by using Clover ATI Patch, and every time the display just goes into standby mode. Hmm. What did I do wrong?

Share this post


Link to post
Share on other sites

Make sure to specify which controller when you're using a clover patch. Also make sure you don't have the numbers for each line in it. Those 2 things messed me up the first time. If those things are both correct then try different control flags I guess. Does it work if you patch the kext manually?

Share this post


Link to post
Share on other sites

Make sure to specify which controller when you're using a clover patch. Also make sure you don't have the numbers for each line in it. Those 2 things messed me up the first time. If those things are both correct then try different control flags I guess. Does it work if you patch the kext manually?

 

I have done the Clover patch correctly, so that seems not to be the problem.

I tried to hex edit and replacing with all the possible combinations listed in earlier post, but it did not work with any of them.

 

I could get it to boot into OSX with ATI injection at one point, when I hex edited the first line on all frame buffers at the same time, but I could only select 2160p and 1080p resolutions at 30hz. No HiDPI resolutions were available.

Share this post


Link to post
Share on other sites

Post your patch here

Edit: From what I see, you have 2 ports with the same sense ID, and the DAC one is just for the converter. Did you try removing it ?

Share this post


Link to post
Share on other sites

I tried to hex edit the kext and replace Futomaki first line:

0000000    00  04  00  00  04  03  00  00  00  01  01  01  12  04  04  01

With these, testing each one and installing the kext every time and rebooting.

0000000    00  04  00  00  04  03  00  00  00  01  01  01  20  20  01  04
0000000    00  04  00  00  00  01  00  00  00  01  01  01  20  20  01  04
0000000    00  04  00  00  04  01  00  00  00  01  01  01  20  20  01  04
0000000    00  04  00  00  04  06  00  00  00  01  01  01  20  20  01  04
0000000    00  04  00  00  00  04  00  00  00  01  01  01  20  20  01  04

But the monitor just goes into standby every time. I did not edit the other ports, only 0000000 (DP) since I only use that port. Maybe I must edit all ports (00000000000010, 0000020, 0000030) for it to work correctly?

 

 

 

the DAC one is just for the converter. Did you try removing it ?

 

What do you mean?

Share this post


Link to post
Share on other sites

If you are testing the patch one line at a time, make sure the sense id doesn't conflict with another one because that will do weird stuff. Temporarily change the sense id on the other port if you have to.

Share this post


Link to post
Share on other sites

If you are testing the patch one line at a time, make sure the sense id doesn't conflict with another one because that will do weird stuff. Temporarily change the sense id on the other port if you have to.

SenseID were different.

 

I noticed that I had set the transmitter to 20 which is for UNIPHY:LINKB

 

But I should have used 21, UNIPHY1:LINKB, since bios decode says "INTERNAL_UNIPHY1". Hmm, will try.

 

Edit: Did not work :(

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×