Jump to content

ATI HD framebuffer driver (10.5/10.6) with source code


dong
 Share

900 posts in this topic

Recommended Posts

If you are using 10.6, -f is not enough to rebuild the cache. Try boot with -s, touch the directory: /System/Library/Extensions, then reboot.

 

YES!!! You got it!!

 

In single user mode, i remove all ATIRadeonX2000*.* extensions and plugin's, i remove Extensions.mkext, i touch the Extensions folder and i reboot with -f flag. EUREKAAA!!!! Now i have native resolution with the internal laptop screen!!!

 

The next steep is to make QE/CI working.

 

In this acer laptop QE/CI works with an external monitor with this efi string:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)</key>
<dict>
	<key>@0,AAPL,boot-display</key>
	<string>0x00000001</string>
	<key>@0,ATY,EFIDisplay</key>
	<string>LVDS</string>
	<key>@0,VRAM,memsize</key>
	<data>
	AAAAEAAAABA=
	</data>
	<key>@0,compatible</key>
	<string>ATY,Megalodon</string>
	<key>@0,connector-type</key>
	<string>0x00000004</string>
	<key>@0,device_type</key>
	<string>display</string>
	<key>@0,display-connect-flags</key>
	<string>0x00040000</string>
	<key>@0,display-type</key>
	<string>LCD</string>
	<key>@0,name</key>
	<string>ATY,Megalodon</string>
	<key>@1,VRAM,memsize</key>
	<data>
	AAAAAAAAABA=
	</data>
	<key>@1,compatible</key>
	<string>ATY,Megalodon</string>
	<key>@1,connector-type</key>
	<string>0x00000200</string>
	<key>@1,device_type</key>
	<string>display</string>
	<key>@1,display-type</key>
	<string>0x454e4f4e</string>
	<key>@1,name</key>
	<string>ATY,Megalodon</string>
	<key>AAPL,EMC-Display-List</key>
	<data>
	AwAAAAAAAAAAAAAAAAAAAAYQAAAbkgAAAAAAAAAAAAAGEAAAHJIAAAAAAAAA
	AAAABhAAACGSAAAAAAAAAAAAAA==
	</data>
	<key>AAPL,aux-power-connected</key>
	<string>0x00000001</string>
	<key>AAPL,backlight-control</key>
	<string>0x00000000</string>
	<key>AAPL00,blackscreen-preferences</key>
	<string>0x08000000</string>
	<key>AAPL01,Coherency</key>
	<string>0x00000002</string>
	<key>AAPL01,blackscreen-preferences</key>
	<string>0x08000000</string>
	<key>ATY,Card#</key>
	<string>109-B148xx-00</string>
	<key>ATY,Copyright</key>
	<string>Copyright AMD Inc. All Rights Reserved. 2005-2008</string>
	<key>ATY,EFICompileDate</key>
	<string>Dec 18 2007</string>
	<key>ATY,EFIDriverType</key>
	<string>0x02</string>
	<key>ATY,EFIEnabledMode</key>
	<string>0x02</string>
	<key>ATY,EFIHWInitStatus</key>
	<data>
	AAAAAAAAAAA=
	</data>
	<key>ATY,EFIOrientation</key>
	<string>0x01</string>
	<key>ATY,EFIVersion</key>
	<data>
	MDEuMDAuMjM2AA==
	</data>
	<key>ATY,EFIVersionBios</key>
	<string>113-B14801-023</string>
	<key>ATY,FrameBufferOffset</key>
	<data>
	AAAAAIAAAAA=
	</data>
	<key>ATY,HWGPIO</key>
	<string>0x0048a823</string>
	<key>ATY,IOSpaceOffset</key>
	<data>
	AAAAAAAAIAA=
	</data>
	<key>ATY,MCLK</key>
	<string>0x000c3500</string>
	<key>ATY,MRT</key>
	<string></string>
	<key>ATY,MemRevisionID</key>
	<string>0x0001</string>
	<key>ATY,MemVendorID</key>
	<string>0x0006</string>
	<key>ATY,PCIConfigSpace</key>
	<data>
	AhCIlQcAEAAAAAADQAAAAAwAAIAAAAAABACikAAAAAABIAAAAAAAAAAAAABr
	EKYAAACgkFAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAGsQpgABWAMGAAAAABCg
	EQCgjwAAEAgAAAINAAhCAAIRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
	AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAgAAAAAAAAAAAAAAAAAAAAAAA
	AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
	AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
	</data>
	<key>ATY,PlatformInfo</key>
	<data>
	AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
	AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
	AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
	</data>
	<key>ATY,RefCLK</key>
	<string>0x00000a8c</string>
	<key>ATY,RegisterSpaceOffset</key>
	<data>
	AAAAAJCiAAA=
	</data>
	<key>ATY,Rom#</key>
	<string>113-B1480A-236</string>
	<key>ATY,SCLK</key>
	<string>0x000aae60</string>
	<key>ATY,VendorID</key>
	<string>0x1002</string>
	<key>MVAD</key>
	<data>
	PlyCAP+QAMoAAAAAAAAAAHwukAYwBzAAIAAaBDgEAwAGABoEkAYAAQAAAAAA
	AAAAAAAAAAAAAAAAAAAAAAAAAA==
	</data>
	<key>device_type</key>
	<string>ATY,MegalodonParent</string>
	<key>model</key>
	<string>ATI Radeon HD 2400</string>
	<key>name</key>
	<string>ATY,MegalodonParent</string>
</dict>
</dict>

 

 

Is there any possibility to merge the best of the "two worlds", your Ati framebuffer to make internal display working and the efi string with RadeonX2000 drivers to make the QE/CI to work?

 

You are incredible man!!! :)

Link to comment
Share on other sites

Great job man! I managed to get my ATI Moblity Radeon HD 3470 working with native resolution (1280x800), just deleted ATIRadeonX2000.kext and put your radeonHD kext instead, and it works fine now! Thanks man for doing this job!

 

YES!!! You got it!!

 

In single user mode, i remove all ATIRadeonX2000*.* extensions and plugin's, i remove Extensions.mkext, i touch the Extensions folder and i reboot with -f flag. EUREKAAA!!!! Now i have native resolution with the internal laptop screen!!!

 

The next steep is to make QE/CI working.

 

In this acer laptop QE/CI works with an external monitor with this efi string:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)</key>
<dict>
	<key>@0,AAPL,boot-display</key>
	<string>0x00000001</string>
	<key>@0,ATY,EFIDisplay</key>
	<string>LVDS</string>
	<key>@0,VRAM,memsize</key>
	<data>
	AAAAEAAAABA=
	</data>
	<key>@0,compatible</key>
	<string>ATY,Megalodon</string>
	<key>@0,connector-type</key>
	<string>0x00000004</string>
	<key>@0,device_type</key>
	<string>display</string>
	<key>@0,display-connect-flags</key>
	<string>0x00040000</string>
	<key>@0,display-type</key>
	<string>LCD</string>
	<key>@0,name</key>
	<string>ATY,Megalodon</string>
	<key>@1,VRAM,memsize</key>
	<data>
	AAAAAAAAABA=
	</data>
	<key>@1,compatible</key>
	<string>ATY,Megalodon</string>
	<key>@1,connector-type</key>
	<string>0x00000200</string>
	<key>@1,device_type</key>
	<string>display</string>
	<key>@1,display-type</key>
	<string>0x454e4f4e</string>
	<key>@1,name</key>
	<string>ATY,Megalodon</string>
	<key>AAPL,EMC-Display-List</key>
	<data>
	AwAAAAAAAAAAAAAAAAAAAAYQAAAbkgAAAAAAAAAAAAAGEAAAHJIAAAAAAAAA
	AAAABhAAACGSAAAAAAAAAAAAAA==
	</data>
	<key>AAPL,aux-power-connected</key>
	<string>0x00000001</string>
	<key>AAPL,backlight-control</key>
	<string>0x00000000</string>
	<key>AAPL00,blackscreen-preferences</key>
	<string>0x08000000</string>
	<key>AAPL01,Coherency</key>
	<string>0x00000002</string>
	<key>AAPL01,blackscreen-preferences</key>
	<string>0x08000000</string>
	<key>ATY,Card#</key>
	<string>109-B148xx-00</string>
	<key>ATY,Copyright</key>
	<string>Copyright AMD Inc. All Rights Reserved. 2005-2008</string>
	<key>ATY,EFICompileDate</key>
	<string>Dec 18 2007</string>
	<key>ATY,EFIDriverType</key>
	<string>0x02</string>
	<key>ATY,EFIEnabledMode</key>
	<string>0x02</string>
	<key>ATY,EFIHWInitStatus</key>
	<data>
	AAAAAAAAAAA=
	</data>
	<key>ATY,EFIOrientation</key>
	<string>0x01</string>
	<key>ATY,EFIVersion</key>
	<data>
	MDEuMDAuMjM2AA==
	</data>
	<key>ATY,EFIVersionBios</key>
	<string>113-B14801-023</string>
	<key>ATY,FrameBufferOffset</key>
	<data>
	AAAAAIAAAAA=
	</data>
	<key>ATY,HWGPIO</key>
	<string>0x0048a823</string>
	<key>ATY,IOSpaceOffset</key>
	<data>
	AAAAAAAAIAA=
	</data>
	<key>ATY,MCLK</key>
	<string>0x000c3500</string>
	<key>ATY,MRT</key>
	<string></string>
	<key>ATY,MemRevisionID</key>
	<string>0x0001</string>
	<key>ATY,MemVendorID</key>
	<string>0x0006</string>
	<key>ATY,PCIConfigSpace</key>
	<data>
	AhCIlQcAEAAAAAADQAAAAAwAAIAAAAAABACikAAAAAABIAAAAAAAAAAAAABr
	EKYAAACgkFAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAGsQpgABWAMGAAAAABCg
	EQCgjwAAEAgAAAINAAhCAAIRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
	AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAgAAAAAAAAAAAAAAAAAAAAAAA
	AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
	AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
	</data>
	<key>ATY,PlatformInfo</key>
	<data>
	AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
	AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
	AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
	</data>
	<key>ATY,RefCLK</key>
	<string>0x00000a8c</string>
	<key>ATY,RegisterSpaceOffset</key>
	<data>
	AAAAAJCiAAA=
	</data>
	<key>ATY,Rom#</key>
	<string>113-B1480A-236</string>
	<key>ATY,SCLK</key>
	<string>0x000aae60</string>
	<key>ATY,VendorID</key>
	<string>0x1002</string>
	<key>MVAD</key>
	<data>
	PlyCAP+QAMoAAAAAAAAAAHwukAYwBzAAIAAaBDgEAwAGABoEkAYAAQAAAAAA
	AAAAAAAAAAAAAAAAAAAAAAAAAA==
	</data>
	<key>device_type</key>
	<string>ATY,MegalodonParent</string>
	<key>model</key>
	<string>ATI Radeon HD 2400</string>
	<key>name</key>
	<string>ATY,MegalodonParent</string>
</dict>
</dict>

 

 

Is there any possibility to merge the best of the "two worlds", your Ati framebuffer to make internal display working and the efi string with RadeonX2000 drivers to make the QE/CI to work?

 

You are incredible man!!! :)

 

Which grapichs card do you have?

Link to comment
Share on other sites

Great job man! I managed to get my ATI Moblity Radeon HD 3470 working with native resolution (1280x800), just deleted ATIRadeonX2000.kext and put your radeonHD kext instead, and it works fine now! Thanks man for doing this job!

 

 

 

Which grapichs card do you have?

 

I have Radeon mobility 2400 XT with 256.

I'm trying to make some tuning to my EFI string to use RadeonHD framebuffer instead the Megalodon framebuffer but i'm a little bit lost.

 

I need some luck. :)

Link to comment
Share on other sites

I have Radeon mobility 2400 XT with 256.

I'm trying to make some tuning to my EFI string to use RadeonHD framebuffer instead the Megalodon framebuffer but i'm a little bit lost.

 

I need some luck. :)

 

That's the magic about RadeonHD: you do NOT need an efi string anymore !

Link to comment
Share on other sites

But, what about graphic acceleration? How to configure RadeonHD to work well with ATIRadeonX2000.kext?

 

That is it, you don't.

 

If the ATIRadeonX2000.kext loads for you independently of RadeonHD or any other FB and is giving you QE/CI support without resolution change, you are in luck.

 

Otherwise you will not get acceleration unless dong, or someone else, writes (ports?) entire 2D/3D acceleration code to Mac. That has always been a problem in Callisto, which was only a Framebuffer and not an Accelerator. But back then Accelerator did not have device-id and chip feature specific locks like today so it worked for everyone.

 

I said it many moons ago, but it fell on the deaf ears back then. So I'll say it again. This needs to be a group or a community project, with more people involved. One person writing or porting the driver is a huge undertaking, and is a toll on that person.

 

If anything is to be done, this is how I see it being done:

 

A universal driver (framework) would be written, one that works on any chip from any vendor be it ATI, NVidia, Intel, etc, as most functions are similar.

 

Differences would be in some basic functions such as the BIOS, chip registers, perhaps PLL, and of course acceleration etc. but those would be "pluggable" based on the chip/vendor selected.

 

First milestone would be the Framebuffer which could be done rather quickly.

 

The second milestone would be the Acceleration, although that could be worked almost concurrently with the Framebuffer, if there are two groups of people and Framebuffer is finished fast.

 

At the same time of all this happening there would be people testing everything and submitting their reports to some tracking system. This would be organized and centralized with a set of specific tasks outlined for testing instead of being a jungle of "It's not working for me, what do I do?"

 

A million dollar question is how many people are willing to donate their time and effort in doing this, and have some understanding of what exactly needs to be done, besides knowing how to program IOKit? :)

Link to comment
Share on other sites

Many thanks to Dong for his work

 

With ATIRadeonX1000 kexts and RadeonHD kext I have right resolution QE CI - very low brightness -some mouse cursor effcts

Only with RadeonHD I have right resolution no QE CI no mouse problem but still very low brightness

With or without my edid same situation.

Enable or disable backlight in plist have no effect.In both casess this is last lines from dmesg

RadeonHD: Display resolutions detected:

RadeonHD: 1920 X 1200 @ 60Hz

RadeonHD: 1280 X 1024 @ 75Hz

RadeonHD: 1024 X 768 @ 60Hz

RadeonHD: 800 X 600 @ 60Hz

RadeonHD: 640 X 480 @ 60Hz

RadeonHD: D1CRTCDisable: 0 loops

RadeonHD: LVDSPower(LVDS,POWER_RESET)

RadeonHD: Setting up "1920x1200" (1920x1200@60Hz)

RadeonHD: FUNCTION: DxFBSet: CRTC 1 (1920[1920]x1200@32bpp) +0x0 )

RadeonHD: FUNCTION: DxModeSet: CRTC 1

RadeonHD: FUNCTION: DxScaleSet: CRTC 1 viewport: 1920x1200 - OverScan: T: 0 B: 0 R: 0 L: 0

RadeonHD: None

RadeonHD: RHDPLLSet: Setting PLL 1 to 161630kHz

RadeonHD: PLL Calculation: 161630kHz = (((27000 / 0x1D) * 0x364) / 0x5) (3kHz off)

RadeonHD: PLL1Calibrate: lock in 218 loops

RadeonHD: Shutting down DAC A

RadeonHD: DACPower(DAC A,POWER_SHUTDOWN)

RadeonHD: Shutting down DAC B

RadeonHD: DACPower(DAC B,POWER_SHUTDOWN)

RadeonHD: Shutting down TMDS A

RadeonHD: TMDSAPower(TMDS A,POWER_SHUTDOWN)

RadeonHD: LVDSPower(LVDS,POWER_ON)

RadeonHD: LVDSSetBacklight: trying to set BL_MOD_LEVEL to: 0

 

Is there any method to enable or control brightness?

X1400 on Dell 9400

Link to comment
Share on other sites

You need to use IOFramebuffer as super of RadeonHD, not IONDRVFramebuffer, iondrvfb is legacy thing

also, X2000.kext uses those functions from framebuffer - getCurrentDisplayMode and GetPixelInformation, you can find examples of it in IONDRVFramebuffer class, maybe bad answer from those funcs result in no qe/ci for rhd and mouse tearings with X1000.kext

I'll try to look at getCurrentDisplayMode and GetPixelInformation in detail. Thanks for your input.

 

As I told netkas earlier, the IONDRVFramebuffer is a legacy superclass, relic from the old days when Mac ATI cards had a ROM containing functions necessary for initialization and use of the frame buffer.
That's the case for PPC machine. For Intel, it is just a wrap of the requirements that OSX demands from framebuffer driver. The ATI vanilla 10.5 framebuffer driver is still inherited from IONDRVSupport and works without problem. In 10.6, it switches to IOFramebuffer. But that does not prevent IONDRVSupport from working. Only ATIRadeonX2000.kext requires some more things from framebuffer.
In any case, I've took a quick glance at DONG's work and I believe that direction really needs to change to IOFramebuffer. Caveat is that it might not work with the rest of the files available (the ATI IOAccelerator or the QE/CI as most people call it) and that would need to be implemented as well. Or, it might work, just like it did in the Callisto case.
Yes, ATIRadeonX1000.kext works without problem except the mouse tearing which is the same problem with Callisto driver.
Alternative is to stick with NDRV as DONG did, which is not necessarily bad since Apple themselves are still using it. I just feel that NDRV has to go as it's legacy, imho, and as I conjectured, Apple might be getting rid of it starting with SL.
Get rid of IONDRVSupport is actually a trivial job. I can just put implementations in RadeonHD that does the same thing for each virtual function of IONDRVFramebuffer and write my own helper functions for pci IO instead of using the one in IONDRVLibraries. But at the mean time, I just want to have a working box to test each framebuffer function that I may add. When enough functions are tested and work in some extent, I will eventually move to IOFramebuffer and put all hardware related stuff to a class similar to ATIController as the case of vanilla 10.6 driver.
The "tearing" issue stems from the lack of hardware cursor implementation. I see DONG has some code for it in the source, at the end of RadeonHD.cpp, but it is commented out. Perhaps it is not working well or crashing or what not but that part is necessary, in my opinion, to solve the tearing problem.
I have similar thoughts but just not sure if this could help solve the tearing problem. The code in comment is reversed from 10.6 driver, not compatible with the linux code yet. I need more research on that.
I never had a chance to fully write it for Callisto as the project ran out of its steam (for me). Maybe there is a way to "marry" the current RadeonHD work and the existing IOAccelerators so tearing does not happen, or is significantly reduced, but I can't say - I did not look into it further.
I did not touch any IOAccelerators code yet, can't say anything for it at this time.
I hope these random thoughts will help out in some way.
It definitely helps. I've been struggling for two years without the insight guide from you and others. I only understand a little more recently that enable me to connect the linux resolution switch code with OSX. In this process, reverse 10.6 ATI framebuffer driver provide many clues. But it will happened earlier if people like you had provided the hints.

 

Is there any method to enable or control brightness?

X1400 on Dell 9400

You can get the answer by reading some more posts in this topic.
Link to comment
Share on other sites

*snip*

 

Hi dong,

 

I understand your frustrations as I have been there myself, though I did not have anyone else to blame for not coming forth and helping out, as you just did. Then again, now that I think of it actually I do have someone to blame - the entire hackintosh community. :)

 

But it's not their fault as they did not know how to help, in my opinion, even if they could (and some of them were willing just not able). So remember why are you doing this: to help others for no reason whatsoever - purely altruistic, thus put the frustrations aside. Just an unsolicited advice from someone who has travelled your path. :)

 

Regarding NDRV, I am aware you can "easily" switch to IOFB and I am not sure why you have chosen the NDRV path to begin with if you knew about IOFB. The fact remains that IOFB is the new superclass and NDRV is not to be used as it is deprecated. Contrary to what you said that OS X demands NDRV methods, they are just there for posterity, in my opinion, and OS X really demands use of IOFB.

 

So, if I may suggest something to you, rather than investing more time into NDRV please look into IOFB. Or perhaps consider my second post about having a community project organized.

Link to comment
Share on other sites

I have Radeon mobility 2400 XT with 256.

I'm trying to make some tuning to my EFI string to use RadeonHD framebuffer instead the Megalodon framebuffer but i'm a little bit lost.

 

I need some luck. :wacko:

 

I tried to connect the laptop to an external TV via VGA (I plug the wire before turning on the laptop), and it used to show up on the TV before I tried this radeonHD kext (1024x768 though), but now it doesn't show on TV anymore. I can see the apple logo on TV when loading system, but after a while it changes to laptop screen and I don't see anything on TV anymore. I have a Toshiba Satellite A300-203 with an ATI Mobility Radeon HD 3470. I have now native resolution on the laptop screen (1280x800), is it any way to manage to see the desktop on the external TV? Should I add the EFI string you mentioned or something?

Link to comment
Share on other sites

Hi

 

I use ATI Mobility Radeon (X1300) in INSPIRON 6400

 

I tried both your kext for 10.5 without changes

The laptop boot ok and I have 4 resolutions(something like ..., 480x640, 1024x768, 1400x...) but there is no my 1280x800)))

 

All resolutions work, but not correctly, even existing 1024x768 (the content is bigger than screen)

 

 

But anyway it's a good start)))

 

What can I provide to get native 1280x800 ?

Link to comment
Share on other sites

Hi

 

I use ATI Mobility Radeon (X1300) in INSPIRON 6400

 

I tried both your kext for 10.5 without changes

The laptop boot ok and I have 4 resolutions(something like ..., 480x640, 1024x768, 1400x...) but there is no my 1280x800)))

 

All resolutions work, but not correctly, even existing 1024x768 (the content is bigger than screen)

 

 

But anyway it's a good start)))

 

What can I provide to get native 1280x800 ?

 

X2, same condition

Link to comment
Share on other sites

That is it, you don't.

 

If the ATIRadeonX2000.kext loads for you independently of RadeonHD or any other FB and is giving you QE/CI support without resolution change, you are in luck.

 

Otherwise you will not get acceleration unless dong, or someone else, writes (ports?) entire 2D/3D acceleration code to Mac. That has always been a problem in Callisto, which was only a Framebuffer and not an Accelerator. But back then Accelerator did not have device-id and chip feature specific locks like today so it worked for everyone.

 

 

Unless this Titanic effort, why not to use legacy apple accelerator?

 

It seem's an easy way to reverse what Framebuffer functions the apple accelerator needs to work than to develop all levels of the graphic framework.

 

isn't it?

Link to comment
Share on other sites

Unless this Titanic effort, why not to use legacy apple accelerator?

 

It seem's an easy way to reverse what Framebuffer functions the apple accelerator needs to work than to develop all levels of the graphic framework.

 

isn't it?

 

That accelerator is customized to a minuscule number of configurations compared to what is available in the Hackintosh community, else people would not have all kinds of problems. If you recall, in the past there were no device-id locks or other "features" preventing non-apple configurations from working.

 

Plus, reverse engineering is not something Apple will turn the blind eye to. It has been done in the past but not to the extent to get their "attention", and I think we can both agree that we don't want their attention? :unsure:

 

The idea is to use existing without modification, or to make our own but not to infringe upon their IP. So far they have left us alone, didn't they?

 

Besides, if there was our own full driver, there would be no reason to use theirs ever again and it would ensure that any graphics card would work, always. People would not have to buy specific graphics card just so it matches presently available Apple configurations.

 

Heck that should be done for everything, not just the graphics. The community has grown large; the missing part is people's desire to join the effort en masse, learn to program IOKit and get it all done. That is the difference between the Hackintosh and the Linux community, where later has a solid body of developers in all areas constantly working on new things or improving old ones.

Link to comment
Share on other sites

Did you check if you have your EDID in the Info.plist or did you let dong's one ?

 

EDID in plist is 

 

AP///////wAwriJAAAAAAC0QAQOAHRV46m+VnFRMhyYh

UFQhCACBgAEBAQEBAQEBAQEBAQEBMCp4IFEaEEAwcBMA

H9cQAAAYJSN4IFEaEEAwcBMAH9cQAAAYAAAADwCQQzKQ

  QygPAQAwZJBVAAAA/gBMVEQxNDFFTjlCCiAgADU=

 

 

 and my is

 

00FFFFFF FFFFFF00 00001707 00000000 0A0A0101 0C1E17BE E82DC9A0 57479827 12484C00 00000101 01010101 01010101 01010101 01010101 01010101 01010101 01010101 01010101 01010101 01010101 01010101 01010101 01010101 01010101 01010101 01010101 01010101 01010101 01010101 01010000 00000000 00000002

 

How to convert it to right format?

 

 

 

And I found one interesting thing: I have ID=7149, and if I change my ATIRadeonX1000 and ATIRadeonX1000GA to this ID instead of 7145, I got cursor not properly redrawing (without doublebuffer or something like it) May be it can be usefull for somebody

Link to comment
Share on other sites

Hi Dong,

 

I tried your RadeonHD.kext in snow leo as well as leo.. Got some weird problems..

 

1) When os boots .. i have a blank screen.. only to get display when changing the power source.

2) On trying to change the resolution... same thing.. have to replug the power cable.

3) On all the resolutions working... but no QE / CI.

 

Specs:

 

Graphic Card : ATI Radeon FireGL V5250 on Lenovo T60p.

 

Would provide dump if needed.

Link to comment
Share on other sites

@zhenyka

 

I think your hex string should be converted to base64 before being inserted.

Thus, for the one you quoted it should be

 

AP///////wAAABcHAAAAAAoKAQEMHhe+6C3JoFdHmCcSSEw

AAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE

BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE

BAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAI=

 

Good luck.

Link to comment
Share on other sites

I said it many moons ago, but it fell on the deaf ears back then. So I'll say it again. This needs to be a group or a community project, with more people involved. One person writing or porting the driver is a huge undertaking, and is a toll on that person.

 

hello Omni

we do have a project page now here, so everyone willing to extend the code or to file a defect has now the place to do it.

it's very easy to join, correct me if it's not true from you POI.

also, could you fill-out project wiki page with a TODO list, what would you think would be good to implement and where, the one you've posted on the forum, so it will not be lost.

thanks

Ole2

Link to comment
Share on other sites

[10/20/2009 update]:

Finally get the VoodooDumpMsg work, it will help with debug. Run "RadeonDump" in terminal after entering desktop will produce full debug messages without leftout. No other function added. Thanks ole2 for the reminding.

 

Thanks for the Framebuffer Dong. I just tested this on 10.6.1 on an Asus M4A78 Pro (Integrated RadeonHD 3200). I did not have to modify the Info.plist to enter my EDID or any other info. it is nice to see work happening on the RadeonHD front. I am not a programmer and do not know anything about IOKit but if there is any data you need from me I will be happy to provide it.

Link to comment
Share on other sites

 Share

×
×
  • Create New...