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

Did you noticed that the fan keeps spinning all the time?

the cpu usage is not high, so does the graphics i think.

do you have any solution for that?

I didn't noticed it on my notebook. The fan also doesn't produced too much noise either.

Link to comment
Share on other sites

Did you noticed that the fan keeps spinning all the time?

the cpu usage is not high, so does the graphics i think.

do you have any solution for that?

 

I noticed that and I think that it's warmer than when I'm running Windows. But it happened before using RadeonHD too. I think that it's because SpeedStep is not enabled yet. It's my next step.

Link to comment
Share on other sites

Now we got port 0, port 1, and port 2 work with QE & CI for mobility radeon HD 4330.

Thank you crazybirdy, you have been most helpful.

 

I applied your string, and according to ioreg -l (attached) it should be working. Even EDID is correctly there.

But I still have black screen.

 

I am thinking I am cursed and this hack works for everyone except me.

 

[EDIT -- CCC reports NullCPUPowerManagement.kext interferes with LVDS initialization.

http://www.insanelymac.com/forum/index.php...t&p=1656810

 

I had this and removed it. However, I still have black screen.

 

I agree with hjs89 that I am very close. But I need some ideas here.]

Link to comment
Share on other sites

Thank you crazybirdy, you have been most helpful.

 

I applied your string, and according to ioreg -l (attached) it should be working. Even EDID is correctly there.

But I still have black screen.

 

I am thinking I am cursed and this hack works for everyone except me.

 

I think that if you have black screen and your displays are detected you are close to get it working. I think that there are more pieces of the puzzle. Patching with the same strings in different framebuffers doesn't give the same result.

 

Try change ControlFlags for LVDS from 0x40 to 0x100:-

 

02 00 00 00 00 01 00 00 09 01 00 00 12 00 00 07 (LVDS)

 

I tested this and my display isn't detected and I've a corrupted grey and black squares.

 

In the other hand I 've done some more test.

 

With Peregrine with this string for HDMI:

 

00 08 00 00 00 02 00 00 00 01 00 00 22 05 05 02 (Worked for me some time ago)

 

And the both displays are detected without signal.

 

I've tested Shrike with LVDS+BLANK+BLANK and the display was detected but I've a black screen.

 

I don't know why Shrike is not working if I use the same sting :).

 

BTW, I'm not using Kabyl's boot file anymore since I saw a System Profiler's screenshots at mucha's thread. I compiled Chameleon 2 from official trunk with these changes in ati.c file:-

Original: const char *ati_efidisplay_0[] = { "@0,ATY,EFIDisplay", "TMDSB" };

Mod: const char *ati_efidisplay_0[] = { "@0,ATY,EFIDisplay", "LVDS" };

 

and

 

Original: { 0x10029553, "Peregrine"} ,

Mod: { 0x10029553, "Shrike"} ,

 

For the changes from TMDSB to LVDS, I have no idea whether it effected or not on LVDS functionality. I'm too lazy to test. :P I changed it because I saw in mucha's screenshot of the IORegistry (ATY,EFIDisplay).

 

I noticed that with Kabyl's boot there is no information about PCI card in System Profiler. Is there any more difference?

 

Are the ports working better or something? I use kabyl's boot file because it's easier to change the framebuffer.

 

And the change about const char. Anybody knows what is this about?

 

Thanks for your support Kizwan!

Link to comment
Share on other sites

Hi all!

 

CCC reports NullCPUPowerManagement.kext interferes with this hack

http://www.insanelymac.com/forum/index.php...t&p=1656810

 

I am wondering if other kext might also.

 

It would be very helpful to me if some of you who have this working would report what kext if any you have in /Extra/Extensions.

 

Then by process of elimination we can figure out what works and what does not.

Link to comment
Share on other sites

Thank you crazybirdy, you have been most helpful.

 

I applied your string, and according to ioreg -l (attached) it should be working. Even EDID is correctly there.

But I still have black screen.

 

I am thinking I am cursed and this hack works for everyone except me.

 

According to your posts @#145 & #152, I think the patch string should be the same as my post @#175 for port 1 as below.

 

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

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

 

I wonder about that, if something else cause the black screen, maybe some kexts interfere with LVDS initialization just like CCC's report. What if a clean install and update to 10.6.6, then patch with 4330 only? You can test it if you have time to do it.

 

EDIT

What I have in /Extra/Extensions is as below.

 

dsdt.aml

AHCIPortInjector.kext

AppleACPIPS2Nub.kext

AppleACPIThermal.kext

ApplePS2Controller.kext

FakeSMC.kext

IOAHCIBlockStorageInjector.kext

IOATAFamily.kext

IONetworkingFamily.kext

IOUSBFamily.kext

SleepEnabler.kext

Link to comment
Share on other sites

I noticed that with Kabyl's boot there is no information about PCI card in System Profiler. Is there any more difference?

 

Are the ports working better or something? I use kabyl's boot file because it's easier to change the framebuffer.

 

And the change about const char. Anybody knows what is this about?

 

Thanks for your support Kizwan!

Chameleon 2 from trunk inject more items in IORegistry than Kabyl's does. I'm going to test Kabyl's boot file again later. I switched back to official Chameleon 2 when I saw mucha use the same boot file.

 

This is brief history when I'm successfully got output on the internal LCD (before mucha post the guide). I learn about ATY,ControlFlags when I compared the IORegistry with the IORegistry dump when I use 10.7 kexts (only VGA & HDMI working). With this information, I just search in ATIFramebuffer for LVDS connection (02 00 00 00 40 00 00 00) & for HDMI connection (00 08 00 00 04 02 00 00) (at this time I thought HDMI ControlFlags is 0x204 - based on the IORegistry dump with 10.7 kexts). Copied the LVDS & HDMI connections & paste in Peregrine connections table. At first I got black screen on both display but when I unplugged the HDMI cable, internal LCD display blue screen & then desktop appeared. When plugged in the HDMI cable again, internal LCD blank again (external monitor too). Since I got no output with HDMI, I'm testing VGA instead. Based on the IORegistry dump with 10.7 kexts, I found VGA ControlFlags is 0x10. So, I searched for VGA connection in ATIFramebuffer (10 00 00 00 10 00 00 00). Copied & paste it in Peregrine connections table. Peregrine is useful for testing because it only have two connections. You won't make mistake there (I think putting BLANK in the connections table is not good idea because it can cause wrong result - false positive). At first try with LVDS & VGA, I got output at both display. When mucha release the guide, I only make corrections on the Encoder & transmitter to get all three connections working with Shrike. (mucha told me the LVDS & HDMI are conflicting with each other - use the same link. That's why I got blank screen earlier.) I use Shrike because mucha also have HD4xxx graphic card & using Shrike fb.

 

There is an unknown byte:-

02 00 00 00 00 01 00 00 09 01 00 00 12 00 00 07 (LVDS)

 

Try change on both connection (LVDS & HDMI) from 01 to 00. Test it & see whether it make the screens working or not.

02 00 00 00 40 00 00 00 09 00 00 00 12 00 00 07 (LVDS) OR 02 00 00 00 00 01 00 00 09 00 00 00 12 00 00 07 (LVDS)

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

 

It would be very helpful to me if some of you who have this working would report what kext if any you have in /Extra/Extensions.

I have:-

  • AppleACPIPS2Nub.kext
  • ApplePS2Controller.kext
  • fakesmc.kext
  • IDT92HD73C1X5_R2.kext (for audio)
  • IOnetworkingFamily.kext (for LAN)
  • ATI4570.Fix.v2.kext (for injecting graphic card device ID to ATI4600Controller)

 

I use iMac11,1 as machine identification in smbios.plist.

Link to comment
Share on other sites

There is an unknown byte:-

02 00 00 00 00 01 00 00 09 01 00 00 12 00 00 07 (LVDS)

Mucha's guide says thats the Features byte for use internal

Doubt if thats the problem

 

c0ke made me feel better with PM-- he has same VBIOS as I do and is just as stuck.

Least I'm not the only one.

 

According to your posts @#145 & #152, I think the patch string should be the same as my post @#175 for port 1 as below.

 

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

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

 

I wonder about that, if something else cause the black screen, maybe some kexts interfere with LVDS initialization just like CCC's reports. What if a clean install and update to 10.6.6, then patch with 4330 only? You can test it if you have time to do it.

 

EDIT

What I have in /Extra/Extensions is as below.

 

dsdt.aml

AHCIPortInjector.kext

AppleACPIPS2Nub.kext

AppleACPIThermal.kext

ApplePS2Controller.kext

FakeSMC.kext

IOAHCIBlockStorageInjector.kext

IOATAFamily.kext

IONetworkingFamily.kext

IOUSBFamily.kext

SleepEnabler.kext

I have Disabler.kext also.

Perhaps that is the problem?

 

Is anyone working with Disabler.kext?

Link to comment
Share on other sites

Mucha's guide says thats the Features byte for use internal

Doubt if thats the problem

Quoting from mucha's guide:-

3-Features;

 

/* Features byte 0 , for example for LVDS screen it's almost 0x09 = 0x01 + 0x08 > Internal + Backlight */

#define FEATURE_USE_INTERNAL 0x01

#define FEATURE_USE_RGB_ON_YUV 0x04

#define FEATURE_USE_BACKLIGHT 0x08

#define FEATURE_BACKLIGHT_INVERTED 0x10

#define FEATURE_USE_CLAMSHELL 0x20

 

/* 1 byte, hardcoded for each connector type

0x0002 : LVDS > Features : 0x09

0x0004 : DVI-? > Features : 0x00

0x0010 : VGA > Features : 0x00

0x0080 : S-Video > Features : 0x04

0x0200 : DVI-? > Features : 0x00

0x0400 : DisplayPort > Features : 0x00

0x0800 : HDMI > Features : 0x00

0x1000 : DVI-? > Features : 0x00

*/

 

/* Features byte 1 , no idea ???*/

Byte 1 is unknown. It doesn't hurt to try. :)

Link to comment
Share on other sites

I have Disabler.kext also.

Perhaps that is the problem?

 

Is anyone working with Disabler.kext?

 

As I know, the function of Disabler.kext is the same as NullCPUPowerManagement.kext.

How about delete Disabler.kext, /S/L/E/AppleIntelCPUPowerManagement.kext and AppleIntelCPUPowerManagementClient.kext, and try again?

Link to comment
Share on other sites

As I know, the function of Disabler.kext is the same as NullCPUPowerManagement.kext.

How about delete Disabler.kext, /S/L/E/AppleIntelCPUPowerManagement.kext and AppleIntelCPUPowerManagementClient.kext, and try again?

Did this, still black screen.

 

I know I am cursed.

Link to comment
Share on other sites

There is an unknown byte:-

02 00 00 00 00 01 00 00 09 01 00 00 12 00 00 07 (LVDS)

 

Try change on both connection (LVDS & HDMI) from 01 to 00. Test it & see whether it make the screens working or not.

02 00 00 00 40 00 00 00 09 00 00 00 12 00 00 07 (LVDS) OR 02 00 00 00 00 01 00 00 09 00 00 00 12 00 00 07 (LVDS)

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

 

When I use Lion's FB my ATY,ControlFlags for HDMI port is 0x204 too.

Should I try 00 08 00 00 04 02 00 00?

 

One thing that I've noticed about Lion's FB.

 

I don't remember now who, but someone said that in Lion's the personalities are in the ATIxxxxController. I checked with otool and I found Flicker, Gliff and Shrike in ATI4600Controller. However when I tried to use these personalities It didn't work.

 

So maybe when it doesn't detect a personality (for example if I try to load Peregrine and this isn't in the ATI4600Controller) It tries to do one "on the fly" reading the Vbios or wherever?

 

One more thing, is possible to extract the personality strings that I'm using? (more than connector type and controlflags).

 

About the diabler kext, I only have these:

 

(E/E) FakeSMC

(E/E) NullCPUPowerManagement (I tried removing this but the same happened and the system was more unstable)

(E/E) OrangeIconFix

 

(S/L/E) VoodooHDA

(S/L/E) VodooPS2Controller

My SMProductName in smbios.plist is MacBookPro3,1

Link to comment
Share on other sites

When I use Lion's FB my ATY,ControlFlags for HDMI port is 0x204 too.

Should I try 00 08 00 00 04 02 00 00?

You can try but I doubt it will work.

I don't remember now who, but someone said that in Lion's the personalities are in the ATIxxxxController. I checked with otool and I found Flicker, Gliff and Shrike in ATI4600Controller. However when I tried to use these personalities It didn't work.

bcc9 did mentioned about this.

So maybe when it doesn't detect a personality (for example if I try to load Peregrine and this isn't in the ATI4600Controller) It tries to do one "on the fly" reading the Vbios or wherever?

(Assuming you're referring to 10.6.6 kexts) Don't think so. It still refer to Peregrine connections table, if you set framebuffer to Peregrine.

One more thing, is possible to extract the personality strings that I'm using? (more than connector type and controlflags).

Sorry, I don't understand. What do you mean?

About the diabler kext, I only have these:

 

(E/E) FakeSMC

(E/E) NullCPUPowerManagement (I tried removing this but the same happened and the system was more unstable)

(E/E) OrangeIconFix

 

(S/L/E) VoodooHDA

(S/L/E) VodooPS2Controller

My SMProductName in smbios.plist is MacBookPro3,1

Need to patch your DSDT so that you can remove NullCPUPowerManagement for good.

 

Can you give me the IORegistry dump when internal LCD have signal? If I'm not mistaken it was Peregrine right? Also make sure the external monitor is connected to HDMI port when you dump the IORegistry. Please dump IORegistry using IORegistryExplorer app. I want to compare yours with mine. Thanks.

Link to comment
Share on other sites

BTW, I'm not using Kabyl's boot file anymore since I saw a System Profiler's screenshots at mucha's thread. I compiled Chameleon 2 from official trunk with these changes in ati.c file:-

Original: const char *ati_efidisplay_0[] = { "@0,ATY,EFIDisplay", "TMDSB" };

Mod: const char *ati_efidisplay_0[] = { "@0,ATY,EFIDisplay", "LVDS" };

 

and

 

Original: { 0x10029553, "Peregrine"} ,

Mod: { 0x10029553, "Shrike"} ,

 

For the changes from TMDSB to LVDS, I have no idea whether it effected or not on LVDS functionality. I'm too lazy to test. tongue.gif I changed it because I saw in mucha's screenshot of the IORegistry (ATY,EFIDisplay).

Kizwan, could you enlighten me any reasons for this?

 

Am am also using recompiled trunk, but without this (TMDSB to LVDS) change, and am wondering if it might be why my LVDS does not initialize.

 

Is this cosmetic or does it have some functionality?

Link to comment
Share on other sites

So maybe when it doesn't detect a personality (for example if I try to load Peregrine and this isn't in the ATI4600Controller) It tries to do one "on the fly" reading the Vbios or wherever?

 

(Assuming you're referring to 10.6.6 kexts) Don't think so. It still refer to Peregrine connections table, if you set framebuffer to Peregrine.

I was talking about 10.7 Framebuffer

 

One more thing, is possible to extract the personality strings that I'm using? (more than connector type and controlflags).

Sorry, I don't understand. What do you mean?

If is possible extract all the string in Ioreg, for example. If it is possible I would extract the strings under Lions FB and know more about it. My LVDS displays was working but with wrong colors, maybe it was running a wrong encoder.

 

Need to patch your DSDT so that you can remove NullCPUPowerManagement for good.

 

Can you give me the IORegistry dump when internal LCD have signal? If I'm not mistaken it was Peregrine right? Also make sure the external monitor is connected to HDMI port when you dump the IORegistry. Please dump IORegistry using IORegistryExplorer app. I want to compare yours with mine. Thanks.

 

I'm a totally noob about DSDT, I think that I can improve it a lot. I'm interested on SpeedStep and NullCPU fixes. I found one about speedstep but was to "hard stuff" to start. Do you know any good guide to start modding the DSDT?

 

I've attached my current IORegistry dump. Now I'm using trunk's boot file with Peregrine.

 

Peregrine Personality strings are these:

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

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

 

@Wmarsh, if you upload your ioreg dump from terminal please do "ioreg -w0". If you don't type de -w0 you can't see all de values, because only displays the weight of your terminal window.

ioreg_hjs89.zip

Link to comment
Share on other sites

@Wmarsh, if you upload your ioreg dump from terminal please do "ioreg -w0". If you don't type de -w0 you can't see all de values, because only displays the weight of your terminal window.

Gladly. This is ioreg -l -w0 so it should contain everything.

 

I am completely at a loss what to try next.

My read of this -- admittedly not as big an expert as some -- is that everything is connected properly and I should be another success.

 

I did try an experiment. I tried booting with an old monitor on VGA after using FN-F1 to switch the screens (so BIOS and Chameleon are on external monitor.) When I do that, I do after booting get display on the external (not on LVDS), but it has the green apple in upper left. This I had seen before. But the new thing I noticed is the display resolution was the native display resolution of my internal LVDS screen, not the native resolution of the monitor.

 

Made me wonder if this initialization problem was from some confusion as to which display belongs to which port.

 

I do not see any such in this ioreg. Perhaps others know more.

Link to comment
Share on other sites

Gladly. This is ioreg -l -w0 so it should contain everything.

 

o display0 <class IODisplayConnect, id 0x100000329, registered, matched, active, busy 0 (3 ms), retain 5>

+-o AppleDisplay <class AppleDisplay, id 0x10000032b, registered, matched, active, busy 0 (1 ms), retain 6>

{

"DisplayProductID" = 524

"IODisplayEDID" = <00ffffffffffff0030e40c020000000000130103902313780a1be59e595098260e5

054000000010101010101010101010101010101012f2640a060841a303020350059c21000001b2f2640a

060841a303020350059c21000001b000000fe004d54364b47803135365744310a0000000000000000000

000000002010a202000bc>

"IODisplayPrefsKey" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/AGP@1/IOPCI2PCIBridge/

VID@0/ATY,Peregrine@0/ATY_Peregrine/display0/AppleDisplay-30e4-20c"

"DisplayVendorID" = 12516

 

 

So, you got QE/CI with Peregrine already, just not on the right output. I think you may double check if the EDID is the same as EDIDViewer or not, and eidt the file /System/Library/Displays/Overrides/DisplayVendorID-30e4/DisplayProductID-20c.

EDIDViewer http://www.eldim.fr/products/display-contr...lite-free-tools

 

Make sure the DisplayVendorID and DisplayProductID is following the rule.

Link to comment
Share on other sites

Kizwan, could you enlighten me any reasons for this?

 

Am am also using recompiled trunk, but without this (TMDSB to LVDS) change, and am wondering if it might be why my LVDS does not initialize.

 

Is this cosmetic or does it have some functionality?

I don't know what it is for too. I just changed it when I saw it in one of the mucha's screenshot. It's probably nothing. At that time, I'm thinking before following mucha's guide, better got my setup matched with mucha's. I never tested the TMDSB since I got mine working. So, I don't know for sure. I probably going to try it later.

Link to comment
Share on other sites

If is possible extract all the string in Ioreg, for example. If it is possible I would extract the strings under Lions FB and know more about it. My LVDS displays was working but with wrong colors, maybe it was running a wrong encoder.

I don't think it is possible to get all of 'em from IORegistry although I didn't look to it further. Yeah, I got the same thing on mine when with 10.7 kexts. The only different between yours & mine (before mucha's guide available) are I didn't get output on HDMI with 10.6.6 kexts. At that time, I only concentrate on getting HDMI working because I think LVDS is hard to get it working. I only tried LVDS after I found about ATY,ControlFlags.

I'm a totally noob about DSDT, I think that I can improve it a lot. I'm interested on SpeedStep and NullCPU fixes. I found one about speedstep but was to "hard stuff" to start. Do you know any good guide to start modding the DSDT?

I didn't know any complete or perfect guides for DSDT mods. Everything I know about DSDT are based on lot of practice & trial. There are a lot of (useful) posts regarding DSDT mods in this forum but they're scattered & usually only focusing on fixing specific things. For you, I recommend start with fassl's DSDTPatcher. It can fix your DSDT with basic fix/patch. With this patcher, it can fixed CPU aliases which is the reason why you need NullCPUPowerManagement. So, you can remove NullCPUPowerManagement after you applied basic patch using DSDTPatcher.

I've attached my current IORegistry dump. Now I'm using trunk's boot file with Peregrine.

 

Peregrine Personality strings are these:

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

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

Thanks. I'll look into this later.

Link to comment
Share on other sites

can i do this without dumping my video rom? i have a dell sxps 1645 with ati mobility 4670 that has the rom integrated into the bios.. i was wondering if this is still possible....

Fortunately I have been working on XPS 1645's BIOS (A12) before (not related to OS X). So I have the decompressed BIOS with me. This is VBIOS for your HD4670 graphic card.

VBIOS version: 011.022.009.003.036993

OPROM00_XPS1645_A12_HD4670.zip

Link to comment
Share on other sites

Well you are one sharp eyed crazybirdy!

 

This EDID is correct -- I had inserted it in the default of /System/Library/Displays/Overrides/DisplayVendorID-756e6b6e/DisplayProductID-517

 

I missed that these IDs did not match. So I made sure the VendorID and DeviceID were correct and moved it to the right spot.

 

Unfortunately I still have black screen on reboot. This likely fixed the odd display resolution when I boot on external monitor, but I have not tested that.

 

I am wondering, given that NullCPUPowerManagement.kext blocked screen initialization for CCC, do we need some function in AppleIntelCPUPowerManagement.kext to wake the LVDS screen? In other words, has everyone who has this working already put the speedster fix in their DSDT so they can leave these kext functional?

 

To date, I have not bothered to do this, mostly because OS X without QE/CI is of limited utility and I have been too lazy.

Link to comment
Share on other sites

I just tested with Kabyl boot file. Set the default framebuffer to Shrike for my card in ati.c. I found something interesting. When boot with Kabyl's boot file, the external monitor which connected to HDMI port blank. I did restart to make sure it is not rare symptom but the external monitor still blank. I got output on the external monitor after I change the resolution to lower & to higher again. Just tested by rebooting & cold-booting my notebook, the external monitor doesn't blank anymore.

Link to comment
Share on other sites

 Share

×
×
  • Create New...