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

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.

That is interesting, maybe I could get my internal to unblank same way.

Do you know any way to change resolution from terminal?

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" };

I just tested TMDSB. I didn't see any difference. Still got output on both monitor. So, this is just cosmetic.

 

That is interesting, maybe I could get my internal to unblank same way.

Do you know any way to change resolution from terminal?

I don't know if it is possible from terminal. The only way I know is connected remotely using VNC & change the resolution.

Link to comment
Share on other sites

Great news today!

I've got my internal LVDS lcd working! I'm actually writing with it on, grey apple in toolbar menu, ripple effects in dashboard, images in preview, 64bit mode ecc...

I'm using pcefi 10.6, the kizwan posted atiFramebuffer.kxt, 10.6.6 original atisupport and radeonx2000 and 4600controller with devId of my card!

 

NO OUTPUT FROM THE VGA althoug correctly detected!

I've got black screen on it, without backlight, but I can see it in system preferences like if it is working: tried to change resolution, switch to mirroring on and of but nothing happens...

 

The issue was: I couldn't set correctly permissions after replacing kexts with the system running, and the system crashed after the spinning wheel.

I had this suspect and booted from a old bootloader chameleon cd in VESA MODE, repaired permissions with terminal and restart! And here I'm!!!

 

Hope this could help who hasn't yet it working!

 

I must now try to adjust the external VGA output because till now I used it with the lion's kexts and it's very helpfull

 

Wmarsh, kizwan, peblus, crazibirdy and the others: thank you all guys for your great work.. keep on pushing!!!

Link to comment
Share on other sites

Great news today!

I've got my internal LVDS lcd working! I'm actually writing with it on, grey apple in toolbar menu, ripple effects in dashboard, images in preview, 64bit mode ecc...

I'm using pcefi 10.6, the kizwan posted atiFramebuffer.kxt, 10.6.6 original atisupport and radeonx2000 and 4600controller with devId of my card!

Congratulation! :( I hope you can get VGA working later.

 

I must now try to adjust the external VGA output because till now I used it with the lion's kexts and it's very helpfull

Try compare current (10.6.6) IORegistry with IORegistry dump when using 10.7 kexts.

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.

This command line utility might help you kizwan

 

http://hintsforums.macworld.com/showpost.p...mp;postcount=16

 

can you send me the ATIFramebuffer.kext you sent to c0ke and got his working?

I am not sure what you may have done differently from what I've tried already, but I would like to join the party

Link to comment
Share on other sites

can you send me the ATIFramebuffer.kext you sent to c0ke and got his working?

I am not sure what you may have done differently from what I've tried already, but I would like to join the party

I already posted the ATIFramebuffer.kext at Post #135. IIRC you already tested it but doesn't work on your notebook.

 

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

Sorry, I can't find anything wrong with your IORegistry. I did noticed that "gpu-control" is missing from your IORegistry. This is mine:-

minegpucontrol.jpg

It usually there in IORegistry but since you got LVDS working, I don't think it is something necessary.

 

Everything already correct but I don't know why it doesn't work. Probably the graphic card's ROM is buggy? Don't quote me on this. I don't want to spread rumors. -_-

Link to comment
Share on other sites

NO OUTPUT FROM THE VGA althoug correctly detected!

I've got black screen on it, without backlight, but I can see it in system preferences like if it is working: tried to change resolution, switch to mirroring on and of but nothing happens...

 

Hope this could help who hasn't yet it working!

 

I must now try to adjust the external VGA output because till now I used it with the lion's kexts and it's very helpfull

 

Wmarsh, kizwan, peblus, crazibirdy and the others: thank you all guys for your great work.. keep on pushing!!!

Well c0ke sent me his files that worked, and using them I get output on LVDS

It's distorted with green apple upper left, but its output.

 

The funny thing is per mucha's guide it should not work. This file has 02 01 for encoder/decoder (bits 12 13) and per mucha -- and confirmed by crazybirdy -- I should be 12 00.

 

I think c0ke's VGA issue is bit 14 is the same for both outputs and per mucha (and matching all the original FB) they need to be different.

 

One take away is 5xxx and 6xxx users who cannot get dmesg to figure out encoder/decoder might be able to start guessing with 02 01 like kizwan did successfully

Link to comment
Share on other sites

The funny thing is per mucha's guide it should not work. This file has 02 01 for encoder/decoder (bits 12 13) and per mucha -- and confirmed by crazybirdy -- I should be 12 00.

At that time, I don't have RadeonHD dump from C0ke or yours. So, I just patched based on the ROM dump only. Before mucha's guide available, I got LVDS & VGA working with wrong encoder & transmitter. The reason I can't get HDMI working at that time, the encoder & transmitter are conflicting with LVDS. Based on a couple of test later, wrong encoder & transmitter should be fine as long as it doesn't conflicting with each other. Even when LVDS & HDMI conflicting with each other, I still got output with LVDS if HDMI is not plugged in.

Link to comment
Share on other sites

Well c0ke sent me his files that worked, and using them I get output on LVDS

It's distorted with green apple upper left, but its output.

 

The funny thing is per mucha's guide it should not work. This file has 02 01 for encoder/decoder (bits 12 13) and per mucha -- and confirmed by crazybirdy -- I should be 12 00.

 

I think c0ke's VGA issue is bit 14 is the same for both outputs and per mucha (and matching all the original FB) they need to be different.

 

One take away is 5xxx and 6xxx users who cannot get dmesg to figure out encoder/decoder might be able to start guessing with 02 01 like kizwan did successfully

 

Congratulations.

Why could C0ke get grey apple in toolbar menu, and mine is green as yours? We are all 4330m. Can we figure out the root cause?

Link to comment
Share on other sites

Congratulations.

Why could C0ke get grey apple in toolbar menu, and mine is green as yours? We are all 4330m. Can we figure out the root cause?

 

The green apple is a fail with OpenGL. The same happens in Apple Market, Photoshop (if you don't disable it), etc. All the cards with M92 chipset 4330m, 4350 (desktop version) and 4570m have the same issue.

 

If the green apple is annoying you. You can disable the transparent toolbar. Then the apple will be black.

Link to comment
Share on other sites

Well c0ke sent me his files that worked, and using them I get output on LVDS

It's distorted with green apple upper left, but its output.

 

The funny thing is per mucha's guide it should not work. This file has 02 01 for encoder/decoder (bits 12 13) and per mucha -- and confirmed by crazybirdy -- I should be 12 00.

 

I think c0ke's VGA issue is bit 14 is the same for both outputs and per mucha (and matching all the original FB) they need to be different.

 

One take away is 5xxx and 6xxx users who cannot get dmesg to figure out encoder/decoder might be able to start guessing with 02 01 like kizwan did successfully

 

Congratulations!!!

However the pathced atiframebuffer you sent me didn't change anything, same vga monitor turned off..

 

Congratulations.

Why could C0ke get grey apple in toolbar menu, and mine is green as yours? We are all 4330m. Can we figure out the root cause?

my apple is green too :unsure:!

Is your vga port working together with your internal lcd?

 

Congratulation! ;) I hope you can get VGA working later.

 

 

Try compare current (10.6.6) IORegistry with IORegistry dump when using 10.7 kexts.

 

hi kizwan, here they are, I can see the framebuffer part is different..

107vga.ioreg.zip1066lvds.ioreg.zip

Link to comment
Share on other sites

Congratulations.

Why could C0ke get grey apple in toolbar menu, and mine is green as yours? We are all 4330m. Can we figure out the root cause?

I need to test this, but I think mucha's guide is unclear about transmitter

 

From dmesg I see:

Mapping DIG1 encoder to KLDSKP_UNIPHYE

So I figured this meant I should use same transmitter as mucha : 12

 

However, reading his documentation above,

692 * DCE 3.2 (RV7XX, Radeon HD 4XXX Series)

693 * - 3 DIG transmitter blocks. UNIPHY0/1/2 (links A and :unsure:.

694 * Supports up to 5 digital outputs

695 * - 2 DIG encoder blocks.

696 * DIG1/2 can drive UNIPHY0/1/2 link A or link B

Which leaves it unclear what Transmitter should be

 

Could be 02 or 12 or 22

 

He also posted

/* Transmitter Bits 4-7 (LinkID) */

#define DUAL_LINK 0x00

#define LINK_A 0x10

#define LINK_B 0x20

 

/* Transmitter byte */

#define UNIPHY_A 0x10 // = UNIPHY:LINK_A

#define UNIPHY_B 0x20 // = UNIPHY:LINK_B

#define UNIPHY_AB 0x00 // = UNIPHY:DUAL_LINK

#define UNIPHY_C 0x11 // = UNIPHY_1:LINK_A

#define UNIPHY_D 0x21 // = UNIPHY_1:LINK_B

#define UNIPHY_CD 0x01 // = UNIPHY_1:DUAL_LINK

#define UNIPHY_E 0x12 // = UNIPHY_2:LINK_A

#define UNIPHY_F 0x22 // = UNIPHY_2:LINK_B

#define UNIPHY_EF 0x02 // = UNIPHY_2:DUAL_LINK

#define DACA 0x00

#define DACB 0x10

Given I have UNIPHY_E, still 12 and 02 are possibilities.

 

I think with the wrong transmitter, you get no output -- that was my problem.

 

But I tried c0ke's ATIFramebuffer.kext with transmitter 02 and encoder 01, and got garbled output

i.e. "The Green Apple"

 

I knew encoder was wrong, because I read from mucha

/* u can get this from Dmesg as above for R8XX architecture and above there is 06 Digital Encoder: DIG_1 > DIG_6*/

/* Encoder Bits 0-3 (DIG_ID : Digital) */

#define DIG_1 0x00 // = DIG_A

#define DIG_2 0x01 // = DIG_B

 

/* Encoder Bits 4-7 (DAC_ID : Analog) */

#define DAC 0x10

and as noted above

695 * - 2 DIG encoder blocks.

So there are only 2 digital encoder possibilities: 00 and 01

 

Now I had an earlier dmesg output in which I saw DIG_1 -- can't seem to find it but I believe I posted it when trying to discuss encoder/transmitter with kizwan (BTW kizwan you don't need my rom -- we only need that for sensid -- encoder/decoder is from dmesg)

 

With 2 possibilities we can even experiment.

 

My theory is you get the green apple when you have encoder wrong.

 

If this theory is correct, the following should patch work perfectly for me:

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

or maybe vga byte 13 is wrong -- Motmot has 11 which could mean 2 possibilities for analog

 

crazybirdy, I would try switching your encoder to opposite value (00 or 01) [EDIT - BAD IDEA see below & hjs89]

kizwan, I would make sure byte 14 is different for each output, just like mucha told you.

 

Now to test my theory...

[EDIT -- theory failed -- if I change either encoder or decoder I get no output. However something is still garbling the screen with vertical white lines -- still needs work.]

Link to comment
Share on other sites

The green apple is a fail with OpenGL. The same happens in Apple Market, Photoshop (if you don't disable it), etc. All the cards with M92 chipset 4330m, 4350 (desktop version) and 4570m have the same issue.

 

If the green apple is annoying you. You can disable the transparent toolbar. Then the apple will be black.

 

Thanks for telling me about that. I still want to get grey apple, will try it if it's possible :unsure:

 

my apple is green too ;)!

Is your vga port working together with your internal lcd?

 

Yes, my vga port is working with internal lcd as the picture #5, and the patch is here if you want to see it.

 

I need to test this, but I think mucha's guide is unclear about transmitter

 

Now to test my theory...

[EDIT -- theory failed -- encoder must be right and transmitter wrong.

I have to do some chores, then will update.]

 

Now I am thinking about if we can get any message from linux or not. Is that possible since mucha's link come from linux code?

http://lxr.free-electrons.com/source/drive...deon_encoders.c

Link to comment
Share on other sites

The green apple is a fail with OpenGL. The same happens in Apple Market, Photoshop (if you don't disable it), etc. All the cards with M92 chipset 4330m, 4350 (desktop version) and 4570m have the same issue.

I have green apple too (I'm lovin' it). If I can run OpenGL test with OpenGL Extension Viewer, does it means OpenGL working properly on my notebook?

openglextviewer01.jpg

openglextviewer02.jpg

Link to comment
Share on other sites

Thanks for telling me about that. I still want to get grey apple, will try it if it's possible :D

 

Yes, my vga port is working with internal lcd as the picture #5, and the patch is here if you want to see it.

 

Now I am thinking about if we can get any message from linux or not. Is that possible since mucha's link come from linux code?

http://lxr.free-electrons.com/source/drive...deon_encoders.c

I too am happy with a green apple. Actually its more attractive than the grey one, but I like green apples.

 

Did the patch I sent work c0ke?

 

I do not currently have Linux on my laptop -- no more partitions, but I do on my MSI desktop. I will look into it.

I may have a portable SUSE DVD I use for rescue lying around also.

 

Does anyone else have lots of vertical white lines on their internal LVDS? I think it might be the backlight feature and am going to try to turn it off.

Link to comment
Share on other sites

I do not currently have Linux on my laptop -- no more partitions, but I do on my MSI desktop. I will look into it.

I may have a portable SUSE DVD I use for rescue lying around also.

 

I tried ubuntu live CD download from website, and you needn't to install it, just try the live cd. http://www.ubuntu.com/desktop/get-ubuntu/download

 

And get the result of comand as [ dmesg | egrep "drm" > ~/Desktop/Encoder.txt ] as below.

 

[ 7.528400] [drm] Loading RV710 Microcode

[ 7.583699] [drm] ring test succeeded in 1 usecs

[ 7.583941] [drm] radeon: ib pool ready.

[ 7.584065] [drm] ib test succeeded in 0 usecs

[ 7.584069] [drm] Enabling audio support

[ 7.667456] [drm] Unknown TV standard; defaulting to NTSC

[ 7.667603] [drm] Radeon Display Connectors

[ 7.667606] [drm] Connector 0:

[ 7.667609] [drm] LVDS

[ 7.667613] [drm] DDC: 0x7f68 0x7f68 0x7f6c 0x7f6c 0x7f70 0x7f70 0x7f74 0x7f74

[ 7.667616] [drm] Encoders:

[ 7.667619] [drm] LCD1: INTERNAL_UNIPHY2

[ 7.667622] [drm] Connector 1:

[ 7.667624] [drm] VGA

[ 7.667628] [drm] DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c

[ 7.667630] [drm] Encoders:

[ 7.667633] [drm] CRT1: INTERNAL_KLDSCP_DAC1

[ 7.667636] [drm] Connector 2:

[ 7.667638] [drm] HDMI-A

[ 7.667641] [drm] HPD1

[ 7.667644] [drm] DDC: 0x7e50 0x7e50 0x7e54 0x7e54 0x7e58 0x7e58 0x7e5c 0x7e5c

[ 7.667647] [drm] Encoders:

[ 7.667649] [drm] DFP1: INTERNAL_UNIPHY

 

The original data come from Dong's RadeonHD is here.

 

[RadeonHD]: Listing modesetting layout:

[RadeonHD]: ATOM CRTC 1: tied to Atom PLL 1 and LUT A:

[RadeonHD]: Outputs: AtomOutput UniphyE (PANEL)[RadeonHD]:

[RadeonHD]: ATOM CRTC 2: tied to Atom PLL 2 and LUT B:

[RadeonHD]: Outputs: AtomOutput DACA (VGA 1)[RadeonHD]:

[RadeonHD]: Unused Outputs: AtomOutput UniphyA[RadeonHD]: ..none

 

Not found the encoder, only found transmitter. According to mucha's definition, the transmitter is different with each other like this. I will try to test it later.

 

Linux (not sure if the definition is the same as mucha's or not.)

UNIPHY2>LVDS  Transmitter = 0x02

DAC1 >VGA   Transmitter = 0x00 (use DAC1=DACA, not sure.)

UNIPHY >HDMI  Transmitter = 0x00

 

RadeonHD

UNIPHYE>LVDS  Transmitter = 0x12

DACA >VGA  Transmitter = 0x00

UNIPHYA>HDMI  Transmitter = 0x10

 

[Edit]

The test is failed, the output of LVDS is only one color as RGB.

 

UNIPHY2 could be one of these definitions.

#define UNIPHY_E 0x12 // = UNIPHY_2:LINK_A

#define UNIPHY_F 0x22 // = UNIPHY_2:LINK_B

#define UNIPHY_EF 0x02 // = UNIPHY_2:DUAL_LINK

 

UNIPHY could be one of these definitions.

#define UNIPHY_A 0x10 // = UNIPHY:LINK_A

#define UNIPHY_B 0x20 // = UNIPHY:LINK_B

#define UNIPHY_AB 0x00 // = UNIPHY:DUAL_LINK

 

Thanks Checcco provided boot options to add "radeon.modeset=0" to boot of Ubuntu live cd after [ F6 => ESC ], and you can get the file /var/log/Xorg.0.log. I get more information, still need to test.

post-61100-1300717150_thumb.jpg

Link to comment
Share on other sites

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

 

 

thanks!

 

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.

 

can you compile me a boot file with device id 9488? i not quit sure the process of compiling code.

Link to comment
Share on other sites

I tried ubuntu live CD download from website, and you needn't to install it, just try the live cd. http://www.ubuntu.com/desktop/get-ubuntu/download

Disabling KMS will give you more information

 

I've been working for 3 days with ubuntu and talking to the radeon drivers guys on irc to understand how to get that values and make my 5650 work...

 

Today I've had my first success...

 

To get more information from ubuntu you have to disable kms with radeon driver. https://wiki.archlinux.org/index.php/ATI#Disable_KMS

 

So you'll have xorg to take care about your graphic card. After ubuntu boots open the file /var/log/xorg.0.log

 

There you will find info about encoder and transmitter. Today I got my HDMI to work properly (I think this is the first success for a 5XXX series). I still can't get my LVDS but I'm still using NullCPUPM for various reasons.

 

In xorg log the terminology is a bit different from mucha's info(e.g. we have dig0->dig5 and not dig1->dig6).

 

Search for "dig" in the log.

 

For 5XXX series we only can have these combinations:

 

T  E
10 00
00 00
20 01
11 02
01 02
21 03
12 04
02 04
22 05

 

So once you get the encoder if it's 1,3 or 5 you're done, if it's 0,2 or 4 you'll have to test with two values for Transmitter. I got dig3 for my hdmi and 21 03 worked like a charm. :D

Link to comment
Share on other sites

can you compile me a boot file with device id 9488? i not quit sure the process of compiling code.

No problem. You want Kabyl's boot file or Chameleon 2 from trunk? Mucha's have HD4650 while yours is HD4670, so I will set Shrike framebuffer as default.

Link to comment
Share on other sites

kizwan; Chameleon 2 from trunk would be ok for me.

This is compressed file which contains:-

  1. boot file (Chameleon 2 from trunk - set default framebuffer to Vervet for HD4670 because it have 4 connections)
  2. ATIFramebuffer.kext (10.6.6 kext. Already patched according to your HD4670's VBIOS's dump - probably need to correct the Transmitter & Encoder values)
  3. OFFSET_IN_FILE_VERVET_32BIT.txt & OFFSET_IN_FILE_VERVET_64BIT.txt are only for your references. It show how I patched the ATIFramebuffer.kext.
  4. Readme.rtf (Contains the changes I did in ati.c file. For your reference only.)
  5. GPU_CON.TXT (Contains your HD4670's VBIOS's dump)
  6. Other files are only for your references. They're contains information I gathered when patching the ATIFramebuffer.kext. You don't need to do anything with them. It just for your information if you want to learn.

SXPS 1645's VBIOS's dump:-

ATOM BIOS Rom: 
SubsystemVendorID: 0x1028 SubsystemID: 0x02fe
IOBaseAddress: 0x0000
Filename: BR036993.002
BIOS Bootup Message: 
BR036993-002 M96 DDR3 128bit 400e/800m									  

Connector at index 0 type: VGA (1)
Connector's i2cid: 95
Connector at index 1 type: HDMI-A (11)
Connector's i2cid: 90
Connector at index 2 type: LVDS (7)
Connector's i2cid: 94
Connector at index 3 type: DisplayPort (10)
Connector's i2cid: 91

senseid = (i2cid And 0xF) + 1
VGA: (95 And 0xF) + 1 = 0x6
HDMI: (90 And 0xF) + 1 = 0x1
LVDS: (94 And 0xF) + 1 = 0x5
DP: (91 And 0xF) + 1 = 0x2

Dell_Studio_XPS_1645.zip

 

What you need to do:-

  • Make sure you already updated to 10.6.6.
  • Install the "boot" file & "ATIFramebuffer.kext" at they appropriate location.
  • The "ATIFramebuffer.kext" should be installed in "/System/Library/Extensions/" folder, replacing the existing one.
  • You don't need to edit ATI4600Controller.kext because it already contain your HD4670's device ID.
  • As I stated earlier, if after you have installed the patched "ATIFramebuffer.kext", you got no output on the monitor(s), you'll need to correct the Transmitter & Encoder values. Please refer to OFFSET_IN_FILE_VERVET_32BIT.txt or OFFSET_IN_FILE_VERVET_64BIT.txt files to know where these values are located.
  • Please setup remote connection so that you can connect remotely via VNC for troubleshooting. (optional)
  • Make sure boot with GraphicsEnabler=Yes

 

Good luck! :unsure:

Link to comment
Share on other sites

Disabling KMS will give you more information

To get more information from ubuntu you have to disable kms with radeon driver. https://wiki.archlinux.org/index.php/ATI#Disable_KMS

So you'll have xorg to take care about your graphic card. After ubuntu boots open the file /var/log/xorg.0.log

There you will find info about encoder and transmitter. Today I got my HDMI to work properly (I think this is the first success for a 5XXX series). I still can't get my LVDS but I'm still using NullCPUPM for various reasons.

 

Congratulations!

 

That's really a great news, I think you have installed ubuntu to hdd in order to modify some files. I will try not to install, maybe just modify the iso file and burn the live cd to get what i need.

 

 

[Edit]

@checcco

 

Thanks for your advice, that's great help to me, I will let you know the result of test if any.

Link to comment
Share on other sites

Congratulations!

 

That's really a great news, I think you have installed ubuntu to hdd in order to modify some files. I will try not to install, maybe just modify the iso file and burn the live cd to get what i need.

 

You don't need to install it...just add "radeon.modeset=0" without quotes to boot options

Link to comment
Share on other sites

 Share

×
×
  • Create New...