Jump to content

Editing custom personalities for ATI Radeon HD[45]xx


bcc9
 Share

775 posts in this topic

Recommended Posts

Your guide and contribution are highly appreciated.

Your choice and decision are also respected.

I just hope to get your patched ATIFramebuffers (64 byte uakari table you're currently using) for a reference to comparison and verification.

Thanks. Here's the uakari ConnectorInfo table I'm currently using with my 5670. Note that I'm not even using the 4th connector in the table; chameleon is setting the connector count to 3, which is correct for my hardware...uakari.for.sapphire.5670.zip And in hex:

 od -Ax -tx1 uakari
000000 00 04 00 00 00 04 00 00 00 01 00 00 12 04 04 02
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

Link to comment
Share on other sites

EDIT 2: Looks like I got QE/CI on the external monitor. I can see the water effect with Dashboard. Unfortunately no output on the external monitor, only can see it via VNC.
I'm confused what this means. The external monitor is detecting a signal (not going into power saving mode) but remains black, right? When you press f12 you see dashboard on the otherwise black external monitor?

 

I must admit I don't have my HDMI port working perfectly - it works for me at 1366x768 to my plasma, and at 1920x1200 to my 30" monitor, but not at 1600x1200 to an older monitor (black screen in that case). In the failure case, the monitor is identified right under 'system_profiler SPDisplaysDataType', I can adjust the resolution from the menu bar (with system preferences-> display->show displays in menu bar), but still no effect.

 

I think there might be some hard coded monitor timing info in the driver getting in the way, above and beyond the ConnectorInfo...

What I meant was:-

1) No output to my full HD LCD. The monitor behave like it sleep (correction for previously I said no signal).

2) I connect remotely via VNC. This is when I tested the Dashboard & saw the water effect. Again, this is via VNC.

 

I also checked via VNC, graphics information in System Profiler & IORegistryExplorer. I'm able to take screenshots which I posted in my previous post. Too bad there is no output on the external monitor or else it would be perfect.

 

I tried to use Vervet personality & this means I have to use bootloader that support framebuffer overwrite such as Kabyl's boot file. Unfortunately, the boot stuck after I see "ATI card POSTed, reading VBIOS from legacy space" message.

Link to comment
Share on other sites

@ kizwan

 

Did you add Device(GFX0) & Device (HDAU) into your DSDT?

 

           Device (PEGP)  //adding this device
           {
               Name (_ADR, 0x00010000)   //using lspci tool for your graphic address
               Name (_PRW, Package (0x02)  //based on Gigabyte DSDT
               {
                   0x09, 
                   0x05
               })
               Device (GFX0)
               {
                   Name (_ADR, Zero)
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x02)
                           {
                               "hda-gfx", 
                               Buffer (0x0A)
                               {
                                   "onboard-1"
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }

               Device (HDAU)
               {
                   Name (_ADR, One)
                   Method (_DSM, 4, NotSerialized)
                   {
                        Store (Package (0x02)
                            {
                                "hda-gfx", 
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }
           }

Link to comment
Share on other sites

Thanks. Here's the uakari ConnectorInfo table I'm currently using with my 5670. Note that I'm not even using the 4th connector in the table; chameleon is setting the connector count to 3, which is correct for my hardware...uakari.for.sapphire.5670.zip And in hex:
 od -Ax -tx1 uakari
000000 00 04 00 00 00 04 00 00 00 01 00 00 12 04 04 02
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

Hi, bcc9

Thanks for your kind sharing and instruction.

Following your guide I have edited my ATIFramebuffer by HexEdit,

but I found its file length is increased from 307 KB to 311 KB.

Can you check my uploaded file whether I had made any error to change its file length ?

ATIFramebuffer.zip

Link to comment
Share on other sites

@ kizwan

 

Did you add Device(GFX0) & Device (HDAU) into your DSDT?

I didn't. I use GraphicsEnabler=Yes. It should be equivalent with injecting it manually in DSDT, yes? As for HDAU, I'll working on it after I'm able to get external monitor working. Please tell me if my approach is not correct.

 

I use official (main release) Chameleon 2 RC5 boot file. It doesn't allow framebuffer override. I tried Kabyl's boot file but it stuck with/at "ATI card POSTed, reading VBIOS from legacy space" message. Loading the ROM file manually using UseAtiROM=Yes also stuck at the same place (it did successfully read the ROM file though).

 

Can I use the official RC5 boot file & inject in DSDT manually? Like this, change "Peregrine" with "Vervet". It should read/use Vervet, yes?

					Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x1C)
						{
							"@0,compatible", 
							Buffer (0x0E)
							{
								"ATY,Peregrine"
							}, 
							"@0,device_type", 
							Buffer (0x08)
							{
								"display"
							}, 
							"@0,VRAM,memsize", 
							Buffer (0x04)
							{
								0x00, 0x00, 0x00, 0x20
							}, 
							"@0,display-connect-flags", 
							Buffer (0x04)
							{
								0x04, 0x00, 0x00, 0x00
							}, 
							"@0,display-dual-link", 
							Buffer (0x04)
							{
								0x02, 0x00, 0x00, 0x00
							}, 
							"@0,display-type", 
							Buffer (0x04)
							{
								"LCD"
							}, 
							"@0,name", 
							Buffer (0x0E)
							{
								"ATY,Peregrine"
							}, 
							"@1,compatible", 
							Buffer (0x0E)
							{
								"ATY,Peregrine"
							}, 
							"@1,device_type", 
							Buffer (0x08)
							{
								"display"
							}, 
							"@1,VRAM,memsize", 
							Buffer (0x08)
							{
								0x00, 0x00, 0x00, 0x20
							}, 
							"@1,name", 
							Buffer (0x0E)
							{
								"ATY,Peregrine"
							}, 
							"device_type", 
							Buffer (0x14)
							{
								"ATY,PeregrineParent"
							}, 
							"VRAM,totalsize", 
							Buffer (0x04)
							{
								0x00, 0x00, 0x00, 0x20
							}, 
							"model", 
							Buffer (0x23)
							{
								"ATI Mobility Radeon HD 4500 Series"
							}
						}, Local0)
					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
					Return (Local0)
				}

Link to comment
Share on other sites

I didn't. I use GraphicsEnabler=Yes. It should be equivalent with injecting it manually in DSDT, yes? As for HDAU, I'll working on it after I'm able to get external monitor working. Please tell me if my approach is not correct.

 

I use official (main release) Chameleon 2 RC5 boot file. It doesn't allow framebuffer override. I tried Kabyl's boot file but it stuck with/at "ATI card POSTed, reading VBIOS from legacy space" message. Loading the ROM file manually using UseAtiROM=Yes also stuck at the same place (it did successfully read the ROM file though).

 

Can I use the official RC5 boot file & inject in DSDT manually? Like this, change "Peregrine" with "Vervet". It should read/use Vervet, yes?

 

Did you read this thread by atlee? atlee posted got external monitor working.

 

I think you can't use such Vervet (monkey) because framebuffer's monkey name will be used for HD5xxx.

Link to comment
Share on other sites

Presumably hotplugging is not working in your case because of your EDID failure. Are you using a static EDID, an av receiver or what?

I did nothing to use a static EDID so i would say no i don't use one, and neither an av receiver.

 

I have another question, some Nvidia gpu need 10.6.3 applehda.kext to have HDMI audio , is it the same for ati HD5770 ?

I tried to change Smbios from macpro3,1 to iMac9,1 since HDMI audio from HD4850 through an MiniDisplayPort>HDMI works on 2009 imac but still no success

Link to comment
Share on other sites

I use official (main release) Chameleon 2 RC5 boot file. It doesn't allow framebuffer override. I tried Kabyl's boot file but it stuck with/at "ATI card POSTed, reading VBIOS from legacy space" message. Loading the ROM file manually using UseAtiROM=Yes also stuck at the same place (it did successfully read the ROM file though).

 

It happens to me too. When it fails It says to me that there is an error in ati.c at line 668. That line is about rom version and my rom hasn't that when I open it with RadeonBiosEdit. I void that part and it seems to load but it injects a framebuffer called ATY,RandomFramebuffer.

 

Finally the solution that I found is download RC5's source and edit the framebuffer that injects. http://forge.voodooprojects.org/p/chameleo...urce/tree/HEAD/ . I used trunk.

Link to comment
Share on other sites

Did you read this thread by atlee? atlee posted got external monitor working.

 

I think you can't use such Vervet (monkey) because framebuffer's monkey name will be used for HD5xxx.

Yes I did. I already tried it before trying the solution over here. The result is no display detected at all in IORegistryExplorer. I'm going to try it again with the combination ATIFramebuffer patch trick.

 

I'm able to override default framebuffer which is Peregrine with Vervet. I use combination GraphicsEnabler=Yes & DSDT injection. The result is still the same, no output on the monitor. I'm able to connected via VNC, the "water effect" still there which means QE/CI working. With Vervet there are two monitor detected in IORegistryExplorer which the other one is internal LCD (confirmed by device & vendor ID). I'm going to try Motmot later.

 

It happens to me too. When it fails It says to me that there is an error in ati.c at line 668. That line is about rom version and my rom hasn't that when I open it with RadeonBiosEdit. I void that part and it seems to load but it injects a framebuffer called ATY,RandomFramebuffer.

 

Finally the solution that I found is download RC5's source and edit the framebuffer that injects. http://forge.voodooprojects.org/p/chameleo...urce/tree/HEAD/ . I used trunk.

I didn't get the "error in ati.c at line ...". It just hang there. However, I did use customized VBIOS (for GPU overclock). The customized VBIOS also already integrated in system BIOS. I'm going to try load original ROM later.

Link to comment
Share on other sites

I didn't get the "error in ati.c at line ...". It just hang there. However, I did use customized VBIOS (for GPU overclock). The customized VBIOS also already integrated in system BIOS. I'm going to try load original ROM later.

 

I didn't get the error ever. Sometimes stoped at first line. Are you booting on Verbose?

 

ATI card POSTed, reading VBIOS from legacy space
Memory allocation error! Addr=0xdeadbeef, Size 0x0 File=ati.c, Line=668
This is anon recoverable error! System HALTED!

The line changes in some boot's versions, but always are part of the same script.

Link to comment
Share on other sites

I didn't get the error ever. Sometimes stoped at first line. Are you booting on Verbose?

 

ATI card POSTed, reading VBIOS from legacy space
Memory allocation error! Addr=0xdeadbeef, Size 0x0 File=ati.c, Line=668
This is anon recoverable error! System HALTED!

The line changes in some boot's versions, but always are part of the same script.

Yes, I boot in verbose mode. I didn't get the same error, just "ATI card POSTed..." & it just hang there.

 

I already tried with original ROM, same issue, stuck at the same place.

 

I also tried Motmot & the result still the same, no output on the monitor. Checked via VNC, QE/CI are enabled.

Link to comment
Share on other sites

Ok, I believe I've mapped the senseid field to the atom bios!

i2cid = (senseid & 0xf-1)+0x90;

or the inverse:

senseid = (i2cid & 0xf) +1;

Now here's a version of my radeondump that will print the i2cids for the connectors.

For example, for my sapphire card:

./radeondump < rom
 ATOM BIOS Rom: 
		 SubsystemVendorID: 0x174b SubsystemID: 0xe151
		 IOBaseAddress: 0x0000
		 Filename: 3E151DAF.HY1
		 BIOS Bootup Message: 
 REDWOOD XT C02002 GDDR5 64Mx16 1G UCODEv:126							   

 Connector at index 0 type: DisplayPort (10)
 Connector's i2cid: 91
 Connector at index 1 type: HDMI-A (11)
 Connector's i2cid: 94
 Connector at index 2 type: DVI-I (2)
 Connector's i2cid: 92
 Connector at index 3 type: DVI-I (2)
 Connector's i2cid: 92

(In the above the i2cid is printed base 16).

 

So the senseid values are:

DP: (91&0xf)+1 = 2

HDMI: (94&0xf)+1=5

DVI: (92&0xf)+1=3

 

These exactly match the senseid that I found in post #1 by experimentation.

bcc9, You are my hero !

Thanks for your patience and detailed guide.

I have successfully patched ConnectorInfo of Vervet FB in my ATIFramebuffer.

This is the first time I can activate my Asus EAH 5770 display output via both DVI and HDMI.

If anyone need this patched ATIFramebuffer, please download here.

ATIFramebuffer.zip

Link to comment
Share on other sites

Yeahh!! Finally I've QE/CI, It didn't work before because my system was 10.6.0 with ATI's kexts from 10.6.6 ;) . After update to 10.6.6 QE/CI is enabled. You can see more info here.

 

The problem still being the same. HDMI port works, LVDS is always black but detected. EDID info is read in both displays but the system switch them. When I change the resolution of LVDS port the resolution changes in HDMI Display. I think that improving the personality it should work.

 

The outputs of my Graphic Card are:

 

LVDS (96&0xf) = 7

VGA (90&0xf) = 1

HDMI (91&0xf) = 2

 

Stock Vervet

00 04 00 00 00 04 00 00 00 01 00 00 12 04 04 02
04 00 00 00 14 00 00 00 00 01 00 00 01 12 01 04
00 02 00 00 14 00 00 00 00 01 00 00 00 00 06 03
00 08 00 00 00 02 00 00 00 01 00 00 22 05 05 01

 

My modified Vervet

00 02 00 00 14 00 00 00 00 01 00 00 00 00 06 07 - LDVS port
00 04 00 00 00 04 00 00 00 01 00 00 12 04 04 01 - VGA port
00 08 00 00 00 02 00 00 00 01 00 00 22 05 05 02 - HDMI port
00 08 00 00 00 02 00 00 00 01 00 00 22 05 05 05

 

Nowadays the only mobilities that are working its LVDS screen are 5000 series with Nomascus fb.

 02 00 00 00 40 00 00 00 09 01 00 00 00 00 00 05
00 04 00 00 04 06 00 00 00 03 00 00 11 02 01 01
00 04 00 00 04 06 00 00 00 03 00 00 21 03 02 02
00 04 00 00 04 06 00 00 00 03 00 00 12 04 03 03
00 04 00 00 04 06 00 00 00 03 00 00 22 05 04 04

 

The sense ID of some of these cards for LVDS is 5, you can see this here.

 

I've tried to modify the first port with my senseID 07 but didn't work, in Nomascus personality. The screen still being black and I can't see anything trough VNC.

 

In the bcc9's example he changed the connector-type for the 3rd port, but that personality was able to use HDMI in the 4th port. Are able the personalities to load connector-types that weren't in the original personality?

 

For example, if y modify the first line of Vervet to 02 00 00 00 40 00 00 00 09 01 00 00 00 00 00 07.

 

Thanks for your help.

Link to comment
Share on other sites

bcc9, You are my hero !

Thanks for your patience and detailed guide.

I have successfully patched ConnectorInfo of Vervet FB in my ATIFramebuffer.

This is the first time I can activate my Asus EAH 5770 display output via both DVI and HDMI.

If anyone need this patched ATIFramebuffer, please download here.

Cool, it's good to see some successes rolling in!

 

I've made a new version of ati-personality.pl (see attachment in post #1)

This version fully parses the assembly language instructions for you and reports the effective address of the ConnectorInfo table and the number of ConnectorInfo entries for every personality.

By default, it outputs 32-bit kext information. Run with -x to get 64-bit kext information.

You still have to manually convert the effective address to disk offset as described in post #1, but you now no longer need to look at any assembly instructions.

Link to comment
Share on other sites

I did nothing to use a static EDID so i would say no i don't use one, and neither an av receiver.

 

I have another question, some Nvidia gpu need 10.6.3 applehda.kext to have HDMI audio , is it the same for ati HD5770 ?

I tried to change Smbios from macpro3,1 to iMac9,1 since HDMI audio from HD4850 through an MiniDisplayPort>HDMI works on 2009 imac but still no success

So it seems your monitor is putting out EDID where the audio extension block is unusual such that apple's code is unable to parse it. I don't think you can get working hdmi audio until you resolve this.

Recommend you dump out all 256 bytes of the EDID and patch it by hand to be more standard (inject the patched EDID into your ioregistry).

 

I'm using 10.6.6 AppleHDA with my 5670 no problem. I believe the 5770 users hadn't rolled back their AppleHDA either.

(Speaking of nvidia hdmi audio, I've been unable to get it to work no matter what I've tried includingn 10.6.3 AppleHDA).

Link to comment
Share on other sites

I've done some more test with Vervet and Nomascus.

 

Nomascus

 02 00 00 00 40 00 00 00 09 01 00 00 00 00 00 07 - LDVS port
00 04 00 00 00 04 00 00 00 01 00 00 12 04 04 01 - VGA port
00 08 00 00 00 02 00 00 00 01 00 00 22 05 05 02 - HDMI port
00 08 00 00 00 02 00 00 00 01 00 00 22 05 05 05

 

When I do that the internal monitor still being black and the hdmi doesn't work. However the SO recognize both monitors, continues switching them and if I disconect the HDMI cable nothing happens, It doesn't recognize when the cable is plugged or unplugged. If I boot without HDMI cable it doesn't recognize it. Checked via VNC.

 

Nomascus' mod

02 00 00 00 40 00 00 00 09 01 00 00 00 00 00 07 - LDVS Port
00 04 00 00 04 06 00 00 00 03 00 00 11 02 01 01 - VGA Port
00 04 00 00 04 06 00 00 00 03 00 00 21 03 02 02 - HDMI Port
00 04 00 00 04 06 00 00 00 03 00 00 12 04 03 03
00 04 00 00 04 06 00 00 00 03 00 00 22 05 04 04

 

The Internal Display still black and there isn't HDMI signal on my display. Connecting via VNC I can check that the System recognize the both Displays, LVDS and HDMI (with DVI code), it recognize well the resolutions (It doesn't switch them like Vervet) and detects when I plug/unplug the HDMI cable.

 

@Bcc9. Do you know why if the system recognize the displays, it can read EDID and recognize the resolution well, it didn't send any signal?

 

P.S. Thanks for your script. It does easier look for a personality :rolleyes:

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

Link to comment
Share on other sites

In the bcc9's example he changed the connector-type for the 3rd port, but that personality was able to use HDMI in the 4th port.

Just to clarify...

In my Uakari example case, my system is only matching against the first 3 entries from the ConnectorInfo table. I know this because I looked at the port-number entries in the ioregistry, and they report port-numbers 0,1,2, not 0,1,3.

 

So the 4th entry in the Uakari table is not being used on my system. This is not surprising as chameleon is only injecting ATY,Uakari[012] for my system, since it is using the "wrong" connector count for uakari due to my card matching the baboon personality with 3 connectors by default.

 

I don't think my system could ever match the 4th ConnectorInfo table entry with only 3 ATY_Uakari injection strings.

Link to comment
Share on other sites

Just to clarify...

In my Uakari example case, my system is only matching against the first 3 entries from the ConnectorInfo table. I know this because I looked at the port-number entries in the ioregistry, and they report port-numbers 0,1,2, not 0,1,3.

 

So the 4th entry in the Uakari table is not being used on my system. This is not surprising as chameleon is only injecting ATY,Uakari[012] for my system, since it is using the "wrong" connector count for uakari due to my card matching the baboon personality with 3 connectors by default.

 

I don't think my system could ever match the 4th ConnectorInfo table entry with only 3 ATY_Uakari injection strings.

These are what I have found and edited:

ATOM BIOS Rom:

SubsystemVendorID: 0x1462 SubsystemID: 0x2140

IOBaseAddress: 0x0000

Filename: SV35125e.bin

BIOS Bootup Message: 113-MSITV214MS.114

JUNIPER BIOS UCODEV:122

Connector at index 0 type: DisplayPort (10)

Connector's i2cid: 91

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

Connector's i2cid: 94

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

Connector's i2cid: 93

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

Connector's i2cid: 93

 

Personality: Uakari

ConnectorInfo count in decimal: 4

Effective address for ConnectorInfo table in hex: 12840

Personality: Vervet

ConnectorInfo count in decimal: 4

Effective address for ConnectorInfo table in hex: 12880

Personality: Eulemur

ConnectorInfo count in decimal: 3

Effective address for ConnectorInfo table in hex: 12a60

 

Good news for Asus EAH 5850 in x86_64 for Asus P5Q PRO MB and MSI Hawk 5770 for Asus P6T SE:

I have patched Uakari FB & Vervet FB with working HDMI audio too following this guide by bcc9.

Thanks again for bcc9 !

Link to comment
Share on other sites

Before the framebuffer patch, any monitor connected to either VGA or HDMI is not detected, including internal monitor. Not even "Status: No Display Connected" message.

n did u have the 4 ATI kexts loaded too before? but without QE/CI?

Link to comment
Share on other sites

n did u have the 4 ATI kexts loaded too before? but without QE/CI?

Before the ATIFramebuffer patch, all 4 kexts loaded (including ATI4600Controller) & no monitor is detected. Checked via VNC no QE/CI.

 

After the ATIFramebuffer patch, all 4 kexts loaded & monitors are detected but no output on the monitors. Checked via VNC, QE/CI working.

 

BTW, are you able to get your Radeon HD 4550 working? I believe on desktop it is much easier to get monitor to work with ATIFramebuffer patch.

Link to comment
Share on other sites

bcc9, is there any way of interrogating the video bios to get the correct values for

byte link_i2cid; byte dac_digidx; byte hotplugid;

 

like you did for byte senseid;

 

I think this may be important to getting output on LVDS

Link to comment
Share on other sites

bcc9, is there any way of interrogating the video bios to get the correct values for

byte link_i2cid; byte dac_digidx; byte hotplugid;

 

like you did for byte senseid;

 

I think this may be important to getting output on LVDS

 

Can you tell anything more about this? Sounds really interesting.

Link to comment
Share on other sites

Can you tell anything more about this? Sounds really interesting.

Right now we know what to patch in the connector table in the 1st 4 bytes (for connector type) and the last (sensid)

 

We are guessing at the middle bytes.

 

The mobility chips I believe interface with the internal display on an i2c bus

 

http://www.insanelymac.com/forum/lofiversi...t96664-150.html

 

http://ddccontrol.sourceforge.net/doc/0.4/apc.html

 

I think we get output from dong's fb, because he is reading info from video bios, in a way he ported from linux code, to make this connection. The apple fb don't do this. But if we can read this from the video bios manually, we may be able to set these bytes in such a way that they connect.

 

The old ATIFramebuffer thread is most interesting, especially the discourse btwn dong and netkas on how to make this connection.

 

http://www.insanelymac.com/forum/index.php?showtopic=156279

 

Somewhere in that thread, dong's radeondump tool is posted.

[EDIT if you google "dong vbios" its posted on the 1st link]

 

I get the following with it

bash-3.2# kextload ./RadeonPCI.kext/
bash-3.2# ./RadeonDump -i
Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/AGP@1/IOPCI2PCIBridge/VID@0/RadeonPCI
it matched on name "display"
Detected unknown Card (device id: 0x9552)
It's not in known card list, treat as card with device id: 0x9511
Detect EDID may fail for this card.
Start I2C dump
ATOM BIOS detected
ATOM BIOS Rom: 
SubsystemVendorID: 0x1028 SubsystemID: 0x02aa
IOBaseAddress: 0xde00
Filename: BR31245C.001
BIOS Bootup Message: 
Dell_Roberts_M92S_GDDR3 M92 GDDR3 64bit 450e/600m						   

object id 0005 01
src object id 2115 21
record type 1
rhdAtomParseI2CRecord:  I2C Record: HW_Line 9 EngineID: 0 I2CAddr: 0
ddc_line from ATOMBIOS: 0x0
record type 4
object id 000e 01
src object id 2121 33
record type 1
rhdAtomParseI2CRecord:  I2C Record: GPIO_ID 9 EngineID: 0 I2CAddr: 0
ddc_line from ATOMBIOS: 0x0
record type 4

Link to comment
Share on other sites

 Share

×
×
  • Create New...