Jump to content

New AGPGart


Slice
 Share

941 posts in this topic

Recommended Posts

Hi Zorglups, hi all :D

 

This cut-n-paste from my Info.plist (ATIRadeon9700GA.plugin) should answer your question, the bit I changed is 10024a49, of which 4a49 is my deviceID:

---------------

<key>CFPlugInFactories</key>

<dict>

<key>1002514c-0000-0000-0000-000a27898d3e</key> <---- changing this didn't work i think

<string>ATIRadeon9700GAFactory</string>

</dict>

<key>CFPlugInTypes</key>

<dict>

<key>ACCF0000-0000-0000-0000-000a2789904e</key>

<array>

<string>10024a49-0000-0000-0000-000a27898d3e</string> <----- this is what i changed

</array>

</dict>

<key>NSExecutable</key>

<string>ATIRadeon9700GA</string>

<key>Personality</key>

<dict>

<key>IOProviderClass</key>

<string>CallistoFB</string> <-- and this one of course...

</dict>

 

---------------

 

That allowed me to have a working CallistoFB, well it looks like it ;-)

 

I also send you a pm/'email' about this in the forum, please have a look :-)

 

Cheers,

 

N.M.

 

A few changes here:I moved from Callisto3 to Callisto8 (copyed the EDID string from v3).The IOClass set to CallistoFB.No AGPGart -> CI/QE ok (I must be using CallistoFB with Callisto3, else how did I get CI/QE then?).AGPGart265f -> the kext does not load properly, GUI ok. (Never Mind uses that one...)AGPGart266 -> the kext loads properly, but no GUI. I had no chance yet to revert to IONDRVFramebuffer, or Slice's. I would like to check this first:Never Mind:
For the Callisto Framebuffer via ATIRadeon9700GA.plugin I actually also had to change in the Info.plist the CFPlugInTypes, the first bit of the <string> there to the DeviceID of my card, changing the <key> of CFPlugInFactories, which also looks like an DeviceID, to my deviceID doesn't bring up GUI...

Could you be more specific? the string that begins with 10025114c (I can't fit 10020x4e50),or the string that begins with ACCF???And on the side line: the USB sytem crash with AGPGart266 occurs upon inserting a flash drive: All the time there is a USB mouse on the notebook, as my sytem crashes if I use the trackpad for more than 10 seconds (or so). I will try a first boot with a flash drive in (the memory address for that device should then be occupied when AGPGart loads).Oups!Just moved my finger on the damm track pad for 2 minutes: NO CRASH!So that problem was also related to AGPGart (all the way to AGPGart 1.0 or 2.0 - I guess from the time of the JAS10.4.6 to 10.4.8 installs). Or may be a fix with the 10.4.11 updates (I'll know when I reload AGPGart266, with a GUI...).

Link to comment
Share on other sites

First off, thanks Never Mind:

The modifyed ATIRadeon9700GA.plugin indeed allows to use CallistoFB, but No CI/QE:

<key>CFPlugInTypes</key>

<dict>

<key>ACCF0000-0000-0000-0000-000a2789904e</key>

<array>

<string>10024e50-0000-0000-0000-000a27898d3e</string>

</array>

</dict>

No GUI when both stings are modifyed...

 

Then Slice, AGP_Base set to 0xf8000000 resolves the USB crash:

It mean address for flat framebuffer=0xf0000000 so why your previous attempt with AGP_Base=0xf0000000 is failed. They must be different addresses! For you the best is 0xe8000000?!
May be better 0xf8000000?

 

As for my previous post, I am not so sure anymore:

- I actually get CI/QE out of the box (i.e Radeon9700 kext)

- I still have CI/QE with Callisto3

- I had this wrong: Callisto8 is no go on my notebook; The EDID string? does't matter, as 003 is good too.

- AGPGart265f loads once I modify

<key>com.apple.iokit.IOPCIFamily</key>

from <string>2.4</string>

to <string>1.0.0b1</string>

and behaves the same way as 266.

 

<key>AGP_Mode</key>

<integer>0xffffffff</integer> in 266

<integer>0x7fffffff</integer> in 265

Why are these keys different.

 

Without CI/QE, OpenGL apps (i.e. Chess) are unusable, right?

 

With AGPGart266 & CallistoFB, kextstat as:

16 17 0x1c092000 0x10000 0xf000 com.apple.iokit.IOPCIFamily (2.2) <11>

27 0 0x1f5a1000 0x9000 0x8000 com.slice.driver.AGPGart (2.6.6) <16 11>

57 0 0x263d6000 0x2000 0x1000 com.free.driver.CallistoHAL (1.0.0d1) <16 11>

72 3 0x26634000 0x1b000 0x1a000 com.apple.iokit.IOGraphicsFamily (1.4.8) <16 6 5 4 3>

73 1 0x2664f000 0xf000 0xe000 com.apple.iokit.IONDRVSupport (1.4.8) <72 16 6 5 4 3>

78 0 0x2648c000 0x47000 0x46000 com.apple.ATIRadeon9700 (4.5.8) <73 72 16 11 2>

81 0 0x2674d000 0x10000 0xf000 com.free.driver.Callisto (1.0.0d1) <72 16 11>

 

I'll have a look at Slice's IONDRVSupport later...

Link to comment
Share on other sites

Hi Zorglups,

 

With AGPGart266 & CallistoFB, kextstat as:

16 17 0x1c092000 0x10000 0xf000 com.apple.iokit.IOPCIFamily (2.2) <11>

27 0 0x1f5a1000 0x9000 0x8000 com.slice.driver.AGPGart (2.6.6) <16 11>

57 0 0x263d6000 0x2000 0x1000 com.free.driver.CallistoHAL (1.0.0d1) <16 11>

72 3 0x26634000 0x1b000 0x1a000 com.apple.iokit.IOGraphicsFamily (1.4.8) <16 6 5 4 3>

73 1 0x2664f000 0xf000 0xe000 com.apple.iokit.IONDRVSupport (1.4.8) <72 16 6 5 4 3>

78 0 0x2648c000 0x47000 0x46000 com.apple.ATIRadeon9700 (4.5.8) <73 72 16 11 2>

81 0 0x2674d000 0x10000 0xf000 com.free.driver.Callisto (1.0.0d1) <72 16 11>

 

Thank you for your info! :-)

 

Out of the box ey? Which box is that ? ;-) Meaning, what version of Leopard are you running?

 

I wonder where your version numbers are coming from | -)

 

Could you please zip your ATIRadeon9700* kexts and add your IOPCIFamily and IOGraphicsFamily and post or pm them?

 

As they are out of the box, no hex-editing was done on them, right ?

 

Or else please let me know from which OSX version(s) the files are, and I will try to get them via updates or so |-)

 

I would like to try them, see if that helps \-)

 

Cheers!

 

N.M.

Link to comment
Share on other sites

Hi Never Mind,

 

Tiger 10.4.11: my hardware is a few years old; I don't have 64 bytes CPUs on either desktop or labtop; No SSE3 to begin with; I'll stick to Tiger until I get some new hardware; The OsX soft I need to run works perfectly on Tiger (+X11).

 

Most kexts/frameworks are from the 10.4.11 combo update (from apple's web); A few of them are from 10.4.7/8 depending on the CPU/Mombo (desktops on 865/945PM); The OpenGL framework being dependant on GPU/CI-QE (10.4.7/10.4.11 ???). IOPCIFamily should be 10.4.8 on the labtop (old chipset)... The IOGraphicsFamily/ATIRadeon stuff is 10.4.11, but I doubt there is anything new (why would apple now include anything related to totaly obsolete hardware).

 

I am off duty (back home): I'll pm the kexts on monday. Mobile R9600/R9700 where supported on macbook (ages ago), and I don't see how apple would sell them without CI/QE (/OpenGL), so there has to be a way to go through the AGP bus (with an intel chipset...); X800 is a bit different (?).

 

Kernel is still 10.4.9 (I'll have to check how those 10.4.11 kernels do).

 

I am tempted by a Leo install though... (trash some/a lot of parts).

Link to comment
Share on other sites

Greetings JaS! You made a huge work.

If there is anybody who say me what is the difference between AGPBus for ATI card and nVidia... I think more problems with different framebuffers which work different way with a bus, AGP or PCIe. The last one has interrupt while first - no.

Link to comment
Share on other sites

Greetings JaS! You made a huge work.

If there is anybody who say me what is the difference between AGPBus for ATI card and nVidia... I think more problems with different framebuffers which work different way with a bus, AGP or PCIe. The last one has interrupt while first - no.

 

I would like to work with you to get agp supported. I think the gart is just one part of getting agp accelerated. Let me know what you think.

Link to comment
Share on other sites

I would like to work with you to get agp supported. I think the gart is just one part of getting agp accelerated. Let me know what you think.

I think I need to explain what is GART.

GART is Graphic Address Remapping Table. This meas that graphic driver allocate memory array for surfaces (textures, polygons) and send an address of the array to bus driver (method CommitAGPmemory). The AGP driver put the address to the GART. From the moment AGP hardware translate the array to aperture where video memory is allocated.

Thus video data is copied from RAM to VRAM by chipset and not by CPU. CPU is free for other operation. Except AMD64. It works with own GART (hammer hardware). Joblo's driver is good for AMD64 hammer. I only repeat this part of AGPGart.

For Intel CPU we have no hammers, we need to use chipset's capabilities.

1. Switch on AGP capabilities.

2. Tune speed of AGP bus. It is only action of AGPLight. I made manually tuning by AGP_Mode in info.plist. For example we can disable "fast_write" as Apple recommended for RV481 and some nVidia cards.

3. Create an array for GART.

4. Write physical address of GART to chipset. It is well documented for all chips except ATI but I found the correct address from Linux driver.

5. Write an aperture address to chipset. The destination of GART translation. The address is the main problem for all users. In theory it must be VRAM address but really the video chip shifts the AGP aperture related to real video memory address and I don't know how. So I made manually tuning of the address by means of AGP_Base in info.plist and I expect that testers found the best setting for own configuration. Or may be found a common rule what is the best aperture address based on ioreg data.

My values (hexadecimal):

AGP bus RS300

ATI Radeon 9000IGP with shared memory 128Mb=0x08000000.

RAM=1Gb=0x40000000

So VRAM address=0x38000000

But in ioreg I see IODeviceMemory for video=0xd0000000. (Shifting?)

I set aperture size to half of VRAM=64Mb=0x04000000.

My best (working) aperture address is occur 0x38000000+0x04000000=0x3c000000.

Why?

I need testers found the best values for own configuration.

Link to comment
Share on other sites

I have new thought.

As we have a problem with flushing on ATI chipset so may be the same problem exists with Intel chipset?

What is FLUSHING?

What is a time to transfer data by GART?

How can I take into account the time?

What is the end of the data transfer?

 

Intel says

7

GTLB Enable (GTLBEN)— R/W.

0 = Disable (default). The GTLB is flushed by clearing the valid bits associated with each entry. In

this mode of operation:

—All accesses that require translation bypass the GTLB

—All requests that are positively decoded to the graphics aperture force the GMCH to access

the translation table in main memory before completing the request

—Valid translation table entry fetches will not be cached in the GTLB

—Invalid translation table entry fetches will still be cached in the GTLB (ejecting the least

recently used entry).

1 = Enable. Normal operations of the Graphics Translation Lookaside Buffer are enabled.

NOTE: This bit can be changed dynamically (i.e., while an access to GTLB occurs); however, the

completion of the configuration write that asserts or deasserts this bit will be delayed

pending a complete flush of all dirty entries from the write buffer. This delay will be

incurred because this bit is used as a mechanism to signal the chipset that the graphics

aperture translation table is about to be modified or has completed modifications. In the

first case, all dirty entries need to be flushed before the translation table is changed. In the

second case, all dirty entries need to be flushed because one of them is likely to be a

translation table entry which must be made visible to the GTLB by flushing it to memory.

 

Apple made in Applei386AGP.cpp

	agpCtrl = configRead32(target, kiAGPCTRL);
agpCtrl &= ~(1 << 7);
configWrite32( target, kiAGPCTRL, agpCtrl ); 		// b7 gtlb ena
......................
	OSWriteLittleInt32( gartArray, agpOffset, ((physAddr & ~0xfff) | 1));
......................
// Read back from last entry written to flush entry to main memory.
tmp = OSReadLittleInt32(gartArray, agpOffset-4);
.....................
agpCtrl = configRead32(target, kiAGPCTRL);
agpCtrl |= (1 << 7);
configWrite32( target, kiAGPCTRL, agpCtrl ); 		// b7 gtlb ena

 

All is good? Or it is good only for Apple's hardware?

Why I doubt? I don't know any Apple Macintosh with intel AGP chipset.

Link to comment
Share on other sites

Now with tis ati card I am able to remove any agp base from the info plist and set it to 0

I will get different values for agp base depending on what agp aprturre size I select. It seems when I set the Aperture to

32 mb only software acceleration for gfx.

May 27 06:20:58 localhost kernel[0]: AGP: Coherence support: no
May 27 06:20:58 localhost kernel[0]: AGP: GART is 32 bit capable
May 27 06:20:58 localhost kernel[0]: AGP: Found an AGP 3.0 compliant device.
May 27 06:20:58 localhost kernel[0]: AGP: VRAM=[e0000000, 10000000]
May 27 06:20:58 localhost kernel[0]: AGPINTEL: aperture [e8000000, 02000000]
May 27 06:20:58 localhost kernel[0]: AGPINTEL trace PCI space
May 27 06:20:58 localhost kernel[0]: (00)=25708086   (04)=20900106   (08)=06000002   (0c)=00000000   
May 27 06:20:58 localhost kernel[0]: (10)=e8000008   (14)=00000000   (18)=00000000   (1c)=00000000   
May 27 06:20:58 localhost kernel[0]: (20)=00000000   (24)=00000000   (28)=00000000   (2c)=25708086   
May 27 06:20:58 localhost kernel[0]: AGP: Setting 08 data rate
May 27 06:20:58 localhost kernel[0]: AGP: command written target=00000312 master=1f00e312

64 mb Hardware accel but not more then the pci gart.

May 27 06:23:00 localhost kernel[0]: AGP: Coherence support: no
May 27 06:23:00 localhost kernel[0]: AGP: GART is 32 bit capable
May 27 06:23:00 localhost kernel[0]: AGP: Found an AGP 3.0 compliant device.
May 27 06:23:00 localhost kernel[0]: AGP: VRAM=[e0000000, 10000000]
May 27 06:23:00 localhost kernel[0]: AGPINTEL: aperture [e8000000, 04000000
]May 27 06:23:00 localhost kernel[0]: AGPINTEL trace PCI space
May 27 06:23:00 localhost kernel[0]: (00)=25708086   (04)=20900106   (08)=06000002   (0c)=00000000   
May 27 06:23:00 localhost kernel[0]: (10)=e8000008   (14)=00000000   (18)=00000000   (1c)=00000000   
May 27 06:23:00 localhost kernel[0]: (20)=00000000   (24)=00000000   (28)=00000000   (2c)=25708086   
May 27 06:23:00 localhost kernel[0]: AGP: Setting 08 data rate
May 27 06:23:00 localhost kernel[0]: AGP: command written target=00000312 master=1f00e312
May 27 06:23:00 localhost kernel[0]: AGP memory 1345e000 length 00001000 offset 00000000 cnt 00000000
May 27 06:23:00 localhost kernel[0]: AGP memory 1345e000 length 00001000 offset 00001000 cnt 00000001
May 27 06:23:00 localhost kernel[0]: AGP memory 1345e000 length 00001000 offset 00002000 cnt 00000002

128 mb Hangs at the blue screen with d0000000 as the agp base

May 27 06:10:55 -imac-2 kernel[0]: AGP: Found an AGP 3.0 compliant device.
May 27 06:10:55 -imac-2 kernel[0]: AGP: VRAM=[d0000000, 10000000]
May 27 06:10:55 -imac-2 kernel[0]: AGPINTEL: aperture [d8000000, 08000000]
May 27 06:10:55 -imac-2 kernel[0]: AGPINTEL trace PCI space
May 27 06:10:55 -imac-2 kernel[0]: (00)=25708086   (04)=20900106   (08)=06000002   (0c)=00000000   
May 27 06:10:55 -imac-2 kernel[0]: (10)=d8000008   (14)=00000000   (18)=00000000   (1c)=00000000   
May 27 06:10:55 -imac-2 kernel[0]: (20)=00000000   (24)=00000000   (28)=00000000   (2c)=25708086   
May 27 06:10:55 -imac-2 kernel[0]: AGP: Setting 04 data rate
May 27 06:10:55 -imac-2 kernel[0]: AGP: command written target=00000301 master=02000301
May 27 06:10:55 -imac-2 kernel[0]: AGP memory 0c527000 length 00001000 offset 00000000 cnt 00000000
May 27 06:10:55 -imac-2 kernel[0]: AGP memory 0c527000 length 00001000 offset 00001000 cnt 00000001
May 27 06:10:55 -imac-2 kernel[0]: AGP memory 0c527000 length 00001000 offset 00002000 cnt 00000002

so does it hang b/c it has proper agp gart and accel ? I have no idea ;)

also Isee a feew things in ioreg like ...

	  
+-o IODisplayWrangler  <class IODisplayWrangler, registered, matched, active, busy 0, retain 6>	  
| | {	  | |   "IOProviderClass" = "IOResources"	  
| |   "IOProbeScore" = 0	 
| |   "CFBundleIdentifier" = "com.apple.iokit.IOGraphicsFamily"	  
| |   "IOGraphicsPrefsParameters" = {"tbri"=Yes,"oscn"=Yes,"vbst"=Yes,"thue"=Yes,"tsat"=Yes}	  
| |   "IOMatchCategory" = "IOGraphics"	  
| |   "IOUserClientClass" = "IOAccelerationUserClient"	 
| |   "IOPowerManagement" = {"CurrentPowerState"=4,"DeviceChangePowerState"=4}	  
| |   "IOClass" = "IODisplayWrangler"	  
| |   "IOGeneralInterest" = "IOCommand is not serializable"	  
| |   "IOResourceMatch" = "IOKit"	  
| | }	  
| | 	  
| +-o IOAccelerationUserClient  <class IOAccelerationUserClient, !registered, !matched, active, busy 0, retain 5>	  
|	 {	  
|	 }	  
|

IOAccelerationUserClient has nothing between its brackets, is that normal ?

	 
|   "AGP_Master" = <>

there is no agp_master

	
| |   
| | 
|   "AAPL,vram-memory" = <000000e000000010>

Not sure what this values is equal to in ram is it 256 mb ? .... the card has 512mb

	
| |   
| +-o ATIR600GLContext  <class ATIR600GLContext, !registered, !matched, active, busy 0, retain 5>	
| |   
 | {}

ATIR600GLContext also empty. I need someone with a imac that has the HD 2400 card in it to do an ioreg for me to compare.

 

Below is the picture of the 128mb aperture hang.

post-1227-1211885567_thumb.jpg

Link to comment
Share on other sites

Now with tis ati card I am able to remove any agp base from the info plist and set it to 0

I will get different values for agp base depending on what agp aprturre size I select. It seems when I set the Aperture to

32 mb only software acceleration for gfx.

Because in CoreGraphics.framework/.../Configuration.plist you have

Quartz2DExtremeMinimumVRAM

64

64 mb Hardware accel but not more then the pci gart.

May 27 06:23:00 localhost kernel[0]: AGP memory 1345e000 length 00001000 offset 00001000 cnt 00000001
May 27 06:23:00 localhost kernel[0]: AGP memory 1345e000 length 00001000 offset 00002000 cnt 00000002

As I see GART translate memory, so...

128 mb Hangs at the blue screen with d0000000 as the agp base

so does it hang b/c it has proper agp gart and accel ? I have no idea :(

AGP_Base might not be equal to VRAM. So d0000000 is a bad value.

also Isee a feew things in ioreg like ...

	  
+-o IODisplayWrangler  <class IODisplayWrangler, registered, matched, active, busy 0, retain 6>| | +-o IOAccelerationUserClient  <class IOAccelerationUserClient, !registered, !matched, active, busy 0, retain 5>	  
|	 {	  
|	 }	  
|

IOAccelerationUserClient has nothing between its brackets, is that normal ?

	 
|   "AGP_Master" = <>

there is no agp_master

	
| |   
| | 
|   "AAPL,vram-memory" = <000000e000000010>

Not sure what this values is equal to in ram is it 256 mb ? .... the card has 512mb

	
| |   
| +-o ATIR600GLContext  <class ATIR600GLContext, !registered, !matched, active, busy 0, retain 5>	
| |   
 | {}

ATIR600GLContext also empty.

All is good. I check same values with my compN1 (in signature).

Really strange about 256 or 512Mb. It is probably writen in gfx-string because System and Apple's drivers don't write a value "AAPL,vram-memory".

AGP_Master is empty because it is needed only as present or not. System profiler show us "AGP" if it is present.

I need someone with a imac that has the HD 2400 card in it to do an ioreg for me to compare.

 

Below is the picture of the 128mb aperture hang.

Picture looks like that I have with wrong AGP_Base.

I have some ioregs from real mac but with other cards.

MacIOREGs.zip

Link to comment
Share on other sites

Okay so I have 512mb ram on card and aperture of 128mb so it should be 0xf8000000 ?

 

I have to be honest here when I say I am having a hard time grasping this agp_base and I find 0 to nil info about how to calculate it on the net.And altho you have already tried to explain how to do it I think the language barrier is stopping some of your explanation from getting through to me.

Link to comment
Share on other sites

Hi Slice

I have tried almost all versions of AGPGart with variable no succes results:

v Universal and Light not loaded

v 2.1 results decrease of Open GL performance (Xbench Spinning Squares 84 without AGPGart, 74 with AGPGart)

v 2.2 my video card isnt recognized so i had software acceleration without Open GL (no ci/qe)

v 2.4 got freezes during boot.

v 2.6.5, v 2.6.6 same as 2.4 with lines:

AGP: Found VIA VT83xx/VT87xx/KTxxx/Px8xx host to PCI Bridge

AGP: SaveBridgeState ok

AGP Create Nub for 022110de BUS=1 CAP=68

AGPGart: Publish Nub Display

 

JaS tried to help me for few hours (thanx a lot) but my issue looks impossible to solve. I will be very grateful if you can give some attention to this weird problem.

Here is my specs:

 

Report_2.rtf

Wppley_JaS.zip

 

Thanx in advance.

Link to comment
Share on other sites

Slice at 32mb I get two pci traces and then two different infos about aperture base you can tell from the info below. This only happens at 32mb aperture

 

May 27 13:56:45 jnls-imac-2 kernel[0]: AGP: Coherence support: no
May 27 13:56:45 jnls-imac-2 kernel[0]: AGP: GART is 32 bit capable
May 27 13:56:45 jnls-imac-2 kernel[0]: AGP: Found an AGP 3.0 compliant device.
May 27 13:56:45 jnls-imac-2 kernel[0]: AGPINTEL: aperture [f0000000, 02000000]
May 27 13:56:45 jnls-imac-2 kernel[0]: AGPINTEL trace PCI space
May 27 13:56:45 jnls-imac-2 kernel[0]: (00)=25708086   (04)=20900106   (08)=06000002   (0c)=00000000   
May 27 13:56:45 jnls-imac-2 kernel[0]: (10)=f0000008   (14)=00000000   (18)=00000000   (1c)=00000000   
May 27 13:56:45 jnls-imac-2 kernel[0]: (20)=00000000   (24)=00000000   (28)=00000000   (2c)=25708086   
May 27 13:56:45 jnls-imac-2 kernel[0]: AGP: Setting 08 data rate
May 27 13:56:45 jnls-imac-2 kernel[0]: AGP: command written target=00000312 master=1f00e312
May 27 13:56:45 jnls-imac-2 kernel[0]: AGP: Coherence support: no
May 27 13:56:45 jnls-imac-2 kernel[0]: AGP: GART is 32 bit capable
May 27 13:56:45 jnls-imac-2 kernel[0]: AGP: Found an AGP 3.0 compliant device.
May 27 13:56:45 jnls-imac-2 kernel[0]: AGPINTEL: aperture [70000000, 02000000]
May 27 13:56:45 jnls-imac-2 kernel[0]: AGPINTEL trace PCI space
May 27 13:56:45 jnls-imac-2 kernel[0]: (00)=25708086   (04)=20900106   (08)=06000002   (0c)=00000000   
May 27 13:56:45 jnls-imac-2 kernel[0]: (10)=70000008   (14)=00000000   (18)=00000000   (1c)=00000000   
May 27 13:56:45 jnls-imac-2 kernel[0]: (20)=00000000   (24)=00000000   (28)=00000000   (2c)=25708086   
May 27 13:56:45 jnls-imac-2 kernel[0]: AGP: Setting 08 data rate
May 27 13:56:45 jnls-imac-2 kernel[0]: AGP: command written target=00000312 master=1f00e312

Link to comment
Share on other sites

Hi Slice

I have tried almost all versions of AGPGart with variable no succes results:

v Universal and Light not loaded

v 2.1 results decrease of Open GL performance (Xbench Spinning Squares 84 without AGPGart, 74 with AGPGart)

v 2.2 my video card isnt recognized so i had software acceleration without Open GL (no ci/qe)

v 2.4 got freezes during boot.

v 2.6.5, v 2.6.6 same as 2.4 with lines:

AGP: Found VIA VT83xx/VT87xx/KTxxx/Px8xx host to PCI Bridge

AGP: SaveBridgeState ok

AGP Create Nub for 022110de BUS=1 CAP=68

AGPGart: Publish Nub Display

You probably have non-supported yet combination of Intel CPU+VIA chipset.

Please make a follow:

type in terminal

ioreg -l -x -w 2048 >ioregWppley.txt

zip the file and upload here.

 

Slice at 32mb I get two pci traces and then two different infos about aperture base you can tell from the info below. This only happens at 32mb aperture

 

May 27 13:56:45 jnls-imac-2 kernel[0]: AGP: Coherence support: no
May 27 13:56:45 jnls-imac-2 kernel[0]: AGP: GART is 32 bit capable
May 27 13:56:45 jnls-imac-2 kernel[0]: AGP: Found an AGP 3.0 compliant device.
May 27 13:56:45 jnls-imac-2 kernel[0]: AGPINTEL: aperture [f0000000, 02000000]
May 27 13:56:45 jnls-imac-2 kernel[0]: AGPINTEL trace PCI space
May 27 13:56:45 jnls-imac-2 kernel[0]: (00)=25708086   (04)=20900106   (08)=06000002   (0c)=00000000   
May 27 13:56:45 jnls-imac-2 kernel[0]: (10)=f0000008   (14)=00000000   (18)=00000000   (1c)=00000000   
May 27 13:56:45 jnls-imac-2 kernel[0]: (20)=00000000   (24)=00000000   (28)=00000000   (2c)=25708086   
May 27 13:56:45 jnls-imac-2 kernel[0]: AGP: Setting 08 data rate
May 27 13:56:45 jnls-imac-2 kernel[0]: AGP: command written target=00000312 master=1f00e312
May 27 13:56:45 jnls-imac-2 kernel[0]: AGP: Coherence support: no
May 27 13:56:45 jnls-imac-2 kernel[0]: AGP: GART is 32 bit capable
May 27 13:56:45 jnls-imac-2 kernel[0]: AGP: Found an AGP 3.0 compliant device.
May 27 13:56:45 jnls-imac-2 kernel[0]: AGPINTEL: aperture [70000000, 02000000]
May 27 13:56:45 jnls-imac-2 kernel[0]: AGPINTEL trace PCI space
May 27 13:56:45 jnls-imac-2 kernel[0]: (00)=25708086   (04)=20900106   (08)=06000002   (0c)=00000000   
May 27 13:56:45 jnls-imac-2 kernel[0]: (10)=70000008   (14)=00000000   (18)=00000000   (1c)=00000000   
May 27 13:56:45 jnls-imac-2 kernel[0]: (20)=00000000   (24)=00000000   (28)=00000000   (2c)=25708086   
May 27 13:56:45 jnls-imac-2 kernel[0]: AGP: Setting 08 data rate
May 27 13:56:45 jnls-imac-2 kernel[0]: AGP: command written target=00000312 master=1f00e312

It is a news. I think ATIRadeonX1000.kext fails to load first time and decide to make new attempt. This messages induced by him!

Please, find IONDRVSupport.kext/info.plist and change from

			<key>IOPCIClassMatch</key>
		<string>0x03000000&0xff000000</string>

to

			<key>IOPCIClassMatch</key>
		<string>0x03000000&0xffff0000</string>

Explanations follow later.

 

I have to be honest here when I say I am having a hard time grasping this agp_base and I find 0 to nil info about how to calculate it on the net.And altho you have already tried to explain how to do it I think the language barrier is stopping some of your explanation from getting through to me.

:) I also notice some misunderstanding.

 

I think in case of aperture=128Mb you can try follow values for AGP_Base:

d8000000

e0000000

e8000000

 

I am thinking what new I can propose to you. May be version of AGPGart with more tracing?

Link to comment
Share on other sites

Hi Slice.

 

Thanks for the response.

Your problem is hard for me cause I have no VIA chipset documentation. I'll trying to look into other versions.

Please make ioreg once again but with IOPCIFamily 2.4.4 and without AGPGart. I need to find your host controller (device=0, class=0600, AGP_Target=). In previous ioreg I don't see such device.

Also try to catch a moment when AGPGart 2.6.5f was frozen. I need to know where is a mistake.

If found I can correct AGPGart. If no - sorry.

Link to comment
Share on other sites

I don't get it at all.I just tryed a few things (again):

 

1) just ATIRadeon9700* from 10.4.11 -> CI/QE OKNote that the BUS is PCI, and the VRAM (Total) 128 (NOT 64 as it should be)!

 

2) Modifyed ATIRadeon9700GA.plugin (usefull to keep CallistoFB with AGPGart):<key>CFPlugInTypes</key><dict>

<key>ACCF0000-0000-0000-0000-000a2789904e</key>

<array><string>10024e50-0000-0000-0000-000a27898d3e</string> <----- this is what i changed->

NO more CI/QE.

a diff of both ioreg reveales a few chages, notably in ATIRadeaon9700:

InUsebyPids goes from 0x58 to blank

Performance statistics gives diffrent vram, gart sizes

and mostely an entire section called ATIR3002DContext (and Surface/GLContext) disapears.

 

3) ATIRadeon9700* from 10.4.11 and IONDRV1442 (from Slice) -> CI/QE OK

the IONDRV report VGA size...a diff of both ioreg reveales no critical changes (Power and HID...)

 

4) ATIRadeon9700* from 10.4.11 and Callisto003 -> No more CI/QE

I had CI/QE on previous test!!! Actually, I kept ioregs from past tests, and all Callistos have ATIR3002DContext!

a diff of the dmesgs shows different kernel virtual address

a diff of the kextstats shows exact same kexts but loaded in a diffrent order...

The VRAM switched allways to 64.

But I guess taht is all off topic for you...

 

5) ATIRadeon9700* from 10.4.11 and AGPGart266 - various AGP_Base

Nothing worked at all: black screen on all Bases/fastwrite enabled/disabled (<key>AGP_Mode</key><integer>0xffffffff</integer> / <integer>0x7fffffff</integer> ).

 

6) Earlier ATIRadeon9700* from 10.4.11 , Callisto003 and AGPGart266 -> No more CI/QE

That is where I started actually; And where I too needed clarification:

AGP_Base is reported by Windows (and IONDRV1442?) as a8000000 but that simply failes (no GUI)

f8000000 f0000000 (no GUI)

fa000000 7d000000 d4000000 (GUI but no chages)

I guess any value above RAM is OK, any value below (i.e. in RAM range) failes; VRAM does not matter; Except for my VRAM beying sometime displayed as 64 or 128: and that is when I messed up, and resolved to remove all Extensions and tar back an earlier stage (than removed AGPGart, and Callisto and ended at stage 1).

 

I can't do a thing before I resolve how I went through stage 4;I don't get It either why ATIRadeon9700* from 10.4.11 and AGPGart266 don't work anymore (stage 5).

Not much I can do anymore.

 

I forgot, for Never Mind:I suppose it is OK to upload plain 10.4.11 kext (from the combo update).I don't know if moderators will like that.Here are thoses kext you requested.

ATIRadeon9700.zip

IOPciGra.zip

Link to comment
Share on other sites

Your problem is hard for me cause I have no VIA chipset documentation. I'll trying to look into other versions.

Please make ioreg once again but with IOPCIFamily 2.4.4 and without AGPGart. I need to find your host controller (device=0, class=0600, AGP_Target=<>). In previous ioreg I don't see such device.

Also try to catch a moment when AGPGart 2.6.5f was frozen. I need to know where is a mistake.

If found I can correct AGPGart. If no - sorry.

 

Hi Slice.

 

Thanx again.

 

Wppley.zip

Link to comment
Share on other sites

Hi Slice.

 

Thanx again.

Yes, it is your host

	| |   +-o pci1106,314@0  <class IOPCIDevice, registered, matched, active, busy 0, retain 6>
| |	   {
| |		 "IOPCIResourced" = Yes
| |		 "IOName" = "pci1106,314"
| |		 "subsystem-id" = <14030000>
| |		 "IODeviceMemory" = (({"address"=0xffffffffe0000000,"length"=0x10000000}))
| |		 "class-code" = <00000600>
| |		 "IOPowerManagement" = {"CurrentPowerState"=0x2}
| |		 "revision-id" = <00000000>
| |		 "assigned-addresses" = <1000004200000000000000e00000000000000010>
| |		 "device-id" = <14030000>
| |		 "vendor-id" = <06110000>
| |		 "name" = "pci1106,314"
| |		 "subsystem-vendor-id" = <06110000>
| |		 "IOAGPFlags" = 0x1
| |		 "AGP_Target" = <>

So the best AGP_Base for you=0xe0000000.

Wait, please, for corrected AGPGart.

 

2 zorglups

Sorry, I answer you later.

Link to comment
Share on other sites

So I followed your instructions and edited iondrvsupport's info plist but it still throw the errors even with only the x2000 extension and bundles in the extension folder.

It seems the best setting for me is 0 for agp_base and 64mb aperture

5/28/08 11:45:53 AM kernel AGP: VRAM=[e0000000, 10000000] 
5/28/08 11:45:53 AM kernel AGPINTEL: aperture [e8000000, 04000000] 
5/28/08 11:45:53 AM kernel AGPINTEL trace PCI space 
5/28/08 11:45:53 AM kernel (00)=25708086   (04)=20900106   (08)=06000002   (0c)=00000000	
5/28/08 11:45:53 AM kernel (10)=e8000008   (14)=00000000   (18)=00000000   (1c)=00000000	
5/28/08 11:45:53 AM kernel (20)=00000000   (24)=00000000   (28)=00000000   (2c)=25708086	
5/28/08 11:45:53 AM kernel AGP: Setting 08 data rate 
5/28/08 11:45:53 AM kernel AGP: command written target=00000312 master=1f00e312 
5/28/08 11:45:53 AM kernel AGP memory 126a6000 length 00001000 offset 00000000 cnt 00000000 
5/28/08 11:45:53 AM kernel AGP memory 126a6000 length 00001000 offset 00001000 cnt 00000001 
5/28/08 11:45:53 AM kernel AGP memory 126a6000 length 00001000 offset 00002000 cnt 00000002

 

With this setting I get 75 in xbench with agpgart loaded( not very good ) Seems like this card should score higher if things are working. I am only using this as a guage and not the bible, and 54 without it. I am interested to know if this is bus tuning speed ( from pci 33 to agp 66 ) or real agp working. I know your setting up everything on your end. I think I need to see an xbench of an hd 2400 (pcie) in a mac to know if it is or not.

Link to comment
Share on other sites

No, I think it is not only bus tuning. Check AGPLight that make it!

Make a test with Cinebench in MacOSX and in WindowsXP.

And wait for new version where I suppose to change flushing engine.

Link to comment
Share on other sites

Hi Slice,

 

I’ve been following this thread closely as promised.

In the meantime I’ve tried everything that crossed my mind to make AGPGart functional in Leopard, but I haven’t been successful. Doesn’t matter what version of AGPGart I install (tried 264, 265b, 265f, 266) or what AGP_Base I set (tried with 0xe000000, 0xf0000000, 0xe8000000, 0xd8000000 and 0xffffffff) I always get a black screen with mouse pointer. Do you think that maybe it is because graphic kexts for Leopard demand property "AAPL,gart-width" to be 0x40 (PCIe value) and AGPGart set it on 0x20? As you already know graphic kexts in Tiger work perfectly with AGPGart (at least on AMD64), but kexts from Tiger don’t work in Leo, so maybe one of the changes Apple made is that they only work on PCIe ("AAPL,gart-width"=0x40). I know that PPC version of graphic kexts supports AGP but maybe Apple took this support out of Intel version.

 

Greetings JaS

 

A bit of topic question. How did you managed to get CHUD Tools (or Reggie SE) to work on hackintosh? To be able to run Reggie SE a CHUDKernLib.kext (alongside with CHUDProf.kext and CHUDUtils.kext) must be loaded but as soon as I load it (either during boot or later with kextload) I get a KP.

Link to comment
Share on other sites

Update:

4) ATIRadeon9700* from 10.4.11 and Callisto003 -> CI/QE OK

It's the FrameBuffer: CallistoFB gets CI/QE back

a diff of the ioreg show changes in the framebuffer and the return of ATIR300...

The VRAM switched allways to 64, while 128 without Callisto.

(Side note: when booting toward CI/QE, the sequence is always the same. Blue screen with cursor for a while, a short black screen, then blue and GUI. When booting toward NO CI/QE, short blue and GUI).

 

7) New ATIRadeon9700* from 10.4.11 , Callisto003 and AGPGart266 (AGP_Base?)->

0xd8000000, 0xe8000000 -> display stops with kexts infos and no blue/GUI and probable crash

0xf8000000 -> same:no GUI and very long disk activity then probable crash

 

8) ATIRadeon9700* from 10.4.11 , Callisto003 and AGPGart266 + Modifyed ATIRadeon9700GA.plugin (usefull to keep CallistoFB with AGPGart) -> GUI back - No CI/QE

 

Conclusion:

Is it just AGPGart (AGP_Base) or once AGP is enabled a new farmebuffer needs to be build?

Hope Slice is in a good mood.

Link to comment
Share on other sites

Here is a new version of AGPGart with changes for all users. I didn't check to myself yet.

 

2 JaS

More fast flushing. Compare speed with previous version.

 

2 Wppley

Corrected for VIA chipset. I check linux driver from VIA and made all the same.

http://www.viaarena.com/Driver/VT3324-3364...nel-src_200.tgz

Install, repair permissions, boot with -s and then sh /etc/rc. If stop, make dmesg for me to know where is the stop.

 

2 Cybland

Look at JaS report #573. http://forum.insanelymac.com/index.php?sho...1308&st=572

AGP bus is not 64bit capable and not permit translation over 4Gb. So gart-width=0x40 is not working.

Why AMD64 is not work under Leo? With Common Sense we saw that PCI bus configured with some bits disabled compared to Tiger. I think we need to obtain documents about PCI settings for AMD64 to make it working. I can't to get the information by testing because I have no AMD.

 

2 zorglups

You are walking around my statement that Callisto is not compatible with AGPGart. To know why I need to make new framebuffer.

Moreover IONDRVSupport 1.4.5 is not working with AGP at some users while 1.4.3 does. I still don't catch why even though I have sources of all versions. It is very hard to be alone programmer.

About GA.plugin. Did you full understand what to change in it's info.plist?

<key>IOProviderClass</key>
<string>IOFramebuffer</string>

Without correct name you will have software QE/CI and no ATIR300 - it is strict rule.

10024a49-0000-0000-0000-000a27898d3e - I am really doubt that it has influence on somehow. If somebody show me tests with differencies it would be great contribution to the project.

About Video Memory Size shown in System Profiler. There are values in Radeon Registers (148, F8 and 108) and in IORegistry (IODeviceMemory, VRAM,memsize, VRAM,totalsize, AAPL,vram-memory and etc). AFAIK System Profiler uses VRAM,totalsize. Not sure.

IONDRV uses

	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];
}
else
{
	vramBase = physicalFramebuffer;
	prop = OSDynamicCast( OSData, nub->getProperty("VRAM,memsize"));

But ATIRadeon9700.kext uses registers 148 for framebuffer and F8 for openGL.

Abrakadabra.

We also have PCI aperture and AGP aperture. PCI=AGP*2.

All is clear? ;)

Link to comment
Share on other sites

 Share

×
×
  • Create New...