mach64 EXA bits

Benjamin Herrenschmidt benh at kernel.crashing.org
Thu Aug 10 01:13:32 PDT 2006


> Not sure if that's what you mean but usually the framebuffer aperture 
> offers two views to video memory and registers, one swapped one not.

Not quite on newer chips. For example, on radeons, you have indeed 2
apertures, though they can be individually configured for different
swapping settings and to map the same or 2 different areas of video
memory. It's not that clear. Also, the swapper setting has to be
different depending on the pixel size you are accessing (no swap for
8bpp, 16 bits swap for 16bpp and 32 bits swap for 32bpp).

In addition, radeon can define "surfaces" within the aperture that have
different swapper settings.

The problem is that EXA might manipulate, for example, 32 bits pixmaps
and 8 bits mask pixmaps in the same "aperture".

I don't remember the details of how mach64 is or can be configured. I
suppose it's less flexible than radeon, in which case, we might have to
forbid EXA from directly accessing 2 pixmaps of different bit depth at
the same time on BE, which can be done by failing in cascaded calls to
PrepareAccess.
 
> I seem to remember the upper half is swapped but that may be wrong. Just 
> write a couple bytes into video memory and read them back as an int32 
> at BAR+offset and at BAR+aperture_size/2+offset, then use whatever is 
> more suitable. Registers are the upper 1kb or so of each view, newer 
> mach64 have them in additional memory and/or i/o BARs.






More information about the xorg mailing list