Jump to content

ATI Framebuffer development


Slice
 Share

466 posts in this topic

Recommended Posts

Are you going to update the kext? Do you have the sources for download so i can make this modifications you suggest and continue testing ? Thanks.

Here there are updated sources and kext.

One new:

In injector no need to write address.

Now I write fboffset. If = 0 then default address is using.

ATILead.kext.info.plist

<key>CFBundleVersion</key>
<string>1.2.2</string>
<key>IOKitPersonalities</key>
<dict>
	<key>LeadPCIMatch</key>
	<dict>
		<key>CFBundleIdentifier</key>
		<string>com.slice.driver.ATILead</string>
		<key>IOClass</key>
		<string>ATILead</string>
		<key>IOMatchCategory</key>
		<string>IOService</string>
		<key>IOPCIClassMatch</key>
		<string>0x03000000</string>
		<key>IOProbeScore</key>
		<integer>40000</integer>
		<key>IOProviderClass</key>
		<string>IOPCIDevice</string>
		<key>entriesToAdd</key>
		<dict>
			<key>@0,AAPL,boot-display</key>
			<true/>
			<key>@0,IODisplayHasBacklight</key>
			<true/>
			<key>@0,fboffset</key>
			<integer>0</integer>
			<key>@0,backlight-control</key>
			<true/>
			<key>@0,built-in</key>
			<data>
			</data>
			<key>@0,compatible</key>
			<string>ATY,Radeon9000i</string>
			<key>@0,depth</key>
			<integer>32</integer>
			<key>@0,device_type</key>
			<string>display</string>
			<key>@0,display-connect-flags</key>
			<integer>0</integer>
			<key>@0,display-link-component-bits</key>
			<integer>6</integer>
			<key>@0,display-type</key>
			<string>LCD</string>
			<key>@0,height</key>
			<integer>768</integer>
			<key>@0,linebytes</key>
			<integer>4096</integer>
			<key>@0,model</key>
			<string>ATY,RS300</string>
			<key>@0,name</key>
			<string>ATY,Radeon9000i</string>
			<key>@0,width</key>
			<integer>1024</integer>
			<key>AAPL,gart-width</key>
			<integer>32</integer>
			<key>ATY,Copyright</key>
			<string>Copyright ATI Technologies Inc. 2005</string>
			<key>ATY,EFIVersion</key>
			<string>01.00.068</string>
			<key>ATY,VendorID</key>
			<integer>4098</integer>
			<key>CRT,EDID</key>
			<data>
			AP///////wBN2QBcAQEBASgPAQMIAAB4Ctmto1VGmCQQ
			R0otyABhTwEBAQEBAQEBAQEBAQEBZBkAQEEAJjAdiDYA
			AAAAAAAYDh8AgFEAHjBAgDcAAAAAAAAcAAAA/QA6Ph4y
			CAAKICAgICAgAAAA/ABLREwtUzMyQTEyVQogAMs=
			</data>
			<key>F8,size</key>
			<integer>0x00300000</integer>
			<key>IOName</key>
			<string>MyRadeon</string>
			<key>LCD,EDID</key>
			<data>
			AP///////wA2fwMAAAAAAAAAAQMBKB4A8gAAAAAAAAAA
			AAAhCAAxQEVAYUAAAAAAAAAAAAAAZBkAQEEAJjAQiAAA
			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGU=
			</data>
			<key>M1,EDID</key>
			<data>
			AP///////wAGEGCcAAAAAAQQAQOAIhZ4Chz1l1hQjicn
			UFQAAAABAQEBAQEBAQEBAQEBAQEBnyWgQFGEDDBAIDMA
			S88QAAAZAAAAAQAGEDAAAAAAAAAAAAogAAAA/gBCMTU0
			UFcwMSBWMAogAAAA/ABDb2xvciBMQ0QKICAgALw=
			</data>
			<key>chipset-model</key>
			<string>ATY,RS300</string>
			<key>device_type</key>
			<string>MyRadeon</string>
			<key>name</key>
			<string>MyRadeon</string>
		</dict>
	</dict>
</dict>

openati_1.0.3.zip

Link to comment
Share on other sites

Hi again, added the info to Atilead info.plist and installed both kexts.

 

Kernel panic on boot. I have done 4 reboots, and it gave me 4 differents adresses.

 

EIP:0x4479f180

Ati: 0x4479c000

 

 

EIP:0x44787180

Ati: 0x44784000

 

 

EIP:0x44815180

Ati: 0x44812000

 

 

EIP:0x447d0180

Ati: 0x447cd000

post-98153-1221487167_thumb.jpg

post-98153-1221487198_thumb.jpg

post-98153-1221487335_thumb.jpg

Link to comment
Share on other sites

Hi again, added the info to Atilead info.plist and installed both kexts.

 

Kernel panic on boot. I have done 4 reboots, and it gave me 4 differents adresses.

 

EIP:0x4479f180

Ati: 0x4479c000

EIP:0x44787180

Ati: 0x44784000

EIP:0x44815180

Ati: 0x44812000

EIP:0x447d0180

Ati: 0x447cd000

There are the same relative address 0x3180.

Sorry, I also have KP at the same address. One minute, please!

 

will this work on a mobility hd2600?? i am willing to test anything

Test, please!

 

It seems I made bad compilation. No error in sources. Now Ati.kext works again.

One observation.

With and without Ati.kext I can enter desktop.

WITH DIFFERENT DESKTOP PICTURE :graduated:

Ati.kext.zip

Link to comment
Share on other sites

Hi. Now i dont get kernel panic on boot.

But when i arrive the desktop, the computer becomes slow and irresponsive, then the Kernel panic comes before the menus and dock appears... so i cant get a log from it.

 

I can start under -x but when i check the kexts stats, only Atilead is loaded.

 

Here is my system.log

System_log.rtf

Link to comment
Share on other sites

Hi. Now i dont get kernel panic on boot.

But when i arrive the desktop, the computer becomes slow and irresponsive, then the Kernel panic comes before the menus and dock appears... so i cant get a log from it.

 

I can start under -x but when i check the kexts stats, only Atilead is loaded.

 

Here is my system.log

I see

Sep 16 14:30:05 localhost kernel[0]: set_display_mode_and_vram failed

May be you try to set other boot resolution? (my value = 1024x768x32@60)

check also

				<key>@0,depth</key>
			<integer>32</integer>
			<key>@0,height</key>
			<integer>768</integer>
			<key>@0,linebytes</key>
			<integer>4096</integer>  = width * depth / 8 - it would be better to calculate inside
			<key>@0,width</key>
			<integer>1024</integer>

Link to comment
Share on other sites

I see

 

May be you try to set other boot resolution? (my value = 1024x768x32@60)

check also

				<key>@0,depth</key>
			 <integer>32</integer>
			 <key>@0,height</key>
			 <integer>768</integer>
			 <key>@0,linebytes</key>
			 <integer>4096</integer>  = width * depth / 8 - it would be better to calculate inside
			 <key>@0,width</key>
			 <integer>1024</integer>

 

I have done all your suggestions, but still the same.

Link to comment
Share on other sites

I have done all your suggestions, but still the same.

Thus it is a real problem how to test and report.

I didn't see in your system.log some information what is wrong.

Did you see at boot connectorsInfo?

Did you see EDID information? PanelInfo information?

May be you can recompile the driver with more IOLogs?

Link to comment
Share on other sites

Slice,

 

i tried out the atilead.kext and the ati.kext on a lenovo z61m with x1400 mobility. For me it seems something missing for the proper card detection as there is no graphics mode change after launching the loginwindow even with external display (it's not freezing, still running without the gui).

 

The kexts are loaded properly but the following message is repeating a few times:

 

9/18/08 7:59:54 PM kernel Ati: Probing. 
9/18/08 7:59:54 PM kernel Ati: RADio address ee000000 
9/18/08 7:59:54 PM kernel ATI: Found Intel x86 BIOS ROM Image 
9/18/08 7:59:54 PM kernel ATI: Reference=0.00 MHz (RefDiv=0) Memory=0.00 Mhz, System=0.00 MHz 
9/18/08 7:59:54 PM kernel ATI: PLL min 0 max 36700160 
9/18/08 7:59:54 PM kernel Ati: BIOS vers  
9/18/08 7:59:54 PM kernel Ati: F8 written 07f00000 
9/18/08 7:59:54 PM kernel Ati: Set model=ATI ATOMBIOS 

 

for the model name i used ATY,RV515 as it's defined in radeon_chipinfo_gen.h. The info.plist used for atilead is included with the ioreg result. How can i move forward with this or what can i do to provide more detailed test results for further investigation?

 

thanks.

Info.plist.zip

ioreg.txt.zip

Link to comment
Share on other sites

Yes, i can add more iologs.

 

Just need to know in wich file inside the ati source and wich line should i begin to add the iologs.

 

Thanks.

It is a file ATIDriver.cpp. During boot with -v flag you must see last message from ATIFB.

Or other video information. Set IOLog("123\n"); after that to see where is bad point.

I didn't see your screen so I can say you where.

 

Slice,

 

i tried out the atilead.kext and the ati.kext on a lenovo z61m with x1400 mobility. For me it seems something missing for the proper card detection as there is no graphics mode change after launching the loginwindow even with external display (it's not freezing, still running without the gui).

 

The kexts are loaded properly but the following message is repeating a few times:

 

9/18/08 7:59:54 PM kernel Ati: Probing. 
9/18/08 7:59:54 PM kernel Ati: RADio address ee000000 
9/18/08 7:59:54 PM kernel ATI: Found Intel x86 BIOS ROM Image 
9/18/08 7:59:54 PM kernel ATI: Reference=0.00 MHz (RefDiv=0) Memory=0.00 Mhz, System=0.00 MHz 
9/18/08 7:59:54 PM kernel ATI: PLL min 0 max 36700160 
9/18/08 7:59:54 PM kernel Ati: BIOS vers  
9/18/08 7:59:54 PM kernel Ati: F8 written 07f00000 
9/18/08 7:59:54 PM kernel Ati: Set model=ATI ATOMBIOS 

 

for the model name i used ATY,RV515 as it's defined in radeon_chipinfo_gen.h. The info.plist used for atilead is included with the ioreg result. How can i move forward with this or what can i do to provide more detailed test results for further investigation?

 

thanks.

Yes, I know that the existing kext didn't get model name because it is absent in AtomBIOS. Not a problem and not a stop point.

Is there any output with

ATIFB: bla-bla... ?

If no then check name both in ATILead and Ati.ket. It must be the same.

For example ATI,ATIPC.

I use in both case ATY,Radeon9000i. No matter! The name must be the same but it may be "CrazyDog" or any other you like.

I see you have 0.00MHz. It is bad result. A point to correct.

But it is ATILead 1.2.1? I propose you would use 1.2.2! And info.plist you attached is not correct for use with Ati.kext.

Check needed info.plist at post #352 and later discussion.

 

At this time I need dmesg and system.log from testing.

Link to comment
Share on other sites

Hi all,

First, thanks Slice for the work.

 

I have an X800XL so I wanted to test your two kext.

I followed the process of page 57

Changed Info.plist from ATILead.kext with that:

<key>@0,address</key>
<integer>4254990336</integer>

because I see that with ioreg:

	| |   |   +-o display@0,1  <class IOPCIDevice, registered, matched, active, busy 0, retain 9>
| |   |   | | {
| |   |   | |   "IOPCIResourced" = Yes
| |   |   | |   "IOName" = "display"
| |   |   | |   "subsystem-id" = <11210000>
| |   |   | |   "IOPCIExpressLinkCapabilities" = 0xad01
| |   |   | |   "IODeviceMemory" = (({"address"=0xfffffffffd7e0000,"length"=0x10000}))

 

I also changed all the RS300 with RS400.

 

At boot, nothing happens.

Looking at the system log, I've got nothing from ATILead or Ati...

 

Any clues?

Link to comment
Share on other sites

Hi all,

First, thanks Slice for the work.

 

I have an X800XL so I wanted to test your two kext.

I followed the process of page 57

Changed Info.plist from ATILead.kext with that:

<key>@0,address</key>
<integer>4254990336</integer>

because I see that with ioreg:

	| |   |   +-o display@0,1  <class IOPCIDevice, registered, matched, active, busy 0, retain 9>
| |   |   | | {
| |   |   | |   "IOPCIResourced" = Yes
| |   |   | |   "IOName" = "display"
| |   |   | |   "subsystem-id" = <11210000>
| |   |   | |   "IOPCIExpressLinkCapabilities" = 0xad01
| |   |   | |   "IODeviceMemory" = (({"address"=0xfffffffffd7e0000,"length"=0x10000}))

 

I also changed all the RS300 with RS400.

 

At boot, nothing happens.

Looking at the system log, I've got nothing from ATILead or Ati...

 

Any clues?

Link to comment
Share on other sites

Hi,

I did what you do and the result is the same (I've got a lot of matching fails for the display and the IOFramebuffer)

I attach the relevant part of the system.log, dmesg and ioreg , as well as the Info.plist of ATILead (I didn't touch the Info.plist of ati.kext)

 

systemSdesbure.log.txt

dmesgSdesbure.txt

ioregSdesbure.txt

InfoSdesbure.plist.txt

 

edit: don't know why but the copy of the kext didn't work. Now, the kext are loaded and I have a sort of KP (Screen saying to me that I have to reboot)

Here are the pictures (two consecutives boot)

2870949180_910fced44e.jpg

 

2870119257_499a2402e7.jpg

Link to comment
Share on other sites

Hi,

I did what you do and the result is the same (I've got a lot of matching fails for the display and the IOFramebuffer)

I attach the relevant part of the system.log, dmesg and ioreg , as well as the Info.plist of ATILead (I didn't touch the Info.plist of ati.kext)

\don't know why but the copy of the kext didn't work. Now, the kext are loaded and I have a sort of KP (Screen saying to me that I have to reboot)

I see that Ati.kext not loaded EDID for your configuration.

Thanks. It is my mistake. Will be corrected.

 

so will this work on a nc8000 ?? becouse qe/ci was supportive in 10.4.11 but not in leo

What is it nc8000?

Link to comment
Share on other sites

Hi, i am also RadeonHD (using HD 3850/512 MB PCIe, all working with EFI GFXSTR + Triakis plugin (insted of Lamna) in ATIDRV.KEXT

Do you mean the download which only content source code (Xproj files) of an RadeonHD.kext ?

How can i use that - needs other Injectors to or other must deaktivated? (i have compiled it, no problem). Who made this ?

 

I am interested because my OpenGL Renderer shows as an ATI Radeon RV670 Prototype OpenGL Engine (running OpenGL Extensions Viewer or any other OprnGL APp shoing the Renderer.

I think this Prototype could be, even all works, my HD 3850 PCIe isnt really using the normal OpenGL Engine (Someone can chack that with other RV670 card ?)

Maybe checking out what happens this Prototype Engine is usefull understanding how the drivers are used/selected.

Bild_190.jpg

Link to comment
Share on other sites

If your radeonHD card is already working with ATI vanilla kext, don't try my code. It won't help you on the openGL. Actually, the source code has some problems with RV6xx.

Thanks - i seen now that YOU made this in the code. Thanks for information again.

At least: kextloading RadeoHD.kext it didnt harm the HD3850 system :D - got loaded but no debug output (onyl syslog Kernel: Display mismatch)

 

Is that true, that the ATI HD ATOMBIOS make some problems / is hard to read out for the developers of Mac OS X?

Link to comment
Share on other sites

 Share

×
×
  • Create New...