Jump to content

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


  • Please log in to reply
563 replies to this topic

#401
wmarsh

wmarsh

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 900 posts
New version of bootloader posted.

This one does initialize video system for me with QE using 10.7 kexts and Flicker.
Still has distorted colors. Will test other framebuffers, etc tommorrow.

[EDIT -- found another bug, back soon]

#402
kizwan

kizwan

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,422 posts
This is "SPWG Notebook Panel Specification" document. It contain set of standard LCD panels specification.

#403
wmarsh

wmarsh

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 900 posts

This is "SPWG Notebook Panel Specification" document. It contain set of standard LCD panels specification.

Thank you kizwan.

Your document shows timings for higher resolutions on a single link.

This confirms what I have suspected, which is that while Apple may have achieved higher resolutions with a dual link (someone can take apart their brand new MBP and confirm this) other manufacturers may have taken a different tack. Specifically, there is an LDI standard and an OpenLDI standard which can also achieve higher resolutions.

http://en.wikipedia....ntial_signaling

My testing shows whenever I uncomment the dual link lines in ati.c, I get a black screen (with a functional system) so the video does not enable.

You have been contacting more people than I have and perhaps also have feedback.

Now I would also note the new property "LinkType" which the MBPs inject as 00 00 00 00

It is entirely possible changing this property will change the link type. And while unreleased prototypes may have utilized this, I am not aware of any real Macs that have -- will look at more ioregs.

I have tested 01 00 00 00 and 02 00 00 00 with no effect.

I note in my Xorg.0.log, I see "[ 133.343] (II) RADEON(0): Output: LVDS, Detected Monitor Type: 2"
I am wondering if this varies with you and mucha and is perhaps a clue.

v4 of Loader posted for testing, this is based on trunk.

#404
sydlix

sydlix

    InsanelyMac Protégé

  • Members
  • Pip
  • 45 posts
wmarsh check out the imac 10,1 ioreg I posted in the other thread since there are different interesting link format and stuff lines, you may find useful to try it. I also recommend to use less lines possible since with the first version of modified trunk ati.c you provided I actually got one totally working boot, as you already know. I had the dual link flag (the second one into the framebuffer, not the one into device), set to 0x01, and had just placed again the dsdt after having removed it. Unfortunately I cannot replicate, but if you are right maybe the framebuffer is using dual link and we need single, play with the link type and dual link flags, put them to 0x00 and try the ones of the imac ioreg.

Let me know.

#405
wmarsh

wmarsh

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 900 posts

wmarsh check out the imac 10,1 ioreg I posted in the other thread since there are different interesting link format and stuff lines, you may find useful to try it. I also recommend to use less lines possible since with the first version of modified trunk ati.c you provided I actually got one totally working boot, as you already know. I had the dual link flag (the second one into the framebuffer, not the one into device), set to 0x01, and had just placed again the dsdt after having removed it. Unfortunately I cannot replicate, but if you are right maybe the framebuffer is using dual link and we need single, play with the link type and dual link flags, put them to 0x00 and try the ones of the imac ioreg.

Let me know.

I have started commenting out lines that prove unnecessary or unhelpful.
And yes I did comment out the dual link -- Thats what gives me black screen when previously I had a fully functional but blurry screen
The code is posted so others can change it and help figure this out.

I happened to catch dong on IRC today

marsh: hi dong, do you know anything about lvds resolution support in macs?
dong: not really, I only know about linux source
wmarsh:I know you have been following our thread. I am trying to mod Graphics Enabler to support higher resolutions. Mac seems to use dual link, but am wondering if you have seen anything about LDI standard
dong:first time heard of this So you only have limited resolutions available?
[wmarsh:ok, well we will keep working. Issue is we can get QE up to 1350x768. Higher than that we get function system with blurry screen
wmarsh:new MBP use dual link and we can inject this property, but gives black screen
wmarsh:There is a LinkType property undocumented
dong:If the apple driver only support dual link, then no luck.
wmarsh:Maybe, but why the property if no function? Unproduced prototypes? Who knows? I am searching ioregs to see if I can learn
dong:someone may need look into the binary driver to find out
wmarsh:Thats how we found the ConnectInfo strings to modify
dong:linkType and dualLink seem to be two separate properties
wmarsh:Exactly
wmarsh:I just realized iMacs also use Radeons and LVDS, so have more ioregs to examine
wmarsh:IMac 7 I just see uses LinkFormat (another undocumented setting) 01 00 00 00, different from new MBP
wmarsh:Maybe thats it for LDI
dong:lol, I have no idea at the moment
wmarsh:I'm glad to talk to you -- have enjoyed your RadeonHD for years
wmarsh:If you get any ideas, send me a PM
dong:that's good. I just added two-head support to my X1400 mobility.
wmarsh:Nice, did not see that you posted it yet but I saw you had it coming
dong:Is thinking of port Radeon, but not sure how long will it take
[wmarsh:Do you have QE with X1400?
dong:QE for X1400 is simple, just add DevID to ATIRadeonX1000.kext
wmarsh:Not so simple for HD4330. I have it -- my solution works for most but not for me as my resolution is 1400x900
wmarsh:I have QE with blurry screen, or clear screen with your kext
dong:yeah. And you have to use ATIFramebuffer for QE
dong:I did not figure out how to cooperate my driver with those accelartion drivers
wmarsh:Right, patch is easy once you figure it out. Lion and new MBP kext have moved FB to the controller
wmarsh:What we did it hexedit the table that tells FB where to connect
dong:hm, not easy to figure all the variables there
[wmarsh:IMac 8,1 uses LinkFormat 01 00 00 00 too. Might be on to something.
wmarsh:Actually, we have it pretty well down. Only issue is higher resolutions
wmarsh:Multiple 5xxx people have done it. I helped a 3xxx person yesterday
dong:even 3xxxx works now? That's great.
wmarsh:Patch was easier -- fewer encoders. bcc9 wrote a program to decode AtomBios. Some people like me have a locked bios and have to use your old tool to extract it as gpu-z will not.
dong:linkType is coming from EDID
dong:EDID offset 0x4F, 4 bits
wmarsh:Well, one would think it should, but we can inject whatever we want, so maybe no code for that
dong:linkFormat EDID offset 0x50, 4 bits
dong:next 4 bits are pixelFormat
wmarsh:Let me check mine -- have it in file -- but it is recognized as 00 00 00 00 even with EDID correct
wmarsh:Must not be picked up, mine is all 01 in 0x4f, 0x50
dong:oh, these may only apply to apple's own display
wmarsh:You may have solved our problem. Let me mod my ati.c to inject the correct and see if it works
dong:cause these funciton are named as getAppleLinkType, getAppleLinkFormat as such
wmarsh:Yes but could they be reading it from EFI not EDID, so thats why its not picked up?
dong:and there is a function isAppleDisplay
dong:Apple's display has EDID offset 8 = 6, offset 9 = 0x10
wmarsh:Its beyond my ability, but maybe Chameleon ati.c could read and inject correct value?
dong:ati.c handle with EDID?
wmarsh:No. No label in code containing edid
dong:any label of link?
wmarsh:Wasn't before -- we just added them. 2 days ago. Thats how I discovered dual link gives black screen.
wmarsh:I got new MacBook ioreg, added 12 labels. Mucha found others on second go. Compiles clean and values inject.
wmarsh:We figured dual link would fix the problem, but it gave black screen
wmarsh:I just turned on irc while I was going to go through more ioregs. Brainstorming is helpful.
dong:ok, u r right. The driver obtain those values from IOReg first. Only read it from EDID after that failed.
wmarsh:May be an issue with reading edid. I have mine in /System/library/Displays/Overides
dong:That only apply to IODisplay. The FB driver trys to read EDID from the monitor via I2C directly.
wmarsh:I have ioreg from when screen failed was black; don't see it -- but its not ioreg -l; might need to get another
dong:The driver will not read linkType from EDID if it has non-zero values at offset 0x48, 49, 4A, 4C, or if 0x4B != 1, or 0x4D != 6, or 0x4E != 0x10
dong:the last two should be checking if this is an Apple display
[wmarsh:Thats it then, but if we inject correct value we should be ok
dong:yes, I guess there should be a general one that applys to all dispalys, otherwise only Apple's display can be used on genuine Mac machines

Unfortunately his idea of injecting LinkType and LinkFormat from EDID did not change things for me at all.

Neither did trying to inject LinkFormat 01 00 00 00 as in iMac 7 and iMac 8

#406
sydlix

sydlix

    InsanelyMac Protégé

  • Members
  • Pip
  • 45 posts

I have started commenting out lines that prove unnecessary or unhelpful.
And yes I did comment out the dual link -- Thats what gives me black screen when previously I had a fully functional but blurry screen
The code is posted so others can change it and help figure this out.

I happened to catch dong on IRC today

Unfortunately his idea of injecting LinkType and LinkFormat from EDID did not change things for me at all.

Neither did trying to inject LinkFormat 01 00 00 00 as in iMac 7 and iMac 8

wmarsh I think you are understimating something: I actually booted once with the drivers fully loaded, perfect colors and 1920x1080 resolution on LVDS.

I was using 10.6.7 normal kexts, Shrike framebuffer with LVDS set as [02 00 00 00 40 00 00 00 09 01 00 00 02 00 00 05].

Stupid me I rebooted to check again, I can't replicate. If I remember correctly I was testing your first modified trunk ati.c. First of all I compiled the boot file, booted into SL, placed kexts with modified FB and boot file, repaired, rebooted. As usual, vga started and LVDS not. When I went to display config and selected detect displays, I got the LVDS to initialized with a BACKLIGHTED black screen.

Now, this usually happens all the time. The LVDS is recognized in IOREG, Sysprofiler, but it ain't working. At boot is not initialized and I need to do the detect displays thing. Then is detected. black with backlight on.

IMPORTANT: WITH MY NOT WORKING I CAN SELECT RESOLUTION BUT NO REFRESH RATE IS DETECTED/SELECTABLE. This may lead to something.

However, I decided to edit the dual link value to 0x01 instead 0x02. But before I wanted to try your stock version without DSDT. So I delete the dsdt and boot again. SAME. Ok then I put again the dsdt into place along with the new 0x01 boot file. I reboot and my LVDS turns on together with the vga...

But why this actually happened only once? Dunno. Investigating. I need your first version ati.c, please, with also link format options an that stuff.

#407
wmarsh

wmarsh

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 900 posts

wmarsh I think you are understimating something: I actually booted once with the drivers fully loaded, perfect colors and 1920x1080 resolution on LVDS.

I was using 10.6.7 normal kexts, Shrike framebuffer with LVDS set as [02 00 00 00 40 00 00 00 09 01 00 00 02 00 00 05].

Stupid me I rebooted to check again, I can't replicate. If I remember correctly I was testing your first modified trunk ati.c. First of all I compiled the boot file, booted into SL, placed kexts with modified FB and boot file, repaired, rebooted. As usual, vga started and LVDS not. When I went to display config and selected detect displays, I got the LVDS to initialized with a BACKLIGHTED black screen.

Now, this usually happens all the time. The LVDS is recognized in IOREG, Sysprofiler, but it ain't working. At boot is not initialized and I need to do the detect displays thing. Then is detected. black with backlight on.

IMPORTANT: WITH MY NOT WORKING I CAN SELECT RESOLUTION BUT NO REFRESH RATE IS DETECTED/SELECTABLE. This may lead to something.

However, I decided to edit the dual link value to 0x01 instead 0x02. But before I wanted to try your stock version without DSDT. So I delete the dsdt and boot again. SAME. Ok then I put again the dsdt into place along with the new 0x01 boot file. I reboot and my LVDS turns on together with the vga...

But why this actually happened only once? Dunno. Investigating. I need your first version ati.c, please, with also link format options an that stuff.

Here's version 0.1. Nothing ever disappears from the internet. If it works, we will bag the others. v3 and 4 are based on v1 -- v2 was mucha's -- and you could start with those and comment out lines.

You might try injecting your EDID per this post.
http://www.insanelym...howtopic=208410
I set this up a while ago to eliminate one possible problem.

#408
wmarsh

wmarsh

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 900 posts

As usual, vga started and LVDS not. When I went to display config and selected detect displays, I got the LVDS to initialized with a BACKLIGHTED black screen.

Now, this usually happens all the time. The LVDS is recognized in IOREG, Sysprofiler, but it ain't working. At boot is not initialized and I need to do the detect displays thing. Then is detected. black with backlight on.

IMPORTANT: WITH MY NOT WORKING I CAN SELECT RESOLUTION BUT NO REFRESH RATE IS DETECTED/SELECTABLE. This may lead to something.

However, I decided to edit the dual link value to 0x01 instead 0x02. But before I wanted to try your stock version without DSDT. So I delete the dsdt and boot again. SAME. Ok then I put again the dsdt into place along with the new 0x01 boot file. I reboot and my LVDS turns on together with the vga...

But why this actually happened only once? Dunno. Investigating. I need your first version ati.c, please, with also link format options an that stuff.

in v5 (not released -- with dong's suggestions included) IF I switch display's with bios prior to booting, I can repeat what you have. VGA works. LVDS recognized, doesn't work. If I detect displays everything goes black.

#409
wmarsh

wmarsh

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 900 posts

in v5 (not released -- with dong's suggestions included) IF I switch display's with bios prior to booting, I can repeat what you have. VGA works. LVDS recognized, doesn't work. If I detect displays everything goes black.

Looking at above ioreg, I note a number of null values under VID@0 which ought to be read from EDID. I think LVDS fails to initialize because EDID is not being read during FB startup. This fits with dong's conversation above where he said:

dong:ok, u r right. The driver obtain those values from IOReg first. Only read it from EDID after that failed.
wmarsh:May be an issue with reading edid. I have mine in /System/library/Displays/Overides
dong:That only apply to IODisplay. The FB driver trys to read EDID from the monitor via I2C directly.
wmarsh:I have ioreg from when screen failed was black; don't see it -- but its not ioreg -l; might need to get another
dong:The driver will not read linkType from EDID if it has non-zero values at offset 0x48, 49, 4A, 4C, or if 0x4B != 1, or 0x4D != 6, or 0x4E != 0x10
dong:the last two should be checking if this is an Apple display

Now changing the code is impossible.

But, we can change what the code reads.

Chameleon can inject the EDID. I don't remember how, but I remember it can and can figure it out.

I have always loaded the correct EDID.

But we could load some other EDID. Why would we want to?

The bytes dong referred to (0x48-0x4e) are 72-78. These are after the descriptor block so we should be able to change them without functional effect. And we can change the last byte (0x7f) 127 to make the checksum correct.
http://en.wikipedia....tification_data

So dong said we need for 0x48-0x4E
00 00 00 01 00 06 10
total is 0x17 = 23
mine reads:
2F 26 40 A0 60 84 1A
total is 0x233 = 563

the difference is 540 = 0x21c. Last 2 digits for checksum is 0x1c

My last byte is 0xbc

Adding these for new last bye 0x1c + 0xbc = 0xd8

So instead of my actual EDID
00FFFFFF FFFFFF00 30E40C02 00000000
00130103 90231378 0A1BE59E 59509826
0E505400 00000101 01010101 01010101
01010101 01012F26 40A06084 1A303020 
350059C2 1000001B 2F2640A0 60841A30
30203500 59C21000 001B0000 00FE004D
54364B47 80313536 5744310A 00000000
00000000 00000000 0002010A 202000BC
I could inject with Chameleon
00FFFFFF FFFFFF00 30E40C02 00000000
00130103 90231378 0A1BE59E 59509826
0E505400 00000101 01010101 01010101
01010101 01012F26 40A06084 1A303020 
350059C2 1000001B 00000001 00061030
30203500 59C21000 001B0000 00FE004D
54364B47 80313536 5744310A 00000000
00000000 00000000 0002010A 202000d8
or in base64 (which I recall Chameleon wants)
AP///////wAw5AwCAAAAAAATAQOQIxN4ChvlnllQmCYOUFQAAAABAQEBAQEBAQEBAQEBAQEBLyZA
oGCEGjAwIDUAWcIQAAAbAAAAAQAGEDAwIDUAWcIQAAAbAAAA/gBNVDZLR4AxNTZXRDEKAAAAAAAA
AAAAAAAAAAIBCiAgANg=
Or maybe we can inject a modified EDID with DSDT?

We are not the 1st to consider this. from the old ATIFramebuffer thread

Yes, I see your monitor really have EDID EEPROM accessible by i2c bus. So RadeonDump is not perfect trying to get it.
As well as ATI_Hypoprion.
You can rewrite IOGraphics (yes, sources at my thread is compilable and working) to get EDID other way.
Now it calls
framebuffer->getEDID(). But you can write here other procedure. Simplest way is injecting EDID by info.plist.
For a what?
IOGraphics needs EDID for powermanagement purpose. Framebuffer needs EDID to switch resolution.
But we can't influence on Hypoprion.
Did you see posts by Lebidou? He successfully inject LVDS,EDID using key ATY,EFIDisplay = LVDS.

and

I've done more searching on my side, and as I thought, building a fake EDID with AtomBios informations gives enough information to the "official" framebuffer.
I've modified ATILead to dump these infos (using AtomDis code), build an EDID string and inject it as "LVDS,EDID".
However as there is no color information it brokes ColorSync.

Can't be a workaround for non DDC internal panels ? I've seen something in the xf86 radeon hd driver about fake edid and the sLVDSInfos structure, so maybe it is what it uses to.

I'll make the code nicer and post it if you want to.

and here
http://www.insanelym...p...91042&st=74
Any thoughts?

#410
sydlix

sydlix

    InsanelyMac Protégé

  • Members
  • Pip
  • 45 posts
I don't know if EDID is the problem but take this in account:

Display settings like resolution and refresh rate for the working screens (vga, hdmi) are remembered by the system.

LVDS starts off, it's resolution settings are remembered when I detect displays but it shows:

1) no refresh rate setting
2) brightness does not work, is not remembered.

This must mean someting.

#411
wmarsh

wmarsh

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 900 posts

I don't know if EDID is the problem but take this in account:

Display settings like resolution and refresh rate for the working screens (vga, hdmi) are remembered by the system.

LVDS starts off, it's resolution settings are remembered when I detect displays but it shows:

1) no refresh rate setting
2) brightness does not work, is not remembered.

This must mean someting.

I think EDID is needed at 2 stages

dong:ok, u r right. The driver obtain those values from IOReg first. Only read it from EDID after that failed.
wmarsh:May be an issue with reading edid. I have mine in /System/library/Displays/Overides
dong:That only apply to IODisplay. The FB driver trys to read EDID from the monitor via I2C directly.

Could well be IODisplay is working for us and FB driver is not reading EDID.

Tonight or tommorrow I will mod ati.c to inject above modified EDID as lebideau did. Will see what happens.
A more generalized solution should be possible but is beyond my rudimentary c skills.

#412
kizwan

kizwan

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,422 posts

I don't know if EDID is the problem but take this in account:

Display settings like resolution and refresh rate for the working screens (vga, hdmi) are remembered by the system.

LVDS starts off, it's resolution settings are remembered when I detect displays but it shows:

1) no refresh rate setting
2) brightness does not work, is not remembered.

This must mean someting.

1) Refresh rate is declared in EDID (Feature Support). If there is no refresh rate setting, EDID is not properly detected.
2) This is common issue on non-Apple computer with OS X. I just add PNLF device in DSDT to get brightness support but it's not perfect. Brightness will reset to max after reboot. There are still a couple of solutions I haven't look into.

As long as driver can detect the monitor, you can override EDID using CharredPC's display override method. However CharredPC use generic monitor vendor & device IDs in the guide (these IDs used by OS X when it failed to properly recognized the monitor connected to it). You can find out how to obtain your monitor vendor & device IDs by referring to "Vesa Enhanced Extended Display Identification Data Standard" document. I also has explained a little bit here.

#413
sydlix

sydlix

    InsanelyMac Protégé

  • Members
  • Pip
  • 45 posts
Can you provide the override file with this log from moninfo?

Here you go, I am ready to test it:

http://dl.dropbox.co...led_moninfo.txt

#414
wmarsh

wmarsh

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 900 posts

As long as driver can detect the monitor, you can override EDID using CharredPC's display override method. However CharredPC use generic monitor vendor & device IDs in the guide (these IDs used by OS X when it failed to properly recognized the monitor connected to it). You can find out how to obtain your monitor vendor & device IDs by referring to "Vesa Enhanced Extended Display Identification Data Standard" document. I also has explained a little bit here.

Kizwan, I know you know alot about EDID injection.

And I do have EDID in /System/Library/Display/Overrides, both as default and correct values.

dong:ok, u r right. The driver obtain those values from IOReg first. Only read it from EDID after that failed.
wmarsh:May be an issue with reading edid. I have mine in /System/library/Displays/Overides
dong:That only apply to IODisplay. The FB driver trys to read EDID from the monitor via I2C directly.

What dong said is IODisplay may work even if FB driver did not get EDID as it needs.

I think making an injector is worth the small time it takes to try this fix.

#415
sydlix

sydlix

    InsanelyMac Protégé

  • Members
  • Pip
  • 45 posts
I can confirm that the Override method does nothing more than the system was doing before. Indeed I got the EDID from IORegexplorer, because it was already loaded, adding the plist just loaded the same values, still screen OFF at boot and black with backlight after detection.

Hope wmarsh can provide something better.

#416
kizwan

kizwan

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,422 posts

And I do have EDID in /System/Library/Display/Overrides, both as default and correct values.

What dong said is IODisplay may work even if FB driver did not get EDID as it needs.

I think making an injector is worth the small time it takes to try this fix.

I thought you're going to try to inject modified EDID? It's doesn't take a lot of time to prepare the display override file.

#417
wmarsh

wmarsh

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 900 posts
Method does not work.

If you look at attached ioreg at VID@0, you will see LinkFormat, LinkType as 0 and PixelFormat null despite being injected as 30, 30, 20 and despite modified EDID injected at @0,LVDS,EDID

Which means FB reads EDID from i2c, and fails to initialize these values. And we cannot trick it by inserting false EDID in EFI.

Now back in the 8 bit days when I did assembly, we could just hexedit no-ops into the section dong referred to: "isAppleDisplay"

dong:The driver will not read linkType from EDID if it has non-zero values at offset 0x48, 49, 4A, 4C, or if 0x4B != 1, or 0x4D != 6, or 0x4E != 0x10
dong:the last two should be checking if this is an Apple display

What could work?

1)modifying the EDID on the EPROM on the LCD
2)disabling the isAppleDisplay section by hex editing it with the modern equivalent of no-ops
3)Disassembling the Framebuffer, disabling this section, then reassembling it


I thought you're going to try to inject modified EDID? It's doesn't take a lot of time to prepare the display override file.

Its been there both in correct values and default ones for a very long time. If it was that simple I would have my system fully functional.

You forget, kizwan, that I was the one who suggested to bcc9 that this method could be used to enable LVDS, and so I've had a head start on all of you.

#418
kizwan

kizwan

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 1,422 posts

Its been there both in correct values and default ones for a very long time. If it was that simple I would have my system fully functional.

You forget, kizwan, that I was the one who suggested to bcc9 that this method could be used to enable LVDS, and so I've had a head start on all of you.

I didn't realize there's a race involved. I never did said fixing EDID will make your LVDS fully working. It seems you unable to read & understand my post carefully.

#419
Luke1995

Luke1995

    InsanelyMac Protégé

  • Members
  • Pip
  • 23 posts

WOORRKS!!!!!!!!!!!!!!!!!

Finally QE/CI was enabled on my 4570m!!!!!!!!!!! I can't believe it yet ;) :P

- Translucent Toolbar
- Wavy effect on Dashboard
- DVD player loads
- Front Row works

But it's not perfect for the moment.

- As you can see my apple at the up-left corner it's green. The same happens with HD 4350 (desktop version of this chipset).
- Internal Display it's black, but HDMI port works, this might be improved editing the framebuffer.
- The resolutions of my HDMI display and my LVDS display are switched, but I can fix it with the SwitchRes Tool :P, maybe when the LVDS is correctly working it'll be fixed.

About how it worked:

- You must be in Snow Leopard 10.6.6
- You must add your deviceID to ATI4600Controller.kext, mine is 0x95531002, it can variate in each case.
- Edit ATIFramebuffer.kext with modified Vervet framebuffer, maybe others will work, but now is which I'm using now.
- Bootloader with ATI injector configured with Vervet Fb. You can use Kabyl's boot if it works with your graphic card or modify other bootloader.

I'll do a how-to after do more test to fix the issues.

One screenshoot of my desktop, you can see my system profile with my card injected, DVD player working and translucent bar :P


Sorry, the system is in Spanish but I think that you'll understand the important things hehe



Hello Kizwan and hjs89 ;)

Loving the work you're putting in on this

I have the same card as you, (Dev. ID 0x9553), and was wondering if you could send me the modified files that you used to enable QE and CI.

I tried to patch the connection table, but it failed and I had to restore the original files.

Many Thanks! :D

#420
crazybirdy

crazybirdy

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 123 posts
  • Gender:Male

New version of bootloader posted.

This one does initialize video system for me with QE using 10.7 kexts and Flicker.
Still has distorted colors. Will test other framebuffers, etc tommorrow.

[EDIT -- found another bug, back soon]


Today, I test on Lion 11A419, modify ATI4600Controller.kext with Shrike and use dsdt.aml. Get the same result.
The dsdt is base on the ati.c from trunk boot and the follow items need to be modified. I get data after trunk boot and " iorg -l -w0 > iorg.txt".

"model",
Buffer (0x1C)
{
"ATI Mobility Radeon HD 4330"
},
"VRAM,totalsize",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x20 /* 0x10=256MB, 0x20=512MB, 0x40=1024MB */
},
"assigned-addresses",
Buffer (0x50)
{
/* 0000 */ 0x10, 0x00, 0x01, 0xC2, 0x00, 0x00, 0x00, 0x00,
......................................
},
"ATY,bin_image",
Buffer (0xF800)
{
/* 0000 */ 0x55, 0xAA, 0x7C, 0xE9, 0x21, 0x02, 0x00, 0x00,
......................................
}


Odd colors is the same as before, i don't know how to solve it. BTW, the dsdt works fine on 10.6.7 with QE/CI.

after a normal start.
Attached File  10.7_4330_1.JPG   141.85KB   45 downloadsAttached File  10.7_4330_2.JPG   100.27KB   39 downloadsAttached File  10.7_4330_3.JPG   96.01KB   38 downloads
after a wake from sleep.
Attached File  10.7_4330_4.JPG   133.39KB   39 downloads
Attached File  dsdt_4330m.zip   1.75KB   25 downloads





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

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