On 3/4/07, Dave Airlie <airlied@linux.ie> wrote:

>> only enough to map 512k... (Also, the addresses are stored in big endian.. I
>> think.)  I might be interesting to actually look at what is in these
>> addresses.
> That mght make sense on your card as you have actual RAM, the GART is
> allocated dynamically by fglrx, so if you use a 3D app I'd expect some of
> that RAM to start getting used for things..

Have you done this yet? I'd be interested in finding out how the entries
in the table map to memory space.. there are two mappings types sso far,
PCI and PCIE... PCI is just the bus addres, PCIE is bus address >> 8 |
0xc.. mayhaps we need another one..

  Unfortunately, I too haven't been able to spend much time on this.

One thing that I DID notice was that the number of valid entries DOES vary.  I can't remember if I actually started a 3-D app, but I modified on eof the register dump stuff so that I could read the address of the GART table when the X server was running. (Rather than just through libsegfault).

Once running, If I dumped the values at that address, it covered more than 512k.  My previous (512k) dumps has been in the seconds following startup with no windows on the screen.

I'll try running a 3-d tonight and see what happens.

Here's another thing that I was going to try:
FGLRX will dump the various physical addresses where it puts things. I was going to see how this mapps that what is in the GART table. 
That way we could probably figure out how to translate the address when they are put in the GART.



David Airlie, Software Engineer
http://www.skynet.ie/~airlied / airlied at skynet.ie
Linux kernel - DRI, VAX / pam_smb / ILUG