1
<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN"[
2
<!ENTITY % defs SYSTEM "defs.ent"> %defs;
7
<!-- Title information -->
9
<title>ATI Adapters README file
10
<author>Marc Aurele La France
11
<date>2002 February 12
18
$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/ati.sgml,v 3.43 2003/02/25 19:31:02 dawes Exp $
22
This is the README for the XFree86 ATI driver included in this release.
25
<!-- Table of contents -->
28
<!-- Begin the document -->
30
<sect>Statement of intent<p>
31
Generally speaking, the driver is intended for all ATI video adapters,
32
providing maximum video function within hardware limitations.
33
The driver is also intended to optionally provide the same level of support for
34
generic VGA or 8514/A adapters.
35
This driver is still being actively developed, meaning that it currently does
36
not yet fully meet these goals.<p>
37
The driver will provide
39
<item>accelerated support if an ATI accelerator is detected <it>and</it> the
40
user has not requested that this support be disabled; otherwise
41
<item>accelerated support if a non-ATI 8514/A-capable adapter is detected
42
<it>and</it> the user has requested such support; otherwise
43
<item>unaccelerated SuperVGA support if an ATI VGA-capable adapter is detected;
45
<item>generic VGA support if a non-ATI VGA-capable adapter is detected
46
<it>and</it> the user has requested such support.
48
Thus, the level of support provided not only depends on what the driver detects
49
in the system, but also, on what the user specifies in the XF86Config file.
50
See the <bf>``XF86Config specifications''</bf> section below for details.<p>
51
If none of the above conditions are met, the ATI driver will essentially
52
disable itself to allow other drivers to examine the system.<p>
53
Note that I am currently considering removing the driver's support for generic
55
If you have any concerns about this, please contact me at
56
<email>tsi@xfree86.org</email>.
57
<sect>A note on acceleration<p>
58
The meaning of ``acceleration'', as used in this document, needs to be
60
Two of the many components in an accelerator are the CRT controller (CRTC) and
62
This is in addition to another CRTC that, generally, is also present in the
63
system (often in the same chip) and typically provides EGA, VGA or SuperVGA
65
A CRTC is the component of a graphics controller that is responsible for
66
reading video memory for output to the screen.
67
A Draw Engine is an accelerator component that can be programmed to manipulate
68
video memory contents, thus freeing the CPU for other tasks.<p>
69
When the VGA CRTC is used, all drawing operations into video memory are the
70
responsibility of the system's CPU, i.e. no Draw Engine can be used.
71
On the other hand, if the accelerator's CRTC is chosen to drive the screen,
72
the Draw Engine can also be used for drawing operations, although the CPU can
73
still be used for this purpose if it can access the accelerator's video
75
Video acceleration refers to the programming of an accelerator's Draw Engine to
76
offload drawing operations from the CPU, and thus also implies the use of the
77
accelerator's CRTC.<p>
78
<sect>Current implementation for ATI adapters<p>
79
The driver currently supports the SuperVGA capabilities of all ATI adapters
80
except some early Mach8 and Mach32 adapters that do not provide the required
82
This support works for monochrome, 16-colour and 256-colour video modes, if one
83
of the following ATI graphics controller chips is present:
85
VGAWonder series: 18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6
86
Mach32 series: 68800-3, 68800-6, 68800AX, 68800LX
87
Mach64 series: 88800GX-C, 88800GX-D, 88800GX-E, 88800GX-F, 88800CX,
88
264CT, 264ET, 264VT, 264GT (3D Rage), 264VT-B, 264VT3,
89
264VT4, 264GT-B (3D Rage II), 3D Rage IIc, 3D Rage Pro,
90
3D Rage LT, 3D Rage LT Pro, 3D Rage XL, 3D Rage XC,
91
3D Rage Mobility (including the -M and -P variants)</verb>
92
The driver also supports 32K, 64K and 16M-colour modes on the 264xT and 3D Rage
93
series of adapters using the accelerator CRTC (but not the VGA CRTC).<p>
94
The newer Rage 128 and Radeon chips are not yet supported by this driver.
95
Rage 128's and Radeon's are, however, supported by separate drivers, and
96
owners of such adapters should consult the documentation provided with these
98
This driver will also invoke the appropriate driver if it finds Rage 128 and/or
99
Radeon adapter(s) in the system.<p>
100
Adapters based on the above chips have been marketed under a rather large
101
number of names over the years.
104
VGAWonder series: VGAWonder V3, VGAWonder V4, VGAWonder V5, VGAWonder+,
105
VGAWonder XL, VGAWonder XL24, VGAWonder VLB, VGA Basic,
106
VGA Basic 16, VGA Edge, VGA Edge 16, VGA Integra,
107
VGA Charger, VGAStereo F/X, VGA 640, VGA 800, VGA 1024,
108
VGA 1024D, VGA 1024 XL, VGA 1024 DXL, VGA 1024 VLB
109
Mach8 series: Graphics Ultra, Graphics Vantage, VGAWonder GT
110
(None of the 8514/Ultra and 8514 Vantage series is
111
supported at this time)
112
Mach32 series: Graphics Ultra+, Graphics Ultra Pro, Graphics Wonder,
113
Graphics Ultra XLR, Graphics Ultra AXO, VLB mach32-D,
114
PCI mach32-D, ISA mach32
115
Mach64 series: Graphics Xpression, Graphics Pro Turbo, WinBoost,
116
WinTurbo, Graphics Pro Turbo 1600, Video Xpression,
117
3D Xpression, Video Xpression+, 3D Xpression+,
118
3D Charger, Video Charger, WinCharger, All-In-Wonder,
119
All-In-Wonder PRO, 3D Pro Turbo, XPERT@Play,
120
XPERT@Play 98, XPERT@Work, XPERT 98, XPERT LCD,
122
Also, a number of mainboards, laptops and notebooks harbour a Mach32 or Mach64
124
VGAWonder, Mach8 and Mach32 ISA adapters are available with or without a
126
These adapters are available with a variety of clock generators and RAMDACs.
127
The 264xT and 3D Rage series of chips are integrated controllers, meaning that
128
they include a programmable clock generator and a RAMDAC.<p>
129
For all but Mach64 adapters, this driver still does not provide support for
130
accelerated drawing to the screen.
131
This means that all drawing is done by the CPU, rather than by any accelerator
132
present in the system.
133
This can make opaque moves, for example, quite ``jerky''.
134
Also, given that IBM 8514/A and ATI Mach8 do not allow CPU access to their
135
frame buffer, the driver will currently ignore these accelerators.
136
Most Mach32 adapters provide both accelerated function and SuperVGA
137
functionality, but the driver currently only uses the VGA.<p>
138
The driver <it>does</it> however support the accelerator CRTC present in all
140
For 256-colour, and higher depth modes, this support will be used by default,
141
although an XF86Config option can be specified to use the SuperVGA CRTC
143
A linear video memory aperture is also available in 256-colour and higher depth
144
modes and enabled by default if a 264xT or 3D Rage controller is detected or,
145
on 88800 controllers, if the accelerator CRTC is used.
146
XF86Config options are available to disable this aperture, or (for non-PCI
147
adapters) enable it or move it to some other address.<p>
148
By default, the driver provides some acceleration for Mach64 if the accelerator
149
CRTC is used, and modes whose colour depth greater than or equal to 8 are to be
151
This support is as yet incomplete and can be disabled entirely with an
152
XF86Config option.<p>
153
On non-Intel platforms, the driver can, currently, only support PCI Mach64
155
<sect>Current implementation of generic VGA support for non-ATI adapters<p>
156
Support for generic VGA with non-ATI adapters is also implemented, but has
157
undergone only limited testing.
158
The driver will intentionally disallow the use of this support with ATI
160
This support must be explicitly requested through an XF86Config ChipSet
162
This prevents the current VGA generic driver from being disabled.<p>
163
This driver's generic VGA support is intended as an extension of that provided
164
by the current generic driver.
165
Specifically, within the architectural bounds defined by IBM's VGA standard,
166
this driver will allow the use of any 256-colour mode, and any dot clock
167
frequencies both of which allow for many more mode possibilities.<p>
168
The driver will enforce the following limitations derived from IBM's original
171
<item>There can only be a set of four (non-programmable) clocks to choose from.
172
<item>Video memory is limited to 256kB in monochrome and 16-colour modes.
173
<item>Video memory is limited to 64kB in 256-colour modes.
174
<item>Interlaced modes are not available.
175
<item>Colour depths higher than 8 are not available.
177
<sect>XF86Config specifications<p>
178
The driver recognises a number of XF86Config options.
179
In general, all such options should be specified in a ``Device'' section, and
180
affect only that ``Device'' section.<p>
181
Those options that affect how the driver associates adapters with ``Device''
182
sections are described first.
183
The driver will ignore (with a message) a ``Device'' section if the section
184
cannot be associated with exactly one adapter in the system.
185
Similarly, the driver will ignore, or disable, (with a message) any adapter
186
that cannot be associated with exactly one ``Device'' section.
187
Thus, these options will be required in those uncommon cases where such unique
188
associations cannot automatically be made by the driver.<p>
189
Other options affect the driver's operation once an adapter has been assigned
190
to the ``Device'' section which contains them.<p>
191
<sect1>Driver ``ati''<p>
192
The use of this specification is highly recommended if the ``Device'' section
193
is to be recognised by the driver.
194
In fact, it is almost (but not quite) mandatory, particularly when using the
195
loader server as it indicates what driver is to be loaded and associated with
196
the ``Device'' section.<p>
197
<sect1>ChipSet ``name''<p>
198
The default ChipSet name for this driver is ``<it>ati</it>''.
199
In this case, any ATI adapter can be associated with the ``Device'' section.
200
If an ATI accelerator is detected and the driver supports it, the accelerator's
201
CRTC will be used to drive the screen.
202
Otherwise, the driver will programme the adapter's SuperVGA CRTC.<p>
203
If ``<it>ativga</it>'' is specified instead, the driver will ignore any ATI
204
accelerator it detects, but otherwise operate as if ``<it>ati</it>'' had been
206
This specification ensures the VGA CRTC is used.<p>
207
A ChipSet name of ``<it>ibmvga</it>'' causes any VGA-capable adapter in the
208
system to be associated with the ``Device'' section.
209
It enables the driver's generic VGA support, but only for non-ATI adapters.
210
If an ATI adapter is associated with the ``Device'' section, the driver will
211
operate as if ``<it>ativga</it>'' had been specified instead.<p>
212
A ChipSet name of ``<it>vgawonder</it>'' is equivalent to ``<it>ativga</it>'',
213
except that only VGAWonder-capable adapters can be assigned to the ``Device''
215
This specifically excludes the newer integrated Mach64 controllers.<p>
216
In some PCI or AGP systems, the driver will not, by default, probe for non-PCI
217
Mach32's or Mach64's.
218
This is because, before doing any such probe, the driver attempts to determine
219
if the probe can cause a lockup.
220
If the driver has enough information to determine that a lockup would occur, it
222
In some situations, this determination cannot be accurate, and the driver will
223
err on the side of caution, skipping the probe.
224
Specifying a ChipSet name of ``<it>mach32</it>'' or ``<it>mach64</it>'', as
225
appropriate, will force the driver to probe for the non-PCI adapter.
226
These ChipSet names should, therefore, only be used when there is in fact such
227
an adapter in the system.
228
They are otherwise equivalent to ``<it>ati</it>''.<p>
229
On non-Intel platforms, only ``<it>ati</it>'' and ``<it>mach64</it>'' ChipSet
230
values are operative.<p>
231
<sect1>ChipID & ChipRev specifications<p>
232
These specifications will cause the driver to associate the ``Device'' section
233
only with an adapter having the same attributes, or an adapter whose PCI device
234
ID the driver does not recognise.
235
In the second case, these options cause the driver to treat the adapter as if
236
it was one with the specified PCI device ID or revision.
237
ChipID can only be used with Mach32 or Mach64 adapters, and, thus, specifically
238
excludes any other adapter from matching the ``Device'' section.
239
ChipRev is meaningful only with Mach64 adapters, and then only if ChipID is
240
also specified in the same ``Device'' section.<p>
242
This option limits the adapters that can be associated with the ``Device''
243
section to the one with the specified I/O base.
244
This option only applies to Mach64 adapters and specifically excludes other
247
This option limits the adapters that can be associated with the ``Device''
248
section to the one with the specified PCI Bus ID.
249
This specification excludes non-PCI adapters.<p>
251
For the purpose of specifying a clock line in your XF86Config, one of four
252
different situations can occur, as follows.<p>
253
Those configuring the driver's generic VGA support for a non-ATI adapter,
254
can skip ahead to the <bf>``Clocks for non-ATI adapters''</bf> section below.
255
Those <it>not</it> trying to configure the driver for a Mach64 adapter, can
256
skip ahead to the <bf>``Clocks for fixed clock generators on ATI
257
adapters''</bf> section below.<p>
258
The very earliest Mach64 adapters use fixed (i.e. non-programmable) clock
260
Very few of these (mostly prototypes) are known to exist, but if you have one
261
of these, you can also skip ahead to the <bf>``Clocks for fixed clock
262
generators on ATI adapters''</bf> section below.<p>
263
The two cases that are left deal with programmable clock generators, which are
264
used on the great majority of Mach64 adapters.<p>
265
If you are uncertain which situation applies to your adapter, you can run a
266
clock probe with the command ``<tt>X -probeonly</tt>''.<p>
267
<sect2>Clocks for supported programmable clock generators<p>
268
At bootup, video BIOS initialisation programmes an initial set of frequencies.
269
Two of these are reserved to allow the setting of modes that do not use a
270
frequency from this initial set.
271
One of these reserved slots is used by the BIOS mode set routine, the other by
272
the particular driver used (e.g. MS-Windows, AutoCAD, X, etc.).
273
The clock numbers reserved in this way are dependent on the particular clock
274
generator used by the adapter.<p>
275
The driver currently supports all programmable clock generators known to exist
277
In this case, the driver will completely ignore any XF86Config clock
278
specification, and programme the clock generator as needed by the modes used
279
during the X session.<p>
280
<sect2>Clocks for unsupported programmable clock generators<p>
281
This case is unlikely to occur, but is documented for the sake of
283
In this situation, the driver will probe the adapter for clock frequencies
284
unless XF86Config clocks are already specified.
285
In either case, the driver will then attempt to normalise the clocks to one of
286
the following specifications:
290
Clocks 0.000 110.000 126.000 135.000 50.350 56.640 63.000 72.000
291
0.000 80.000 75.000 65.000 40.000 44.900 49.500 50.000
292
0.000 55.000 63.000 67.500 25.180 28.320 31.500 36.000
293
0.000 40.000 37.500 32.500 20.000 22.450 24.750 25.000</verb>
297
Clocks 0.000 110.000 126.000 135.000 25.180 28.320 31.500 36.000
298
0.000 80.000 75.000 65.000 40.000 44.900 49.500 50.000
299
0.000 55.000 63.000 67.500 12.590 14.160 15.750 18.000
300
0.000 40.000 37.500 32.500 20.000 22.450 24.750 25.000</verb>
304
Clocks 0.000 0.000 0.000 0.000 25.180 28.320 0.000 0.000
305
0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
306
0.000 0.000 0.000 0.000 12.590 14.160 0.000 0.000
307
0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000</verb>
308
If the driver matches the clocks to the third setting above, functionality will
309
be <it>extremely</it> limited (assuming the driver works at all).<p>
310
<sect2>Clocks for fixed clock generators on ATI adapters<p>
311
This section applies to all VGAWonder and Mach32 adapters, and to early Mach64
313
One of the following clocks specifications (or an initial subset thereof) can
314
be used depending on what the adapter uses to generate dot clocks:
316
Crystals (VGA Wonder V3 and V4 adapters only):
318
Clocks 50.000 56.644 0.000 44.900 44.900 50.000 0.000 36.000
319
25.000 28.322 0.000 22.450 22.450 25.000 0.000 18.000
320
16.667 18.881 0.000 14.967 14.967 16.667 0.000 12.000
321
12.500 14.161 0.000 11.225 11.225 12.500 0.000 9.000</verb>
323
ATI 18810 clock generator:
325
Clocks 30.240 32.000 37.500 39.000 42.954 48.771 0.000 36.000
326
40.000 0.000 75.000 65.000 50.350 56.640 0.000 44.900
327
15.120 16.000 18.750 19.500 21.477 24.386 0.000 18.000
328
20.000 0.000 37.500 32.500 25.175 28.320 0.000 22.450
329
10.080 10.667 12.500 13.000 14.318 16.257 0.000 12.000
330
13.333 0.000 25.000 21.667 16.783 18.880 0.000 14.967
331
7.560 8.000 9.375 9.750 10.739 12.193 0.000 9.000
332
10.000 0.000 18.750 16.250 12.586 14.160 0.000 11.225</verb>
334
ATI 18811-0 and ATI 18812-0 clock generators:
336
Clocks 30.240 32.000 110.000 80.000 42.954 48.771 92.400 36.000
337
39.910 44.900 75.000 65.000 50.350 56.640 0.000 44.900
338
15.120 16.000 55.000 40.000 21.477 24.386 46.200 18.000
339
19.955 22.450 37.500 32.500 25.175 28.320 0.000 22.450
340
10.080 10.667 36.667 26.667 14.318 16.257 30.800 12.000
341
13.303 14.967 25.000 21.667 16.783 18.880 0.000 14.967
342
7.560 8.000 27.500 20.000 10.739 12.193 23.100 9.000
343
9.978 11.225 18.750 16.250 12.588 14.160 0.000 11.225</verb>
345
ATI 18811-1 and ATI 18811-2 clock generators:
347
Clocks 135.000 32.000 110.000 80.000 100.000 126.000 92.400 36.000
348
39.910 44.900 75.000 65.000 50.350 56.640 0.000 44.900
349
67.500 16.000 55.000 40.000 50.000 63.000 46.200 18.000
350
19.955 22.450 37.500 32.500 25.175 28.320 0.000 22.450
351
45.000 10.667 36.667 26.667 33.333 42.000 30.800 12.000
352
13.303 14.967 25.000 21.667 16.783 18.880 0.000 14.967
353
33.750 8.000 27.500 20.000 25.000 31.500 23.100 9.000
354
9.978 11.225 18.750 16.250 12.588 14.160 0.000 11.225</verb>
356
ICS 2494-AM clock generators (found on some Dell motherboards):
358
Clocks 75.000 77.500 80.000 90.000 25.175 28.322 31.500 36.000
359
100.000 110.000 126.000 135.000 40.000 44.900 50.000 65.000
360
37.500 38.750 40.000 45.000 12.588 14.161 15.750 18.000
361
50.000 55.000 63.000 67.500 20.000 22.450 25.000 32.500
362
25.000 25.833 26.667 30.000 8.392 9.441 10.500 12.000
363
33.333 36.667 42.000 45.000 13.333 14.767 16.667 21.667
364
18.750 19.375 20.000 22.500 6.294 7.081 7.875 9.000
365
25.000 27.500 31.500 33.750 10.000 11.225 12.500 16.250</verb>
366
VGAWonder VLB, VGA 1024 VLB, Mach32 and Mach64 owners should only specify up to
367
the first 32 frequencies.
368
Any more will be ignored.<p>
369
Other clock generators that have been used on ATI adapters (which can all be
370
said to be clones of one of the above) might generate non-zero frequencies for
371
those that are zero above, or vice-versa.<p>
372
The order of the clocks <it>is</it> very important, although the driver will
373
reorder the specified clocks if it deems it appropriate to do so.
374
Mach32 and Mach64 owners should note that this order is different than what
375
they would use for previous XFree86 accelerated servers.<p>
376
<sect2>Clocks for non-ATI adapters<p>
377
If no clocks are specified in the XF86Config, the driver will probe for four
378
clocks, the second of which will be assumed to be 28.322 MHz.
379
The first clock will typically be 25.175 MHz, but there are exceptions.
380
You can include up to four clock frequencies in your XF86Config to specify the
381
actual values used by the adapter.
382
Any more will be ignored.<p>
383
<sect1>Option <it>``nopanel_display''</it><p>
384
This specification is only effective when the driver detects that the adapter's
385
BIOS has initialised both the digital flat panel and CRT interfaces.
386
In such a situation, the driver will normally drive both the panel and the CRT.
387
This specification causes the driver to disable the digital flat panel and
388
display the screen image on the CRT instead, which could potentially allow for
389
larger physical resolutions than the panel can handle.<p>
390
<sect1>Option <it>``crt_display''</it><p>
391
This specification is only effective when the driver detects that the adapter's
392
BIOS has initialised the digital flat panel interface, but has disabled the
394
In such a situation the driver will normally drive only the panel.
395
This specification causes the driver to instead display the same image on both
396
the panel and the CRT.<p>
397
<sect1>Option <it>``noaccel''</it><p>
398
By default, the driver will accelerate draw operations if a Mach64 CRTC is used
399
to drive the display.
400
As implemented in this driver, acceleration does not require a linear video
402
This option disables this acceleration.<p>
403
<sect1>Option <it>``nolinear''</it><p>
404
By default, the driver will enable a linear video memory aperture for
405
256-colour and higher depth modes if it is also using a Mach64 accelerator CRTC
406
or an integrated Mach64 graphics chip.
407
This option disables this linear aperture.<p>
408
On non-Intel platforms, the driver requires a linear aperture and, so, this
409
option is ignored.<p>
410
<sect1>Option <it>``HWCursor''</it> and Option <it>``SWCursor''</it><p>
411
Option <it>``HWCursor''</it>, which is the default, specifies that hardware
412
facilities are to be used to paint the mouse pointer on the screen.
413
Option <it>``SWCursor''</it> specifies that the mouse pointer is to be drawn by
414
software, which is much slower.
415
If both options are specified, option <it>``SWCursor''</it> prevails.
416
Currently, these options are only acted upon for 256-colour or higher depth
417
modes, if a Mach64 accelerator CRTC, or a Mach64 integrated controller is being
419
In all other situations, a software cursor will be used, regardless of what
420
these options specify.<p>
421
<sect1>Option <it>``SilkenMouse''</it><p>
422
This option is only acted upon when a hardware cursor is being used.
423
It specifies that the cursor's position on the screen is to be updated as
424
quickly as possible when the mouse is moved.
425
This is the default behaviour.
426
If this option is negated, the cursor may lag the mouse when the X server is
428
<sect1>Option <it>``shadowfb''</it><p>
429
If this option is enabled, the driver will cause the CPU to do each drawing
430
operation first into a shadow frame buffer in system virtual memory and then
431
copy the result into video memory.
432
If this option is not active, the CPU will draw directly into video memory.
433
Enabling this option is beneficial for those systems where reading from video
434
memory is, on average, slower than the corresponding read/modify/write
435
operation in system virtual memory.
436
This is normally the case for PCI or AGP adapters, and, so, this option is
438
For other bus types, the default behaviour is to disable this option.<p>
439
Note that, due to various limitations, this option is forcibly disabled when a
440
linear video memory aperture is not enabled, when the frame buffer depth is
441
less than 8, or when acceleration is used.<p>
442
<sect1>Option <it>``dpms''</it><p>
443
This option enables the driver's support for VESA's Display Power Management
445
<sect1>Option <it>``backingstore''</it><p>
446
This is not specifically a driver option.
447
It is used to enable the server's support for backing store, a mechanism by
448
which pixel data for occluded window regions is remembered by the server
449
thereby alleviating the need to send expose events to X clients when the data
450
needs to be redisplayed.<p>
451
<sect1>MemBase <it>address</it><p>
452
This specification is only effective for non-PCI Mach64 adapters, and is used
453
to override the CPU address at which the adapter will map its video memory.
454
Normally, for non-PCI adapters, this address is set by a DOS install utility
455
provided with the adapter.
456
The MemBase option can also be used to enable the linear aperture in those
457
cases where ATI's utility was not, or can not be, used.<p>
458
For PCI and AGP adapters, this address is determined at system bootup according
459
to the PCI Plug'n'Play specification which arbitrates the resource requirements
460
of most devices in the system.
461
This means the driver can not easily change the linear aperture address.<p>
462
<sect1>Option <it>``ReferenceClock''</it> ``frequency''<p>
463
This option is only applicable to non-Intel platforms, where an adapter BIOS is
464
not available to the driver.
465
The option specifies the reference frequency used by the adapter's clock
467
The default is 14.318 MHz, and other typical values are 28.636, or 29.5 MHz.<p>
468
<sect1>ClockChip <it>``name''</it><p>
469
This option is only applicable to non-Intel platforms, where an adapter BIOS is
470
not available to the driver, and the driver cannot reliably determine whether
471
the clock generator the adapter uses is a variant of an ATI 18818 (a.k.a.
472
ICS 2595) or an unsupported clock generator.
473
The only values that are acted upon are <it>``ATI 18818-0''</it> or
474
<it>``ATI 18818-1''</it>.
475
From this specification, the driver derives a reference divider of 43 or 46
476
(respectively) for use in clock programming calculations.
477
The driver's default behaviour, in this case, is to assume an unsupported clock
478
generator, which means it will treat it as a fixed-frequency clock generator,
479
as described under the heading <bf>``Clocks for unsupported programmable clock
480
generators''</bf> above.<p>
482
Mode timings can be derived from the information in XFree86's doc subdirectory.
483
However, it is no longer required to specify such timings in an XF86Config's
484
``Monitor'' section(s), if only standard mode timings are to be used.
485
The server automatically inserts VESA standard mode timings in every
486
``Monitor'' section, and these modes will be checked first for mode constraints
487
(monitor sync tolerances, video memory size, etc.).<p>
488
Furthermore, it is also no longer required to specify mode names in ``Display''
490
Should no mode names be specified (or those specified do not yield a usable
491
mode), the server will automatically select as a default resolution the largest
492
usable mode, whether or not the chosen mode is specified in the corresponding
493
``Monitor'' section.<p>
494
For a digital flat panel, any sync tolerances should be removed from the
495
corresponding ``Monitor'' section.
496
The driver will automatically calculate these from the mode that is active on
498
The driver also inserts timings for a mode called <it>"Native panel mode"</it>
499
that represents the panel's native resolution.<p>
500
<sect>Known problems and limitations<p>
501
There are several known problems or limitations related to the XFree86 ATI
505
<item>When using a Mach64's accelerator CRTC, the virtual resolution must be
506
less than 8192 pixels wide.
507
The VGA CRTC further limits the virtual resolution width to less than 4096
508
pixels, or to less than 2048 pixels for adapters based on 18800-x's (with 256kB
509
of memory) and on Mach64 integrated controllers.
510
These are hardware limits that cannot be circumvented.
511
<item>Virtual resolutions requiring more than 1MB of video memory (256kB in the
512
monochrome case) are not supported by the VGA CRTC on 88800GX and 88800CX
514
This is a hardware limit that cannot be circumvented.
515
<item>Due to hardware limitations, doublescanned modes are not supported by the
516
accelerator CRTC in 88800GX, 88800CX, 264CT and 264ET adapters.
517
<item>The ``VScan'' modeline parameter is only supported when using the VGA
519
<item>Interlaced modes are not supported on 18800-x and 28800-x adapters when
520
using a virtual resolution that is 2048 pixels or wider.
521
When using a 18800-x with 256kB of video memory in 256-colour modes, this limit
523
This is yet another hardware limitation that cannot be circumvented.
524
<item>Video memory banking does not work in monochrome and 16-colour modes on
526
This appears to be another hardware limit, but this conclusion cannot be
527
confirmed at this time.
528
The driver's default behaviour in this case is to limit video memory to 256kB.
529
<item>Video memory corruption can still occur during mode switches on 18800-x
531
Symptoms of this problem include garbled fonts on return to text mode, and
532
various effects (snow, dashed lines, etc) on initial entry into a graphics
534
In the first case, the workaround is to use some other means of restoring the
536
On Linux, this can be accomplished with the kbd or svgalib packages.
537
In the second case, <htmlurl name="xrefresh(1)" url="xrefresh.1.html">
538
will usually clean up the image.
539
No complete solution to this problem is currently known.
540
It appears this corruption occurs due to either video memory bandwidth or
541
RAMDAC limitations, and so the driver will limit mode clocks to 40MHz.
542
<item>There is some controversy over what the maximum allowed clock frequency
543
should be on 264xT and 3D Rage adapters.
544
For now, clocks will, by default, be limited to 80MHz, 135MHz, 170MHz, 200MHz
545
or 230MHz, depending on the specific controller.
546
This limit can only be increased (up to a driver-calculated absolute maximum)
547
through the DACSpeed specification in XF86Config.
548
Be aware however that doing so is untested and might damage the adapter.
549
<item>Except as in the previous items, clocks are limited to 80MHz on most
550
adapters, although many are capable of higher frequencies.
551
This will eventually be fixed in a future release.
552
<item>The use of a laptop's hot-keys to switch displays while this driver is
553
active can cause lockups and/or other woes, and is therefore not recommended.
554
It is not currently possible to solve this problem.<p>
555
<item>In situations where the driver is to simultaneously display on both a
556
panel and a CRT, the same image will be seen on both.
557
In particular, this means the CRT must be able to synchronise with the timings
558
of the panel's native resolution.
559
This is quite evident when the panel has ``odd-ball'' dimensions, such as
560
1400x1050, a resolution not commonly possible on CRTs or projection
562
Also, the display of independent images on the panel and CRT is not currently
563
implemented, and might never be, pending resolution of the previous item.<p>
565
Support for the following will be added in a future release:
567
<item>Mach32's accelerator CRTC.
568
This support is the first step towards accelerated support for Mach32's,
569
Mach8's, 8514/A's and other clones.
570
<item>Colour depth greater than 8 on non-integrated controllers, where
571
permitted by the hardware.
572
<item>Mach32, Mach8 and 8514/A Draw Engines.
573
<item>Hardware cursors where implemented by hardware.
574
This has already been done for Mach64 integrated controllers.
575
<item>TVOut, i.e. the ability to use a television screen as a monitor.
576
<item>Motion Video, i.e. displaying an asynchronous data stream (TV signal,
577
DVD, etc.) in a window or full-screen.
580
<sect>Reporting problems<p>
581
If you are experiencing problems that are not already recorded in this
582
document, first ensure that you have the latest current release of this driver
584
Check the server's log (usually found in /var/log/XFree86.0.log) and <htmlurl
585
name="ftp://ftp.xfree86.org/pub/XFree86"
586
url="ftp://ftp.xfree86.org/pub/XFree86"> if you are uncertain.<p>
587
Secondly, please check XFree86's doc directory for additional information.<p>
588
Thirdly, a scan through the comp.windows.x.i386unix and comp.os.linux.x
589
newsgroups and the xfree86 mailing list using your favourite archiving
590
service can also prove useful in resolving problems.<p>
591
If you are still experiencing problems, you can send me <it>non-HTMLised</it>
592
e-mail at <email>tsi@xfree86.org</email>.
593
Please be as specific as possible when describing the problem(s), and include
594
an <it>unedited</it> copy of the server's log and the XF86Config file used.<p>
595
<sect>Driver history<p>
596
The complete history of the driver is rather cloudy.
597
The following is more than likely to be incomplete and inaccurate.<p>
598
Apparently, Per Lindqvist first got a driver working with an early ATI adapter
600
This original driver might have actually been based on a non-functional ATI
601
driver written by Thomas Roell (currently of Xi Graphics).<p>
602
Then Doug Evans added support for the ATI VGA Wonder XL, trying in the process
603
to make the driver work with all other ATI adapters available at the time.<p>
604
Rik Faith obtained the X11R4 driver from Doug Evans in the summer of 1992 and
605
ported the code to the X386 part of X11R5.
606
This subsequently became part of XFree86.<p>
607
I (Marc Aurele La France) took over development and maintenance of the driver
608
in the fall of 1993 after Rik got rid of his VGA Wonder adapter.<p>
609
<sect>Driver versions<p>
610
Due to the introduction of loadable drivers in XFree86 4.0, it has become
611
necessary to track driver versions separately.
612
Driver releases use the following version numbering scheme.<p>
613
Version 1 of this driver is the one I inherited from Rik Faith.
614
This is the version found in XFree86 2.0 and 2.1.<p>
615
Version 2 is my first rewrite of this code which only ended up being a
616
partially unsuccessful attempt at generalising the driver for all VGA Wonder,
617
Mach32, and early Mach64 adapters.
618
Various releases of this version of the driver can be found in XFree86 2.1.1,
619
3.1, 3.1.1 and 3.1.2.<p>
620
Version 3 represents my second rewrite (although a rather lame one as rewrites
622
Into version 3, I introduced clock programming for Mach64 adapters and merged
623
in the old ati_test debugging tool.
624
This is the version found in XFree86 3.2, 3.3 and 3.3.1.<p>
625
Version 4 is a rather major restructuring of version 3, which became larger
626
than I could comfortably handle in one source file.
627
This is the version found in XFree86 3.3.2, 3.3.3, 3.3.3.1, 3.3.3.2, 3.3.4,
629
Version 5 is an almost complete restructuring of version 4 to fit in the newer
630
driver API of XFree86 4.0 and later.<p>
631
The introduction of version 6 is a first swipe at porting the driver to
632
non-Intel architectures.<p>