Jump to content

Editing custom personalities for ATI Radeon HD[45]xx


bcc9
 Share

775 posts in this topic

Recommended Posts

Hi, I usually have better luck with Nvidia cards but I think you guys are on to some really useful stuff here.

 

For the life of me I can't get anything out of radeon_bios_decode. I have tried numerous ROMs and i put them in my home folder along with R_B_D, open a terminal window and drop them, it either stops or says "No Atombios signature found"

 

So obviously I am overlooking some crucial step that any moron who got through 1st grade should know but I must have been chewing pencils that day.

 

Anyhow, to encourage someone to help me without using words like "noob" or "try googling", I thought I could contribute some needed pieces.

 

fixrom.py is a python script written by pipomolo42 at MR. fixrom.py <filetofix.rom> <fixedfile.rom> will give you correct checksum and allow rom to load, flash, etc.

 

I will also attach the Mac OEM Apple 5870, 5770, 4870 and 3870 ROMs so that they may be analyzed.

 

Here are the rom dumps with the 6870 thrown in for good measure.

 

 

3870

MacBoook:vgax doof$ ./radeon_bios_decode < 3870M.ROM

ATOM BIOS Rom:

SubsystemVendorID: 0x174b SubsystemID: 0xe620

IOBaseAddress: 0x0000

Filename: SB33901.021e

BIOS Bootup Message:

113-B33901-021e RV670 GDDR4_16Mx32 256bit 512MB 777e/1126m

 

PCI ID: 1002:9501

Connector at index 0

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

Encoder [@offset 44880]: INTERNAL_KLDSCP_TMDS1 (0x13)

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

Connector at index 1

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

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

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

Connector at index 2

Type [@offset 44896]: 9 pin DIN (9)

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

Connector at index 4

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

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

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

Connector at index 5

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

Encoder [@offset 44930]: INTERNAL_LVTM1 (0xf)

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

 

 

4870

MacBoook:vgax doof$ ./radeon_bios_decode < 4870.ROM

ATOM BIOS Rom:

SubsystemVendorID: 0x106b SubsystemID: 0x00b2

IOBaseAddress: 0x0000

Filename: S3B77101.012

BIOS Bootup Message:

Wekiva RV770 B77101 Board

 

PCI ID: 1002:9440

Connector at index 0

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

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

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

Connector at index 1

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

Encoder [@offset 45020]: INTERNAL_KLDSCP_LVTMA (0x1f)

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

Connector at index 2

Type [@offset 45026]: DisplayPort (10)

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

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

 

5770m

MacBoook:vgax doof$ ./radeon_bios_decode < m5770.ROM

ATOM BIOS Rom:

SubsystemVendorID: 0x1002 SubsystemID: 0x2543

IOBaseAddress: 0x0000

Filename: S3C01002.102

BIOS Bootup Message:

JUNIPER BIOS UCODEv:122

 

PCI ID: 1002:68b8

Connector at index 0

Type [@offset 44642]: DisplayPort (10)

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

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

Connector at index 1

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

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

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

Connector at index 2

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

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

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

Connector at index 3

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

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

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

Connector at index 4

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

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

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

Connector at index 5

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

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

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

 

5870

MacBoook:vgax doof$ ./radeon_bios_decode < MAC5870.ROM

ATOM BIOS Rom:

SubsystemVendorID: 0x106b SubsystemID: 0x00d0

IOBaseAddress: 0x0000

Filename: S3C07801.102

BIOS Bootup Message:

CYPRESS XT GDDR5 32Mx32 BIOS UCODEv:126

 

PCI ID: 1002:6898

Connector at index 0

Type [@offset 44600]: DisplayPort (10)

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

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

Connector at index 1

Type [@offset 44610]: DisplayPort (10)

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

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

Connector at index 2

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

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

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

Connector at index 3

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

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

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

 

XFX 6870

MacBoook:vgax doof$ ./radeon_bios_decode < XFX.HD6870.1024.101007.bin

ATOM BIOS Rom:

SubsystemVendorID: 0x1682 SubsystemID: 0x3100

IOBaseAddress: 0x0000

Filename: 687AZNF.BIN

BIOS Bootup Message:

BARTS XT HYNIX/SAMSUNG GDDR5 32Mx32 BIOS

 

PCI ID: 1002:6738

Connector at index 0

Type [@offset 44824]: DisplayPort (10)

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

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

Connector at index 1

Type [@offset 44834]: DisplayPort (10)

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

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

Connector at index 2

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

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

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

Connector at index 3

Type [@offset 44854]: DVI-D (3)

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

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

Connector at index 4

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

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

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

Connector at index 5

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

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

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

Link to comment
Share on other sites

Greetz again...

 

Not being sure about what to set the txmit/encoder bytes to, I went ahead and wrote a quick atombios decoder that outputs different goods to bcc9's... (and armed with both sets, hmmm maybe I am one step closer).

 

I didn't bother to do up the sense ids or i2cids, and was only focussed on the txmit/encoder bytes for R5xxx or better atombios goods (hmm)

 

my attached bin doesn't do much error checking, but is used same way as bcc9's for consistency.

 

Here is output of my Sapphire 5770 Flex 1GB card from my own... I have yet to plug in/test these values, but based on Mucha's thread and this one, maybe I'll get lucky ;-)

 

./redsock_bios_decoder <image.bin

 

148X0300.DP3:

 

JUNIPER BIOS UCODEv:126

 

Subsystem Vendor ID: 174b

Subsystem ID: 1484

Object Header Structure Size: 379

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 [0x21] which is [iNTERNAL_UNIPHY2 (osx txmit 0x12 [duallink 0x2] enc 0x4)] linkb: false

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 [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 [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

 

 

Again I am not sure what the KLDSCP_DAC1 values should really be hence the ? mark there... unknown..

 

Hmmm, it says I am not permitted to upload this type of file as an attachment...

 

Link here:

 

redsock_bios_decoder

Link to comment
Share on other sites

Well, to maybe save someone else the fine pleasure of trial and error w/ my particular card...

 

In the end, using vanilla SL 10.6.7 kexts I was unable to get a second or third monitor working regardless of what framebuffer or personality entries I put. (I could certainly affect things with it however).

 

The best I could get was an incorrectly/forced cloned HDMI display. QE/CI worked from the outset so that wasn't really the goal.

 

What I ended up doing was installing the MBP 10.6.7 kexts, which gave me two correct screens, one from the DL-DVI and one from the HDMI.

 

To get me a couple more monitors, I just went and bought another 5770 (non flex this time as there was no real point for osx, heh) and now have four monitors connected.

 

Note: GraphicsEnabler=no was the goods for the MBP kexts, everything works fantastico.

 

Also of note is that the ioreg for it now looks quite a bit different...

 

Where it used to say things like ATY,Vervet@0 it says ATY,ATY,RadeonFrameBuffer@0 ... other flags/etc look same-same.

 

happily operating on dual 5770 cards across four monitors... :-)

Link to comment
Share on other sites

Regarding your script.

 

BR38421.001 :

MADISON Lenovo-Yx60-Madison Pro DDR3 64Mx16 500E/600M					   

Subsystem Vendor ID: 103c
   Subsystem ID: 1448
Object Header Structure Size: 199
Connector Object Table Offset: 34
Router Object Table Offset: 0
Encoder Object Table Offset: 99
Display Path Table Offset: 12
Connector Object Id [14] which is [LVDS]
encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false
Connector Object Id [12] which is [HDMI_TYPE_A]
encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x21 [duallink 0x1] enc 0x3)] linkb: true
Connector Object Id [5] which is [VGA]
encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false

 

this is a good script so i can congratulate you and also i spent a lot of time getting the above info last time i was testing. The numbers you have above is what numbers i came down to in my final test.

 

LVDS 10,00

HDMI 21,03

VGA 00,10

 

maybe a duallink DSDT patch might work?

Link to comment
Share on other sites

maybe a duallink DSDT patch might work?

 

After having played with it for several days on end, the MBP ATI kexts don't appear to be using a connectorinfo like the one we have been playing with here...

 

It really does appear to be dynamically acquired in at least some description...

 

I ended up abandoning all of the aforementioned as soon as I got the working GraphicsEnabler=no MBP kexts happening.

 

Still, I am unable to get the DisplayPort working from my Flex card ... which I would have thought would be easier than the HDMI port, apparently not.

 

Unknown really... I wasn't able to coax much out of using the modified txmit/encoder values... your mileage may vary... :-)

Link to comment
Share on other sites

i understand the dual link patch where it boot's up the missing display example the theory was LVDS was being sent to GFX0 instead of GFX1 which my machine uses, but that theory failed for me.

 

10.6.7 stock using Lion DP2 kexts works good for me, i'm hoping Apple make 5650m work by default when Lion or earlier comes.

 

HDMI and VGA work 100% for me.

LVDS doesn't activate but it gives backlight.

 

I forced the EDID from windows and i get correct resolution setup which is good. But EDID didn't fix it.

 

i understand the dual link patch where it boot's up the missing display example the theory was LVDS was being sent to GFX0 instead of GFX1 which my machine uses, but that theory failed for me.

 

10.6.7 stock using Lion DP2 kexts works good for me, i'm hoping Apple make 5650m work by default when Lion or earlier comes.

 

HDMI and VGA work 100% for me.

LVDS doesn't activate but it gives backlight.

 

I forced the EDID from windows and i get correct resolution setup which is good. But EDID didn't fix it.

 

I think a blackscreen with backlight 10.6.7 stock won't be fixed with whatever is available.

 

If ATI5000Controller controls T/E's. ATIFramebuffer used too. ATISupport is left. What does ATISupport do? ATI5000 and FB kext used to work together for resolution change. ATISupport used to work with ATIRadeonX3000 kext's. There has to be more features or controls that we are missing. to me 5000 kexts are complete or our card id's would not be in there. If it's a routing problem, dual link problem then DSDT fix should be able to fix it, but a long with a dual link DSDT fix you would also need to force your EDID for things to recognise properly in MacOSX. Just my thoughts.

Link to comment
Share on other sites

PCI ID: 1002:68c1

Connector at index 0

Type [@offset 45082]: LVDS (7)

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

i2cid [@offset 45156]: 0x96, OSX senseid: 0x7

Connector at index 1

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

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

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

Connector at index 2

Type [@offset 45102]: VGA (1)

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

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

 

I have tried a lot to get my 5650 mobility to work with my LVDS

So far no succes.

I get full QE/CI on both my vga and hdmi connector.

Any help is welcome.

Link to comment
Share on other sites

PCI ID: 1002:68c1

Connector at index 0

Type [@offset 45082]: LVDS (7)

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

i2cid [@offset 45156]: 0x96, OSX senseid: 0x7

Connector at index 1

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

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

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

Connector at index 2

Type [@offset 45102]: VGA (1)

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

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

 

I have tried a lot to get my 5650 mobility to work with my LVDS

So far no succes.

I get full QE/CI on both my vga and hdmi connector.

Any help is welcome.

 

Plenty of stuff to read under ATI section then you will know the latest solutions so far :(

Link to comment
Share on other sites

I also have a blank LVDS output with the backlight on, no matter what framebuffer I use. I've tried booting with every framebuffer listed by ati_personality.pl in ATI5000Controller.kext (I have an ATI 5650m).

 

When I run "./radeon_bios_decode < 68C1.8001.0210.vga.rom", there's no i2cid or senseid listed. Is that because my LVDS screen isn't detected? Forcing a EDID has no effect whatsoever.

 

The HDMI and VGA outputs work perfectly with QE/CI. so no problems there. Just LVDS is having problems.

 

Here's what I've tried so far:

Booting with every framebuffer in both 32 bit and 64 bit mode.

Booting with GraphicsEnabler enabled and disabled.

 

I've attached the VBIOS dump to this post. I'm not sure if there are any system logs that I should post.

 

One last thing: I've tried to mess around with my DSDT, but even an unmodified DSDT won't compile (166 errors), so hopefully, the solution isn't to patch the DSDT.

 

Thanks for all the work that's been done so far! Just a little bit more towards a perfect kext :D!

VBIOS.zip

Link to comment
Share on other sites

@atlee, You should have some rest. :rolleyes: You wrote paragraphs twice in previous post.

 

i never noticied sorry, will not rest till succeeding full macosx setup, will try every new final and beta kext that comes out whilst also patching applehda for my audio.

Link to comment
Share on other sites

I'm trying to see about enabling HDMI audio on my Dell Studio XPS 435T with an ATI Radeon 4870.

 

I've been reading through the thread, but some of it is a little over my head for the moment.

 

I have a working custom DSDT.aml file for my computer.

 

What would I need to do/provide/generate in order to see about getting the HDMI audio working on my machine?

 

Thanks!

Link to comment
Share on other sites

new lion build 11A430e, will see if kexts have changed :) newer kext's but still no further luck :D

 

Bcc9, new output from new kexts. All other kexts looks like right hex output except for 5000 series

Kext ATI5000Controller
Personality: Douc
ConnectorInfo count in decimal: 2
Disk offset in decimal 332616
0000000	24  08  50  6d  02  00  c7  44  24  04  ac  55  02  00  c7  04
0000010	24  50  6b  02  00  e8  d6  ff  ff  ff  c7  05  50  6b  02  00
0000020
Personality: Langur
ConnectorInfo count in decimal: 3
Disk offset in decimal 332616
0000000	24  08  50  6d  02  00  c7  44  24  04  ac  55  02  00  c7  04
0000010	24  50  6b  02  00  e8  d6  ff  ff  ff  c7  05  50  6b  02  00
0000020	78  01  02  00  83  c4  18  5d  c3  55  89  e5  83  ec  08  c7
0000030
Personality: Uakari
ConnectorInfo count in decimal: 4
Disk offset in decimal 332616
0000000	24  08  50  6d  02  00  c7  44  24  04  ac  55  02  00  c7  04
0000010	24  50  6b  02  00  e8  d6  ff  ff  ff  c7  05  50  6b  02  00
0000020	78  01  02  00  83  c4  18  5d  c3  55  89  e5  83  ec  08  c7
0000030	05  50  6b  02  00  78  01  02  00  c7  04  24  50  6b  02  00
0000040
Personality: Zonalis
ConnectorInfo count in decimal: 6
Disk offset in decimal 332616
0000000	24  08  50  6d  02  00  c7  44  24  04  ac  55  02  00  c7  04
0000010	24  50  6b  02  00  e8  d6  ff  ff  ff  c7  05  50  6b  02  00
0000020	78  01  02  00  83  c4  18  5d  c3  55  89  e5  83  ec  08  c7
0000030	05  50  6b  02  00  78  01  02  00  c7  04  24  50  6b  02  00
0000040	e8  ab  ff  ff  ff  83  c4  08  5d  c3  55  89  e5  b8  50  6b
0000050	02  00  5d  c3  55  89  e5  31  c0  5d  c3  90  55  89  e5  53
0000060
Personality: Alouatta
ConnectorInfo count in decimal: 4
Disk offset in decimal 332616
0000000	24  08  50  6d  02  00  c7  44  24  04  ac  55  02  00  c7  04
0000010	24  50  6b  02  00  e8  d6  ff  ff  ff  c7  05  50  6b  02  00
0000020	78  01  02  00  83  c4  18  5d  c3  55  89  e5  83  ec  08  c7
0000030	05  50  6b  02  00  78  01  02  00  c7  04  24  50  6b  02  00
0000040
Personality: Hoolock
ConnectorInfo count in decimal: 3
Disk offset in decimal 332616
0000000	24  08  50  6d  02  00  c7  44  24  04  ac  55  02  00  c7  04
0000010	24  50  6b  02  00  e8  d6  ff  ff  ff  c7  05  50  6b  02  00
0000020	78  01  02  00  83  c4  18  5d  c3  55  89  e5  83  ec  08  c7
0000030
Personality: Vervet
ConnectorInfo count in decimal: 4
Disk offset in decimal 332616
0000000	24  08  50  6d  02  00  c7  44  24  04  ac  55  02  00  c7  04
0000010	24  50  6b  02  00  e8  d6  ff  ff  ff  c7  05  50  6b  02  00
0000020	78  01  02  00  83  c4  18  5d  c3  55  89  e5  83  ec  08  c7
0000030	05  50  6b  02  00  78  01  02  00  c7  04  24  50  6b  02  00
0000040
Personality: Baboon
ConnectorInfo count in decimal: 3
Disk offset in decimal 332616
0000000	24  08  50  6d  02  00  c7  44  24  04  ac  55  02  00  c7  04
0000010	24  50  6b  02  00  e8  d6  ff  ff  ff  c7  05  50  6b  02  00
0000020	78  01  02  00  83  c4  18  5d  c3  55  89  e5  83  ec  08  c7
0000030
Personality: Eulemur
ConnectorInfo count in decimal: 3
Disk offset in decimal 332616
0000000	24  08  50  6d  02  00  c7  44  24  04  ac  55  02  00  c7  04
0000010	24  50  6b  02  00  e8  d6  ff  ff  ff  c7  05  50  6b  02  00
0000020	78  01  02  00  83  c4  18  5d  c3  55  89  e5  83  ec  08  c7
0000030
Personality: Galago
ConnectorInfo count in decimal: 2
Disk offset in decimal 332616
0000000	24  08  50  6d  02  00  c7  44  24  04  ac  55  02  00  c7  04
0000010	24  50  6b  02  00  e8  d6  ff  ff  ff  c7  05  50  6b  02  00
0000020
Personality: Colobus
ConnectorInfo count in decimal: 2
Disk offset in decimal 332616
0000000	24  08  50  6d  02  00  c7  44  24  04  ac  55  02  00  c7  04
0000010	24  50  6b  02  00  e8  d6  ff  ff  ff  c7  05  50  6b  02  00
0000020
Personality: Mangabey
ConnectorInfo count in decimal: 2
Disk offset in decimal 332616
0000000	24  08  50  6d  02  00  c7  44  24  04  ac  55  02  00  c7  04
0000010	24  50  6b  02  00  e8  d6  ff  ff  ff  c7  05  50  6b  02  00
0000020
Personality: Nomascus
ConnectorInfo count in decimal: 4
Disk offset in decimal 332616
0000000	24  08  50  6d  02  00  c7  44  24  04  ac  55  02  00  c7  04
0000010	24  50  6b  02  00  e8  d6  ff  ff  ff  c7  05  50  6b  02  00
0000020	78  01  02  00  83  c4  18  5d  c3  55  89  e5  83  ec  08  c7
0000030	05  50  6b  02  00  78  01  02  00  c7  04  24  50  6b  02  00
0000040
Personality: Orangutan
ConnectorInfo count in decimal: 2
Disk offset in decimal 332616
0000000	24  08  50  6d  02  00  c7  44  24  04  ac  55  02  00  c7  04
0000010	24  50  6b  02  00  e8  d6  ff  ff  ff  c7  05  50  6b  02  00
0000020

 

VERSA 6000

Kext ATI6000Controller
Personality: Pithecia
ConnectorInfo count in decimal: 3
Disk offset in decimal 500508
0000000	00  04  00  00  04  03  00  00  00  01  00  00  21  03  02  04
0000010	04  00  00  00  14  02  00  00  00  01  00  00  00  00  04  03
0000020	10  00  00  00  10  00  00  00  00  01  00  00  00  00  00  01
0000030
Personality: Bulrushes
ConnectorInfo count in decimal: 6
Disk offset in decimal 500572
0000000	00  04  00  00  04  03  00  00  00  01  00  00  11  02  01  01
0000010	00  04  00  00  04  03  00  00  00  01  00  00  21  03  02  02
0000020	00  04  00  00  04  03  00  00  00  01  00  00  12  04  03  03
0000030	00  04  00  00  04  03  00  00  00  01  00  00  22  05  04  04
0000040	00  04  00  00  04  03  00  00  00  01  00  00  10  00  05  05
0000050	00  04  00  00  04  03  00  00  00  01  00  00  20  01  06  06
0000060
Personality: Cattail
ConnectorInfo count in decimal: 4
Disk offset in decimal 500668
0000000	02  00  00  00  40  00  00  00  29  05  00  00  00  00  00  05
0000010	00  04  00  00  04  03  00  00  00  01  00  00  11  02  01  01
0000020	00  04  00  00  00  01  00  00  00  01  00  00  21  03  02  02
0000030	00  04  00  00  00  01  00  00  00  01  00  00  12  04  03  03
0000040
Personality: Hydrilla
ConnectorInfo count in decimal: 5
Disk offset in decimal 500732
0000000	02  00  00  00  00  01  00  00  09  01  00  00  12  04  03  03
0000010	00  04  00  00  04  03  00  00  00  01  00  00  11  02  01  01
0000020	00  04  00  00  04  03  00  00  00  01  00  00  21  03  02  02
0000030	00  04  00  00  04  03  00  00  00  01  00  00  22  05  05  04
0000040	00  04  00  00  04  03  00  00  00  01  00  00  10  00  04  05
0000050
Personality: Duckweed
ConnectorInfo count in decimal: 4
Disk offset in decimal 500828
0000000	00  04  00  00  04  03  00  00  00  01  00  00  12  04  04  01
0000010	00  04  00  00  04  03  00  00  00  01  00  00  22  05  05  02
0000020	00  08  00  00  04  02  00  00  00  01  00  00  11  02  03  04
0000030	00  02  00  00  04  02  00  00  00  01  00  00  00  00  06  05
0000040
Personality: Fanwort
ConnectorInfo count in decimal: 4
Disk offset in decimal 500892
0000000	02  00  00  00  40  00  00  00  29  05  00  00  00  00  00  04
0000010	00  04  00  00  04  03  00  00  00  01  00  00  11  02  01  01
0000020	00  04  00  00  00  01  00  00  00  01  00  00  21  03  02  02
0000030	00  04  00  00  00  01  00  00  00  01  00  00  12  04  03  03
0000040
Personality: Elodea
ConnectorInfo count in decimal: 5
Disk offset in decimal 500956
0000000	02  00  00  00  00  01  00  00  09  01  00  00  12  04  03  03
0000010	00  04  00  00  04  03  00  00  00  01  00  00  11  02  01  01
0000020	00  04  00  00  04  03  00  00  00  01  00  00  21  03  02  02
0000030	00  04  00  00  04  03  00  00  00  01  00  00  22  05  04  04
0000040	00  04  00  00  04  03  00  00  00  01  00  00  10  00  05  05
0000050
Personality: Kudzu
ConnectorInfo count in decimal: 2
Disk offset in decimal 501052
0000000	00  04  00  00  04  03  00  00  00  01  00  00  12  04  03  03
0000010	00  08  00  00  04  02  00  00  00  01  00  00  11  02  01  01
0000020
Personality: Gibba
ConnectorInfo count in decimal: 5
Disk offset in decimal 501084
0000000	00  04  00  00  04  03  00  00  00  01  00  00  12  04  05  01
0000010	00  04  00  00  04  03  00  00  00  01  00  00  22  05  04  02
0000020	00  08  00  00  04  02  00  00  00  01  00  00  11  02  06  04
0000030	00  02  00  00  04  02  00  00  00  01  00  00  00  00  03  05
0000040	04  00  00  00  04  02  00  00  00  01  00  00  11  02  01  03
0000050
Personality: Lotus
ConnectorInfo count in decimal: 3
Disk offset in decimal 501180
0000000	00  04  00  00  04  03  00  00  00  01  00  00  11  02  01  01
0000010	00  04  00  00  00  01  00  00  00  01  00  00  21  03  02  02
0000020	00  08  00  00  04  02  00  00  00  01  00  00  22  05  04  04
0000030
Personality: Ipomoea
ConnectorInfo count in decimal: 3
Disk offset in decimal 501244
0000000	00  04  00  00  04  03  00  00  00  01  00  00  12  04  01  05
0000010	00  08  00  00  04  02  00  00  00  01  00  00  11  02  04  03
0000020	10  00  00  00  10  00  00  00  00  01  00  00  00  00  00  02
0000030

Link to comment
Share on other sites

The problem:

Under OSX the ATI driver uses a hard-coded set of personalities to define some of the video card's capabilities, most notably the connector layout. This is sufficient to support the limited number of configurations that Apple ships, but leads to non-working monitors (black displays) in many hackintosh configurations. Users have limited success & limited functionality by simply guessing which hard-coded personality best matches their video card.

 

This is a rough draft

 

Some prerequisites:

  • Installation of OSX Developer tools (for examining personalities with otools)
    Somewhat working install of ATI radeon HD[45]xx card with Kabyl's chameleon branch:
http://www.insanelymac.com/forum/index.php?showtopic=231768
Understanding of hex editing
Ability to troubleshoot by looking at ioregistry, understanding how to test ATI personalities using ATIConfig

There are currently 26 ATI framebuffer personalities defined in ATIFramebuffer's Info.plist.

Each of these personalities defines a set of hard-coded information about the video card hardware. One of the key pieces that gets defined is the connector information, known as ConnectorInfo within the ATI driver.

There is one ConnectorInfo structure for every potential connector that may be plugged into a video card. (Dual link DVI ports still count as a single ConnectorInfo). Each personality defines a table of these ConnectorInfo structures.

 

The ConnectorInfo structure can be represented as the following 16 byte structure, in C code:

 

typedef struct {
		   int ConnectorType;	/* known values below */
	   #define CONNECTORTYPE_LVDS 0x00000002	/* Ie internal Low Voltage display,
								 such as laptop */
	   #define CONNECTORTYPE_DVI  0x00000004
	   #define CONNECTORTYPE_DP   0x00000400	/* Displayport */
	   #define CONNECTORTYPE_HDMI 0x00000800
		   int flags;
		   int features;
		   byte link_i2cid;	/* Bits 0-3: i2cid
					  Bits 4-7: link transmitter link */
		   byte dac_digidx;	/* Bits 0-3: link encoder number
					  Bits 4-7: link dac number */
		   byte hotplugid;
		   byte senseid;	/* Sense line is bits 0-3
					 Use hw i2c flag is bit 4 */
		   /* i2cid = (senseid & 0xf-1)+0x90 */
		   /* senseid = (i2cid & 0xf) +1*/
	   } ConnectorInfo;

 

where integers are represented in intel little-endian byte order, and bit 0 is the LSB.

 

Lets take a look at the driver's 32-bit code for seting up the ConnectorInfo.

otool -arch i386 -vt ATIFramebuffer | c++filt | grep createInfo

gives you the list of the 26 initialization routines.

For all personalities, the initialization routine sets the connector count and a pointer to a static array of ConnectorInfo.

 

I've written a script which will parse the personality initialization routines for you and calculate the effective address of the ConnectorInfo table, as well as the number of table entries. The script currently outputs information for all personalities found in the ATI Framebuffer kext.

Usage:

perl ati-personality.pl

to output 32-bit kext information, or

perl ati-personality.pl -x

to output 64-bit kext information

for 10.7 and 10.6.7 2011 MBPs, the ATI kexts have been revised, use:

perl ati-personality.pl -a

to get the connectorinfo from their new locations.

 

See finding-patch-address.txt in the attached zip file for instructions if you wish to calculate the effective address & disk address yourself by hand.

 

For example purposes lets focus on the 10.6.6 32-bit portion of the kext, and the uakari ConnectorInfo. From ati-personality.pl we learn:

Personality: Uakari
ConnectorInfo count in decimal: 4
Disk offset in decimal 226552
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

You can see above that the perl script found the location of the Uakari connector info and has dumped out the contents in hex.

You can dump it yourself with:

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

Since there are 4 connectors for this personality, we dump 4*16=64 bytes.

 

Now we take a look at the ConnectorInfo.

 

So we have for this personality

connector-type 0x0400=displayport at port 0

connector-type 0x0004=DVI at port 1

connector-type 0x0002=?? at port 2

connector-type 0x0800=HDMI at port 3

 

Booting kabyl's chameleon branch on my Sapphire Radeon 5670 with this personality results in working DVI and working HDMI (with no audio). Note that due to a bug in that code, overriding the personality from Baboon (the default with 3 connectors total) to Uakari results in 3 injection strings not 4. So the 5670 hardware's ports are matched against only the first 3 entries in the uakari table.

 

Looking at the ioregistry, one can see that port-number 1&2 matched and port 0 did not. (ATY_ActiveFlags != 1 when the port is matched).

So my HDMI port was matched but with the wrong connector type (0x0002). This causes HDMI audio to fail.

To fix this I overwrote bytes 0 thru 15 of port 2's table entry with port 3's.

You can do this using your favorite hex editor. I used emacs ^_^

xxd, followed by ascii editing, followed by xxd -r is probably a less awkard choice.

 

The resulting table with the 3rd row changed:

 od -Ax -tx1 /tmp/uakari
			000000 00 04 00 00 00 04 00 00 00 01 00 00 12 04 04 01
			000010 04 00 00 00 14 00 00 00 00 01 00 00 01 12 01 03
			000020 00 08 00 00 00 02 00 00 00 01 00 00 22 05 05 05
			000030 00 08 00 00 00 02 00 00 00 01 00 00 22 05 05 04
			000040

Now my HDMI audio port is recognized as type 0x0800, with the usual HDMI flags, but with the expected sense line (0x05). And viola, HDMI audio now works!

 

Next, my Sapphire radeon 5670 actually has 3 ports - HDMI, DVI and displayport, and, alas, this personality is only working with 2 of them, even though the personality does include a displayport connector. Luckily I was able to find a different personality with which this card's displayport did work, the Vervet personality.

 

Again from ati-personality.pl, we find Vervet's ConnectorInfo:

Personality: Vervet
ConnectorInfo count in decimal: 4
Disk offset in decimal 226616
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

My card does in fact match port-number 0 for the DP port, as seen in the ioregistry.

So I copy the working senseid field from the vervet personality into the Uakari personality (replace the 0x01 at byte 15 of the first line with 0x02).

Viola, all 3 ports are now working with my card...

 

Hope this helps others with non-working ports or with HDMI audio problems.

Questions/comments?

 

I was trying to follow mucha's guide to fix framebuffer for my videocard but run into some problems.

 

I have Dell Studio 1747 with Radeon Mobility 4650 (0x9480)

 

My Radeon dump looks like this:

RHDAtomOutputAllocFree

Mapping DIG1 encoder to KLDSKP_UNIPHYE

Crtc[0]: found native mode from Monitor[LVDS Panel]:

Modeline "1600x900" 96 1600 1648 1680 1736 900 901 906 922

Connector "PANEL" uses Monitor "LVDS Panel":

RHDValidateScaledToMode

rhdModeValidateCrtc

DxModeValid: ATOM CRTC 1

rhdAtomOutputModeValid

Listing modesetting layout:

ATOM CRTC 1: tied to Atom PLL 1 and LUT A:

Outputs: AtomOutput UniphyE (PANEL)

ATOM CRTC 2: unused

Unused Outputs: AtomOutput DACA, AtomOutput UniphyA

 

 

And my Atom BIOS is:

 

ATOM BIOS Rom:

SubsystemVendorID: 0x1028 SubsystemID: 0x02ea

IOBaseAddress: 0x2000

Filename: BR034427.002

BIOS Bootup Message:

BR034427-002 M96 DDR3 128bit 550e/700m

 

Connector at index 0 type: VGA (1)

Connector's i2cid: 90

Connector at index 1 type: LVDS (7)

Connector's i2cid: 96

Connector at index 2 type: HDMI-A (11)

Connector's i2cid: 91

Connector at index 3 type: DisplayPort (10)

Connector's i2cid: 94

 

 

So I made my own framebuffer but it does not work. always black screen except HDMI;

 

Here it is:

 

port0 >VGA=0x00000010 - ControlFlag=0x0010 - Features = 0x00 -----------Hotplug=0x00 - i2cid=90 > SenseLine=0x01

port1 >LVDS=0x00000002 - ControlFlag=0x0040 - Features = 0x09 -----------Hotplug=0x01 - i2cid=96 > SenseLine=0x07

port2 >HDMI=0x00000800 - ControlFlag=0x0200 - Features = 0x00 -----------Hotplug=0x02 - i2cid=91 > SenseLine=0x02

port3 >DP=0x00000400 - ControlFlag=0x0100 - Features = 0x00 -----------Hotplug=0x03 - i2cid=94 > SenseLine=0x05

 

 

CRTC0>DIG1>UNIPHYE>LVDS Encoder= 0x00 Transmitter = 0x12

CRTC1>DAC > DACA >VGA Encoder=0x10 Transmitter = 0x00

CRTC1>DIG2>UNIPHYA>HDMI Encoder= 0x01 Transmitter = 0x10

 

 

 

02 00 00 00 40 00 00 00 09 01 00 00 12 02 01 07 LVDS

10 00 00 00 10 00 00 00 00 01 00 00 00 10 00 01 VGA

00 08 00 00 00 02 00 00 00 01 00 00 10 01 02 02 HDMI

 

Only HDMI is fully working. For internal screen and VGA always black screens. I tried to change encoders and transmitters for dual link, still no progress.

I do not know what I am doing wrong sad.gif .

Any help or suggestions are greatly appreciated!!! Thanks!

Link to comment
Share on other sites

Does anyone know why the i2cid and senseid for LVDS aren't being reported by radeon_biod_decode?

ATOM BIOS Rom: 
SubsystemVendorID: 0x104d SubsystemID: 0x9071
IOBaseAddress: 0xd000
Filename: BR36874.001 
BIOS Bootup Message: 
Sony M980 Madison LP DDR3 64Mx16 600E/790M LVDS/VGA/HDMI					

PCI ID: 1002:68c1
Connector at index 0
Type [@offset 45516]: LVDS (7)
Encoder [@offset 45520]: INTERNAL_UNIPHY (0x1e)
Connector at index 1
Type [@offset 45526]: HDMI-A (11)
Encoder [@offset 45530]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 45609]: 0x94, OSX senseid: 0x5
Connector at index 2
Type [@offset 45536]: VGA (1)
Encoder [@offset 45540]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 45636]: 0x90, OSX senseid: 0x1

 

I'm assuming this is why my LVDS isn't detected. I don't even get a backlight. My VBIOS is attached.

VBIOS.zip

Link to comment
Share on other sites

Does anyone know why the i2cid and senseid for LVDS aren't being reported by radeon_biod_decode?

ATOM BIOS Rom: 
SubsystemVendorID: 0x104d SubsystemID: 0x9071
IOBaseAddress: 0xd000
Filename: BR36874.001 
BIOS Bootup Message: 
Sony M980 Madison LP DDR3 64Mx16 600E/790M LVDS/VGA/HDMI					

PCI ID: 1002:68c1
Connector at index 0
Type [@offset 45516]: LVDS (7)
Encoder [@offset 45520]: INTERNAL_UNIPHY (0x1e)
Connector at index 1
Type [@offset 45526]: HDMI-A (11)
Encoder [@offset 45530]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 45609]: 0x94, OSX senseid: 0x5
Connector at index 2
Type [@offset 45536]: VGA (1)
Encoder [@offset 45540]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 45636]: 0x90, OSX senseid: 0x1

 

I'm assuming this is why my LVDS isn't detected. I don't even get a backlight. My VBIOS is attached.

 

 

 

 

So you have a 5650m i am presuming? if so LVDS won't work no matter what you try at this stage, use an older version of the decoder, and your lvds does have a sense id, for some reason it just ain't showing, but i doubt sense id's have anything to do with switching on/off of the port. i can even get HDMI and VGA working using any sense id.

Link to comment
Share on other sites

So you have a 5650m i am presuming? if so LVDS won't work no matter what you try at this stage, use an older version of the decoder, and your lvds does have a sense id, for some reason it just ain't showing, but i doubt sense id's have anything to do with switching on/off of the port. i can even get HDMI and VGA working using any sense id.

 

If sense id does not mean anything do you know what mean other numbers on this dump, especially Encoder values and type values? Is it something to put into ATIframebuffer?

 

 

ATOM BIOS Rom:

SubsystemVendorID: 0x1028 SubsystemID: 0x02ea

IOBaseAddress: 0x2000

Filename: BR034427.002

BIOS Bootup Message:

BR034427-002 M96 DDR3 128bit 550e/700m

 

PCI ID: 1002:9480

Connector at index 0

Type [@offset 45700]: VGA (1)

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

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

Connector at index 1

Type [@offset 45710]: LVDS (7)

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

i2cid [@offset 45803]: 0x96, OSX senseid: 0x7

Connector at index 2

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

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

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

Connector at index 3

Type [@offset 45730]: DisplayPort (10)

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

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

 

Thanks!

 

So you have a 5650m i am presuming? if so LVDS won't work no matter what you try at this stage, use an older version of the decoder, and your lvds does have a sense id, for some reason it just ain't showing, but i doubt sense id's have anything to do with switching on/off of the port. i can even get HDMI and VGA working using any sense id.

 

If sense id does not mean anything do you know what mean other numbers on this dump, especially Encoder values and Type values? Is it something to put into ATIframebuffer?

 

 

ATOM BIOS Rom:

SubsystemVendorID: 0x1028 SubsystemID: 0x02ea

IOBaseAddress: 0x2000

Filename: BR034427.002

BIOS Bootup Message:

BR034427-002 M96 DDR3 128bit 550e/700m

 

PCI ID: 1002:9480

Connector at index 0

Type [@offset 45700]: VGA (1)

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

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

Connector at index 1

Type [@offset 45710]: LVDS (7)

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

i2cid [@offset 45803]: 0x96, OSX senseid: 0x7

Connector at index 2

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

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

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

Connector at index 3

Type [@offset 45730]: DisplayPort (10)

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

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

 

Any help is greatly appreciated. So far I have only HDMI working :(

Thanks!

Link to comment
Share on other sites

Greetz again...

 

Not being sure about what to set the txmit/encoder bytes to, I went ahead and wrote a quick atombios decoder that outputs different goods to bcc9's... (and armed with both sets, hmmm maybe I am one step closer).

 

I didn't bother to do up the sense ids or i2cids, and was only focussed on the txmit/encoder bytes for R5xxx or better atombios goods (hmm)

 

my attached bin doesn't do much error checking, but is used same way as bcc9's for consistency.

 

Here is output of my Sapphire 5770 Flex 1GB card from my own... I have yet to plug in/test these values, but based on Mucha's thread and this one, maybe I'll get lucky ;-)

 

./redsock_bios_decoder <image.bin

 

148X0300.DP3:

 

JUNIPER BIOS UCODEv:126

 

Subsystem Vendor ID: 174b

Subsystem ID: 1484

Object Header Structure Size: 379

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 [0x21] which is [iNTERNAL_UNIPHY2 (osx txmit 0x12 [duallink 0x2] enc 0x4)] linkb: false

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 [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 [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

 

 

Again I am not sure what the KLDSCP_DAC1 values should really be hence the ? mark there... unknown..

 

Hmmm, it says I am not permitted to upload this type of file as an attachment...

 

Link here:

 

redsock_bios_decoder

 

redsockosx, I tried your tool. Here is the dump:

 

BR034427.002:

 

BR034427-002 M96 DDR3 128bit 550e/700m

 

Subsystem Vendor ID: 1028

Subsystem ID: 2ea

Object Header Structure Size: 256

Connector Object Table Offset: 3c

Router Object Table Offset: 0

Encoder Object Table Offset: c4

Display Path Table Offset: 10

Connector Object Id [5] which is [VGA]

encoder obj id [0x15] which is [iNTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false

Connector Object Id [14] which is [LVDS]

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 [0x1e] which is [iNTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false

Connector Object Id [19] which is [DISPLAY_PORT]

encoder obj id [0x1e] which is [iNTERNAL_UNIPHY (osx txmit 0x20 [duallink 0x0] enc 0x1)] linkb: true

 

I wonder what transmiter/encoder values will you recommend to use?

 

Interestingly my line for HDMI using mucha's guide was 00 08 00 00 00 02 00 00 00 01 00 00 10 01 02 02

and working fine.

Then I used your values for HDMI 00 08 00 00 00 02 00 00 00 01 00 00 00 00 02 02 and it worked too!

Unfortunately, LVDS still black so far....

Link to comment
Share on other sites

So you have a 5650m i am presuming? if so LVDS won't work no matter what you try at this stage, use an older version of the decoder, and your lvds does have a sense id, for some reason it just ain't showing, but i doubt sense id's have anything to do with switching on/off of the port. i can even get HDMI and VGA working using any sense id.

 

Yes, I have a 5650m on a Sony Vaio laptop. How do I use an older version of the decoder? I'm guessing that I'll need older kexts? I'm currently using the Lion kexts from Developer Preview 1.

Link to comment
Share on other sites

  • 2 weeks later...

I've been trying to get my mini display port working on my 5970 using a edited personality but I'm having problems so I if anyone could help me out I would appreciate it a lot.

 

Basically I've got 3 displays detected (DVi+DVI+DP) but only my 2 DVI's are currently working. I've tried changing the encoder for the display port but I'm still not getting any output.

 

Heres my bios dump:

 

ATOM BIOS Rom: 
SubsystemVendorID: 0x1682 SubsystemID: 0x3020
IOBaseAddress: 0x0000
Filename: S3C00001.102
BIOS Bootup Message: 
HEMLOCK MASTER XT BIOS UCODEV:120										   

PCI ID: 1002:689c
Connector at index 0
Type [@offset 44592]: DisplayPort (10)
Encoder [@offset 44596]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 44694]: 0x91, OSX senseid: 0x2
Connector at index 1
Type [@offset 44602]: DVI-I (2)
Encoder [@offset 44606]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 44731]: 0x92, OSX senseid: 0x3
Connector at index 2
Type [@offset 44612]: DVI-I (2)
Encoder [@offset 44616]: INTERNAL_KLDSCP_DAC2 (0x16)
i2cid [@offset 44731]: 0x92, OSX senseid: 0x3
Connector at index 3
Type [@offset 44622]: DVI-I (2)
Encoder [@offset 44626]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 44768]: 0x94, OSX senseid: 0x5
Connector at index 4
Type [@offset 44632]: DVI-I (2)
Encoder [@offset 44636]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 44768]: 0x94, OSX senseid: 0x5

 

Not sure why 4 DVI's are showing up considering I only have 2....

 

Here's what I'm currently using as a personality under Uakari:

 

00 04 00 00 04 06 00 00 00 01 00 00 02 04 01 02 (DP)
04 00 00 00 14 00 00 00 00 00 00 00 01 10 02 03 (DVI)
04 00 00 00 14 00 00 00 00 00 00 00 00 10 03 05 (DVI)
00 08 00 00 00 02 00 00 00 71 00 00 22 05 04 04

Link to comment
Share on other sites

Sapphire HD 5570 HDMI audio success.

 

Credit to bcc9 for developing the method and tmongkol for proposing the working solution for the HD 5570.

 

Configuration:

DVI, HDMI, VGA

 

Default Situation:

10.6.6, Kabyl rel 700

Boots to Baboon

HDMI video no audio

DVI is black screen

 

The radeondump 0.2:

ATOM BIOS Rom:

SubsystemVendorID: 0x174b SubsystemID: 0xe142

IOBaseAddress: 0x0000

Filename: 2E142010.002

BIOS Bootup Message:

REDWOOD C02101 DDR3 64Mx16

 

Connector at index 0 type: HDMI-A (11)

Connector's i2cid: 92

Connector at index 1 type: DVI-I (2)

Connector's i2cid: 93

Connector at index 2 type: DVI-I (2)

Connector's i2cid: 93

Connector at index 3 type: VGA (1)

Connector's i2cid: 90

 

tmongkol proposes Eulemur Framebuffer

 

for the HDMI senseid

change from:

00 08 00 00 00 02 00 00 00 01 00 00 12 04 04 02

to

00 08 00 00 00 02 00 00 00 01 00 00 12 04 04 03

 

Patched for Sapphire HD 5570

Eulemur:

 

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 01 00 00 12 04 04 03

0000020 10 00 00 00 10 00 00 00 00 00 00 00 00 10 00 01

0000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

0000040

 

Result:

HDMI video and audio working

DVI video working (audio may not be possible with this card)

Fully functional HD 5570 in 10.6.6

GT 430 retired.

 

Thanks bcc9 and tmongkol

 

I have this card. I am very new to this. I have already made the edits to my DSDT. Can you give me a more step by step way to do this? Thanks!

Link to comment
Share on other sites

Can someone read out the BIOS Infos with Radeondump of this VBIOS file:

http://db.tt/OxSn7vR

(It's a 4570 mobility)

 

bash-3.2# ./radeondump > 1002_9553.rom

Usage: ./radeondump [-d] [regnum] [-r start,end]
-d		dump Radeon card BIOS ROM
regnum		dump Radeon card IO register values at regnum
-r start,end	dump Radeon card IO register values in the range of [start,end]
-i		dump EDID
bash-3.2#

Link to comment
Share on other sites

Can someone read out the BIOS Infos with Radeondump of this VBIOS file:

http://db.tt/OxSn7vR

(It's a 4570 mobility)

 

bash-3.2# ./radeondump > 1002_9553.rom

Usage: ./radeondump [-d] [regnum] [-r start,end]
 -d		dump Radeon card BIOS ROM
 regnum		dump Radeon card IO register values at regnum
 -r start,end	dump Radeon card IO register values in the range of [start,end]
 -i		dump EDID
bash-3.2#

 

Use radeon_bios_decode found at the bottom of the first post and the command should look like this:

 

./radeon_bios_decode <  1002_9553.rom

 

Notice the bracket is the other way round.

Link to comment
Share on other sites

 Share

×
×
  • Create New...