Jump to content

Editing custom personalities for ATI Radeon HD[45]xx


bcc9
 Share

775 posts in this topic

Recommended Posts

does any one knows in wich kext is located the conector info of the RadeonFramebuffer personality. i belive thta is the default framebuffer used when there is no match for the framebuffer injected by chameleon

Link to comment
Share on other sites

  • 1 month later...

Hi bcc9,

 

I have just come across your postings. I hope you are still monitoring this thread. I have an XFX 5770 (ZMF3) card with 3 physical connectors, DVI : DVI : MDP. When I used the tools you linked to, I found that the card BIOS reports 5 connectors:

 

ATOM BIOS Rom: 
SubsystemVendorID: 0x1682 SubsystemID: 0x2994
IOBaseAddress: 0x0000
Filename: 577ZMF73.BIN
BIOS Bootup Message: 
JUNIPER BIOS UCODEv:1255									

PCI ID: 1002:68b8
Connector at index 0
Type [@offset 44278]: DisplayPort (10)
Encoder [@offset 44282]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 44380]: 0x91, OSX senseid: 0x2
Connector at index 1
Type [@offset 44288]: DVI-I (2)
Encoder [@offset 44292]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 44417]: 0x93, OSX senseid: 0x4
Connector at index 2
Type [@offset 44298]: DVI-I (2)
Encoder [@offset 44302]: INTERNAL_KLDSCP_DAC2 (0x16)
i2cid [@offset 44417]: 0x93, OSX senseid: 0x4
Connector at index 3
Type [@offset 44308]: DVI-I (2)
Encoder [@offset 44312]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 44454]: 0x92, OSX senseid: 0x3
Connector at index 4
Type [@offset 44318]: DVI-I (2)
Encoder [@offset 44322]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 44454]: 0x92, OSX senseid: 0x3

 

I noticed that you were uncertain about your connector types in the original post

 

Next we take a look at the ConnectorInfo for this personality:

 

connector-type 0x00000400=displayport at port 0

connector-type 0x00000004=DVI at port 1

connector-type 0x00000200=single link DVI(probably) at port 2

connector-type 0x00000800=HDMI at port 3

 

I have to admit that I'm guessing, but there are a few clues here:

 

There are 3 physical connectors, but five reported by the BIOS. Logically then there must be 2 more. Then I remembered that DVI can be either DVI-D (digital only), or DVI-I (digital with -I-ntegrated analog). Looking at the output from the radeon_bios_decode tool, there's another clue in each of the 'Encoder' lines, connectors at indexes 2 and 4 have the acronym DAC in their descriptions, which usually stands for Digital to Analog Converter. Therefore I'm concluding that I do indeed have 5 physical connectors, it's just that my DVI ports are DVI-I and combine the digital and analog.

 

Looking at the output from your ati_personality script, I'm going to suggest that cards with DVI-I will have personalities like this:

 

0000000	00  04  00  00  04  03  00  00  00  01  00  00  12  04  05  01 #MDP
0000010	04  00  00  00  04  02  00  00  00  01  00  00  11  02  01  02 #DVI-D
0000020	00  02  00  00  14  02  00  00  00  01  00  00  00  00  03  03 #DVI-A
0000030	04  00  00  00  04  02  00  00  00  01  00  00  11  02  01  04 #DVI-D
0000040	00  02  00  00  14  02  00  00  00  01  00  00  00  00  03  05 #DVI-A

 

I'm suggesting that 00 20 00 00 is the analog port of DVI-I. What do you think?

 

RTH

Link to comment
Share on other sites

  • 2 weeks later...

i posted this in mucha's thread but maybe it belongs here....

 

...been editing the flicker framebuffer file ....using this info

 

ATOM BIOS Rom:

SubsystemVendorID: 0x1002 SubsystemID: 0x0028

IOBaseAddress: 0x0000

Filename: B107310.100

BIOS Bootup Message: RV730XT AGP 1024M/128B DDR3 DVI-I/VGA/HDMI 873M/750E

PCI ID: 1002:9495

Connector at index 0

Type [@offset 44694]: VGA (1)

Encoder [@offset 44698]: INTERNAL_KLDSCP_DAC2 (0x16)

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

Connector at index 1

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

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

i2cid [@offset 44789]: 0x94, OSX senseid: 0x5

Connector at index 2

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

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

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

Connector at index 3

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

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

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

 

and from redsocks

 

Downloads/redsock_bios_decoder < /Users/Rusty/Desktop/RV730.bin

TEST.BIN :

RV730XT AGP 1024M/128B DDR3 DVI-I/VGA/HDMI 800M/750E

Subsystem Vendor ID: 1002

Subsystem ID: 28

Object Header Structure Size: 235

Connector Object Table Offset: 3c

Router Object Table Offset: 0

Encoder Object Table Offset: af

Display Path Table Offset: 10

Connector Object Id [5] which is [VGA]

encoder obj id [0x16] which is [iNTERNAL_KLDSCP_DAC2] linkb: false

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 [0x15] which is [iNTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] 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

 

this is what i have so far ...works for vga to vga , dvi to vga, and i can also load the hdmi port and change resolution (overscan) 1080i but no actual display appears on the tv(display preferencepane shows on my monitor only) only vga and dvi ports show a display

my modded Flicker

 

10 00 00 00 10 00 00 00 00 01 00 00 00 10 00 01 (VGA)

00 08 00 00 04 02 00 00 00 01 00 00 10 00 02 05 (HDMI)

00 02 00 00 14 02 00 00 00 01 00 00 01 10 01 04 (DVI)

 

am i getting close?....still no QE/CI ...using ati4600controller atisupport and atiframebuffer kexts from 10.6.5 on a 10.6.8 system...

and from SystemProfiler

 

ATI Radeon HD 4600 Series:

 

Chipset Model: ATI Radeon HD 4600 Series

Type: GPU

Bus: PCIe

Slot: Slot-1

PCIe Lane Width: x16

VRAM (Total): 1024 MB

Vendor: ATI (0x1002)

Device ID: 0x9495

Revision ID: 0x0000

ROM Revision: 113-B7710C-176

EFI Driver Version: 01.00.318

Displays:

Apple Forced EDID:

Resolution: 1600 x 1200 @ 85 Hz

Pixel Depth: 32-Bit Color (ARGB8888)

Main Display: Yes

Mirror: Off

Online: Yes

L05HD:

Resolution: 1920 x 1080 @ 60 Hz

Pixel Depth: 32-Bit Color (ARGB8888)

Mirror: Off

Online: Yes

Interlaced: Yes

Television: Yes

 

and if i boot with dvi to vga with monitor and hdmi with tv i get this in SystemProfiler

 

ATI Radeon HD 4600 Series:

 

Chipset Model: ATI Radeon HD 4600 Series

Type: GPU

Bus: PCIe

Slot: Slot-1

PCIe Lane Width: x16

VRAM (Total): 1024 MB

Vendor: ATI (0x1002)

Device ID: 0x9495

Revision ID: 0x0000

ROM Revision: 113-B7710C-176

EFI Driver Version: 01.00.318

Displays:

L05HD:

Resolution: 1920 x 1080 @ 60 Hz

Pixel Depth: 32-Bit Color (ARGB8888)

Mirror: Off

Online: Yes

Interlaced: Yes

Television: Yes

Studio Display 21:

Resolution: 1600 x 1200 @ 85 Hz

Pixel Depth: 32-Bit Color (ARGB8888)

Main Display: Yes

Mirror: Off

Online: Yes

...somethings not quite right... :help:

 

got dual display working...kinda ...switched the order of the above to dvi-vga-hdmi

 

00 02 00 00 14 02 00 00 00 01 00 00 01 10 01 04 (DVI)

10 00 00 00 10 00 00 00 00 01 00 00 00 10 00(becomes 02) 01 (VGA)

00 08 00 00 00 02 00 00 00 01 00 00 10 00(changed to 01 01) 02(becomes 03 05 (HDMI) got display working on TV together with VGA , dvi to vga dongle and hdmi gives me a desktop background on monitor and tv (no menubar or dock on either) :moil: still not there...no QE/CI yet

with dvi to vga Monitor plugged in at startup and then plugging in hdmi...i have extended desktop from dvi/vga monitor to hdmi TV...and still no QE/CI :wallbash: not done yet

attaching my ioregistryexplorer output with this setup ...just in case anyone gets curious :whistle:

 

RustyBalls’s Mac ProFlickerMod.zip

post-11772-0-15101700-1323105854_thumb.gif

Link to comment
Share on other sites

  • 2 weeks later...

Hope this isn't too off topic but trying to get 10.7 to recognise both DVI ports on a sapphire 6870 using this procedure but I've hit a wall. The default frame buffer for this card is Duckweed which works with only one DVI port. The duckweed port table lists 2 x DP, 1 x HDMI and 1 x DVI which is not going to work as the card has 1 x DP and 2 x DVI (1 single, 1 dual). Both DVI ports work with GraphicsEnabler=No but DVD Player and Ableton crash without correct frame buffer loaded and ableton crashing is not an option for me.

 

 

Personality: Duckweed
ConnectorInfo count in decimal: 4
Disk offset in decimal 523688
0000000	00  04  00  00  04  03  00  00  00  01  00  00  12  04  04  01   < Display Port (should be other DVI)
0000010	00  04  00  00  04  03  00  00  00  01  00  00  22  05  05  02   < Display Port (apparently this one works)
0000020	00  08  00  00  04  02  00  00  00  01  00  00  11  02  03  04   < HDMI
0000030	00  02  00  00  14  02  00  00  00  01  00  00  00  00  06  05   < single link DVI (working)
0000040

ATOM BIOS Rom:
SubsystemVendorID: 0x174b SubsystemID: 0x174b
IOBaseAddress: 0x0000
Filename: 174X03B0.S4I
BIOS Bootup Message:
BARTS XT HYNIX/ELPIDA GDDR5 32MX32 BIOS									

PCI ID: 1002:6738
Connector at index 0
Type [@offset 44283]: DisplayPort (10)
Encoder [@offset 44287]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 44393]: 0x90, OSX senseid: 0x1
Connector at index 1
Type [@offset 44293]: HDMI-A (11)
Encoder [@offset 44297]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 44420]: 0x93, OSX senseid: 0x4
Connector at index 2
Type [@offset 44303]: DVI-D (3)
Encoder [@offset 44307]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 44447]: 0x95, OSX senseid: 0x6
Connector at index 3
Type [@offset 44313]: DVI-I (2)
Encoder [@offset 44317]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 44484]: 0x94, OSX senseid: 0x5
Connector at index 4
Type [@offset 44323]: DVI-I (2)
Encoder [@offset 44327]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 44484]: 0x94, OSX senseid: 0x5

redsock_bios_decoder

 

174X03B0.S4I:

BARTS XT HYNIX/ELPIDA GDDR5 32MX32 BIOS                                     

Subsystem Vendor ID: 174b
      Subsystem ID: 174b
Object Header Structure Size: 355
Connector Object Table Offset: 48
Router Object Table Offset: 0
Encoder Object Table Offset: fd
Display Path Table Offset: 12
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 [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 [3] which is [DVI_D]
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 [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

 

IORegistryExplorer: WORKING DVI with GE=yes

post-697735-0-04815900-1324636213_thumb.jpg

 

IORegistryExplorer: WORKING DVI with GE=no PORT 2 (if ports are always the same, this should be the dual link / problem one)

post-697735-0-17475600-1324636262_thumb.jpg

 

IORegistryExplorer: WORKING DVI with GE=no PORT 3

post-697735-0-92438500-1324636285_thumb.jpg

 

Interestingly they are both recognised as 0x4 (dual link) with GE=no and work fine even though one is a single link.

 

GPU-Z

post-697735-0-69690200-1324636383_thumb.gif

 

I've tried just changing the connector type in the first line to 0004 instead of 0400

I've tried copying the single link DVI code from port 3 to port 0.

But I have been just hex editing ATI6000Controller and booting 64bit.... will this not work? I'm unclear on instructions for 64bit.

 

Seeing as none of the ATI6000 series FrameBuffers enable the dual-link DVI I have nothing to copy and paste. I'm hoping I have enough information from radeon_bios_decode and IOReigstryExplorer to get it working anyway, just a bit unsure how to implement it.

 

Any help would be greatly appreciated. There are quite a few people struggling with this card and getting a compatible personality would close a lot of threads.

Link to comment
Share on other sites

  • 3 weeks later...

why? lion 10.7.2

 

Mac-Pro-di-rex:~ rex$ sudo /Users/xxx/Desktop/ati-personality.pl

Password:

Kext ATI1300Controller

sh: otool: command not found

sh: otool: command not found

Couldn't parse segment information at /Users/rex/Desktop/ati-personality.pl line 54.

Link to comment
Share on other sites

why? lion 10.7.2

 

Mac-Pro-di-rex:~ rex$ sudo /Users/xxx/Desktop/ati-personality.pl

Password:

Kext ATI1300Controller

sh: otool: command not found

sh: otool: command not found

Couldn't parse segment information at /Users/rex/Desktop/ati-personality.pl line 54.

Come on guys... See the post one above yours. otools is part of xcode, I've added a reference link in post #1. These days one typically installs xcode via the app store.

(And one can't just post otools here as that'd be a copyright violation.)

If this doesn't make sense, you're not meeting the prerequisites in post #1 and are thus posting in the wrong thread.

Link to comment
Share on other sites

Hey guys, I've been reading the forums these last couple of weeks, and I could install Lion on my PC, everything is almost fine, except audio via HDMI.

I have an ATI 4850 with 2 DVI ports and I'm using a DVI-HDMI adapter (which includes sound, it works on Windows). According to IORegistry and Chameleon boot info, the personality of this card is MotMot.

I ran that perl script and got this:

Personality: MotMot
ConnectorInfo count in decimal: 2
Disk offset in decimal 462408
0000000	00  04  00  00  04  01  00  00  00  01  00  00  10  00  02  03  // Display Port
0000010	04  00  00  00  14  02  00  00  00  01  00  00  01  11  01  04  // Dual Link DVI
0000020

As you can see, there is no HDMI port. Moreover, there's a DisplayPort on the first line.

 

This is bugging me... I expected 2 DVI ports, got DP + DVI instead. I'm running Lion, so I looked for these strings on ATI4800Controller.kext. I did found them, twice. (Edit: I read again, one occurrence for 32-bit, the other for 64-bit, right?)

Now it's time to do the trick and "convert" one of them into an HDMI port, but I have no idea how to do this. In the example, the OP copied the "unused" port 3 into port 2, but in my case how should I change the string?

 

I forgot to mention, on ATI4800Controller's Info.plist there's an entry named Cardinal instead of MotMot. So now I don't know which of them I need do edit.

post-947959-0-42077600-1327415980_thumb.png

post-947959-0-20596100-1327415983_thumb.png

Link to comment
Share on other sites

  • 1 month later...

Hey everyone, I've been reading through this post, and mucha's, and have been trying to get my ATI Radeon HD 4550 card working. I'm on Lion 10.7.3, and have at least gotten DVI working.

 

This is my radeon_bios_dump:

 


ATOM BIOS Rom:
SubsystemVendorID: 0x1458 SubsystemID: 0x21ae
IOBaseAddress: 0xee00
Filename: R455D39I.F61
BIOS Bootup Message: GV-R455D3-512I/F61						

PCI ID: 1002:9540
Connector at index 0
Type [@offset 44660]: VGA (1)
Encoder [@offset 44664]: INTERNAL_KLDSCP_DAC2 (0x16)
i2cid [@offset 44732]: 0x91, OSX senseid: 0x2
Connector at index 1
Type [@offset 44670]: HDMI-A (11)
Encoder [@offset 44674]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 44755]: 0x90, OSX senseid: 0x1
Connector at index 2
Type [@offset 44680]: DVI-I (2)
Encoder [@offset 44684]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 44784]: 0x94, OSX senseid: 0x5
Connector at index 3
Type [@offset 44690]: DVI-I (2)
Encoder [@offset 44694]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 44784]: 0x94, OSX senseid: 0x5

 

From this I see I have a VGA port, a HDMI port, and a DVI-I port. I've got graphics pretty much working by adding my Device ID to ATI4600Controller.kext, since Lion does not have a ATI4500Controller, anyways everything works except for my framebuffer. Steam games, DVD Player, and the Chess app don't work as the default personality is loaded ( ATY,ATY,Framebuffer ). Using ATI4600Controller only gives me 3 personality options. Flicker, Gliff, and Shrike. Flicker loaded my VGA port somehow, and was the only one that would actually change the ATY, ATY, Framebuffer in IOReg to ATY, Flicker. Flicker has no port with VGA "1000 0000", so I'm very confused how that loaded. In Snow Leopard, the personality that loaded and let me use my DVI port was Peregrine, so I stuck that in Port0 of Flicker. Now my DVI port loads, so does my VGA. But what has got me even more confused now is that from the BIOS dump, my VGA is Port0, and DVI is Port2. And if I flip the VGA port and DVI port in my personality then there is no change. Does anyone have any ideas on whats going on here? I hope this was clear enough, if its not I'd be happy to post more information.

 

Also I can't seem to get redsock_bios_decoder to decode my BIOS, it just says, "uhhh, u sure that is an AtomBIOS?" EDIT: Nevermind, I was putting it in wrong.... lol.

Here is my dump from redsock_bios_decode:

 


R455D39I.F61:
GV-R455D3-512I/F61						

Subsystem Vendor ID: 1458
   Subsystem ID: 21ae
Object Header Structure Size: 235
Connector Object Table Offset: 3c
Router Object Table Offset: 0
Encoder Object Table Offset: af
Display Path Table Offset: 10
Connector Object Id [5] which is [VGA]
encoder obj id [0x16] which is [iNTERNAL_KLDSCP_DAC2] linkb: false
Connector Object Id [12] which is [HDMI_TYPE_A]
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
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

 

And here is my Flicker personality that works for DVI:

 

 

 

0000000: 0002 0000 0402 0000 0000 0000 0201 0405 ................ Port0: DVI

0000010: 0008 0000 0002 0000 0071 0000 1204 0402 ................ Port0: HDMI

0000020: 1000 0000 1000 0000 0000 0000 0010 0001 ................ Port0: VGA

 

If I flip the first and third lines, to make it the correct order according to the BIOS dump, then there is no change. I'm kinda confused here. I also tried a duallink edit ( 0400 0000 ) but that only showed colors and there was no greyscale or something....

 

Thanks!

 

-J

Edited by Computer Geek
Link to comment
Share on other sites

this is what i have so far ...works for vga to vga , dvi to vga, and i can also load the hdmi port and change resolution (overscan) 1080i but no actual display appears on the tv(display preferencepane shows on my monitor only) only vga and dvi ports show a display

my modded Flicker

 

10 00 00 00 10 00 00 00 00 01 00 00 00 10 00 01 (VGA)

00 08 00 00 04 02 00 00 00 01 00 00 10 00 02 05 (HDMI)

00 02 00 00 14 02 00 00 00 01 00 00 01 10 01 04 (DVI)

 

am i getting close?....still no QE/CI ...using ati4600controller atisupport and atiframebuffer kexts from 10.6.5 on a 10.6.8 system...

and from SystemProfiler

 

....

 

got dual display working...kinda ...switched the order of the above to dvi-vga-hdmi

 

00 02 00 00 14 02 00 00 00 01 00 00 01 10 01 04 (DVI)

10 00 00 00 10 00 00 00 00 01 00 00 00 10 00(becomes 02) 01 (VGA)

00 08 00 00 00 02 00 00 00 01 00 00 10 00(changed to 01 01) 02(becomes 03 05 (HDMI) got display working on TV together with VGA , dvi to vga dongle and hdmi gives me a desktop background on monitor and tv (no menubar or dock on either) :moil: still not there...no QE/CI yet

with dvi to vga Monitor plugged in at startup and then plugging in hdmi...i have extended desktop from dvi/vga monitor to hdmi TV...and still no QE/CI :wallbash: not done yet

attaching my ioregistryexplorer output with this setup ...just in case anyone gets curious :whistle:

 

RustyBalls’s Mac ProFlickerMod.zip

 

post-11772-0-15101700-1323105854_thumb.gif

 

 

Hey, are you on Lion? For me all I had to do was put my device ID into the ATI4600Controller, and I had QE/CI. In Snow Leopard I think I had to use a netkas patched ATIRadeonX2000.kext too. I don't have a 4670, but my BIOS dump looks pretty much the same, hope this helps. :) Here is a link to the 10.6.8 one, it's at the bottom of the post. http://netkas.org/?p=833

Link to comment
Share on other sites

Does anyone know if this has changed for 10.7.3? I grabbed my old personality settings and inserted them into the proper offsets. This is what my old personality strings looked like

 

Personality: Baboon
ConnectorInfo count in decimal: 3
Disk offset in decimal 226840
0000000	00  04  00  00  04  06  00  00  00  01  00  00  21  03  02  02
0000010	04  00  00  00  14  00  00  00  00  01  00  00  01  12  01  03
0000020	00  08  00  00  00  02  00  00  00  01  00  00  22  05  04  05
0000030

 

This is what they were immediately after patching

//32bit
Personality: Baboon
ConnectorInfo count in decimal: 3
Disk offset in decimal 485368
0000000	04  00  00  00  14  00  00  00  00  01  00  00  01  02  01  03
0000010	00  08  00  00  00  02  00  00  00  71  00  00  22  05  02  01
0000020	10  00  00  00  10  00  00  00  00  01  00  00  00  10  00  02
0000030
//
//64bit
Personality: Baboon
ConnectorInfo count in decimal: 3
Disk offset in decimal 163376
0000000	04  00  00  00  14  00  00  00  00  01  00  00  01  02  01  03
0000010	00  08  00  00  00  02  00  00  00  71  00  00  22  05  02  01
0000020	10  00  00  00  10  00  00  00  00  01  00  00  00  10  00  02
0000030

 

I patched the previous connector info using this command:

dd if=baboon.new of=/System/Library/Extensions/ATI5000Controller.kext/Contents/MacOS/ATI5000Controller bs=1 count=48 seek=485368 conv=notrunc

and again for 64 bit

dd if=baboon.new of=/System/Library/Extensions/ATI5000Controller.kext/Contents/MacOS/ATI5000Controller bs=1 count=48 seek=163376 conv=notrunc

 

I appear to be getting the right output when I run ati-personality.pl

 

Personality: Baboon
ConnectorInfo count in decimal: 3
Disk offset in decimal 163376
0000000	00  04  00  00  04  06  00  00  00  01  00  00  21  03  02  02
0000010	04  00  00  00  14  00  00  00  00  01  00  00  01  12  01  03
0000020	00  08  00  00  00  02  00  00  00  01  00  00  22  05  04  05
0000030

Personality: Baboon
ConnectorInfo count in decimal: 3
Disk offset in decimal 485368
0000000	00  04  00  00  04  06  00  00  00  01  00  00  21  03  02  02
0000010	04  00  00  00  14  00  00  00  00  01  00  00  01  12  01  03
0000020	00  08  00  00  00  02  00  00  00  01  00  00  22  05  04  05
0000030

 

I also double checked to see that I was still using baboon using ioreg | grep ATY

| |   |   | +-o ATY,Baboon@0  <class AtiFbStub, id 0x100000253, registered, matched, active, busy 0 (186 ms), retain 7>
| |   |   | | +-o ATY_Baboon  <class ATIFramebuffer, id 0x10000027d, registered, matched, active, busy 0 (20 ms), retain 16>
| |   |   | +-o ATY,Baboon@1  <class AtiFbStub, id 0x100000254, registered, matched, active, busy 0 (3 ms), retain 7>
| |   |   | | +-o ATY_Baboon  <class ATIFramebuffer, id 0x10000028f, registered, matched, active, busy 0 (3 ms), retain 16>
| |   |   | +-o ATY,Baboon@2  <class AtiFbStub, id 0x100000255, registered, matched, active, busy 0 (8 ms), retain 7>
| |   |   | | +-o ATY_Baboon  <class ATIFramebuffer, id 0x100000296, registered, matched, active, busy 0 (8 ms), retain 13>

 

Yet I still can't get HDMI out to work. I'm using an ATI Sapphire 5670, am I missing something?

Link to comment
Share on other sites

@Optikon: No errors when you did dd?

 

No, just the normal 48 records in, 48 records out text. I'm half tempted to zero the connectors out completely and see what happens. I can always boot using GraphicsEnabler=No and fix it again.

Link to comment
Share on other sites

Ok, so I just want to make sure I'm understanding this right, when I find the values I want to use, say the Transmitter value from mucha's thread, they are in hex. So to put them into the personality, I need to switch the numbers around? So say my Transmitter value is 0x12, then to put it into the personality I need to switch the 1 and 2 around, so my transmitter thats going to be in my personality is 21?

 

Thanks!

 

-J

Link to comment
Share on other sites

Hey guys!

 

I came across with a weird problem: I can't get detailed connection info from my bios (ATI Mobility Radeon x1700, dev_id = 71DE).

 

My results:

 

./radeon_bios_decode &--#60; /Extra/1002_71DE.rom

ATOM BIOS Rom:

SubsystemVendorID: 0x1043 SubsystemID: 0x14e3

IOBaseAddress: 0xa000

Filename: f3s0122.m66

BIOS Bootup Message:

ASUS F3S M66M ATOM BIOS ASID:A14201.006$

PCI ID: 1002:71de

Connector at index 0 type: VGA

Connector at index 1 type: LVDS

Connector at index 2 type: Composite

Connector at index 3 type: DVI-I

 

 

./redsock_bios_decoder &--#60; /Extra/1002_71DE.rom

 

f3s0122.m66 :

ASUS F3S M66M ATOM BIOS ASID:A14201.006$

Subsystem Vendor ID: 1043

Subsystem ID: 14e3

Object Header Structure Size: 43605

Connector Object Table Offset: 0

Router Object Table Offset: 0

Encoder Object Table Offset: 0

Display Path Table Offset: 0

Connector Object Id [0] which is [NONE]

Connector Object Id [0] which is [NONE]

Connector Object Id [0] which is [NONE]

Connector Object Id [0] which is [NONE]

Connector Object Id [0] which is [NONE]

Connector Object Id [0] which is [NONE]

Connector Object Id [0] which is [NONE]

Connector Object Id [0] which is [NONE]

 

 

./RadeonDump -i

Skipping TV-Out

Bios Connector table:

Port1: DDCType-0x7e50, DACType-7, TMDSType-0, ConnectorType-0, hpd_mask-0x0

Port3: DDCType-0x7e60, DACType-1, TMDSType-1, ConnectorType-0, hpd_mask-0x1

EDID for connector 0:

Read data failed

EDID for connector 1:

Read data failed

EDID for connector 3:

Read data failed

 

 

RaBit.exe:

-- Analyzing ROM BIOS --

HEADER offs: 0x216

PCIR struct offs: 0x23C

DATA offs: 0xB35A, 76 entries

MASTER offs: 0xB3F2, 34 entries

CRC table offs: 0x261

CLOCK table offs: 0xB8FA

Core clock is 430.00 (0.00 3D) MHz

Memory clock is 400.00 MHz

Reference clock is 27.00 MHz

Connectors Layout table offs: 0xB9F4

Port = 0, Conn0 type = VGA

Port = 0, Conn2 type = STV

 

 

So, there's no way to get senseid for me and I can't patch ATI1600Controller to get my internal LVDS working!

Could anybody help me please?

 

 

Thank you in advance!

1002_71DE.rom.zip

kernel.log.zip

RaBiT.log.zip

Link to comment
Share on other sites

  • 3 weeks later...

Man, this was not an easy processes! Finally got dual-display working with my Sapphire RadeonHD 5850 Xtreme 1GB card with Graphics Enabler = Yes such that DVDPlayer, steam games, VDADecoder etc works. The card has three outputs, DisplayPort, HDMI, and DVI, and looks pretty much the same as a 5770 physically. I used information in this thread and in http://www.insanelym...pic=262223//url to try to make a working AtiPersonality for the card, and I've got pretty close, as close as I am going to try to get right now.

 

I can get two displays working at a time, DisplayPort as well as either HDMI or DVI. When both HDMI and DVI are connected to a display, both displays detect properly, system preferences shows them as separate monitors and maps then correctly, but the MenuBar display widget changes from the monitor names to Display 1, Display 2, Display 3, and the most recently plugged in of either HDMI or DVI does not work.

 

The default profile for the card was Uakari. This profile gave me a working DP monitor with blacked out second and third monitors. It also gave me a phantom inexistent VGA 800x600 monitor. I ended up creating a custom Eulemur personality (no idea if this was the right thing to do, but it was a 3 connector personality, and I saw they used it in the 5770 thread, so I decided to try it), which has given me the most success I have had.

 

In order to get to my current state with the patch, I did the following.

 

1) Boot into windows, download GPU-Z, click the little 'Rom' button on the first tab to extract the ROM for the card. I then booted back into OSX used the radeon_bios_decode to extract information about the card.

 

ATOM BIOS Rom:
	SubsystemVendorID: 0x174b SubsystemID: 0xe174
	IOBaseAddress: 0x0000
	Filename: 174P0306.S41
	BIOS Bootup Message:
CYPRESS PRO GDDR5 BIOS UCODEv:126										  
PCI ID: 1002:6899
Connector at index 0
	Type [@offset 44342]: DisplayPort (10)
	Encoder [@offset 44346]: INTERNAL_UNIPHY2 (0x21)
	i2cid [@offset 44434]: 0x90, OSX senseid: 0x1
Connector at index 1
	Type [@offset 44352]: HDMI-A (11)
	Encoder [@offset 44356]: INTERNAL_UNIPHY2 (0x21)
	i2cid [@offset 44461]: 0x93, OSX senseid: 0x4
Connector at index 2
	Type [@offset 44362]: DVI-I (2)
	Encoder [@offset 44366]: INTERNAL_UNIPHY (0x1e)
	i2cid [@offset 44498]: 0x94, OSX senseid: 0x5
Connector at index 3
	Type [@offset 44372]: DVI-I (2)
	Encoder [@offset 44376]: INTERNAL_KLDSCP_DAC1 (0x15)
	i2cid [@offset 44498]: 0x94, OSX senseid: 0x5

 

Here we can see that the DisplayPort is at senseid 1, the HDMI at 4, and the DVI at 5.

 

I then ran the ati-personality perl script and cropped my results to just the ATI5000 kext. I then looked through the personalities for lines that began and ended with the following pairs:

 

Begin : end

00 04 : 01 // DisplayPort connector on senseid 1

00 02 : 05 // DVI-I connector on senseid 5

00 08 : 04 // HDMI connector on senseid 4

 

It ended up they were all from Uakari, so it was effectively like I was just removing the second row from the Uakari profile and placing it in the Eulemur.

 

I ended up with the following for my three connector Eulemur personality:

 

0000000: 0004 0000 0004 0000 0071 0000 1204 0401  // Displayport connector on senseid 1 from Uakari
0000010: 0002 0000 1400 0000 0071 0000 0000 0605  // DVI-I connecotr on senseID 5 from Uakari
0000020: 0008 0000 0002 0000 0071 0000 2205 0504  // HDMI on senseID 4 from Uakari

 

It does not seem that HDMI-Audio is working, although it could be something else about my setup. I honestly don't really care about HDMI Audio, so if I ever get triple display working, regardless of HDMI audio, I will post an update.

 

For those new, I used GraphicsEnabler=Yes, and AtiConfig=Eulemur in org.chameleon for my profile.

Link to comment
Share on other sites

I'm trying to enable HDMI Audio on my ATI Saphire Radeon HD 5450, VID 1002 | DID AA01 (from Windows)| SubSys 00AA0100. In 10.7.3 via System Info app DID AA01 is displayed as AA68 (ATI Manhattan HDMI Audio [Mobility Radeon HD 5000 Series] [1002:aa68]). VoodooHDA 0.2.7.3 detects the HDMI device but does not find any output controls with it. I then applied the trick as per Slice's instructions to set the device and vendor ID in Info.plist, then create one entry for each card in IOKitPersonalities, to no avail.

 

Here's my VoodooHDA getdump. I am aware there are several possible approaches (hex editing ATIFramebuffer; hex editing VoodooHDA) or even a mixof them.

 

What I could need at this point is advice which path I should follow.

 

Thank you,

Bugs

Link to comment
Share on other sites

I know I am late to this thread, but I want to thank bcc9 for his knowledge. I have a Sapphire 5670, on a Gigabyte P35 MB w/ a Q9550 CPU, running SL 10.6.8, and had been running into a wall of frustration trying to get triple monitors working, thinking all I needed was the proper framebuffer. After trolling seemingly thousands of posts in both this forum and tonymacs, I had even gone so far as to buy a 'golden' Gigabyte 6850 card, thinking it would be the answer.

 

When all I got out of that card was dual monitors, I finally started searching for framebuffer code mods to fix that card, and stumbled on to this thread. His documentation of the steps he took to fix everything for his 5670 pushed me to try to fix my 5670, and after a couple of attempts, including one error that forced me to re-install the OS from scratch, I have achieved success! I now have 2-22" LCDs and a 32" 720p HDTV monitor attached to my 5670, with full QE/CI.

 

Thanks very much - I am going to be able to send the 6850 back for a refund, since the 5670 fills my needs. ...and I have a triple boot system, w/ W764 SP1, OSX SL 10.6.8, and AVLinux 5.03 on separate drives, all with 3 monitor desktops after these mods.

 

Larry Upton

Link to comment
Share on other sites

 Share

×
×
  • Create New...