Jump to content

Mobility Radeon - 10.6.6/7 guide for QE/CI - testing 10.7


wmarsh
 Share

564 posts in this topic

Recommended Posts

Kizwan, thank you for laying this out, but your patch does not work on my Inspiron 1545

 

Possibly its due to variation in video hardware. I have a different VBIOS than what you posted.

 

And unfortunately I get a garbled screen using RadeonHD.kext in debug mode, which makes it hard to follow mucha's guide. I put terminal into dock and hope to get the dmseg output that way, might have to try VNC to get it.

You'll need to check the "transmitter" & "encoder" values for your graphic card. But I think it should work. Did you check whether ATIFramebuffer.kext loaded or not?

Link to comment
Share on other sites

You'll need to check the "transmitter" & "encoder" values for your graphic card. But I think it should work. Did you check whether ATIFramebuffer.kext loaded or not?

I think this is the correct patch for Inspiron 1545:

 

02 00 00 00 40 00 00 00 09 01 00 00 12 00 00 01
10 00 00 00 10 00 00 00 00 01 00 00 00 10 01 02

But I still don't have joy. I think its the injector.

 

Am now revisiting the DSDT patches that gave me ATY node to connect to. Unfortunately I have too many and have to restore the old graphics system to read them and figure out the right one.

Link to comment
Share on other sites

Am now revisiting the DSDT patches that gave me ATY node to connect to. Unfortunately I have too many and have to restore the old graphics system to read them and figure out the right one.

You don't need to use DSDT. Just use standard Chameleon 2 RC5 (or latest trunk) boot file. It automatically use Peregrine with your card. Just use GraphicsEnabler=Yes. I have tested two different sets of "transmitter" & "encoder" on my card (4570) & I found both work. So, it should work on your card too. Even when you already put the correct "transmitter" & "encoder" for your card, it doesn't work. I think something is going on here. Did you check whether ATIFramebuffer.kext loaded or not?

 

The VBIOS is extracted directly from Inspiron 1545's BIOS, so it should be correct based on this screenshot by c0ke.

gipiuz.gif

Based on the above screenshot, the VBIOS version is 011.022.003.006.032831.

This is the header of the graphic card's ROM file:-

inspiron1545hd4330vbios.jpg

 

Please check the VBIOS version (011.022.003.006.032831).

Link to comment
Share on other sites

Please check the VBIOS version (011.022.003.006.032831).

Mine is 011.018.000.016.031245

I can send you the rom, but as I got dmesg per mucha's guide, I think I have the right numbers

 

No ATIFramebuffer still does not load. I have a black screen, so no connection is made. Don't have an external monitor available -- might later tonight.

 

I will try trunk with Graphics Enabler yes next.

Link to comment
Share on other sites

Mine is 011.018.000.016.031245

I can send you the rom, but as I got dmesg per mucha's guide, I think I have the right numbers

 

No ATIFramebuffer still does not load. I have a black screen, so no connection is made. Don't have an external monitor available -- might later tonight.

 

I will try trunk with Graphics Enabler yes next.

I have the VBIOS. I'll update the both guide.

25_26.zip

inspiron1545hd4330corre.jpg

Link to comment
Share on other sites

This is HD 4330 with VBIOS version 011.018.000.016.031245:-

ATOM BIOS Rom: 
SubsystemVendorID: 0x1028 SubsystemID: 0x02aa
IOBaseAddress: 0x0000
Filename: BR31245C.001
BIOS Bootup Message: 
Dell_Roberts_M92S_GDDR3 M92 GDDR3 64bit 450e/600m						   

Connector at index 0 type: VGA (1)
Connector's i2cid: 91
Connector at index 1 type: LVDS (7)
Connector's i2cid: 90

 

This is HD 4330 with VBIOS version 011.022.003.006.032831:-

ATOM BIOS Rom: 
SubsystemVendorID: 0x1028 SubsystemID: 0x02aa
IOBaseAddress: 0x0000
Filename: BR32831.001 
BIOS Bootup Message: 
BR32831-001 M92 DDR2 64bit 450e/500m										

Connector at index 0 type: VGA (1)
Connector's i2cid: 91
Connector at index 1 type: LVDS (7)
Connector's i2cid: 90

Both have identical connection & identical senseid. So no need to update the guide.

 

I think I know why it doesn't work for you. It is because ATIFramebuffer.kext is not loaded. Whether the display is working or not, ATIFramebuffer.kext should loaded when you boot with GraphicsEnabler=Yes. Try execute this command to refresh the kext cache:-

touch /System/Library/Extensions

Then reboot. Check again to see whether ATIFramebuffer.kext loaded or not.

Link to comment
Share on other sites

Check again to see whether ATIFramebuffer.kext loaded or not.

I removed all DSDT except the one with no graphics injectors.

I removed RadeonHD.kext from /S/L/E

I replaced bootloader with current trunk

 

Rebooting with patched ATI4600Controller, I still get black internal monitor.

Without it, ATIFramebuffer, ATISupport, and ATIRadeonX2000 all load.

 

kextutil -v ATI4600Controller says it successfully loaded.

Link to comment
Share on other sites

I removed all DSDT except the one with no graphics injectors.

I removed RadeonHD.kext from /S/L/E

I replaced bootloader with current trunk

 

Rebooting with patched ATI4600Controller, I still get black internal monitor.

Without it, ATIFramebuffer, ATISupport, and ATIRadeonX2000 all load.

 

kextutil -v ATI4600Controller says it successfully loaded.

OK. Now you got the ATIFramebuffer.kext loaded. Redo the ATIFramebuffer patch.

Link to comment
Share on other sites

OK. Now you got the ATIFramebuffer.kext loaded. Redo the ATIFramebuffer patch.

Well, I redid the patch -- it is pretty easy to screw up hex editing.

 

I also removed the EDID injection from /System/Library/Display/Overides

And I removed AtiConfig, Atibinimage, and Display Information from /Extra/com.apple.Boot.plist

 

Still it does not connect for me.

 

I've been working on this so long, there's probably something left over somewhere from prior attempts.

Maybe I need a fresh install.

Link to comment
Share on other sites

Well, I redid the patch -- it is pretty easy to screw up hex editing.

 

I also removed the EDID injection from /System/Library/Display/Overides

And I removed AtiConfig, Atibinimage, and Display Information from /Extra/com.apple.Boot.plist

 

Still it does not connect for me.

 

I've been working on this so long, there's probably something left over somewhere from prior attempts.

Maybe I need a fresh install.

Do you have IORegistryExplorer? Can you save the IORegistry using the IORegistryExplorer app & post it here?

 

Well, I redid the patch -- it is pretty easy to screw up hex editing.

This is 10.6.6 ATIFramebuffer.kext which already patched with Inspiron 1545's HD 4330 connections table for both 32bit & 64bit (Peregrine framebuffer).

ATIFramebuffer.kext.zip

ATOM BIOS Rom: 
SubsystemVendorID: 0x1028 SubsystemID: 0x02aa
IOBaseAddress: 0x0000
Filename: BR31245C.001
BIOS Bootup Message: 
Dell_Roberts_M92S_GDDR3 M92 GDDR3 64bit 450e/600m						   

Connector at index 0 type: VGA (1)
Connector's i2cid: 91
Connector at index 1 type: LVDS (7)
Connector's i2cid: 90

ATOM BIOS Rom: 
SubsystemVendorID: 0x1028 SubsystemID: 0x02aa
IOBaseAddress: 0x0000
Filename: BR32831.001 
BIOS Bootup Message: 
BR32831-001 M92 DDR2 64bit 450e/500m										

Connector at index 0 type: VGA (1)
Connector's i2cid: 91
Connector at index 1 type: LVDS (7)
Connector's i2cid: 90

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

 

02 00 00 00 40 00 00 00 09 01 00 00 02 01 00 01 (LVDS)
10 00 00 00 10 00 00 00 00 01 00 00 00 10 00 02 (VGA)

Install it & make sure fix the permission if necessary. Reboot & make sure the ATIFramebuffer.kext is loaded. Also make sure to set GraphicsEnabler=Yes.

 

If there still no output on the internal monitor, check the bytes 12 (0x0C) & 13 (0x0D) using the mucha's guide. The rest of the bytes already correct.

0x	00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F
-----------------------------------------------------------------
000 | 02  00  00  00  40  00  00  00  09  01  00  00  02  01  00  01  (LVDS)
010 | 10  00  00  00  10  00  00  00  00  01  00  00  00  10  00  02  (VGA)

Link to comment
Share on other sites

Found one problem.

 

Had an old com.apple.Boot.plist in /System/Library/Preferences/SystemConfiguration with GraphicsEnabler = n

 

Got rid of it; Now everything loads

 

I have QE on external monitor with green apple in upper left.

 

Nothing on LVDS

 

I will recheck bytes 13 and 14 as you say -- still think they should be 12 00 but obviously I am not working.

 

Might also be EDID issue, but I can but back those fixes and see.

Link to comment
Share on other sites

Please provide me a readout from your graphic card's ROM file. Use radeondump from here.

 

Example of the output:-

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

 

Hi kizwan, finally I've got the rom, booting in 32bit mode, everything seems to be similar to the one you posted but the IOBaseAddress value.

I've got a different mobility HD4330 with 512 mb vram.

 

Can I use the same ATIFramebuffer you posted above in order to try?

 

Here's the radeondump printout:

ATOM BIOS Rom: 
SubsystemVendorID: 0x1028 SubsystemID: 0x02aa
IOBaseAddress: 0xde00
Filename: BR32831.001 
BIOS Bootup Message: 
BR32831-001 M92 DDR2 64bit 450e/500m										

Connector at index 0 type: VGA (1)
Connector's i2cid: 91
Connector at index 1 type: LVDS (7)
Connector's i2cid: 90

Link to comment
Share on other sites

Found one problem.

 

Had an old com.apple.Boot.plist in /System/Library/Preferences/SystemConfiguration with GraphicsEnabler = n

 

Got rid of it; Now everything loads

 

I have QE on external monitor with green apple in upper left.

 

Nothing on LVDS

 

I will recheck bytes 13 and 14 as you say -- still think they should be 12 00 but obviously I am not working.

 

Might also be EDID issue, but I can but back those fixes and see.

Can you post the IORegistry dump? I want to examine it.

 

Hi kizwan, finally I've got the rom, booting in 32bit mode, everything seems to be similar to the one you posted but the IOBaseAddress value.

I've got a different mobility HD4330 with 512 mb vram.

 

Can I use the same ATIFramebuffer you posted above in order to try?

The 256 MB video RAM in the previous post is typo. Just ignore it. The IOBaseAddress & the video RAM are not important. What important are the connections (VGA & LVDS) & i2cid value which are identical with the one in my guide. Please try the ATIFramebuffer.kext in my previous post.

 

The guides for 32-bit & 64-bit at Post #120 & Post #122 respectively are for Dell Inspiron 1545 with ATI Radeon HD 4330. The steps are derived from bcc9's guide which you need to follow first before following mucha's guide. After you have followed my edited guides for Dell Inspiron 1545, if the display still not working properly, you'll need to obtain correct Transmitter & Encoder by following the mucha's guide.

Link to comment
Share on other sites

The guides for 32-bit & 64-bit at Post #120 & Post #122 respectively are for Dell Inspiron 1545 with ATI Radeon HD 4330. The steps are derived from bcc9's guide which you need to follow first before following mucha's guide. After you have followed my edited guides for Dell Inspiron 1545, if the display still not working properly, you'll need to obtain correct Transmitter & Encoder by following the mucha's guide.

 

you need not to follow bcc's guide for hex addresses because mucha has updated his Howto and give all .

just download the attachment and use hex editor to search for the hexadecimal code that mucha give then begin to edit according to your own parameters. see the following instructions,

 

the following came from mucha's instructions,mucha's updated instructions

--------------------------

How to Easy Quick Patch your desired Framebuffer personality (without calculating the adresses and for both i386 and x86_64):

 

 

You should have a hexadecimal editor:

 

1- Download the attached : Sharks_FB.txt Birds_FB.txt and Monkeys_FB.txt,

2- Open the text file select and copy the desired personality hexadecimal code (the one you want to patch),

3- Open ATIFramebuffer.kext and Drag ATIFramebuffer binary to hexadecimal editor,

4- Select : edit>search , in the search fields paste the clipboard content and choose hex value & wrap option,

5- You should find 2 instances of the searched personality: the first one is for x86_64 and the second for i386 (make sure you have only 2),

6- Patch and save your binary, install reboot an ENJOY

 

For Radeon HD 3XXX and prior choose Sharks,

For Radeon HD 4XXX choose Birds,

For Radeon HD 5XXX choose Monkeys.

Link to comment
Share on other sites

Can you post the IORegistry dump? I want to examine it.

 

 

The 256 MB video RAM in the previous post is typo. Just ignore it. The IOBaseAddress & the video RAM are not important. What important are the connections (VGA & LVDS) & i2cid value which are identical with the one in my guide. Please try the ATIFramebuffer.kext in my previous post.

 

The guides for 32-bit & 64-bit at Post #120 & Post #122 respectively are for Dell Inspiron 1545 with ATI Radeon HD 4330. The steps are derived from bcc9's guide which you need to follow first before following mucha's guide. After you have followed my edited guides for Dell Inspiron 1545, if the display still not working properly, you'll need to obtain correct Transmitter & Encoder by following the mucha's guide.

 

Ok, it seems to be clear now!

 

I will give it a try as soon as I'll have enough time and report results! thank you again!

Link to comment
Share on other sites

Our thanks to dong (for his RadeonHD.kext we have tried to obsolete and his tool)

to bcc9 for inventing the method.

to mucha for the last piece to the puzzle

 

does mucha's method means that all ati cards (3xxx,4xxx,5xxx) could work in OSX in principle?

Link to comment
Share on other sites

Ok, it seems to be clear now!

 

I will give it a try as soon as I'll have enough time and report results! thank you again!

No problem. Happy to help. The guide was meant to show you how to obtain the necessary information (this is for anybody who want to learn). You don't need to redo it. Just copy the offset to Peregrine's connection table & start patching them. OR you can just test the ATIFramebuffer.kext I posted earlier.

 

does mucha's method means that all ati cards (3xxx,4xxx,5xxx) could work in OSX in principle?

In theory, yes. That's the idea of the guide.

Link to comment
Share on other sites

No problem. Happy to help. The guide was meant to show you how to obtain the necessary information (this is for anybody who want to learn). You don't need to redo it. Just copy the offset to Peregrine's connection table & start patching them. OR you can just test the ATIFramebuffer.kext I posted earlier.

 

 

In theory, yes. That's the idea of the guide.

 

 

Just tried: replaced my actual 10.7 Ati4600controller (with my card's devId corrected in info.plist), atiframebuffer and atisupport kexts with the original 10.6 ati4600controller (devId modded), atisupport and the atiframebuffer you posted.

Repaired and booted with -f, I've got blank screen after spinning wheel and grey apple logo, on both external vga screen and internal lvds lcd.

Maybe I did some mistake, I will try once more when I'll have more time to spend, maybe better following kizwan's guide.

Link to comment
Share on other sites

Just tried: replaced my actual 10.7 Ati4600controller (with my card's devId corrected in info.plist), atiframebuffer and atisupport kexts with the original 10.6 ati4600controller (devId modded), atisupport and the atiframebuffer you posted.

Repaired and booted with -f, I've got blank screen after spinning wheel and grey apple logo, on both external vga screen and internal lvds lcd.

Maybe I did some mistake, I will try once more when I'll have more time to spend, maybe better following kizwan's guide.

Do you have another computer? The best way to work/troubleshoot the problem is to connect remotely from another computer. You can dump the IORegistry, check whether necessary kexts loaded or not, etc with this method. I'm guessing the ATIFramebuffer.kext is not loaded. Please execute this command to refresh the kext cache:-

touch /System/Library/Extensions

Then reboot. Make sure you boot with GraphicsEnabler=Yes. Make sure Peregrine framebuffer is use by checking in IORegistry. If you can give me the IORegistry dump, I can look into it further.

Link to comment
Share on other sites

does mucha's method means that all ati cards (3xxx,4xxx,5xxx) could work in OSX in principle?

Exactly.

 

Someone should put a news piece in the news section.

 

Can you post the IORegistry dump? I want to examine it.

Yes, but I want to try a few other things 1st.

 

This is from my dmseg output

Mapping DIG1 encoder to KLDSKP_UNIPHYE
Crtc[0]: found native mode from Monitor[LVDS Panel]: 
Modeline "1600x900"  97  1600 1648 1680 1760  900 903 908 926
Connector "PANEL" uses Monitor "LVDS Panel":
DxModeValid: ATOM CRTC 1
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

Mucha says this in his guide:

Based upon the above information my SPECIFIC videocard routing is:

 

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

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

So I really think I am correct on transmitter and encoder bytes as I have same dmesg.

 

I am about to try your ATIFramebuffer.kext anyway

[EDIT -- Didn't work, and I lost output on external monitor.]

 

Your graphics chip and mine I believe both are based on RV710

(at least it says so at notebookcheck.net and in chameleon code)

 

So we must be using the right framebuffer

(Peregrine does work for you, right?)

 

I did find another problem -- I had recompiled chameleon for Shrike per mucha's guide and had forgotten to move the original booter back. It would be easier on a virgin system.

Link to comment
Share on other sites

good job guys.

 

now, we are waiting a "how to" from the first operation (windows deleting) for newbies.

It will happen

 

We have successes -- I am not yet one -- when I am I will post guide at top of this thread for my machine (Dell Inspiron 1545)

 

Given the variability in laptops, I doubt this will ever be a simple hack

Link to comment
Share on other sites

For first time my LVDS display is working correctly!! I've followed mucha's guide.

 

I've tested Shrike, Vervet and Peregrine and now Peregrine is working, but not the hdmi port :(. I'll post more feedback in his post to try to fix it.

Link to comment
Share on other sites

I am about to try your ATIFramebuffer.kext anyway

[EDIT -- Didn't work, and I lost output on external monitor.]

The only things left to do is put the right Encoder & Transmitter values in the kext file. Are you doing from scratch again?

 

For first time my LVDS display is working correctly!! I've followed mucha's guide.

 

I've tested Shrike, Vervet and Peregrine and now Peregrine is working, but not the hdmi port :(. I'll post more feedback in his post to try to fix it.

Congratulation! Another 4570 got the LVDS working.

 

When I found about the ControlFlags, I'm able to get LVDS working & then VGA port working but not HDMI. When mucha release the guide about the link, I was able to get HDMI working by making a correction on the Encoder & Transmitter values.

Link to comment
Share on other sites

I don't know why but I can't post on mucha's post :(, so I'll post here what is happening me.

------------------------------------------------------------

Thank you for this guide!! It's awesome.

 

I've done some test and now my LVDS port is working but not the HDMI. I'm going to post the information of my graphics card (mobility 4570 9553:1002, similar to kizwan's one)

 

These are my conectors in my Vbios:

$ ./radeondump < 9553.0301.00E0.vga.rom 

ATOM BIOS Rom: 
SubsystemVendorID: 0x1025 SubsystemID: 0x0205
IOBaseAddress: 0x2000
Filename: BR33359D.bin
BIOS Bootup Message: 
Acer_JV50_MV_M92M2_XT_DDR3 M92 DDR3 64bit 680e/800m						 

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

 

And the radeon's log:

RHDAtomOutputAllocFree
Mapping DIG1 encoder to KLDSKP_UNIPHYE
Crtc[0]: found native mode from Monitor[LVDS Panel]: 
Modeline "1366x768"  72  1366 1414 1446 1486  768 771 775 806
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: AtomOutputtainCountUniphyE (PANEL)
ATOM CRTC 2: unused
Unused Outputs: AtomOutputDACA, AtomOutputUniphyA

 

I tried patching Shrike, Vervet and Peregrine:

 

Shrike = Both displays were detected, however there wasn't any signal in both display (black screens) (checked via VNC)

02 00 00 00 40 00 00 00 09 01 00 00 12 00 00 07 LVDS
10 00 00 00 10 00 00 00 00 01 00 00 00 10 01 01 VGA
00 08 00 00 00 02 00 00 00 01 00 00 20 01 02 02 HDMI

 

Vervet = Both displays were detected, however there wasn't any signal in both display (black screens) (checked via VNC)

02 00 00 00 40 00 00 00 09 01 00 00 12 00 00 07 LDVS
10 00 00 00 10 00 00 00 00 01 00 00 00 10 01 01 VGA
00 08 00 00 00 02 00 00 00 01 00 00 20 01 02 02 HDMI
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BLANK

 

Peregrine = LVDS is working fine. HDMI display is detected but there isn't any signal (black screen).

02 00 00 00 40 00 00 00 09 01 00 00 12 00 00 07 LVDS
00 08 00 00 00 02 00 00 00 01 00 00 20 01 02 02 HDMI

 

There is one thing that I can't understand. Why if I patched the three personalities with the same code LVDS is only working in Peregrine? :(

 

About HDMI. Some time ago it worked under Vervet personality with these code:

00 08 00 00 00 02 00 00 00 01 00 00 22 05 05 02

I haven't tried yet to use it now.

 

Do you have any idea why the other personalities are not working? I want be able to use the three ports and I won't be able to do it with peregrine :(

Link to comment
Share on other sites

 Share

×
×
  • Create New...