<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>XF86Config specifications</TITLE>
</HEAD>
<BODY BGCOLOR="#efefef" TEXT="black" LINK="blue" VLINK="#551A8B" ALINK="red">

<A HREF="ati.html"><EM>ATI Adapters README file</EM></A>
 <b>:</b> <EM>XF86Config specifications</EM><BR>
<b>Previous:</b> <A HREF="ati4.html"><EM>Current implementation of generic VGA support for non-ATI adapters</EM></A><BR>
<b>Next:</b> <A HREF="ati6.html"><EM>Known problems and limitations</EM></A>


<HR NOSHADE>
  <H2><A NAME="5"></A>5. XF86Config specifications</H2>
<p>Except for clocks, the driver does not require any XF86Config specifications
of its own for default operation.
The driver's behaviour can however be modified by the following
specifications.</p>

<H3><A NAME="6"></A>5.1. ChipSet "name"</H3>
<p>The default ChipSet name for this driver is "ati".</p>
<p>If "ativga" is specified instead, the driver will not use any ATI accelerator
CRTC it detects, relying instead on any detected ATI VGA CRTC to provide the
screen image.</p>
<p>A ChipSet name of "ibmvga" enables the driver's generic VGA support, but only
for non-ATI adapters.
If an ATI adapter is detected, the driver will operate as if "ativga" had been
specified instead.</p>
<p>For compatibility with other XFree86 servers, both past and present, that
support ATI adapters, the driver also recognizes "vgawonder", "mach8", "mach32"
and "mach64" as chipset names.
In this version of the driver, all such names are equivalent to "ati".
In some future release, each name will have a different meaning to be
documented at that time.</p>

<H3><A NAME="7"></A>5.2. Clocks</H3>
<p>For the purpose of specifying a clock line in your XF86Config, one of four
different situations can occur, as follows.</p>
<p>Those configuring the driver's generic VGA support for a non-ATI adapter,
can skip ahead to the "Clocks for non-ATI adapters" section below.
Those <i>not</i> trying to configure the driver for a Mach64 adapter, can
skip ahead to the "Clocks for fixed clock generators on ATI adapters" section
below.</p>
<p>The very earliest Mach64 adapters use fixed (i.e. non-programmable) clock
generators.
Very few of these (mostly prototypes) are known to exist, but if you have one
of these, you can also skip ahead to the "Clocks for fixed clock generators on
ATI adapters" section below.</p>
<p>The two cases that are left deal with programmable clock generators, which are
used on the great majority of Mach64 adapters.</p>
<p>If you are uncertain which situation applies to your adapter, you can run a
clock probe with the command "X -probeonly".</p>

<H4><A NAME="8"></A>5.2.1. Clocks for supported programmable clock generators</H4>
<p>At bootup, video BIOS initialization programmes an initial set of frequencies.
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 (e.g. MS-Windows, AutoCAD, X, etc.).
The clock numbers reserved in this way are dependent on the particular clock
generator used by the adapter.</p>
<p>The driver currently supports all programmable clock generators known to exist
on Mach64 adapters.
In this case, the driver will completely ignore any XF86Config clock
specification, and programme the clock generator as needed by the modes used
during the X session.</p>

<H4><A NAME="9"></A>5.2.2. Clocks for unsupported programmable clock generators</H4>
<p>This case is unlikely to occur, but is documented for the sake of
completeness.</p>
<p>In this situation, the driver will probe the adapter for clock frequencies
unless XF86Config clocks are already specified.
In either case, the driver will then attempt to normalize the clocks to one of
the following specifications:
<pre>
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
</pre>

<pre>
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
</pre>

<pre>
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
</pre>

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

<H4><A NAME="10"></A>5.2.3. Clocks for fixed clock generators on ATI adapters</H4>
<p>This section applies to all ATI adapters except all but the very earliest
Mach64's.</p>
<p>One of the following clocks specifications (or an initial subset thereof) can
be used depending on what the adapter uses to generate dot clocks:
<pre>
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
          12.500  14.161   0.000  11.225  11.225  12.500   0.000   9.000
</pre>

<pre>
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
</pre>

<pre>
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
</pre>

<pre>
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
</pre>

VGAWonder VLB, VGA 1024 VLB, Mach32 and Mach64 owners should only specify up to
the first 32 frequencies.</p>
<p>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.</p>
<p>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.</p>

<H4><A NAME="11"></A>5.2.4. Clocks for non-ATI adapters</H4>
<p>If no clocks are specified in the XF86Config, the driver will probe for four
clocks, the second of which will be assumed to be 28.322MHz.
You can include up to four clock frequencies in your XF86Config to specify the
actual values used by the adapter.
Any more will be ignored.</p>

<H3><A NAME="12"></A>5.3. Option "nolinear"</H3>
<p>By default, the driver will enable a linear video memory aperture for
256-colour and higher depth modes if it is also using a Mach64 accelerator CRTC
or an integrated Mach64 graphics chip.
This option disables this linear aperture.
Currently, this also disables support for more than 256 colours.</p>

<H3><A NAME="13"></A>5.4. MemBase address</H3>
<p>This specification is only effective for non-PCI Mach64 adapters, and is used
to override the CPU address at which the adapter will map its video memory.
Normally, for non-PCI adapters, this address is set by a DOS install utility
provided with the adapter.
The MemBase option can also be used to enable the linear aperture in those
cases where ATI's utility was not, or can not be, used.</p>
<p>For PCI adapters, this address is determined at system bootup according to the
PCI Plug'n'Play specification which arbitrates the resource requirements of
most devices in the system.
This means the driver can not easily change the linear aperture address.</p>

<H3><A NAME="14"></A>5.5. Modelines</H3>
<p>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 timings of the mode
(usually a text mode) in effect when the server is started.</p>

 <HR NOSHADE>
<A HREF="ati.html"><EM>ATI Adapters README file</EM></A>
 <b>:</b> <EM>XF86Config specifications</EM><BR>
<b>Previous:</b> <A HREF="ati4.html"><EM>Current implementation of generic VGA support for non-ATI adapters</EM></A><BR>
<b>Next:</b> <A HREF="ati6.html"><EM>Known problems and limitations</EM></A>



</BODY>
</HTML>
