Jump to content

Editing custom personalities for ATI Radeon HD[45]xx


bcc9
 Share

775 posts in this topic

Recommended Posts

Shrike:

VGA  02 00 00 00 40 00 00 00 09 01 00 00 02 01 01 02 
LVDS 10 00 00 00 10 00 00 00 00 01 00 00 00 10 00 01

This will enable the best Resulotion for my screen. VGA and LVDS are working. On VGA the screen is for 1/4 black.

But no QE/CI. Can someone help me please?

I've a Mobility 4570 (0x9553)

 

Sry here is the BIOS Dump:

ATOM BIOS Rom:
SubsystemVendorID: 0x1019 SubsystemID: 0x2379
IOBaseAddress: 0x9000
Filename: BR033553.004
BIOS Bootup Message:
BR033553.004 M92 DDR2 64bit 500e/500m

PCI ID: 1002:9553
Connector at index 0
Type [@offset 45504]: VGA (1)
Encoder [@offset 45508]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 45548]: 0x90, OSX senseid: 0x1
Connector at index 1
Type [@offset 45514]: LVDS (7)
Encoder [@offset 45518]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 45571]: 0x91, OSX senseid: 0x2

Link to comment
Share on other sites

Silly question but I can't find the 64 bit Vervet table in the ATIFrambuffer.

 

I can see the output in ati personality:

 

Personality: Vervet - 64 bit

ConnectorInfo count in decimal: 4

Disk offset in decimal 80000

0000000 00 04 00 00 00 04 00 00 00 01 00 00 12 04 04 02

0000010 04 00 00 00 14 00 00 00 00 01 00 00 01 12 01 04

0000020 00 02 00 00 14 00 00 00 00 01 00 00 00 00 06 03

0000030 00 08 00 00 00 02 00 00 00 01 00 00 22 05 05 01

0000040

 

 

The offset of 80000 = 0x13880

I look on that row using HexEditor and I can't see it there !

 

Can anyone help ? I'm analysis it in 10.6.7 normal update (not MBP or iMac kexts)

You're doing something wrong....

% cd /System/Library/Extensions/ATIFramebuffer.kext/Contents/MacOS/
% ls -l ATIFramebuffer 
-rw-r--r--  1 root  wheel  304556 Mar  2 16:57 ATIFramebuffer
% dd if=ATIFramebuffer of=/tmp/vervet bs=1 count=64 skip=80000
64+0 records in
64+0 records out
64 bytes transferred in 0.000856 secs (74752 bytes/sec)
% od -tx1 /tmp/vervet
0000000	00  04  00  00  00  04  00  00  00  01  00  00  12  04  04  02
0000020	04  00  00  00  14  00  00  00  00  01  00  00  01  12  01  04
0000040	00  02  00  00  14  00  00  00  00  01  00  00  00  00  06  03
0000060	00  08  00  00  00  02  00  00  00  01  00  00  22  05  05  01
0000100
%

You could of course just edit /tmp/vervet above, and then dd the result back in place. I just tried the following and it worked:

cd /tmp
xxd < vervet >! hex
;edit hex here
xxd -r < hex > vervet.new
dd if=vervet.new of=/System/Library/Extensions/ATIFramebuffer.kext/Contents/MacOS/ATIFramebuffer bs=1 count=64 seek=80000 conv=notrunc

Link to comment
Share on other sites

You're doing something wrong....
% cd /System/Library/Extensions/ATIFramebuffer.kext/Contents/MacOS/
% ls -l ATIFramebuffer 
-rw-r--r--  1 root  wheel  304556 Mar  2 16:57 ATIFramebuffer
% dd if=ATIFramebuffer of=/tmp/vervet bs=1 count=64 skip=80000
64+0 records in
64+0 records out
64 bytes transferred in 0.000856 secs (74752 bytes/sec)
% od -tx1 /tmp/vervet
0000000	00  04  00  00  00  04  00  00  00  01  00  00  12  04  04  02
0000020	04  00  00  00  14  00  00  00  00  01  00  00  01  12  01  04
0000040	00  02  00  00  14  00  00  00  00  01  00  00  00  00  06  03
0000060	00  08  00  00  00  02  00  00  00  01  00  00  22  05  05  01
0000100
%

You could of course just edit /tmp/vervet above, and then dd the result back in place. I just tried the following and it worked:

cd /tmp
xxd < vervet >! hex
;edit hex here
xxd -r < hex > vervet.new
dd if=vervet.new of=/System/Library/Extensions/ATIFramebuffer.kext/Contents/MacOS/ATIFramebuffer bs=1 count=64 seek=80000 conv=notrunc

 

Thanks for the info ! Doing it that way has made it a lot clearer ! I seem to be missing the final piece of the puzzle tho.

 

I've used the ati-personality script to pull out the personality tables for each framebuffer. I'm wanting to edit Vervet so I've used the offset as described above to pull out the vervet section into it's own temporary file in /tmp-fb-edit/vervet . I've then used HexEdit to change the sense ID in my HDMI row (3rd port - final row - begins "00 08") from 01 to 05 (the batmobile 5770 has 05 as the Sense ID for HDMI).

 

I've then saved that edited hex to vervet.new. I've then used dd as above to replace that coding back into the ATI5000controller.kext in the two positions for Vervet in 32/64 bit - taken from the original ati-personaility info. I've then repaired permissions and cache using Kext Utility and rebooted. I still got a black screen on HDMI.

 

So I swapped back to DVI, put the hack to sleep using the keyboard and woke it up again and got my picture back. I then re-ran the ati-personality script and it showed that I had edited the sense ID to "05" in the ATI5000Controller kext. So I've got no idea what's going wrong. I then checked and saw that the permissions on the ATI5000Controller bin file had X's in - so I then ran "sudo chmod 644 /System/Library/Extensions/ATI5000Controller.kext/Contents/MacOS/ATI5000Controller" and then repaired permissions again. Rebooted and still no HDMI.

 

I've viewed other people's edits for the 5770 to make sure that I'm doing the right thing and I'm making the same edits.

 

Can I take a screenshot of anything in IOReg via VNC to help work out what's going wrong ? Should I edit it on the desktop then install back to /S/L/E using Kext Helper / [url=&quot;http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/&quot;]#####[/url] ?

 

Here's my radeon_bios_decode:

ATOM BIOS Rom: 
SubsystemVendorID: 0x1458 SubsystemID: 0x21d7
IOBaseAddress: 0x0000
Filename: R577UDAD.F1 
BIOS Bootup Message: GV-R577UD-1GD/F1													

PCI ID: 1002:68b8
Connector at index 0
Type [@offset 44350]: DisplayPort (10)
Encoder [@offset 44354]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 44470]: 0x91, OSX senseid: 0x2
Connector at index 1
Type [@offset 44360]: HDMI-A (11)
Encoder [@offset 44364]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 44497]: 0x94, OSX senseid: 0x5
Connector at index 2
Type [@offset 44370]: DVI-I (2)
Encoder [@offset 44374]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 44534]: 0x93, OSX senseid: 0x4
Connector at index 3
Type [@offset 44380]: DVI-I (2)
Encoder [@offset 44384]: INTERNAL_KLDSCP_DAC2 (0x16)
i2cid [@offset 44534]: 0x93, OSX senseid: 0x4
Connector at index 4
Type [@offset 44390]: DVI-I (2)
Encoder [@offset 44394]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 44571]: 0x92, OSX senseid: 0x3
Connector at index 5
Type [@offset 44400]: DVI-I (2)
Encoder [@offset 44404]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 44571]: 0x92, OSX senseid: 0x3

 

I've been sent a pre-edited ATIFramebuffer with these edits in for the Normal 10.6.7 ATI Kexts and installed that and I get HDMI signal, so I'm just not quite sure what is going on. I am using the same DVI input into my screen but using a HDMI>DVI converter. Do you think it could be this converter causing me issues with the new ATI kexts? It works fine with the 10.6.7 edited Kexts that I've been sent.

Link to comment
Share on other sites

Seems like I was trying to run before I could walk !!!!

 

(Background info - I'm running a Batmobile Gigabyte 5770 and trying to edit the framebuffer tables to allow DVI and HDMI ports together on the normal and iMac update ATI kexts - please see my earlier posts)

 

So I went back to the "Normal" 10.6.7 ATI kexts v1.6.26 and started again.

 

I remembered that Uakari seemed to load my HDMI port OK so I went to look at the entry for Uakarai

Personality: Uakari
 ConnectorInfo count in decimal: 4
 Disk offset in decimal 226552 / 79936
 0000000	00  04  00  00  00  04  00  00  00  01  00  00  12  04  04  01
 0000010	04  00  00  00  14  00  00  00  00  01  00  00  01  12  01  03
 0000020	00  02  00  00  14  00  00  00  00  01  00  00  00  00  06  05
 0000030	00  08  00  00  00  02  00  00  00  01  00  00  22  05  05  04
 0000040

 

And found it strange that the Sense ID was "04" for the HDMI connector "00 08". So I used the dd method above to extract the two Uakarai personailities, I then editied and switched the Sense IDs for the final two rows - i.e. the "04" and "05".

0000020	00  02  00  00  14  00  00  00  00  01  00  00  00  00  06  04
0000030	00  08  00  00  00  02  00  00  00  01  00  00  22  05  05  05

 

Reinserted this edit using dd and changed permissions using chmod on the ATIframebuffer file using 644 - and then ran kext utility ! Rebooted, forced Uakari FB to load and hey-presto - back into OSX with HDMI signal still.

 

I then went on to edit the Vervet framebuffer to do it properly to this :

Personality: Vervet
 0000000 00 08 00 00 00 02 00 00 00 01 00 00 22 05 05 05 
 0000010 00 04 00 00 04 06 00 00 00 01 00 00 12 04 04 02 
 0000020 04 00 00 00 14 00 00 00 00 01 00 00 01 02 01 04 
 0000030 04 00 00 00 14 00 00 00 00 01 00 00 01 02 01 03 
 0000040

 

Using info from jsl's thread and also re-ordering the ports to match the layout per the BIOS file. Again insterted that using dd to the Vervet section - chmod - Kext Utility - rebooted - foreced Vervet - and HDMI worked !!!!

 

So I then went on to the iMac ATI kexts 1.6.34 and tried the same thing as above. I forced Uakari vanilla FB to load, rebooted and I had HDMI signal.

Personality: Uakari
ConnectorInfo count in decimal: 4
Disk offset in decimal 512696 / 176672
0000000	00  04  00  00  00  04  00  00  00  71  00  00  12  04  04  01
0000010	04  00  00  00  14  00  00  00  00  71  00  00  01  12  01  03
0000020	00  02  00  00  14  00  00  00  00  71  00  00  00  00  06  05
0000030	00  08  00  00  00  02  00  00  00  71  00  00  22  05  05  04
0000040

 

I then used dd to extract the Uakari section and tried swaping the sense IDs again for 04 and 05.

 0000020	00  02  00  00  14  00  00  00  00  71  00  00  00  00  06  04
0000030	00  08  00  00  00  02  00  00  00  71  00  00  22  05  05  05

reinserted in Uakari sections - chmod - Kext Ultility - reboot - force Uakari FB to load - NO SIGNAL ON HDMI !!!

 

So it seems that the new ATI kexts are a lot more sensitive to the physical connector that you attach to the screen. I'm using a HDMI > DVI converter as I don't have a HDMI input into my screen. Seems like I was doing the right edits but I need a real HDMI input to test with.

 

I'm pleased to shed some light on the situation but I think I need to move my hack to my HDMI TV to have a go at the FB edit for HMDI for the new ATI kexts.

 

I just thought I'd share this with you as it seems like the new ATI kexts are going to be here to stay and they are a lot more sensitive to physical connectors than the normal ATI kexts.

 

@bcc9 - thanks for your insight and help with this and your method of using dd is much better than I was doing which was loading the whole fb into a hex editor and then searching for the right section. Using your method you can edit the hex once and install to both the 32 bit and 64 bit sections easily and you are much less likely to make mistakes. It was a lot easier to trouble shoot on shorter sections of hex code.

 

Laters

 

P.S. if anyone wants my edited hex files for 1.6.26 or v1.6.34 or finalised edited ATIframebuffer kext for ATI v1.6.26 then please shout and I will upload it for you.

Link to comment
Share on other sites

Can someone help me? I can't get QE & CI on my 4570 Mobility to work :(

I tried this:

Peregrine:

VGA	  02 00 00 00 40 00 00 00 09 01 00 00 02 01 01 02
LVDS	10 00 00 00 10 00 00 00 00 01 00 00 00 10 00 01

Both will work and i can change the res to 1366x768. On the VGA Output the screen is not centred.

How can i get QE/CI to work?

 

Some Infos:

Kexts loaded:

ATIFramebuffer.kext
ATI4600Controller.kext
ATIRadeonX2000.kext
ATISupport.kext

 

Sys Profiler:

ATI Radeon 4500 Mobility Series:

 Chipsatz-Modell:	ATI Radeon 4500 Mobility Series
 Typ:	GPU
 Bus:	PCIe
 Steckplatz:	Slot-1
 PCIe-Lane-Breite:	x8
 VRAM (gesamt):	512 MB
 Hersteller:	ATI (0x1002)
 Geräte-ID:	0x9553
 Versions-ID:	0x0000
 ROM-Version:	113-B7710C-176
 EFI-Treiberversion:	01.00.318
 Monitore:
Monitor:
 Auflösung:	1366 x 768 @ 60 Hz
 Pixeltiefe:	32-Bit Farbe (ARGB8888)
 Hauptmonitor:	Ja
 Synchronisierung:	Aus
 Eingeschaltet:	Ja
 Integriert:	Ja
SyncMaster:
 Auflösung:	1920 x 1080 @ 60 Hz
 Pixeltiefe:	32-Bit Farbe (ARGB8888)
 Synchronisierung:	Aus
 Eingeschaltet:	Ja
 Rotation:	Unterstützt

 

BIOS Dump:

ATOM BIOS Rom: 
SubsystemVendorID: 0x1019 SubsystemID: 0x2379
IOBaseAddress: 0x9000
Filename: BR033553.004
BIOS Bootup Message: 
BR033553.004 M92 DDR2 64bit 500e/500m									   

PCI ID: 1002:9553
Connector at index 0
Type [@offset 45504]: VGA (1)
Encoder [@offset 45508]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 45548]: 0x90, OSX senseid: 0x1
Connector at index 1
Type [@offset 45514]: LVDS (7)
Encoder [@offset 45518]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 45571]: 0x91, OSX senseid: 0x2

 

Thanks for any help! :D

Link to comment
Share on other sites

Using info from jsl's thread and also re-ordering the ports to match the layout per the BIOS file.
Have you found re-ordering the entries to make a difference?
So I then went on to the iMac ATI kexts 1.6.34 and tried the same thing as above. I forced Uakari vanilla FB to load, rebooted and I had HDMI signal.
You lost me here because before you wrote that you had to change the senseid for the HDMI connector entry to 5 before it would work, now you're using 4 and saying it works. Are you sure your HDMI port is using the 0800 connector-type entry at this point? (You should be able to tell from the ioreg dump).
@bcc9 - thanks for your insight and help with this and your method of using dd is much better than I was doing which was loading the whole fb into a hex editor and then searching for the right section. Using your method you can edit the hex once and install to both the 32 bit and 64 bit sections easily and you are much less likely to make mistakes. It was a lot easier to trouble shoot on shorter sections of hex code.
Thanks, I'll move the editing example details to post #1 now that I've bothered to make some :( Good point about it being easier to copy to both the 32&64 bit sections.
Link to comment
Share on other sites

Have you found re-ordering the entries to make a difference?

 

No difference that I noted, but I can try it the other order again.

 

You lost me here because before you wrote that you had to change the senseid for the HDMI connector entry to 5 before it would work, now you're using 4 and saying it works. Are you sure your HDMI port is using the 0800 connector-type entry at this point? (You should be able to tell from the ioreg dump).

 

I will go back and re-test this. I'm not on my hack right now but I can take an IOReg dump of the ATY sections to post up the results. But yes - I did get signal to my Screen via HDMI Output > HMDI-DVI Conv > DVI Cable when the sense ID for 0800 was 4 not 5. But 4 did correspond to my DVI so I'm not sure if it's something to do with me not using a real HDMI input. I will post up all the outputs of IOReg to show you.

 

Thanks, I'll move the editing example details to post #1 now that I've bothered to make some :( Good point about it being easier to copy to both the 32&64 bit sections.

 

Thanks again for your help and I'll post in the next couple of days with my results. I've already spent many many hours trying to get this work as it's my first go at Hex editing and I jumped straight in with the new ATI kexts and sense ID 5 for the HDMI port and couldn't understand why it wasn't working. And I was also trying 2 or 3 different hexeditors.

 

P.S. I couldn't get xxd to run even though I've checked it's installed via Xcode.

Link to comment
Share on other sites

hi,

very long and interesting topic ! Just one question :

 

Kizwan told us about problems with Dual-Link LVDS support, he got 4570 working on his laptop's 1366x768 internal screen, but didn't succeed on same laptop with a 1920x1080 LCD panel.

 

do you know if Checcco's solution has the same problem with Full HD LVDS ?

Link to comment
Share on other sites

With hda-gfx dsdt injection, I get HDMI audio from my Sapphire HD 6870 with AppleHDA v2.0.5 and 2.0.8 out of the box. I'm trying to edit AppleHDA v1.9.9 for the 6870. I've added 0x021088aa (6870 HDMI audio device_id) to AppleHDAController binary.

 

IOReg/ATY,Duckweed@1 w/ AppleHDA v2.0.x: the following appear with HDMI/DP audio working:

 

ATY,ActiveFlags: 0x200

ATY,ControlFlags: 0x204

audio-codec-info: 0x30100

av-signal-type: 0x8

connector-type: 0x800

 

IOReg/ATY,Duckweed@1 w/ AppleHDA v1.9.9: HDMI/DP audio not working:

 

ATY,ActiveFlags: 0x200

ATY,ControlFlags: 0x204

av-signal-type: 0x8

connector-type: 0x800

 

In addition to audio-codec-info missing in ATY,Duckweed@1

DigitalAudioCapabilities is missing in HDAU, AppleHDAController, IOHDACodecDevice

PinConfigurations is missing in HDAU

 

Any ideas on how to trigger audio-codec-info with AppleHDA v1.9.9?

Link to comment
Share on other sites

I my friends,

my graphic card is an ATI Mobility Radeon HD 1GB and

Resolution - Ok

QE/CI - OK

LDVS - OK

VGA - Dont Work

HDMI - Dont Work

I do not know what I make bad already try very modifications.

I leave my graphic bios rom here and my to atiframworker and ask for somebody to see what it tou to make bad and correct please.

Sorry my bad englhis

Thanks

ATIFramebuffer.kext.zip

vgabios__2_.rom.zip

Link to comment
Share on other sites

  • 2 weeks later...

Hi all, been reading this thread along with wmarsh's, dong's, and mucha's and really appreciate the time and effort you guys and gals have put into this. I'm trying to get my Display Port connector on my XFX 5850 working. It's getting recognized by the OS (screenshot/Display preferences, etc) but the screen is always blank. I'm connecting my 24" LCD on the top DVI port, small 17" LCD on bottom DVI port, my HDTV is hooked up like this: HDMI -> DVI adapter, long DVI cable, DVI -> Active DP adapter, into the video card.

 

I'm really close but I just can't figure out the last few steps. I've tried many settings for the personalities but they all end up in a blank screen (on both monitors) after boot. I'm not looking for HDMI audio, just looking to get Eyefinity/triple monitors working (it works flawlessly in Windows 7).

 

Running the Uakari framebuffer with GraphicsEnabler=Yes

 

First of all, I'm running the ATI 1.6.32.12 kexts out of [url=&quot;http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/&quot;]#####[/url] 3.4. Quoting the installer: "Updated ATI kexts from the Mac OS X v10.6.7 Update for early 2011 MacBook Pros." If I understand correctly, this means my personalities are hard coded in the specific ATI controllers, in my case, ATI5000Controller, and not ATIFramebuffer. This I've checked.

 

Running bcc9's ati_personality 0.6 script perl ati_personality.pl -a -x, gives me:

Kext ATI5000Controller
...
Personality: Uakari
ConnectorInfo count in decimal: 4
Disk offset in decimal 172576
0000000	00  04  00  00  00  04  00  00  00  71  00  00  12  04  04  01   DP
0000010	04  00  00  00  14  00  00  00  00  71  00  00  01  12  01  03   DVI
0000020	00  02  00  00  14  00  00  00  00  71  00  00  00  00  06  05   ??
0000030	00  08  00  00  00  02  00  00  00  71  00  00  22  05  05  04   HDMI
0000040

 

which corresponds to this:

ati5000-uakari-hex.png

 

Running bcc9's radeon_bios_decode on Cypress.bin (extracted using GPU-Z in Windows 7), I get:

ATOM BIOS Rom: 
SubsystemVendorID: 0x1682 SubsystemID: 0x2972
IOBaseAddress: 0x0000
Filename: 585ZAF22.BIN
BIOS Bootup Message: 
CYPRESS CR PRO GDDR5 BIOS UCODEv:126										

PCI ID: 1002:6899
Connector at index 0
Type [@offset 44846]: DisplayPort (10)
Encoder [@offset 44850]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 44974]: 0x90, OSX senseid: 0x1
Connector at index 1
Type [@offset 44856]: HDMI-A (11)
Encoder [@offset 44860]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 45001]: 0x93, OSX senseid: 0x4
Connector at index 2
Type [@offset 44866]: DVI-I (2)
Encoder [@offset 44870]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 45038]: 0x92, OSX senseid: 0x3
Connector at index 3
Type [@offset 44876]: DVI-I (2)
Encoder [@offset 44880]: INTERNAL_KLDSCP_DAC2 (0x16)
i2cid [@offset 45038]: 0x92, OSX senseid: 0x3
Connector at index 4
Type [@offset 44886]: DVI-I (2)
Encoder [@offset 44890]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 45075]: 0x94, OSX senseid: 0x5
Connector at index 5
Type [@offset 44896]: DVI-I (2)
Encoder [@offset 44900]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 45075]: 0x94, OSX senseid: 0x5

 

which IMO matches the Uakari FB pretty closely.

 

Last night I burned a Ubuntu 11.04 LiveCD to get some of the logging data on my card (for Transmiter and Encoder values) and I didn't get any further, but maybe I missed something. Here's a link to the /var/log/Xorg.0.log file produced after booting with the F6 => ESC => "radeon.modeset=0" trick:

http://dl.dropbox.com/u/62786/hackintosh/Xorg.0.log.txt

 

(Side note: I was able to get a mirror image in Ubuntu between my 24" and my HDTV on the DP port.)

 

In the log, I see UNIPHY2 for my DP connector, and DIG4 a lot, which means 0x04 for the Encoder byte. And for the Transmitter byte, it looks like 0x12 is appropriate, given UNIPHY2. I guess the last thing to think about is LINK_A, LINK_B, or DUAL_LINK (according to this post?) I tried 0x22 but that didn't work, and anyway, wouldn't that conflict with the HDMI port on senseid 04?

 

* * *

 

Should this IORegistryExplorer screen be a concern, the fact that it mentions ATI X3000 controller?

ioreg-uakari.png

 

* * *

 

Any pointers appreciated, I feel like I'm close! :P

Link to comment
Share on other sites

tearing my hair out over HDMI audio for HIS 5570.

redeondump:

bash-3.2# ./radeondump < 1002_68d9.rom
ATOM BIOS Rom: 
SubsystemVendorID: 0x1787 SubsystemID: 0x2009
IOBaseAddress: 0xe000
Filename: SQ2G02.00R  
BIOS Bootup Message: 
REDWOOD PRO 1024M/128B DDR3 DLDVI-I/HDMI/VGA 800M/650E                   
PCI ID: 1002:68d9
Connector at index 0
Type [@offset 44434]: HDMI-A (11)
Encoder [@offset 44438]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 44518]: 0x92, OSX senseid: 0x3
Connector at index 1
Type [@offset 44444]: DVI-I (2)
Encoder [@offset 44448]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 44555]: 0x93, OSX senseid: 0x4
Connector at index 2
Type [@offset 44454]: DVI-I (2)
Encoder [@offset 44458]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 44555]: 0x93, OSX senseid: 0x4
Connector at index 3
Type [@offset 44464]: VGA (1)
Encoder [@offset 44468]: INTERNAL_KLDSCP_DAC2 (0x16)
i2cid [@offset 44582]: 0x90, OSX senseid: 0x1

 

so i edited Eulemur to:

Personality: Eulemur
ConnectorInfo count in decimal: 3
Disk offset in decimal 513112
0000000    04  00  00  00  14  00  00  00  00  01  00  00  01  02  01  04
0000010    00  08  00  00  00  02  00  00  00  71  00  00  12  04  04  0[b]3[/b]
0000020    10  00  00  00  10  00  00  00  00  00  00  00  00  10  00  01
0000030

 

HDAU and GFX edits are in DSDT and HDAU attaches ok in IOREG under correct address. Using AppleHDA 1.9.9, HDMI is listed in SystemPrefs but there are no output controls. Using updated iMac Ati kexts or vanilla 10.6.7 Ati kexts makes no difference. reordering ports in FB to match bios makes no difference. Any idea as to what I am missing?

 

EDIT:NVM got it working

Link to comment
Share on other sites

Unfortunately it would seem the framebuffer personalities are very different in 10.7 Lion Developer Preview 4. I ran the ati-personality script on Lion DP4 and the results are wildy different to the 10.6.7 MBP 2011 kexts (which I successfully edited for my card). I have no idea where to start with editing the Lion kexts, does anyone have any further info on the changes and perhaps a way to modify them?

Link to comment
Share on other sites

Should this IORegistryExplorer screen be a concern, the fact that it mentions ATI X3000 controller?

Yes, it's normal for the X3000 driver to match the radeon hd 5xxx cards.

 

In the ioregistry, I think the important fields to look at are:

  • port-number
  • connector-type which should match the connector-type in the ConnectorInfo structure
  • ATY,ActiveFlag which is 1 if the port was not detected, else 2^(active-connection-number) which comes out to 4 for DVI, 512 for HDMI, 1024 for Displayport
  • av-signal-type, also based upon active-conection-number, but mapped to 2 for DVI, 8 for HDMI, 16 for DP. (Must be 8 or 16 for HDMI/DP audio to work with AppleHDA).

What you posted shows the right senseid for the various ports, but without the other fields above it's not clear if everything detected correctly. If your DP connector got mapped correctly I'd suspect something simple like a hotplug or resolution issue. Perhaps if you hotplug your DP connector it will begin to work?

Link to comment
Share on other sites

Thanks bcc9. I just want to make sure that, to edit any of the connector stuff using 10.6.7 MBP kexts, it's the ATI5000Controller binary and not the ATIFramebuffer, right? And that I have to do the edits at the 32bit and 64bit addresses.

 

Also, what do you mean by hotplug?

Link to comment
Share on other sites

Unfortunately it would seem the framebuffer personalities are very different in 10.7 Lion Developer Preview 4. I ran the ati-personality script on Lion DP4 and the results are wildy different to the 10.6.7 MBP 2011 kexts (which I successfully edited for my card). I have no idea where to start with editing the Lion kexts, does anyone have any further info on the changes and perhaps a way to modify them?

It's no surprise that the set of personalities changes between releases...

I think it's great that my script still works :(

 

In the case of the Uakari connector info, 23 bits changed per entry, so byte 8 is now 0x71 instead of 0x01 (some feature bits were added).

 

I wouldn't call that very different. Perhaps you could detail what isn't working. I haven't tried modifying personalities under 10.7 yet myself.

 

 

Thanks bcc9. I just want to make sure that, to edit any of the connector stuff using 10.6.7 MBP kexts, it's the ATI5000Controller binary and not the ATIFramebuffer, right? And that I have to do the edits at the 32bit and 64bit addresses.

 

Also, what do you mean by hotplug?

So ATIRadeonX3000 is ATIRadeonX3000.kext, ie not a controller kext. The controller kext in the radeon hd 5xxx case would be ATI5000Controller as you say. Yes, with the newer 2011 MBP kexts (or the OSX 10.7 kexts) you mod the individual controller kext not ATIFramebuffer.kext.

If you boot 32 bit, you need to modify the 32 bit version.

If you boot 64 bit, you need to modify the 64 bit version.

If you use both, mod both.

 

By hotplug I mean unplug the DP cable from the back of your system after the system is fully booted. Then plug it back in. For some ATI personalities I've had to do that to get beyond a black display. I even need to do it with my intel graphics card right now...

See also the hotplugid byte in the connectorinfo structure and mucha's info on the expected values.

Link to comment
Share on other sites

Thanks for your input bcc9. Unfortunately I'm still not getting it to work. I've tried the hotplug, too. I just spent this morning playing with personality edits (that sounds so psychological... :)) but nothing worked and I got blank boot screens at the beginning.

 

I know the DP works because I booted W7 and Ubuntu and it works, and during boot, I see Chameleon's boot screen on the HDTV (DP connector).

 

I booted again in Ubuntu with the radeon.modeset=0 setting, with all three monitors connected (1 DVI, 1DVI->VGA, and 1DP). Here's the log file but I'm having a hard time deciphering it all.

 

Original Uakari
00 04 00 00 00 04 00 00 00 71 00 00 12 04 04 01
04 00 00 00 14 00 00 00 00 71 00 00 01 12 01 03
00 02 00 00 14 00 00 00 00 71 00 00 00 00 06 05
00 08 00 00 00 02 00 00 00 71 00 00 22 05 05 04

Try one: -- this one worked, but mouse was "choppy" as hell, and DP didn't work
00 04 00 00 04 06 00 00 00 71 00 00 12 04 04 01
04 00 00 00 14 00 00 00 00 71 00 00 01 12 01 03
00 02 00 00 14 00 00 00 00 71 00 00 00 00 06 05
00 08 00 00 00 02 00 00 00 71 00 00 22 05 05 04

Try two: this one just didn't boot. - Tried 0, 1, 2, 4 for HotplugIDs.
00 04 00 00 04 06 00 00 00 71 00 00 02 04 00 01
00 08 00 00 00 02 00 00 00 71 00 00 22 05 01 04
04 00 00 00 14 00 00 00 00 71 00 00 01 12 02 03
04 00 00 00 14 00 00 00 00 71 00 00 00 00 03 05

 

I'm wondering what the 00 02 means on the third line of the Original and Try One, because as far as I can tell, this one should be DVI, no? Since I have two DVI ports, a DP, and HDMI ports...

 

Finally, here's IOReg right now, after I returned to the 1.6.32 Early 2011 MacBook Pro kexts:

uakari0.png

uakari1.png

uakari2.png

uakari3.png

 

EDIT: actually it seems the choppiness only happens when the DP port is plugged in, regardless of Personality edits...

 

Matt

Link to comment
Share on other sites

I'm wondering what the 00 02 means on the third line of the Original...

 

Matt

Hi Matt... 00 02 = 0x0200 = single-link DVI

I noticed this a while ago on my card when i first read the topic,

but forgot to pass the info to you guys... sorry. Your code woke up the memory :)

 

----- ----- // ----- -----

 

bcc9, you can complete the info on first post now:

 

#define CONNECTORTYPE_DVI_DL 0x00000004 (naming is just a suggestion)

#define CONNECTORTYPE_DVI_SL 0x00000200

 

connector-type 0x0004=dual-link DVI at port 1

connector-type 0x0200=single-link DVI at port 2 (hex needs to be corrected on 1st post, from 0x0002)

 

Nice work with this stuff and Chameleon input :)

Stay safe...

Link to comment
Share on other sites

It's no surprise that the set of personalities changes between releases...

I think it's great that my script still works :)

 

In the case of the Uakari connector info, 23 bits changed per entry, so byte 8 is now 0x71 instead of 0x01 (some feature bits were added).

 

I wouldn't call that very different. Perhaps you could detail what isn't working. I haven't tried modifying personalities under 10.7 yet myself.

 

Below I have pasted the output I get from your script running on the Lion DP4 kexts. The results, as you can see, are very different to those presented from Snow Leopard 10.6.7 kexts. I have also manually searched the DP4 kexts using the Flicker values from 10.6.7 as a frame of reference, they are again different and Im not entirely sure that what I found was correct, however they looked a lot more 'normal' to me than the results presented by the script. Im still not sure how to correctly modify them to reflect the correct values I have in my edited 10.6.7 kext however, if anyone has done this on DP4 and can help, Im all ears. Otherwise I'll have to do some more testing myself.

 

Script results:

Kext ATI4600Controller
Personality: Flicker
ConnectorInfo count in decimal: 3
Disk offset in decimal 332616
0000000    24  08  10  5f  02  00  c7  44  24  04  2e  4d  02  00  c7  04
0000010    24  10  5d  02  00  e8  d6  ff  ff  ff  c7  05  10  5d  02  00
0000020    70  fc  01  00  83  c4  18  5d  c3  55  89  e5  83  ec  08  c7
0000030

Link to comment
Share on other sites

bcc9, you can complete the info on first post now:

 

#define CONNECTORTYPE_DVI_DL 0x00000004 (naming is just a suggestion)

#define CONNECTORTYPE_DVI_SL 0x00000200

Thanks, I thought 0x200 was dvi, and mucha has it marked as such, but are you sure it's always single link?
connector-type 0x0200=single-link DVI at port 2 (hex needs to be corrected on 1st post, from 0x0002)
Got that updated now too. Had that corrected in my copy but hadn't made it to post #1...

 

And thanks, glad I could be of service with some chameleon issues.

 

Below I have pasted the output I get from your script running on the Lion DP4 kexts. The results, as you can see, are very different to those presented from Snow Leopard 10.6.7 kexts. I have also manually searched the DP4 kexts using the Flicker values from 10.6.7 as a frame of reference, they are again different and Im not entirely sure that what I found was correct, however they looked a lot more 'normal' to me than the results presented by the script. Im still not sure how to correctly modify them to reflect the correct values I have in my edited 10.6.7 kext however, if anyone has done this on DP4 and can help, Im all ears. Otherwise I'll have to do some more testing myself.

 

Script results:

Kext ATI4600Controller
Personality: Flicker
ConnectorInfo count in decimal: 3
Disk offset in decimal 332616
0000000    24  08  10  5f  02  00  c7  44  24  04  2e  4d  02  00  c7  04
0000010    24  10  5d  02  00  e8  d6  ff  ff  ff  c7  05  10  5d  02  00
0000020    70  fc  01  00  83  c4  18  5d  c3  55  89  e5  83  ec  08  c7
0000030

I had checked my script output under 10.7 preview 4 with -a -x (64-bit mode), and things looked OK. Since 10.7 is normally only run in 64 bit mode, 32 bit mode is less relevant. I hadn't noticed that the 32 bit mode output is wrong. You can see that it's clearly wrong as only 1 bit should be set in the first 4 bytes of each connectorinfo entry, yet you have garbage above.

 

With -d you can see that the script is getting the wrong effective address in 32-bit mode. (I suspect apple switched compilers and it's now generating better optimized code; no time to look further tonight).

 

So in summary, just look at the 64-bit reporting information, it should be all you need anyways.

Link to comment
Share on other sites

Thanks, I thought 0x200 was dvi, and mucha has it marked as such, but are you sure it's always single link?

Well, the only proof i have is based on my desktop card (scroll a bit down) info and ioreg output:

post-291566-1308060050_thumb.png post-291566-1308060060_thumb.png

 

Using the single-link atm; no need to use dual-link with this monitor (1440x900) and

it gives me black screen in some well known situation that i can't remember right now.

Link to comment
Share on other sites

Well, the only proof i have is based on my desktop card (scroll a bit down) info and ioreg output:

post-291566-1308060050_thumb.png post-291566-1308060060_thumb.png

 

Using the single-link atm; no need to use dual-link with this monitor (1440x900) and

it gives me black screen in some well known situation that i can't remember right now.

Hmm, well in my testing I could sometimes get my hdmi or dvi ports to work with connector-type 0x200 as well, but I wouldn't conclude that it means 0x200 is single-link DVI.. I tried to keep the info in post #1 based upon the actual driver code algorithms and or measured results. I guess I should mark 0x200 as *probably* single link DVI...

Link to comment
Share on other sites

Well, if you can get to a conclusion from the cards BIOS or any other dump i can get,

just let me know... i have a BIOS dump and i can get into windows or ubuntu to get any other info you need.

Link to comment
Share on other sites

 Share

×
×
  • Create New...