Jump to content

Editing custom personalities for ATI Radeon HD[45]xxx


  • Please log in to reply
759 replies to this topic

#41
hjs89

hjs89

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 150 posts
  • Gender:Male

i got the same thing.. Until i typed in the following command. make sure your using the appropriate arch. i1386 is 32bits. x84_64 is 64bit

otool -arch x86_64 -vt ATIFramebuffer | tee filename.txt
this allows the results to be written to a text file. The txt file will be in the same location as your ATIFramebuffer file. Once you get your file, you can open it with any text editor and search for Uakari. Find your profile underneath.

Hope this helps.


Thank you!! Now I can see the addl, movb, etc.

But it looks like I'm doing something wrong, when I edit a framebuffer found by me doesn't work :\

Hi bcc9,

Thank you for the brilliant guide. I tried on my notebook (Dell Studio 1557 with HD4570). I was able to get the external monitor which is connected to HDMI port detected but for some reason there is no output. The monitor act like there is no signal to it. In System Profiler & IORegistryExplorer, I can see the monitor is properly detected at @0. I'm using peregrine personality. The monitor is full HD LCD. Do you have any idea why there is no output?


EDIT: Sorry. I forgot to post relevant information. I'm going to post it in a couple of minutes.

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.


Not bad at all, at least you have QE/CI, maybe editing the framebuffer you can have signal. What have you done?

#42
kizwan

kizwan

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,422 posts

Not bad at all, at least you have QE/CI, maybe editing the framebuffer you can have signal. What have you done?

I did the same as you did except I use Peregrine personality.

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

Connector at index 0 type: VGA (1)
Connector's i2cid: 95
Connector at index 1 type: HDMI-A (11)
Connector's i2cid: 91
Connector at index 2 type: LVDS (7)
Connector's i2cid: 90
VGA: senseid = (95 & 0xf) + 1 = 6
HDMI-A: senseid = (91 & 0xf) + 1 = 2
LVDS: senseid = (90 & 0xf) + 1 = 1

Peregrine initialization routine:-
otool -arch i386 -vt ATIFramebuffer | c++filt

PeregrineInfo::createInfo(unsigned char, PlatformParameters&):
0000d3fe	pushl	%ebp
0000d3ff	movl	%esp,%ebp
0000d401	movl	0x0c(%ebp),%ecx
0000d404	movl	$0x0000eccc,0x08(%ecx)
0000d40b	movb	$0x02,0x03(%ecx)
0000d40f	xorl	%edx,%edx
0000d411	movl	%edx,%eax
0000d413	shll	$0x04,%eax
0000d416	addl	$0x00010f40,%eax
0000d41b	movl	%eax,0x0c(%ecx,%edx,4)
0000d41f	incl	%edx
0000d420	movzbl	0x03(%ecx),%eax
0000d424	cmpl	%edx,%eax
0000d426	jg	0x0000d411
0000d428	xorl	%eax,%eax
0000d42a	leave
0000d42b	ret

ConnectorInfo address = 0x00010f40

lipo -detailed_info ATIFramebuffer
Fat header in: ATIFramebuffer
fat_magic 0xcafebabe
nfat_arch 2
architecture x86_64
	cputype CPU_TYPE_X86_64
	cpusubtype CPU_SUBTYPE_X86_64_ALL
	offset 4096
	size 149936
	align 2^12 (4096)
architecture i386
	cputype CPU_TYPE_I386
	cpusubtype CPU_SUBTYPE_I386_ALL
	offset 155648
	size 148908
	align 2^12 (4096)
File offsets for the FAT binary (i386 arch) = 155648

otool -arch i386 -l ATIFramebuffer
Section
  sectname __const
   segname __TEXT
	  addr 0x0000ed80
	  size 0x00002430
	offset 61624
	 align 2^5 (32)
	reloff 83612
	nreloc 1298
	 flags 0x00000000
 reserved1 0
 reserved2 0
Section
  sectname __literal4
   segname __TEXT
	  addr 0x000111b0
	  size 0x00000004
	offset 70888
	 align 2^2 (4)
	reloff 0
	nreloc 0
	 flags 0x00000003
 reserved1 0
 reserved2 0
ConnectorInfo address (0x00010f40) is in the range (address 0x0000ed80, size 0x00002430 : range between 0x0000ed80 & 0x000111b0). Offset for this segment is 61624.

OFFSET_TO_PEREGRINE_CONNECTIONS_TABLE = 155648 + 61624 + 0x00010f40 - 0x0000ed80
225912 = 155648 + 61624 + 69440 - 60800

dd if=ATIFramebuffer of=/tmp/peregrine bs=1 skip=225912 count=64
od -Ax -tx1 /tmp/peregrine
0000000	00  02  00  00  04  02  00  00  00  00  00  00  02  01  04  05
0000010	00  04  00  00  00  01  00  00  00  00  00  00  20  00  02  02
0000020	02  00  00  00  40  00  00  00  09  01  00  00  02  01  00  03
0000030	02  00  00  00  00  01  00  00  09  01  00  00  20  01  02  02
0000040


Patched the Peregrine connections table in ATIFramebuffer file at offset 0x37278 (225912 in decimal).
od -Ax -tx1 /tmp/peregrine
0000000	00  04  00  00  00  04  00  00  00  01  00  00  12  04  04  06	 (VGA)
0000010	00  08  00  00  00  02  00  00  00  01  00  00  22  05  05  02	 (HDMI-A)
0000020	00  02  00  00  14  00  00  00  00  01  00  00  00  00  06  01	 (LVDS)
0000030	02  00  00  00  00  01  00  00  09  01  00  00  20  01  02  02
0000040

Results:-
1) Still no output at external monitor which connected to HDMI port.
2) Checked using VNC, QE/CI are enabled because I can see the "water effect" with Dashboard. Correct/full resolution detected.

Attached File  SP_MONITOR.jpg   60.1KB   191 downloads
Attached File  IOREG_PORT1.jpg   101.08KB   174 downloads
Attached File  IOREG_MONITOR1.jpg   133.94KB   110 downloads

#43
yeehaa

yeehaa

    InsanelyMac Protégé

  • Members
  • PipPip
  • 81 posts
  • Gender:Male
  • Location:FL, USA

I did the same as you did except I use Peregrine personality.


can you please post a "before" and "after" screenshot of the graphics window?

#44
hjs89

hjs89

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 150 posts
  • Gender:Male

I did the same as you did except I use Peregrine personality.

My HD4570 connections:-

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

Connector at index 0 type: VGA (1)
Connector's i2cid: 95
Connector at index 1 type: HDMI-A (11)
Connector's i2cid: 91
Connector at index 2 type: LVDS (7)
Connector's i2cid: 90
VGA: senseid = (95 & 0xf) + 1 = 6
HDMI-A: senseid = (91 & 0xf) + 1 = 2
LVDS: senseid = (90 & 0xf) + 1 = 1

Peregrine initialization routine:-
otool -arch i386 -vt ATIFramebuffer | c++filt

PeregrineInfo::createInfo(unsigned char, PlatformParameters&):
0000d3fe	pushl	%ebp
0000d3ff	movl	%esp,%ebp
0000d401	movl	0x0c(%ebp),%ecx
0000d404	movl	$0x0000eccc,0x08(%ecx)
0000d40b	movb	$0x02,0x03(%ecx)
0000d40f	xorl	%edx,%edx
0000d411	movl	%edx,%eax
0000d413	shll	$0x04,%eax
0000d416	addl	$0x00010f40,%eax
0000d41b	movl	%eax,0x0c(%ecx,%edx,4)
0000d41f	incl	%edx
0000d420	movzbl	0x03(%ecx),%eax
0000d424	cmpl	%edx,%eax
0000d426	jg	0x0000d411
0000d428	xorl	%eax,%eax
0000d42a	leave
0000d42b	ret

ConnectorInfo address = 0x00010f40

lipo -detailed_info ATIFramebuffer
Fat header in: ATIFramebuffer
fat_magic 0xcafebabe
nfat_arch 2
architecture x86_64
	cputype CPU_TYPE_X86_64
	cpusubtype CPU_SUBTYPE_X86_64_ALL
	offset 4096
	size 149936
	align 2^12 (4096)
architecture i386
	cputype CPU_TYPE_I386
	cpusubtype CPU_SUBTYPE_I386_ALL
	offset 155648
	size 148908
	align 2^12 (4096)
File offsets for the FAT binary (i386 arch) = 155648

otool -arch i386 -l ATIFramebuffer
Section
  sectname __const
   segname __TEXT
	  addr 0x0000ed80
	  size 0x00002430
	offset 61624
	 align 2^5 (32)
	reloff 83612
	nreloc 1298
	 flags 0x00000000
 reserved1 0
 reserved2 0
Section
  sectname __literal4
   segname __TEXT
	  addr 0x000111b0
	  size 0x00000004
	offset 70888
	 align 2^2 (4)
	reloff 0
	nreloc 0
	 flags 0x00000003
 reserved1 0
 reserved2 0
ConnectorInfo address (0x00010f40) is in the range (address 0x0000ed80, size 0x00002430 : range between 0x0000ed80 & 0x000111b0). Offset for this segment is 61624.

OFFSET_TO_PEREGRINE_CONNECTIONS_TABLE = 155648 + 61624 + 0x00010f40 - 0x0000ed80
225912 = 155648 + 61624 + 69440 - 60800

dd if=ATIFramebuffer of=/tmp/peregrine bs=1 skip=225912 count=64
od -Ax -tx1 /tmp/peregrine
0000000	00  02  00  00  04  02  00  00  00  00  00  00  02  01  04  05
0000010	00  04  00  00  00  01  00  00  00  00  00  00  20  00  02  02
0000020	02  00  00  00  40  00  00  00  09  01  00  00  02  01  00  03
0000030	02  00  00  00  00  01  00  00  09  01  00  00  20  01  02  02
0000040


Patched the Peregrine connections table in ATIFramebuffer file at offset 0x37278 (225912 in decimal).
od -Ax -tx1 /tmp/peregrine
0000000	00  04  00  00  00  04  00  00  00  01  00  00  12  04  04  06	 (VGA)
0000010	00  08  00  00  00  02  00  00  00  01  00  00  22  05  05  02	 (HDMI-A)
0000020	00  02  00  00  14  00  00  00  00  01  00  00  00  00  06  01	 (LVDS)
0000030	02  00  00  00  00  01  00  00  09  01  00  00  20  01  02  02
0000040

Results:-
1) Still no output at external monitor which connected to HDMI port.
2) Checked using VNC, QE/CI are enabled because I can see the "water effect" with Dashboard. Correct/full resolution detected.

Attached File  SP_MONITOR.jpg   60.1KB   191 downloads
Attached File  IOREG_PORT1.jpg   101.08KB   174 downloads
Attached File  IOREG_MONITOR1.jpg   133.94KB   110 downloads


I think that Peregrine has only 2 Ports.

I've tried with stock Peregrine, and any display was detected (logic because any port match xD), I connected my phone via VNC but QE/CI wasn't working, maybe because any display was detected.

#45
wmarsh

wmarsh

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 900 posts

Thanks, I'm still waiting for the success stories :D

Well, Mobility cards are difficult, no one has gotten them to work. I've been trying for 1 1/2 years off and on.
I think this is a tremendous step. But I am thinking we still have a ways to go for mobility cards.

One issue is there is tremendous variation in how mobility cards are connected to displays.
I am wondering if we could get more info by examining the atom bios, as we are really guessing how to set bits 2-14 right now.

Both the Linux driver and dong's radeonhd.kext get info from the atombios to connect -- Apple's framebuffer obviously does not -- perhaps we can manually enter this info somehow. Or perhaps mobility cards are not possible.

#46
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,278 posts
  • Gender:Male

bcc9,
Thanks for such an excellent guide for us.
According to your theory and successful experience is it essential to use the connector-type 0x800 for HDMI audio ?

There is code in ATISupport that explicitly checks the connector type against 0x800 before considering that the display is HDMI. (Failing that it also checks for an hdmi dongle to decide whether the port is usable as hdmi.

In practice I had working video with my hdmi display with the wrong connector type, but I couldn't get HDMI audio to hotplug without revising the ConnectorInfo entry to actually be for an HDMI port.
I haven't actually tried all combinations however.
Also I see no such test for displayport, so I suspect audio could work over displayport without the connector type mapping properly.

Because my MSI Hawk 5770 need a DP->HDMI convertor to get HDMI audio working by Eulemur FB which actually use the connector-type 0x800.
Is it possible to download your modified ATIFrameBuffer for us to test or verify whether it can be working for other ATI HD 5xxx cards by Uakari FB ?

Well I don't want to get in the business of maintaining patched ATIFramebuffers, but I could upload the 64 byte uakari table I'm currently using. But basically I already gave that info in post #1 in hex...

000000 00 02 00 00 14 00 00 00 00 01 00 00 00 00 06 07 LDVS port*

3 posts now have matched LVDS against 00 02 00 00 in the binary, but I wrote that LVDS is 0x00000002 (in host/little endian byte order), which represented as a byte stream is:
02 00 00 00 not 00 02 00 00
Am I missing something? Where did you get this entry from?

- HDMI's screen: For first time works! It's detected with correct resolution 1440x900.

Horray, so sounds like the first partial success case, no?

#47
jsl

jsl

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 318 posts

Well I don't want to get in the business of maintaining patched ATIFramebuffers, but I could upload the 64 byte uakari table I'm currently using. But basically I already gave that info in post #1 in hex....

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 for your help.

#48
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,278 posts
  • Gender:Male

Ok, i thought it was good but my dsdt edit must {censored}, here it is :

We could fill an entire thread just on DSDT editing. I think it would be easier to just patch chameleon to inject the necessary hda-gfx strings along with the rest of the ATI strings. In the meantime...

So that DSDT patch looks OK to me, but in general whether it actually is or not depends upon the PCI bus address for the PCI bridge that the ATI card is plugged into, which can be motherboard (and motherboard pci-e slot) dependent.
You can check with lspci -nnvt to verify the address for the bridge, for example on my system:
% lspci -nnvt
-[0000:00]-+-00.0  Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller [8086:29c0]
		   +-01.0-[01]--+-00.0  ATI Technologies Inc Redwood [Radeon HD 5670] [1002:68d8]
		   |			\-00.1  ATI Technologies Inc Redwood HDMI Audio [Radeon HD 5600 Series] [1002:aa60]
...
shows that DSDT Device with address 0x00010000 is in fact the right match for the parent device of GFX0 in my case.

You can verify whether you got the right match by looking for the hda-gfx strings in the right places in your ioregistry (where GFX0 shows the hda-gfx string and the other injected ATY nodes under the same matched device).
Looks like you did that and your HDAU node came out right, you're just missing the hotplugged AppleHDAEngineOutputDP node under AppleHDADriver.

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

#49
kizwan

kizwan

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,422 posts

can you please post a "before" and "after" screenshot of the graphics window?

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.

#50
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,278 posts
  • Gender:Male

I lost here. When I did $ otool -arch i386 -vt ATIFramebuffer | c++filt | grep createInfo I only could see UakariInfo::createInfo(unsigned char, PlatformParameters&):. Where did you find the addl?

Wow, so my post #1 was meant more to document my findings and "teach you how to fish", not to be a precise A to Z of exactly what to type for all steps.
It actually didn't occur to me that someone would run otool without knowing how to view all the output.


As the first baby step towards automating all of this, here's a perl script that'll just dump out all the personality initialization functions from your ATIFramebuffer kext. Attached File  ati_personality.pl.0.1.zip   720bytes   5 downloads
This script can be extended to automatically find the address&count information we're looking for. I'm not used to perl so I haven't written that yet ;)

Update: new version here http://www.insanelym...p...t&p=1649793
which does parse the assembly language instructions for you.
Usage:
% perl ati-personality.pl

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

#51
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,278 posts
  • Gender:Male

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...Attached File  uakari.for.sapphire.5670.zip   200bytes   84 downloads 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


#52
kizwan

kizwan

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,422 posts

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.

#53
VCH888

VCH888

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 585 posts
@ kizwan

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

[codebox]
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)
}
}
}

[/codebox]

#54
jsl

jsl

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 318 posts

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...Attached File  uakari.for.sapphire.5670.zip   200bytes   84 downloads 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 ?

Attached Files



#55
kizwan

kizwan

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,422 posts

@ 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)					}


#56
VCH888

VCH888

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 585 posts

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.

#57
Boombeng

Boombeng

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 598 posts
  • Gender:Male
  • Location:France

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

#58
hjs89

hjs89

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 150 posts
  • Gender:Male

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.voodoop...urce/tree/HEAD/ . I used trunk.

#59
kizwan

kizwan

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,422 posts

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.voodoop...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.

#60
hjs89

hjs89

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 150 posts
  • Gender:Male

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.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy