Jump to content

Editing custom personalities for ATI Radeon HD[45]xx


  • Please log in to reply
765 replies to this topic

#161
atlee

atlee

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 724 posts
  • Gender:Male
  • Location:South NSW, Australia
back to 10.6.6, will go through this section and see if we can figure something out, I'm looking closely at what Kizwan is finding as it seems very interesting indeed.

#162
checcco

checcco

    InsanelyMac Protégé

  • Members
  • PipPip
  • 96 posts
k540kkk contacted me via PM and asked me to post this info he extracted from ATI6000Controller.kext from MBP2011

Personality: Pithecia 
ConnectorInfo count in decimal: 3 
Effective address for ConnectorInfo table in dec: 159584 (0x26f60) 
Location in dec: 500444 (0x7a2dc) 
0000000: 0004 0000 0403 0000 0001 0000 2103 0204 ............!... 
0000010: 0400 0000 1402 0000 0001 0000 0000 0403 ................ 
0000020: 1000 0000 1000 0000 0001 0000 0000 0001 ................ 

Personality: Bulrushes 
ConnectorInfo count in decimal: 6 
Effective address for ConnectorInfo table in dec: 159648 (0x26fa0) 
Location in dec: 500508 (0x7a31c) 
0000000: 0004 0000 0403 0000 0001 0000 1102 0101 ................ 
0000010: 0004 0000 0403 0000 0001 0000 2103 0202 ............!... 
0000020: 0004 0000 0403 0000 0001 0000 1204 0303 ................ 
0000030: 0004 0000 0403 0000 0001 0000 2205 0404 ............"... 
0000040: 0004 0000 0403 0000 0001 0000 1000 0505 ................ 
0000050: 0004 0000 0403 0000 0001 0000 2001 0606 ............ ... 

Personality: Cattail 
ConnectorInfo count in decimal: 4 
Effective address for ConnectorInfo table in dec: 159744 (0x27000) 
Location in dec: 500604 (0x7a37c) 
0000000: 0200 0000 4000 0000 2905 0000 0000 0005 ....@...)....... 
0000010: 0004 0000 0403 0000 0001 0000 1102 0101 ................ 
0000020: 0004 0000 0001 0000 0001 0000 2103 0202 ............!... 
0000030: 0004 0000 0001 0000 0001 0000 1204 0303 ................ 

Personality: Hydrilla 
ConnectorInfo count in decimal: 5 
Effective address for ConnectorInfo table in dec: 159808 (0x27040) 
Location in dec: 500668 (0x7a3bc) 
0000000: 0200 0000 0001 0000 0901 0000 1204 0303 ................ 
0000010: 0004 0000 0403 0000 0001 0000 1102 0101 ................ 
0000020: 0004 0000 0403 0000 0001 0000 2103 0202 ............!... 
0000030: 0004 0000 0403 0000 0001 0000 2205 0504 ............"... 
0000040: 0004 0000 0403 0000 0001 0000 1000 0405 ................ 

Personality: Duckweed 
ConnectorInfo count in decimal: 4 
Effective address for ConnectorInfo table in dec: 159904 (0x270a0) 
Location in dec: 500764 (0x7a41c) 
0000000: 0004 0000 0403 0000 0001 0000 1204 0401 ................ 
0000010: 0004 0000 0403 0000 0001 0000 2205 0502 ............"... 
0000020: 0008 0000 0402 0000 0001 0000 1102 0304 ................ 
0000030: 0002 0000 0402 0000 0001 0000 0000 0605 ................ 

Personality: Fanwort 
ConnectorInfo count in decimal: 4 
Effective address for ConnectorInfo table in dec: 159968 (0x270e0) 
Location in dec: 500828 (0x7a45c) 
0000000: 0200 0000 4000 0000 2905 0000 0000 0004 ....@...)....... 
0000010: 0004 0000 0403 0000 0001 0000 1102 0101 ................ 
0000020: 0004 0000 0001 0000 0001 0000 2103 0202 ............!... 
0000030: 0004 0000 0001 0000 0001 0000 1204 0303 ................ 

Personality: Elodea 
ConnectorInfo count in decimal: 5 
Effective address for ConnectorInfo table in dec: 160032 (0x27120) 
Location in dec: 500892 (0x7a49c) 
0000000: 0200 0000 0001 0000 0901 0000 1204 0303 ................ 
0000010: 0004 0000 0403 0000 0001 0000 1102 0101 ................ 
0000020: 0004 0000 0403 0000 0001 0000 2103 0202 ............!... 
0000030: 0004 0000 0403 0000 0001 0000 2205 0404 ............"... 
0000040: 0004 0000 0403 0000 0001 0000 1000 0505 ................ 

Personality: Kudzu 
ConnectorInfo count in decimal: 2 
Effective address for ConnectorInfo table in dec: 160128 (0x27180) 
Location in dec: 500988 (0x7a4fc) 
0000000: 0004 0000 0403 0000 0001 0000 1204 0303 ................ 
0000010: 0008 0000 0402 0000 0001 0000 1102 0101 ................ 

Personality: Gibba 
ConnectorInfo count in decimal: 5 
Effective address for ConnectorInfo table in dec: 160160 (0x271a0) 
Location in dec: 501020 (0x7a51c) 
0000000: 0004 0000 0403 0000 0001 0000 1204 0501 ................ 
0000010: 0004 0000 0403 0000 0001 0000 2205 0402 ............"... 
0000020: 0008 0000 0402 0000 0001 0000 1102 0604 ................ 
0000030: 0002 0000 0402 0000 0001 0000 0000 0305 ................ 
0000040: 0400 0000 0402 0000 0001 0000 1102 0103 ................ 

Personality: Lotus 
ConnectorInfo count in decimal: 3 
Effective address for ConnectorInfo table in dec: 160256 (0x27200) 
Location in dec: 501116 (0x7a57c) 
0000000: 0004 0000 0403 0000 0001 0000 1102 0101 ................ 
0000010: 0004 0000 0001 0000 0001 0000 2103 0202 ............!... 
0000020: 0008 0000 0402 0000 0001 0000 2205 0404 ............"... 

Personality: Ipomoea 
ConnectorInfo count in decimal: 3 
Effective address for ConnectorInfo table in dec: 160320 (0x27240) 
Location in dec: 501180 (0x7a5bc) 
0000000: 0004 0000 0403 0000 0001 0000 1204 0105 ................ 
0000010: 0008 0000 0402 0000 0001 0000 1102 0403 ................ 
0000020: 1000 0000 1000 0000 0001 0000 0000 0002 ................


#163
jsl

jsl

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 324 posts

I did further test with 10.6.6 kexts & I found bytes which set the ATY,ControlFlags.

Based on the success report I read, I found ATY,ControlFlags for LVDS is 0x40 & HDMI is 0x204.

LVDS: 02 00 00 00 40 00 00 00 09 01 00 00 02 01 00 01
HDMI: 00 08 00 00 04 02 00 00 00 01 00 00 22 05 05 02


I test this with Peregrine framebuffer & now I have output on the internal display for the first time!!! :D

However, if the external monitor connected to HDMI port, both screen blank/black.

According to my working HDMI audio in Asus EAH 5850, EAH 5770 and MSI Hawk 5770 using Uakari, Vervet, Baboon, Zonalis, Flicker & Hoolock FBs:
The working HDMI for desktop ATI 5xxx cards should be 00 08 00 00 00 02 00 00 00 01 00 00 22 05 05 xx (xx=04 or 05).

However, I am NOT sure whether there is big difference between desktop ATI 5xxx cards and laptop ATI 5xxx M series.

#164
kizwan

kizwan

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,422 posts

According to my working HDMI audio in Asus EAH 5850, EAH 5770 and MSI Hawk 5770:
all should be 00 08 00 00 00 02 00 00 00 01 00 00 22 05 05 xx (xx=04 or 05).
Please try these for your card.

Thank you but I already tried it. The external display just blank if connected to HDMI port. However, I'm successfully enabled dual-screen with external monitor connected to VGA port. :D

Peregrine framebuffer:-
0000000	02 00 00 00 40 00 00 00 09 01 00 00 02 01 00 01		(LVDS)
0000010	10 00 00 00 10 00 00 00 00 01 00 00 00 10 00 06		(VGA)

Attached File  peregrine_dual_lvds_vga_01.jpg   316.44KB   65 downloads
Attached File  peregrine_dual_lvds_vga_02.jpg   292.46KB   39 downloads

#165
mucha

mucha

    InsanelyMac Protégé

  • Members
  • Pip
  • 26 posts
  • Gender:Male
Hi bcc9,
can you make a tool like your radeondump thats provide usefull information about Encoder & Transmitter routing for each output (like does the Dong's RadeonHD.kext Debug info), such a tools in combination with radeondump info will make every ATI card Working

#166
kizwan

kizwan

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,422 posts
Finally, all three connections are working. :wacko:
ATOM BIOS Rom: 
	SubsystemVendorID: 0x1028 SubsystemID: 0x02bd
	IOBaseAddress: 0x0000
	Filename: BR034783.006
	BIOS Bootup Message: 
BR034783-006 M92 DDR3 64bit 500e/800m									   

Connector at index 0 type: VGA (1)
Connector's i2cid: 95
Connector at index 1 type: HDMI-A (11)
Connector's i2cid: 91
Connector at index 2 type: LVDS (7)
Connector's i2cid: 90

senseid = (i2cid & 0xf) + 1
VGA: (95 And 0xf) + 1 = 6
HDMI: (91 And 0xf) + 1 = 2
LVDS: (90 And 0xf) + 1 = 1

Patched connection table (Shrike framebuffer):-
--> 00000000	 02  00  00  00  40  00  00  00  09  01  00  00  12  00  00  01 	(LVDS)
--> 00000010	 10  00  00  00  10  00  00  00  00  01  00  00  00  10  01  06 	(VGA)
--> 00000020	 00  08  00  00  00  02  00  00  00  01  00  00  20  01  02  02 	(HDMI)
Attached File  peregrine_dual_lvds_hdmi_01.jpg   317.63KB   67 downloads
Attached File  peregrine_dual_lvds_hdmi_02.jpg   289.26KB   52 downloads

Thank you bcc9 & mucha for the excellent guides! ;)

#167
andrek

andrek

    InsanelyMac Protégé

  • Members
  • PipPip
  • 63 posts
  • Gender:Male
So the quest is pretty much complete, I guess :wacko: Congratulations to all of you!

It looks like a black magic to me though. I have no experience with OSX86 at all (although I'm fine with linux) but I'm giving it a shot tomorrow.
I just wish there was a more straightforward guide for newbies on getting OSX work on ATi Mobility - equipped notebooks. (such as dell studio 15 series)

#168
mucha

mucha

    InsanelyMac Protégé

  • Members
  • Pip
  • 26 posts
  • Gender:Male
Congratulations Kizwan
:wacko:
Finaly we got Full support for our Radeon

#169
wmarsh

wmarsh

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 900 posts

Hi bcc9,
can you make a tool like your radeondump thats provide usefull information about Encoder & Transmitter routing for each output (like does the Dong's RadeonHD.kext Debug info), such a tools in combination with radeondump info will make every ATI card Working

Such a tool would be very useful.
I get a garbled screen, both internal and external, with Dong's tool in debug mode, which makes getting this info difficult.

#170
mucha

mucha

    InsanelyMac Protégé

  • Members
  • Pip
  • 26 posts
  • Gender:Male

Such a tool would be very useful.
I get a garbled screen, both internal and external, with Dong's tool in debug mode, which makes getting this info difficult.

Me too i was getting grabled screen, RadeonHD.kext never worked for me i was using chameleon with autoresolution before, but to overcome this and after having installed RadeonHD you should wait until you are sure your desktop is fully loaded then:

1- press "alt+shift+u" (to select utility folder)
2- press "t" (to select terminal)
3- press "alt+o" (to open the already selected terminal)
4- type "sudo -s" press enter and wait
5- type your password press enter and wait
6- type "dmesg > encoder.txt" and press enter
7- press the powerbutton to reboot with boot flag -s -f Delete radeonHD.kext and type exit to continue the normal boot process
8- Go to your home folder you will find your dumped log in encoder.txt

#171
wmarsh

wmarsh

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 900 posts

Me too i was getting grabled screen, RadeonHD.kext never worked for me i was using chameleon with autoresolution before, but to overcome this and after having installed RadeonHD you should wait until you are sure your desktop is fully loaded then:

1- press "alt+shift+u" (to select utility folder)
2- press "t" (to select terminal)
3- press "alt+o" (to open the already selected terminal)
4- type "sudo -s" press enter and wait
5- type your password press enter and wait
6- type "dmesg > encoder.txt" and press enter
7- press the powerbutton to reboot with boot flag -s -f Delete radeonHD.kext and type exit to continue the normal boot process
8- Go to your home folder you will find your dumped log in encoder.txt

Found a simpler solution:

Put terminal in dock
Set options to open on logon
Then move patched RadeonHD.kext to /S/L/E
reboot

When loaded (typing blind):
sudo bash
<enter your password>
dsemg > Encoder.txt
shutdown -r now

Reboot with -s, but unpatched RadeonHD.kext back, etc

And an even simpler solution is I found all the info I needed with dsemg without debug actually.

I still don't have mine up yet; may be an issue with graphics enabler. I think some of us may have to inject under AGP or PEGP with a dsdt patch, like the Nvidia and Intel laptops do.

#172
jsl

jsl

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 324 posts

Finally, all three connections are working. :(

ATOM BIOS Rom: 
	SubsystemVendorID: 0x1028 SubsystemID: 0x02bd
	IOBaseAddress: 0x0000
	Filename: BR034783.006
	BIOS Bootup Message: 
BR034783-006 M92 DDR3 64bit 500e/800m									   

Connector at index 0 type: VGA (1)
Connector's i2cid: 95
Connector at index 1 type: HDMI-A (11)
Connector's i2cid: 91
Connector at index 2 type: LVDS (7)
Connector's i2cid: 90

senseid = (i2cid & 0xf) + 1
VGA: (95 And 0xf) + 1 = 6
HDMI: (91 And 0xf) + 1 = 2
LVDS: (90 And 0xf) + 1 = 1

Patched connection table (Shrike framebuffer):-
--> 00000000	 02  00  00  00  40  00  00  00  09  01  00  00  12  00  00  01 	(LVDS)
--> 00000010	 10  00  00  00  10  00  00  00  00  01  00  00  00  10  01  06 	(VGA)
--> 00000020	 00  08  00  00  00  02  00  00  00  01  00  00  20  01  02  02 	(HDMI)
Attached File  peregrine_dual_lvds_hdmi_01.jpg   317.63KB   67 downloads
Attached File  peregrine_dual_lvds_hdmi_02.jpg   289.26KB   52 downloads

Thank you bcc9 & mucha for the excellent guides! :D

Congratulations Kizwan !
Just as I predicted before that the working HDMI should be 00 08 00 00 00 02 00 ........................
no matter it's desktop or laptop ATI HD cards (Connector-type:0x800, ATY-ControlFlag:0x200).

#173
kizwan

kizwan

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,422 posts

Congratulations Kizwan !
Just as I predicted before that the working HDMI should be 00 08 00 00 00 02 00 ........................
no matter it's desktop or laptop ATI HD cards (Connector-type:0x800, ATY-ControlFlag:0x200).

Thanks. :(

It doesn't work earlier with ATY,ControlFlags 0x200 is because it use the same link as LVDS used (same UNIPHY2). So, it conflicted with each other:-
LVDS: 02 00 00 00 40 00 00 00 09 01 00 00 02 01 00 01 > DIG2>UNIPHY2>DUAL_LINK (A+B )>LVDS
HDMI: 00 08 00 00 04 02 00 00 00 01 00 00 22 05 05 02 > DIG6>UNIPHY2>LINK_B>HDMI

LVDS was using UNIPHY2>LINK_B and HDMI was using the same link which cause the interference.

With correct link, it works:-
02 00 00 00 40 00 00 00 09 01 00 00 12 00 00 01 (LVDS)
10 00 00 00 10 00 00 00 00 01 00 00 00 10 01 06 (VGA)
00 08 00 00 00 02 00 00 00 01 00 00 20 01 02 02 (HDMI)

#174
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,281 posts
  • Gender:Male

Hi bcc9,
can you make a tool like your radeondump thats provide usefull information about Encoder & Transmitter routing for each output (like does the Dong's RadeonHD.kext Debug info), such a tools in combination with radeondump info will make every ATI card Working

Hey, congrats for figuring out more about the hotplugid, transmitter, encoder, controlflags. Way cool!

I'll have to see whether those additional values can be derived from the atom bios (I think it'd be a lot cleaner to get them that way rather than probing the hardware if possible).
I've actually never used Dong's kext before (never knew about it before rolling my own dump code).

When loaded (typing blind):

Boot without the framebuffer kext, configure system preferences->sharing->remote login, then whenever your system boots to a black/garbled/corrupt screen you can ssh login to it once it's fully booted and type whatever commands you want. No flying blind required.

#175
atlee

atlee

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 724 posts
  • Gender:Male
  • Location:South NSW, Australia

Finally, all three connections are working. :unsure:

Patched connection table (Shrike framebuffer):-

--> 00000000	 02  00  00  00  40  00  00  00  09  01  00  00  12  00  00  01 	(LVDS)
--> 00000010	 10  00  00  00  10  00  00  00  00  01  00  00  00  10  01  06 	(VGA)
--> 00000020	 00  08  00  00  00  02  00  00  00  01  00  00  20  01  02  02 	(HDMI)
Attached File  peregrine_dual_lvds_hdmi_01.jpg   317.63KB   67 downloads
Attached File  peregrine_dual_lvds_hdmi_02.jpg   289.26KB   52 downloads

Thank you bcc9 & mucha for the excellent guides! :thumbsup_anim:


Hi Kizwan is every mobility cards sense ID's different? Would this method be something I could do?

#176
kizwan

kizwan

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,422 posts

Hi Kizwan is every mobility cards sense ID's different? Would this method be something I could do?

Some have the same senseid while others are different. Better obtain required information on the targeted computer. First follow bcc9's guide & then finally follow mucha's guide. For bcc9's guide, in case you lost, just follow my brief/simple example for 32bit & 64bit. You should be able to follow & replicate the success on your computer. That is the first piece of the puzzle. For the last piece of the puzzle, read mucha's guide.

#177
atlee

atlee

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 724 posts
  • Gender:Male
  • Location:South NSW, Australia

Some have the same senseid while others are different. Better obtain required information on the targeted computer. First follow bcc9's guide & then finally follow mucha's guide. For bcc9's guide, in case you lost, just follow my brief/simple example for 32bit & 64bit. You should be able to follow & replicate the success on your computer. That is the first piece of the puzzle. For the last piece of the puzzle, read mucha's guide.


Your pics display LVDS, whereas mine is CRT, unknown and unknown. I will follow your posts using bcc9's info and then mucha's. thank you.

fat_magic 0xcafebabe
nfat_arch 2
architecture x86_64
	cputype CPU_TYPE_X86_64
	cpusubtype CPU_SUBTYPE_X86_64_ALL
	offset 4096 <<-- START OFFSET FOR ARCH 64BIT -->>
	size 149936
	align 2^12 (4096)
architecture i386
	cputype CPU_TYPE_I386
	cpusubtype CPU_SUBTYPE_I386_ALL
	offset 155648 <<-- START OFFSET FOR ARCH 32BIT -->>
	size 148908
	align 2^12 (4096)

EulemurInfo::createInfo(unsigned char, PlatformParameters&):
0000d982	pushl	%ebp
0000d983	movl	%esp,%ebp
0000d985	movl	0x0c(%ebp),%ecx
0000d988	movl	$0x0000ed34,0x08(%ecx)
0000d98f	movb	$0x03,0x03(%ecx) <<-- (3 Connections) -->>
0000d993	xorl	%edx,%edx
0000d995	movl	%edx,%eax
0000d997	shll	$0x04,%eax
0000d99a	addl	$0x000113e0,%eax <<--VIRTUAL ADDRESS-->>
0000d99f	movl	%eax,0x0c(%ecx,%edx,4)
0000d9a3	incl	%edx
0000d9a4	movzbl	0x03(%ecx),%eax
0000d9a8	cmpl	%edx,%eax
0000d9aa	jg	0x0000d995
0000d9ac	xorl	%eax,%eax
0000d9ae	leave
0000d9af	ret

Section
  sectname __const
   segname __TEXT
	  addr 0x0000ed80 <<-- START ADDRESS FOR SEG-->>
	  size 0x00002430
	offset 61624 <<--OFFSET FOR SEG-->>
	 align 2^5 (32)
	reloff 83612
	nreloc 1298
	 flags 0x00000000
 reserved1 0
 reserved2 0

155648 + 61624 + 0x000113e0 - 0x0000ed80 = 0x37718 + 0xF0B8 + 0x000113e0 - 0x0000ed80 = 0x48E30

Am I doing this right?

dd if=ATIFramebuffer of=/tmp/eulemur bs=1 skip=226552 count=64
od -Ax -tx1 /tmp/eulemur

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
How would I change the 64 to represent only 3 connections?

#178
checcco

checcco

    InsanelyMac Protégé

  • Members
  • PipPip
  • 96 posts
Guys I can't get RadeonHD to return info about encoder & transmitter... The kext loads, but then dmesg only returns an EDID table... Nothing similar to mucha output.... I've done all correctly, I've checked 100 times... On dong's thread I read that RadeonHD doesn't support HD5XXX series... Since I'm on 5650 mobility is there any other tool? Please help me I'm really struggling...

#179
atlee

atlee

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 724 posts
  • Gender:Male
  • Location:South NSW, Australia

Guys I can't get RadeonHD to return info about encoder & transmitter... The kext loads, but then dmesg only returns an EDID table... Nothing similar to mucha output.... I've done all correctly, I've checked 100 times... On dong's thread I read that RadeonHD doesn't support HD5XXX series... Since I'm on 5650 mobility is there any other tool? Please help me I'm really struggling...

Wondering if a linux distro could do a dump of the info?

#180
checcco

checcco

    InsanelyMac Protégé

  • Members
  • PipPip
  • 96 posts

Wondering if a linux distro could do a dump of the info?


Just what I was checking...

http://cgit.freedesk...xf86-video-ati/





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