








			      ATI adapters README

			     Marc Aurele La France

				 23 March 1996



				   Abstract

     This is the README for the XFree86 ATI VGA driver used in the
     XF86_Mono, XF86_VGA16 and XF86_SVGA servers.  Users of ATI adapters
     based on the Mach8, Mach32 or Mach64 (including 3D Rage and 3D Rage
     II) accelerators should be using the accelerated servers (XF86_Mach8,
     XF86_Mach32 or XF86_Mach64).  The unaccelerated servers (XF86_Mono,
     XF86_VGA16 and XF86_SVGA) should still work, but are a waste of capa-
     bilities.



1.  What is the ATI VGA driver?

The ATI VGA driver is a 256-colour, 16-colour and monochrome driver for
XFree86.  The driver is intended for all ATI video adapters except those that
do not provide SuperVGA functionality (such as some early Mach8 and Mach32
adapters).  The following approximate maximum resolutions (based on the Golden
Ratio of x/y = (1 + sqrt(5))/2) are possible depending on the video memory
available on the adapter (and the capabilities of your monitor):

	 256k	 640x409x256	896x585x16
	 512k	 896x585x256   1280x819x16
	 1M	1280x819x256  1824x1149x16


Maximum monochrome resolutions are the same as those for 16-colour mode,
because the monochrome server uses a maximum of one fourth of the available
video memory.


2.  What is the ATI VGA driver *not*?

This driver does not yet support more than 8 bits of pixel depth.  Even if your
manual says that your graphics adapter supports modes using more than 256
colours, the ATI VGA driver will not use these modes.

The ATI VGA driver is not an accelerated driver.  If your adapter is based on
the Mach8, Mach32 or Mach64 video controllers, this driver will not use the
accelerated functions of the hardware.	It will only use the VGA hardware
(which, for Mach32's and Mach64's, is integrated into the accelerator).  This
can make opaque moves, for example, quite jerky.




ATI adapters README





ATI adapters README



3.  What video adapters will the driver work with?

Most adapters harbouring the following ATI video controller chips will work
with this driver:

     VGA Wonder series:  18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6
	 Mach32 series:  68800-3, 68800-6, 68800AX, 68800LX
	 Mach64 series:  88800GX-C, 88800GX-D, 88800GX-E, 88800GX-F, 88800CX,
			 264CT, 264ET, 264VT, 264VT2, 264GT


The 264xT series are integrated controllers, meaning that they include an
internal RAMDAC and clock generator.  Some early Mach32 adapters will not work
with this driver because they do not provide VGA functionality.  Also, early
Mach8 adapters will not work for the same reason, unless the adapter also has a
video controller from the VGA Wonder series (or is connected to one through the
VGA passthrough connector).

These adapters are available with a variety of clock generators and RAMDACs.
See the XF86Config section below for details.  These adapters are available
with or without a mouse.

VGA Wonder V3 adapters use a 18800 video controller and generate dot clocks
with crystals.	VGA Wonder V4 adapters have a 18800-1 and also use crystals.
VGA Wonder V5 adapters also use a 18800-1, but have a 18810 clock generator.
VGA Wonder+ adapters use a 28800-2 and a 18810.  Other than these, ATI's
adapter naming convention (if it can be said that one exists) starts to fall
apart.

The VGA Wonder series was also available through ATI's OEM channel under the
name VGA1024.  Thus, the ATI VGA driver also supports VGA1024, VGA1024D,
VGA1024XL, VGA1024DXL and VGA1024VLB adapters, among others.


4.  What should I put in my XF86Config file?

The chipset will be automatically detected.  The chipset name for this driver
is "ati".  The driver also recognizes "vgawonder", "mach8", "mach32" and
"mach64" as chipset names.  In this version of the driver, all names are equiv-
alent.	In some future version each name will have a different meaning to be
documented at that time.

The clocks line to be specified in your XF86Config depends on what the adapter
uses to generate dot clocks.

For all adapters, one of the following clocks specifications (or an initial
subset thereof) can be used depending on what the adapter uses to generate dot
clocks:

     Crystals (VGA Wonder V3 and V4 adapters only):

       Clocks  50.000  56.644	0.000  44.900  44.900  50.000	0.000  36.000
	       25.000  28.322	0.000  22.450  22.450  25.000	0.000  18.000
	       16.667  18.881	0.000  14.967  14.967  16.667	0.000  12.000








ATI adapters README



	       12.500  14.161	0.000  11.225  11.225  12.500	0.000	9.000



     ATI 18810 clock generator:

       Clocks  30.240  32.000  37.500  39.000  42.954  48.771	0.000  36.000
	       40.000  56.644  75.000  65.000  50.350  56.640	0.000  44.900
	       15.120  16.000  18.750  19.500  21.477  24.386	0.000  18.000
	       20.000  28.322  37.500  32.500  25.175  28.320	0.000  22.450
	       10.080  10.667  12.500  13.000  14.318  16.257	0.000  12.000
	       13.333  18.881  25.000  21.667  16.783  18.880	0.000  14.967
		7.560	8.000	9.375	9.750  10.739  12.193	0.000	9.000
	       10.000  14.161  18.750  16.250  12.586  14.160	0.000  11.225



     ATI 18811-0 and ATI 18812-0 clock generators:

       Clocks  30.240  32.000 110.000  80.000  42.954  48.771  92.400  36.000
	       39.910  44.900  75.000  65.000  50.350  56.640	0.000  44.900
	       15.120  16.000  55.000  40.000  21.477  24.386  46.200  18.000
	       19.955  22.450  37.500  32.500  25.175  28.320	0.000  22.450
	       10.080  10.667  36.667  26.667  14.318  16.257  30.800  12.000
	       13.303  14.967  25.000  21.667  16.783  18.880	0.000  14.967
		7.560	8.000  27.500  20.000  10.739  12.193  23.100	9.000
		9.978  11.225  18.750  16.250  12.588  14.160	0.000  11.225



     ATI 18811-1 and ATI 18811-2 clock generators:

       Clocks 135.000  32.000 110.000  80.000 100.000 126.000  92.400  36.000
	       39.910  44.900  75.000  65.000  50.350  56.640	0.000  44.900
	       67.500  16.000  55.000  40.000  50.000  63.000  46.200  18.000
	       19.955  22.450  37.500  32.500  25.175  28.320	0.000  22.450
	       45.000  10.667  36.667  26.667  33.333  42.000  30.800  12.000
	       13.303  14.967  25.000  21.667  16.783  18.880	0.000  14.967
	       33.750	8.000  27.500  20.000  25.000  31.500  23.100	9.000
		9.978  11.225  18.750  16.250  12.588  14.160	0.000  11.225


Mach32 and Mach64 owners should only specify up to the first 32 frequencies.

The oldest Mach64 adapters use one of the clock generators described above.
The possibilities for Mach64 adapters also include programmable clock genera-
tors.  At bootup, video BIOS initialization programmes an initial set of fre-
quencies.  Two of these are reserved to allow the setting of modes that do not
use a frequency from this initial set.	One of these reserved slots is used by
the BIOS mode set routine, the other by the particular driver used (MS-Windows,
AutoCAD, X, etc.).  The clock numbers reserved in this way are dependent on the
particular clock generator used on the adapter.

If the driver does not support the adapter's clock generator, it will try to








ATI adapters README



match the clocks to one of the following specifications.  This matching will
occur whether or not the user specifies the clocks in XF86Config.

     BIOS setting 1:

       Clocks	0.000 110.000 126.000 135.000  50.350  56.640  63.000  72.000
		0.000  80.000  75.000  65.000  40.000  44.900  49.500  50.000
		0.000  55.000  63.000  67.500  25.180  28.320  31.500  36.000
		0.000  40.000  37.500  32.500  20.000  22.450  24.750  25.000



     BIOS setting 2:

       Clocks	0.000 110.000 126.000 135.000  25.180  28.320  31.500  36.000
		0.000  80.000  75.000  65.000  40.000  44.900  49.500  50.000
		0.000  55.000  63.000  67.500  12.590  14.160  15.750  18.000
		0.000  40.000  37.500  32.500  20.000  22.450  24.750  25.000



     BIOS setting 3:

       Clocks	0.000	0.000	0.000	0.000  25.180  28.320	0.000	0.000
		0.000	0.000	0.000	0.000	0.000	0.000	0.000	0.000
		0.000	0.000	0.000	0.000  12.590  14.160	0.000	0.000
		0.000	0.000	0.000	0.000	0.000	0.000	0.000	0.000


If the driver matches the clocks to the third setting above, functionality will
be *extremely* limited (assuming the driver works at all).

Other clock generators that have been used on ATI adapters (which can all be
said to be clones of one of the above) might generate non-zero frequencies for
those that are zero above, or vice-versa.

The order of the clocks *is* very important, although the driver will reorder
the clocks if it deems it appropriate to do so.  Mach32 and Mach64 owners
should note that this order is different than what they would use for the
accelerated servers.

If the driver detects a supported programmable clock generator, it will ignore
any XF86Config clock specification and programme the generator as needed by the
modes to be used during the X session.

A clock probe, done with the command "X -probeonly", will help you decide which
of the above to use for your particular adapter.  If the server consistently
reports that it has detected an unknown clock generator, please e-mail me the
stderr output.

Modes can be derived from the information in XFree86's doc directory.  If you
do not specify a "modes" line in the display subsection of the appropriate
screen section of your XF86Config, the driver will generate a default mode and
attempt to use it.  The timings for the default mode are derived from the








ATI adapters README



timings of the mode (usually a text mode) in effect when the server is started.


5.  What is the history of the driver?

The complete history of the driver is rather cloudy.  The following is probably
incomplete and inaccurate.

Apparently, Per Lindqvist (pgd@compuram.bbt.se) first got an ATI driver working
with an early ATI card under X386 1.1a.  This original driver may have actually
been based on an non-functional ATI driver written by Roell.  Then Doug Evans
(dje@cygnus.com) ported the driver to the ATI VGA Wonder XL, trying in the pro-
cess to make the driver work with all other ATI cards.

Rik Faith (faith@cs.unc.edu) obtained the X11R4 driver from Doug Evans in the
summer of 1992, and ported the code to the X386 part of X11R5.	This subse-
quently became part of XFree86.

I (Marc Aurele La France) took the driver over in the fall of 1993 after Rik
got rid of his VGA Wonder card.


6.  Miscellaneous notes

In all cases, virtual resolutions must be less than 4096 pixels wide.  For VGA-
Wonder V3 adapters with 256kB of video memory, and for all 264xT adapters, the
256-colour server will further limit virtual resolutions to less than 2048 pix-
els wide.  These are hardware limits that cannot be circumvented.

Dot clocks greater than 80MHz cannot be used on most adapters as a way still
needs to be discovered to make the VGA Wonder controller do pixel multiplexing.

Support for more than 8bpp colour depth is pending proper RAMDAC handling and
banked framebuffer code for >8bpp.

Video memory corruption can still occur during mode switches on V3, V4 and V5
adapters.  Symptoms of this problem include garbled fonts on return to text
mode, and various effects (snow, dashed lines, etc) on initial entry into a
graphics mode.	In the first case, the workaround is to use some other means of
restoring the text font.  On Linux, this can be done with the kbd or svgalib
packages.  In the second case, xrefresh will usually cleanup the image.

Video memory banking does not work in the 16-colour and monochrome servers on
V3, V4 and V5 adapters (with 512kB of video memory).  This appears to be a
hardware limitation.  The driver's default behaviour has been changed to take
this into consideration by limiting video memory to 256kB.

Interlaced modes do not work in the monochrome server on 28800-x adapters when
using a virtual resolution that is 2048 pixels or wider.  This appears to be a
hardware limitation.  The driver has been changed to prune modes accordingly.

Support for virtual resolutions using more than 1MB of video memory is still
incomplete.  Specifically, such support works on Mach32 adapters, and on 264xT
adapters, but not on any other Mach64 adapters.  On 88800GX and 88800CX








ATI adapters README



adapters, this appears to be a hardware limitation.  Consequently, the driver's
default behaviour is to limit video memory to 1MB.

There is some controversy over whether or not clocks higher than 135MHz should
be allowed on 264xT adapters.  For now, clocks will be limited to 135MHz by
default.  This limit can only be increased (up to a driver-calculated absolute
maximum) through the DACSpeed option in XF86Config.  Be aware however that
doing this is untested and might damage the adapter.

The default mode does not work on the more recent Mach64 adapters.  This will
be fixed in a future release by reading the programmable clock generator's reg-
isters.

Future development plans include addressing the above problems and using accel-
erated functionality.

Please e-mail any bug reports, comments, etc. to Marc Aurele La France,
tsi@ualberta.ca

     Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/ati.sgml,v 3.15.2.1 1997/06/01 12:33:36 dawes Exp $





     $XConsortium: ati.sgml /main/9 1996/10/19 18:03:54 kaleb $




































ATI adapters README





































































				   CONTENTS



1. What is the ATI VGA driver? .............................................. 1

2. What is the ATI VGA driver *not*? ........................................ 1

3. What video adapters will the driver work with? ........................... 2

4. What should I put in my XF86Config file? ................................. 2

5. What is the history of the driver? ....................................... 5

6. Miscellaneous notes ...................................................... 5









































				       i


