ATI Adapters README file : XF86Config specifications
Previous: Current implementation of generic VGA support for non-ATI adapters
Next: Known problems and limitations

5. XF86Config specifications

The driver recognizes a number of XF86Config options. In general, all such options should be specified in a ``Device'' section, and affect only that ``Device'' section.

Those options that affect how the driver associates adapters with ``Device'' sections are described first. The driver will ignore (with a message) a ``Device'' section if the section cannot be associated with exactly one adapter in the system. Similarly, the driver will ignore, or disable, (with a message) any adapter that cannot be associated with exactly one ``Device'' section. Thus, these options will be required in those uncommon cases where such unique associations cannot automatically be made by the driver.

Other options affect the driver's operation once an adapter has been assigned to the ``Device'' section which contains them.

5.1. Driver ``ati''

The use of this specification is highly recommended if the ``Device'' section is to be recognized by the driver. In fact, it is almost (but not quite) mandatory, particularly when using the loader server as it indicates what driver is to be loaded and associated with the ``Device'' section.

5.2. ChipSet ``name''

The default ChipSet name for this driver is ``ati''. In this case, any ATI adapter can be associated with the ``Device'' section. If an ATI accelerator is detected and the driver supports it, the accelerator's CRTC will be used to drive the screen. Otherwise, the driver will programme the adapter's SuperVGA CRTC.

If ``ativga'' is specified instead, the driver will ignore any ATI accelerator it detects, but otherwise operate as if ``ati'' had been specified.

A ChipSet name of ``ibmvga'' causes any VGA-capable adapter in the system to be associated with the ``Device'' section. It enables the driver's generic VGA support, but only for non-ATI adapters. If an ATI adapter is associated with the ``Device'' section, the driver will operate as if ``ativga'' had been specified instead.

A ChipSet name of ``vgawonder'' is equivalent to ``ativga'', except that only VGAWonder-capable adapters can be assigned to the ``Device'' section. This specifically excludes newer Mach64's with integrated controllers.

In some PCI or AGP systems, the driver will not, by default, probe for non-PCI Mach32's or Mach64's. This is because, before doing any such probe, the driver attempts to determine if the probe can cause a lockup. If the driver has enough information to determine that a lockup would occur, it will skip the probe. In some situations, this determination cannot be accurate, and the driver will err on the side of caution, skipping the probe. Specifying a ChipSet name of ``mach32'' or ``mach64'', as appropriate, will force the driver to probe for the non-PCI adapter. These ChipSet names should, therefore, only be used when there is in fact such an adapter in the system. They are otherwise equivalent to ``ati''.

5.3. ChipID & ChipRev specifications

These specifications will cause the driver to associate the ``Device'' section only with an adapter having the same attributes, or an adapter whose PCI device ID the driver does not recognize. In the second case, these options cause the driver to treat the adapter as if it was one with the specified PCI device ID or revision. ChipID can only be used with Mach32 or Mach64 adapters. ChipRev is meaningful only with Mach64 adapters.

5.4. IOBase

This option limits the adapters that can be associated with the ``Device'' section to those with the specified I/O base. This option only applies to Mach64 adapters.

5.5. BusID

This option limits the adapters that can be associated with the ``Device'' section to those with the specified PCI Bus ID.

5.6. Clocks

For the purpose of specifying a clock line in your XF86Config, one of four different situations can occur, as follows.

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 not trying to configure the driver for a Mach64 adapter, can skip ahead to the ``Clocks for fixed clock generators on ATI adapters'' section below.

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.

The two cases that are left deal with programmable clock generators, which are used on the great majority of Mach64 adapters.

If you are uncertain which situation applies to your adapter, you can run a clock probe with the command ``X -probeonly''.

5.6.1. Clocks for supported programmable clock generators

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.

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.

5.6.2. Clocks for unsupported programmable clock generators

This case is unlikely to occur, but is documented for the sake of completeness.

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:

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).

5.6.3. Clocks for fixed clock generators on ATI adapters

This section applies to all VGAWonder and Mach32 adapters, and to early Mach64 prototypes.

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
          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   0.000  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   0.000  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   0.000  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   0.000  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
ICS 2494-AM clock generators (found on some Dell motherboards):

  Clocks  75.000  77.500  80.000  90.000  25.175  28.322  31.500  36.000
         100.000 110.000 126.000 135.000  40.000  44.900  50.000  65.000
          37.500  38.750  40.000  45.000  12.588  14.161  15.750  18.000
          50.000  55.000  63.000  67.500  20.000  22.450  25.000  32.500
          25.000  25.833  26.667  30.000   8.392   9.441  10.500  12.000
          33.333  36.667  42.000  45.000  13.333  14.767  16.667  21.667
          18.750  19.375  20.000  22.500   6.294   7.081   7.875   9.000
          25.000  27.500  31.500  33.750  10.000  11.225  12.500  16.250
VGAWonder VLB, VGA 1024 VLB, Mach32 and Mach64 owners should only specify up to the first 32 frequencies.

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 previous XFree86 accelerated servers.

5.6.4. Clocks for non-ATI adapters

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.

5.7. Option ``crt_screen''

This specification is only effective when the driver detects that the adapter's BIOS has initialized both the digital flat panel and CRT interfaces. In such a situation, the driver will normally drive the panel and disable the CRT. This specification causes the driver to disable the digital flat panel and display the screen image on the CRT instead.

5.8. Option ``nolinear''

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.

5.9. Option ``shadowfb''

If this option is enabled, the driver will cause the CPU to do each drawing operation first into a shadow frame buffer in system virtual memory and then copy the result into video memory. If this option is not active, the CPU will draw directly into video memory. Enabling this option is beneficial for those systems where reading from video memory is, on average, slower than the corresponding read/modify/write operation in system virtual memory. This is normally the case for PCI or AGP adapters, and, so, this option is enabled by default. For other bus types, the default behaviour is to disable this option.

Note that, due to various limitations, this option is forcibly disabled when a linear video memory aperture is not enabled, or when the frame buffer depth is less than 8. The use of video acceleration, when implemented in a future driver release, will also disable frame buffer shadowing.

5.10. MemBase address

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.

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.


ATI Adapters README file : XF86Config specifications
Previous: Current implementation of generic VGA support for non-ATI adapters
Next: Known problems and limitations