Help - Search - Members - Calendar
Full Version: ATILead - natit-like injector for Radeon.
InsanelyMac Forum > InsanelyMac Lounge > The X Labs > ATI Framebuffer
Pages: 1, 2, 3
Slice
I begin development of new injector based on sources of Natit-0.02 but I rename it for differ from nVidia injector.
It is only for Radeon especially 9xxx, X200-X900 (R200-R480). But may work and with other chips.
Don't use ATISlice with it. It is replacement!
1. My first attempt
Use it instead of CallistoHAL. In Callisto.kext one change
CODE
            <key>IOProviderClass</key>
              <string>IONDRVDevice</string>

Now I have two desktop but on the same monitor. Something wrong in info.plist?
EDITED: I have no good connection info so why I have no two displays.

2. Try to use ATINDRV
I change in info.plist OMNI,Callisto -> ATY,Wormy
and OMNI,JUPITER -> ATY,WormyParent
Yes, ATINDRV launched but with unreal frequency and LCD switched off.
Any advices what to change?
There are sources and compiled kext.

EDITED:
Version 1.2.0 at
http://forum.insanelymac.com/index.php?sho...91042&st=63
This version has other info.plist. We may combine its with different ways.

EDITED: The new version 1.2.2 is intended to use with new project Ati.kext

EDITED:
Successful report with using ATILead+ATINDRV for ATI Radeon Mobility X1950
posts #75 - 79
You can find discussion below about keys in ATILead:info.plist
new keys at post #102
DoiX
hey slice i installed your ATILead kext, but unfortunately i have to report it didn't work, i get a fuzzy looking screen :)after leo boots
Soaa
Interesting! I'll try this once I have time. Think we can get QE this way?
Slice
QUOTE(DoiX @ Mar 4 2008, 09:01 PM) *
hey slice i installed your ATILead kext, but unfortunately i have to report it didn't work, i get a fuzzy looking screen :)after leo boots


Can you show digital photo of your fuzzy screen? I can't understand what you looked.
Soaa
I downloaded ATILead, installed it, changed the device ID, changed the Callisto stuff to ATINDRV and ATY stuff. Re-enabled ATIRadeon8500.kext. Fixed up all the kext dependancies. Edited some values in ATILead's Info.plist to reflect what I have.

Boot freezes here:


By the way, device ID is 4c66, running on an Inspiron 600m. Intel chipset.
Slice
You are not successful with ATINDRV and what about Callisto?
BTW I didn't see any messages from ATILead at your screen. As I see last messages from AGPGart it finished starting.
Soaa
Could you pass me a link to Callisto please? I can't find it. I'll test whenever possible.
Slice
QUOTE(Soaa @ Mar 6 2008, 03:31 PM) *
Could you pass me a link to Callisto please? I can't find it. I'll test whenever possible.

All drivers here
http://www.insanelymac.com/lofiversion/index.php/t36886.html
Soaa
Installed Callisto, then reinstalled AGPGart 2.6.4, reinstalled ATILead and put in my device ID, changed the memory size...

Callisto seems to load, and the ATI driver seems to detect my card, and so on, but when the login window gets loaded, everything just freezes. I also got kernel panics when kext dependancies weren't right.

I might need the old IOPCIFamily 1.3. Do you think that's part of the problem? If so, please post the kext here. If not, any suggestions? I'm doing my best to hack this thing here. smile.gif

Pics coming soon...
Slice
QUOTE(Soaa @ Mar 6 2008, 09:25 PM) *
Installed Callisto, then reinstalled AGPGart 2.6.4, reinstalled ATILead and put in my device ID, changed the memory size...

Callisto seems to load, and the ATI driver seems to detect my card, and so on, but when the login window gets loaded, everything just freezes. I also got kernel panics when kext dependancies weren't right.

I might need the old IOPCIFamily 1.3. Do you think that's part of the problem? If so, please post the kext here. If not, any suggestions? I'm doing my best to hack this thing here. smile.gif

For my experience IOPCIFamily 2.4.4 for Tiger works better then 1.7 even in system 10.4.6. You'd better write kext dependencies
IOPCIFamily -> 2.4.
Another suggestions?
I think we need to find new "valuesToAdd" for ATILead.info.plist to make the card as much Mac-like as possible. The sample - ioreg from MacMINI.

EDIT: Not any Callisto reliable to you. I have success with Callisto003fixed. What version did you try?
Soaa
I got the one from Katana 0.2c. http://forum.insanelymac.com/index.php?showtopic=35345

I just installed Katana, and installed AGPGart 2.6.4 over it. IOPCIFamily 2.0 doesn't change anything, so I'll put back 2.4.4 like you said.

With all the kext dependancies correctly set, it doesn't KP, but it still fails to get to the desktop. It just freezes at that screen that I showed earlier.

I noticed this value in ATILead's Info.plist. FramebufferOffset, I believe. In your version, it was set at 64. Should I leave it that way or change it to 32, since I have 32MB of video memory?

Also, could you tell me the versions of AGPGart and IOPCIFamily you were using?

And should I leave ATIRadeon8500.kext enabled, or should I disable it?
Soaa
After playing around with it some more, something weird happened. I have IOPCIFamily 2.4.4, and the dependancies are all set, but some thing just fail to load for some reason, like ATILead. When I go into System Preferences, it just tells me that the dependancies aren't met.

Most of the kexts that depend on IOPCIFamily give this error too.

Strange...

EDIT: After killing USB by editing some more kexts, I've decided to reformat and start fresh. smile.gif
Slice
2 Soaa
I have no find your config. Please upload
ioreg -l -x -w 2048 >ioregSoaa.txt
sudo kextstat >kextstatSoaa.txt
zip the files.
Try to make the ioreg with ATILead but may be without AGPGart. It is better to use IOPCIFamily244. There are different versions for Tiger and Leo. Check!
Without ATIRadeon8500 you easy boot to desktop but without any accelerations (no QE/CI).
FramebufferOffset I propose to be half of video memory but I am not sure.
Slice
I found an advice
CODE
<key>ATY,FrameBufferOffset</key>
<integer>0x00000080</integer>
            
<key>ATY,IOSpaceOffset</key>
<integer>0x00300000</integer>
            
<key>ATY,VRAM,MemSize</key>
<integer>0x00000100</integer>

Collect more.
DoiX
QUOTE(Slice @ Mar 5 2008, 05:35 PM) *
Can you show digital photo of your fuzzy screen? I can't understand what you looked.

ill post the pic tonight
Soaa
I'm quite sure I have Tiger's version of IOPCIFamily... Anyhoo, I removed AGPGart.kext and it detects my video memory correctly, as in the screenshot.

I put it back, and it says 128MB. ioreg and kextstat are with AGPGart.

ATILead fails to load with a link error or something.

Break: Callisto was causing problems. Removed it, and now, ATILead loads, but it doesn't boot to desktop, most likely due to values in Info.plist being incorrect. Safe boot doesn't work either, so I'll need to tinker with the shell a bit. (:

I'll test some more once I get to.
Slice
QUOTE(Soaa @ Mar 7 2008, 03:28 PM) *
I'm quite sure I have Tiger's version of IOPCIFamily... Anyhoo, I removed AGPGart.kext and it detects my video memory correctly, as in the screenshot.

I put it back, and it says 128MB. ioreg and kextstat are with AGPGart.

ATILead fails to load with a link error or something.

Break: Callisto was causing problems. Removed it, and now, ATILead loads, but it doesn't boot to desktop, most likely due to values in Info.plist being incorrect. Safe boot doesn't work either, so I'll need to tinker with the shell a bit. (:

I'll test some more once I get to.

Strange... Are you sure that you have 32Mb VideoRAM?
I found in your ioreg
CODE
    | |   |     |   "IODeviceMemory" = (({"address"=0xffffffffe8000000,"length"=0x8000000}),{"offset"=0xc000,"parent"=

It means you have 128Mb blink.gif
Or your card uses Shared Memory as I have with Radeon9000IGP?
What say Callisto about memory?
If you use ATILead remove CallistoHAL but use Callisto.kext! Look topic once again.
Soaa
I have 32MB, can't share. That's for sure because Windows sees 32MB, and Linux too. No other possible configurations in the BIOS.

That's why I'm saying AGPGart is messing with the memory. It thinks there's 128MB when there is only 32MB in reality.

I'll try your suggestions once I get home. Thanks!
Soaa
Using IONDRVDevice in Callisto.kext, I can't boot to desktop. The screen just freezes after the login window is loaded, but the computer keeps running, ie. the hard drive is still accessing stuff.

Using ATINDRV, I got the same results as you: screen flicker. I think this is the right track, we just need to figure out the correct values.
Slice
2 Soaa
Thank you for your efforts. With you I have new informations.
I make the follow test:
1. Set in BIOS 32Mb Video RAM.
2. Boot into WindowsXP
3. Launch OpenGL Extension Viewer for Windows.
What I see
Video Memory = 32Mb
Texture Memory = 56Mb. Wow!
I check that in Window the driver knows only two Radeon card 4c66 and 5835. Your and my!

Now I set in BIOS 128Mb and see IODeviceMemory 256Mb. blink.gif
Soaa
Strange, OpenGL Extensions Viewer doesn't work properly on my computer. Sounds like we can use the same driver though, huh. I guess that's good news? (:
Slice
QUOTE(Soaa @ Mar 9 2008, 01:05 AM) *
Strange, OpenGL Extensions Viewer doesn't work properly on my computer. Sounds like we can use the same driver though, huh. I guess that's good news? (:

Yes, glviewer for windows crashes for me too, but I can view settings.
Soaa
Ah, I see. It didn't give me my texture memory though.

Hmm... Any more suggestions on how I should configure the drivers? I have a feeling ATINDRV is the way to go. =P
Soaa
So, any news? ;p

I read in the AGPGart thread that something isn't working properly because of AGPGart? Or are there missing values? I'm lost as to what else I can test now, so I disabled ATILead.kext and went back to the good ol' framebuffer for the time being. tongue.gif
Slice
To test something new we need to create something new. But I have no information what to change.
Soaa
I see, we both have the same problem then... that of not knowing where to go! I tried adding some more values from the Mac's ioreg into ATILead's Info.plist, but I'm still getting a crazy fuzz like before.
Slice
QUOTE(Soaa @ Mar 13 2008, 09:40 PM) *
I see, we both have the same problem then... that of not knowing where to go! I tried adding some more values from the Mac's ioreg into ATILead's Info.plist, but I'm still getting a crazy fuzz like before.

Digital photo or your screen?
Soaa
Fuzzy pics. Hope this helps?








Slice
QUOTE(Soaa @ Mar 16 2008, 03:05 AM) *
Fuzzy pics. Hope this helps?

smile.gif
Yes! It is clear!
These pictures arisez when ATIRadeon8500.kext sets Display_Base_address to zero so you see RAM on the screen. Or AGP_BASE_ADDRESS=0 so AGP_transaction send data to zero.
Check once again all info.plists about memory bases, sizes and addressing.

AGPGart 265 permit you to change AGP_Base. Please, prepare detailed report, what is happen with different settings. Dmesg when possible.
Soaa
I've tried AGP_Base=0, 0xf0000000, 0xe0000000 before posting these pics. All had the same result, I'll post more test results as they come.

Edit: I tried fiddling with ATILead's IOSpaceOffset a bit, but no difference. I don't see any other settings to play with. Do you have any suggestions for me?
Slice
I made an attempt to patch 8500. But I can't promise you anything...
It is version from 10.4.8.
Soaa
Thanks! I'm at work now, so I can't test it right away. I'll test it once I get home.

May I ask, what did you patch, and how? I'm curious, and if this doesn't work, maybe I can do some patching of my own. smile.gif

Also, I test this with ATILead and AGPGart, right? With what settings?
Soaa
Okay, tested your new driver.

Without AGPGart nor ATILead, it loads, and the bottom quarter of my screen goes fuzzy, then my computer reboots itself instantly.

With ATILead, with or without AGPGart, it does the same fuzzy lines as I've shown.
Slice
I make new patch for Radeon8500. (other version 1.4.40.4). I replaced commands from addresses 15ea8 to 15f1d and later.
Now I can boot to desktop with such settings
I have 1Gb total RAM = 0x40000000
VRAM 128Mb is shared with RAM so
VRAM_addr = 0x38000000 VRAM_size=0x08000000
I patch ATIRadeon8500.kext to make this addresses.
AGP_aperture set to 0x04000000 = 64Mb.
In AGPGart.info.plist I write
CODE
            <key>AGP_Base</key>
            <integer>0x3c000000</integer>

That is VRAM_addr+AGP_aper=0x38000000+0x04000000
Then in ATI1Slice I set F8,size=0x00300000. It is too bad. I have very slow system. But I can enter desktop!
With Callisto I can't enter desktop with any settings!!!!!!
So, ATILead require corrections, or Callisto don't work with AGP at all.
I think a good way is to launch ATINDRV. But how?
Real Mac with Radeon9000 uses AppleNDRV which is PowerPC only, so useless.
One more probable way is to revive RadeonFB project, but no one programmer is successful.
The most real way is to use IONDRVSupport without switch resolutions.
Soaa
Slightly off-topic... I use JaS 10.4.7, should I use Software Update to update to 10.4.11 before testing?
Slice
QUOTE(Soaa @ Mar 17 2008, 05:10 PM) *
Slightly off-topic... I use JaS 10.4.7, should I use Software Update to update to 10.4.11 before testing?


I am using JaS 10.4.6 so... at your will. The kext will work in any system.
Soaa
I see. I'll test it once I get home. I'd also like to upgrade to Leo, would you think that's a good idea or a bad one? =P

For testing purposes though, I'll stick to Tiger for now. I might jump to Leo once things work.
Slice
QUOTE(Soaa @ Mar 17 2008, 11:44 PM) *
I see. I'll test it once I get home. I'd also like to upgrade to Leo, would you think that's a good idea or a bad one? =P

For testing purposes though, I'll stick to Tiger for now. I might jump to Leo once things work.

AFAIK drivers for Tiger work better then for Leo.
Soaa
I see. Tiger it is then.

I tried playing with AGPGart's and ATILead's values with your latest ATIRadeon8500 and I'm still getting a fuzzy screen. If you have anything for me to test in particular, please tell me.

Also, this might be useful to you: I have 768MB of system RAM and 32MB of dedicated VRAM, and I can't share. That probably affects some of the values.
someguy429
Hello, I've been trying some of your drivers with x200 mobility (dev id 5955), I can load the ATILead with Calisto and with 8500 kext. I can get to my desktop and I have two screens on the same screen, I can change my screen resolution (on both screens). Thou I have no QE/CI and I only have 8mb VRam. I just thought I'd tell you. Anything else you want to know?
Slice
QUOTE(someguy429 @ Mar 18 2008, 05:22 PM) *
Hello, I've been trying some of your drivers with x200 mobility (dev id 5955), I can load the ATILead with Calisto and with 8500 kext. I can get to my desktop and I have two screens on the same screen, I can change my screen resolution (on both screens). Thou I have no QE/CI and I only have 8mb VRam. I just thought I'd tell you. Anything else you want to know?

Your kext is not 8500 but 9700. I am doubt that 8500 is loaded in your case.
Look thread about Radeon 200M
If your test the patch report in those thread. About ATILead you got all possible result. What do you say about two monitors? You can use it with different desktops?
someguy429

That shows my system profiler loaded up with ATILead, 9700.kext and Callisto.
I hope that help clear things up
Slice
I think you have two desktop but similar on two monitors...
QE disabled if VRAM < 32Mb. Look into ATILead.info.plist to find a correct value
CODE
                <key>AAPL,gart-width</key>
                <integer>32</integer>
                <key>AAPL,vram-memory</key>
                <integer>67108864</integer>
                <key>ATY,Copyright</key>
                <string>Copyright ATI Technologies Inc. 2005</string>
                <key>ATY,DeviceID</key>
                <integer>22581</integer>
                <key>ATY,EFIVersion</key>
                <string>01.00.068</string>
                <key>ATY,FrameBufferOffset</key>
                <integer>64</integer>
                <key>ATY,VRAM,MemSize</key>
                <integer>64</integer>

Better value for gart-width = 64 for your Radeon
ATY,VRAM,MemSize - I dunno. Erase it at all!
someguy429
I tried changing those values but it didn't seem to change anything.
And when I say two displays on one monitor, i mean that when I move my mouse out of the left side of screen it comes back on the right side. If I highlight things the screen will redraw the background.
Slice
That's what I found
CODE
    prop = OSDynamicCast( OSData, nub->getProperty("AAPL,vram-memory"));
    if (prop && (prop->getLength() >= (2 * sizeof(IOByteCount))))
    {
        IOByteCount * lengths;

        lengths = (IOByteCount *) prop->getBytesNoCopy();
        length = lengths[1];
        vramBase = lengths[0];
    }

It means AAPL,vram-property must be <data> and contains two value
vramBase and length
For example for me
vramBase=0x38000000
length=0x08000000
Using Property List Editor I write the values and got
CODE
                <key>AAPL,vram-memory</key>
                <data>
                OAAAAAgAAAA=
                </data>

Testers, where are you?
Developers... nobody here sad.gif
domeproject
well, could you explain what vramBase and length are. For example on my "5975" with 128MB dedicated and 128 shared?
I use leo for the moment, any chance of getting it working?
prepressman
QUOTE(Slice @ Mar 19 2008, 11:04 AM) *
Testers, where are you?
Developers... nobody here sad.gif



Hi Slice,

Tell me exactly what you want me to test that I will do.

Now I have 10.5.2 running and my ID i 5975.
Krazubu
Hi Slice,
I managed to get the EFI module "Radeon.efi", it could give some precious infos, tell me if you're interested.
However, it needs to be decompressed/reverse engineered, it seems there are tools for this that will extract all data in a rather "clear" form, but I didn't look further yet.
Slice
QUOTE(krazubu @ Mar 24 2008, 02:04 PM) *
Hi Slice,
I managed to get the EFI module "Radeon.efi", it could give some precious infos, tell me if you're interested.
However, it needs to be decompressed/reverse engineered, it seems there are tools for this that will ectract all data in a rather "clear" form, but I didn't look further yet.

Yes, it is interesting. I can reverse any module but I don't know what to expect. Give me it to try!
Slice
QUOTE(domeproject @ Mar 19 2008, 07:43 PM) *
well, could you explain what vramBase and length are. For example on my "5975" with 128MB dedicated and 128 shared?
I use leo for the moment, any chance of getting it working?


QUOTE(prepressman @ Mar 20 2008, 08:37 PM) *
Tell me exactly what you want me to test that I will do.
Now I have 10.5.2 running and my ID i 5975.


I can't show you detailed instruction to make it working. I can only propose you to search new situation what is working and what no. Any information may be useful.
VRAM-address (if shared) = RAM - VRAM_size.
I have 1Gb RAM = 0x40000000
and 128Mb VRAM = 0x08000000
thus VRAM_address=0x40000000-0x08000000=0x38000000 - it is hexadecimal system.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.