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

Hi guys, I've noticed one interesting thing about black screens and AppleCPUManagement.

 

Yesterday Maldon help me to improve my DSDT and now I'm able to remove NullCPUManagement and use the Apple's one, so I can sleep, use speedstep, etc.

 

Now I've tested my laptop without battery and the display has started to blink. Before I went to display options in System Preference and I noticed that when I decrease the brightness the display starts to blink and if I continua decreasing it finally it shutdown.

 

To prevent that "bug" I unchecked the option mitigate brightness when is using battery in economizer options. That hasn't fixed my problems with HDMI but maybe It could help to someone.

Link to comment
Share on other sites

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

 

HI

 

Do i need to do this for my m5730 or i should test each one of above combinations

 

can you post your patched framebuffer here i want to test our card are similar

Link to comment
Share on other sites

I finally managed to get QE/CI work with my ATI Mobility Radeon 4650 1Gb. I modified ati.c from "module_system" branch with my id (0x10029480) and Shrike modded framebuffer and now it works.

For those who wants to know some things:

 

- I don't have my vbios rom in /Extra (i just used it to check info about the bios, which are the same as Mucha)

- I haven't deleted or moved NullCPUPowerManagement nor Disabler kexts

- Kabyl's boot didn't work for me, even if i modded ati.c. I had to use module_system's ati.c

- I had to add my device id into ATI4600Controller kext

- I didn't have to add my device id into ATIRadeonX2000 kext because it was already there

 

Many, many, many thanks to everyone who made this possible for mobility cards!

 

p.s. Now i only have to manage with my sound (i'm using VoodooHDA but i cannot change the volume or mute) and with USB (mouse is recognized, but every USB stick o USB HDD i insert is not recognized). Hints are welcome!

Link to comment
Share on other sites

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! :D

 

 

thanks man! i gotta go try this now...

 

I finally managed to get QE/CI work with my ATI Mobility Radeon 4650 1Gb. I modified ati.c from "module_system" branch with my id (0x10029480) and Shrike modded framebuffer and now it works.

For those who wants to know some things:

 

- I don't have my vbios rom in /Extra (i just used it to check info about the bios, which are the same as Mucha)

- I haven't deleted or moved NullCPUPowerManagement nor Disabler kexts

- Kabyl's boot didn't work for me, even if i modded ati.c. I had to use module_system's ati.c

- I had to add my device id into ATI4600Controller kext

- I didn't have to add my device id into ATIRadeonX2000 kext because it was already there

 

Many, many, many thanks to everyone who made this possible for mobility cards!

 

p.s. Now i only have to manage with my sound (i'm using VoodooHDA but i cannot change the volume or mute) and with USB (mouse is recognized, but every USB stick o USB HDD i insert is not recognized). Hints are welcome!

 

dime try the multibeat usb rollback

Link to comment
Share on other sites

how can change boot file for me mobility 5730 0X68C0 and default frambuffer to Eulemur

 

i dont have xcode my speed is 4kB/sec cant download it

 

thanks

 

You can install Xcode from Snow Leopards Install DVD :D

Link to comment
Share on other sites

You can install Xcode from Snow Leopards Install DVD :D

 

excuse me i edited the post can you do it for me

 

thanks

 

You can install Xcode from Snow Leopards Install DVD :D

 

excuse me i edited the post can you do it for me

 

thanks

Link to comment
Share on other sites

I decided to apply this method to the Lion kexts in the hope of eliminating those annoying white lines.

 

The ConnectInfo strings have migrated to the ATIController executables.

 

I found the ConnectInfo for Shrike in ATI4600Controller at 1ff70 and 743f8

Gliff is right above it at 1ff40 and 743a8

 

I did not find Peregrine or Motmot -- did not look for all. [EDIT MotMot is in ATI4800Controller]

My laptop works as well with mod shrike as mod Peregrine, so I hope to work around this.

 

I connect nicely with mod Lion kext.

However, it does not recognize booting with Shrike bootloader or change in plist

(Still says ATY,Peregrine) and the colors are very odd.

 

Attached find an ioreg and modified ATI4600Controller.kext for Inspiron 1545

You will need ATISupport, ATIRadeonX2000, and ATIFramebuffer kexts available elsewhere

Link to comment
Share on other sites

Hello,

I have quite difficult to follow this guide, can anyone helpme?

I attach my ioreg and my video bios dump.

I'm using snow leopard 10.6.6 with Ati4600controller.kext, AtiSupport.kext and Atiframebuffer.kext from Lion and the last chameleon rc5.

files.zip

Link to comment
Share on other sites

Hello,

I have quite difficult to follow this guide, can anyone helpme?

I attach my ioreg and my video bios dump.

I'm using snow leopard 10.6.6 with Ati4600controller.kext, AtiSupport.kext and Atiframebuffer.kext from Lion and the last chameleon rc5.

Here is your radeondump

ATOM BIOS Rom: 
SubsystemVendorID: 0x1025 SubsystemID: 0x0212
IOBaseAddress: 0x5000
Filename: BR34582.001 
BIOS Bootup Message: 
BR34582.001 M92 DDR2 64bit 680e/500m										

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

So your sensid is 7 for LVDS and 1 for VGA

 

Use the 10.6.6 kexts

Download kizwan's ATIFramebuffer.kext posted above

open the binary

Peregrine is at offset 37278 and at 10f60

Edit the last digit of the each to your sensid

 

If you need more detailed directions, reread mucha's guide until it makes sense.

Link to comment
Share on other sites

I decided to apply this method to the Lion kexts in the hope of eliminating those annoying white lines.

 

The ConnectInfo strings have migrated to the ATIController executables.

 

I found the ConnectInfo for Shrike in ATI4600Controller at 1ff70 and 743f8

Gliff is right above it at 1ff40 and 743a8

 

I did not find Peregrine or Motmot -- did not look for all. [EDIT MotMot is in ATI4800Controller]

My laptop works as well with mod shrike as mod Peregrine, so I hope to work around this.

 

I connect nicely with mod Lion kext.

However, it does not recognize booting with Shrike bootloader or change in plist

(Still says ATY,Peregrine) and the colors are very odd.

 

Attached find an ioreg and modified ATI4600Controller.kext for Inspiron 1545

You will need ATISupport, ATIRadeonX2000, and ATIFramebuffer kexts available elsewhere

 

Finally is your LVDS display working? Sorry, I didn't understand it well.

 

It's very strange, are you completely sure that you are injecting the correct Fb? When I was using Lion's kext the framebuffer was recognized like ATY,RadeonFramebuffer, and looking in IORegestry I could see some stuff about the fb that I was injecting.

Link to comment
Share on other sites

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! :D

 

well i installed your files, but when i boot up my laptop display has a white haze or sometimes a green haze over it. does this mean i need to hex edit a file? it shows full resolutions and i got qe/ci. no refresh rate change though. the vga output works perfect, when i plug in my hdmi cord it makes my laptop display jarbled up. if you have the time could you help me out? heh i am so close... i think i need to figure out the encoder and transmit stuff.

Link to comment
Share on other sites

well i installed your files, but when i boot up my laptop display has a white haze or sometimes a green haze over it. does this mean i need to hex edit a file? it shows full resolutions and i got qe/ci. no refresh rate change though. the vga output works perfect, when i plug in my hdmi cord it makes my laptop display jarbled up. if you have the time could you help me out? heh i am so close... i think i need to figure out the encoder and transmit stuff.

This is similiar to my laptop. The white haze consists of vertical lines. I have observed it becomes less if I load a modified video rom overclocked about 20%, but I don't want to do that regularly.

 

I think the issue may be that Apple phased out ATI4500Controller.kext, which would really be more appropriate for our chips. I am working on patching the 10.6.2 FB to see if that works better, but its a little different. The ConnectInfo table is 20 bytes per connection rather than 16, and I have not figured out byte 16. Hope to get you something to test soon. Biggest limiting factor is I need a test platform -- have not installed OS X for years, I just clone existing installs -- but I found my retail disk and an unused USB drive, so we will have one soon.

Link to comment
Share on other sites

Guys, I've tried again with different values... I've found no way to get VGA and LVDS to work...

 

I've tried every combination of values...and different bootloaders..So i think there must be something else... And I think we only can find it in DSDT... You guys are using DSDT.aml? Please reply and attach it... I'm asking so beacuse in my DSDT the LCD1 part (lvds panel) is very "strange"...So transmitter, encoder and senseid may not be enough and something must be tweaked there...

Link to comment
Share on other sites

I don't know what you mean by white lines, but today I noticed some weirdness. The colors are not perfect. This also happens with the window titlebars. See the reflection and window shadow.

Your pictures look like minor problems. The white lines are very annoying and blurr everything.

 

I would try adjusting the color balance in the display pref pane

 

Guys, I've tried again with different values... I've found no way to get VGA and LVDS to work...

 

I've tried every combination of values...and different bootloaders..So i think there must be something else... And I think we only can find it in DSDT... You guys are using DSDT.aml? Please reply and attach it... I'm asking so beacuse in my DSDT the LCD1 part (lvds panel) is very "strange"...So transmitter, encoder and senseid may not be enough and something must be tweaked there...

I thought that for a long time with my DSDT too, after all Nvidia and Intel laptops use a different DSDT hack.

Mine actually boots functionally with no DSDT at all.

 

If you have no output on LVDS I would recheck your encoder/decoder/sensid and I would try different FB.

Link to comment
Share on other sites

Guys, I've tried again with different values... I've found no way to get VGA and LVDS to work...

 

I've tried every combination of values...and different bootloaders..So i think there must be something else... And I think we only can find it in DSDT... You guys are using DSDT.aml? Please reply and attach it... I'm asking so beacuse in my DSDT the LCD1 part (lvds panel) is very "strange"...So transmitter, encoder and senseid may not be enough and something must be tweaked there...

 

Checcco 10.7 files which I'm going to investigate have different values, because as we have tested VGA port works in 10.7 kexts work so i tried finding the hex values but code is in a different position in ATI5000Controller, the code is there but different values, i found a few but don't know if it's eulemur or not.

 

 

I have tested all combinations of the code for 10.6.6 kexts, LVDS and VGA just ain't happening. My guess is LVDS is supported but full LVDS support in 10.6.6 kexts for some mobility 5000 chipsets. some combinations i get a picture then it full resolution then screen goes black. If we can modify ati5000controller we will be set for both future support in 10.6.6 and 10.7.

Link to comment
Share on other sites

well i installed your files, but when i boot up my laptop display has a white haze or sometimes a green haze over it. does this mean i need to hex edit a file? it shows full resolutions and i got qe/ci. no refresh rate change though. the vga output works perfect, when i plug in my hdmi cord it makes my laptop display jarbled up. if you have the time could you help me out? heh i am so close... i think i need to figure out the encoder and transmit stuff.

Please post the RadeonHD dump. Use 10.6 RadeonHD (10/20/2009 update). Yeah, installed the 10/20/2009 update.

 

When using RadeonHD, the monitor is not viewable. So you'll need to setup remote connection:-

  1. Boot with -x -v
  2. Setup remote connection (VNC) in System Preferences (in Sharing). Don't forget to set the VNC password.
  3. Test the remote connection.
  4. Reboot your computer (boot without any flags) (Correction - boot to 32bit mode: arch=i386).
  5. Connect remotely from other computer via VNC.
  6. In the "10.6 RadeonHD (10/20/2009 update)" package, there is a command line utility called RadeonDump:-

    1. Open terminal.
    2. Enter "sudo -s" & then enter password when asked.
    3. Change directory (cd) to where RadeonDump located.
    4. Enter "./RadeonDump > ~/Desktop/Encoder.txt"

[*]Post the Encoder.txt here.

Link to comment
Share on other sites

Guys, I've tried again with different values... I've found no way to get VGA and LVDS to work...

 

I've tried every combination of values...and different bootloaders..So i think there must be something else... And I think we only can find it in DSDT... You guys are using DSDT.aml? Please reply and attach it... I'm asking so beacuse in my DSDT the LCD1 part (lvds panel) is very "strange"...So transmitter, encoder and senseid may not be enough and something must be tweaked there...

 

My dsdt is as attached. Use kabyl's boot, here is the patch and pictures fyi.

 

dsdt.aml.zip

Link to comment
Share on other sites

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

 

i tried all of them with 5730 but no result on LVDS didn't test for VGA OR HDMI

Link to comment
Share on other sites

i tried all of them with 5730 but no result on LVDS didn't test for VGA OR HDMI

 

I have found Eulemur code inside 10.7 kext ATI5000Controller, I'm going to patch this to work and see if i can get all ports running, will report back soon. They have modified it a little.

 

Patched 10.7 ATI5000Controller

VGA working 10 00 00 00 10 00 00 00 00 00 00 00 00 00 02 08

Display-type CRT

Link to comment
Share on other sites

I have found Eulemur code inside 10.7 kext ATI5000Controller, I'm going to patch this to work and see if i can get all ports running, will report back soon. They have modified it a little.

 

Patched 10.7 ATI5000Controller

VGA working 10 00 00 00 10 00 00 00 00 00 00 00 00 00 02 08

Display-type CRT

 

Isn't your VGA on DAC encoder?

Link to comment
Share on other sites

Isn't your VGA on DAC encoder?

 

well still testing what variations i can do, learnt how to switch lvds back on lol, fiddling with numbers can make lvds off and crt on, so still testing. will report back soon :)

 

 

i'm running 10.6.7 10j868, and 10.7 files.

 

10.6.7 updated ATI5000Controller, ATISupport, ATIFramebuffer to v1.6.26.31

Link to comment
Share on other sites

well still testing what variations i can do, learnt how to switch lvds back on lol, fiddling with numbers can make lvds off and crt on, so still testing. will report back soon :)

 

 

i'm running 10.6.7 10j868, and 10.7 files.

 

10.6.7 updated ATI5000Controller, ATISupport, ATIFramebuffer to v1.6.26.31

 

10.6.7 has personalities moved to ATI5000 too? why don't we try to patch this?

Link to comment
Share on other sites

 Share

×
×
  • Create New...