1
ATI Adapters README file
5
This is the README for the ATI Mach64 driver included in this release.
6
______________________________________________________________________
11
1. Statement of intent
12
2. A note on acceleration
13
3. Current implementation for ATI adapters
14
4. Current implementation of generic VGA support for non-ATI adapters
15
5. xorg.conf specifications
18
5.3 ChipID & ChipRev specifications
22
5.6.1 Clocks for supported programmable clock generators
23
5.6.2 Clocks for unsupported programmable clock generators
24
5.6.3 Clocks for fixed clock generators on ATI adapters
25
5.6.4 Clocks for non-ATI adapters
26
5.7 Option ``nopanel_display''
27
5.8 Option ``crt_display''
28
5.9 Option ``noaccel''
29
5.10 Option ``nolinear''
30
5.11 Option ``HWCursor'' and Option ``SWCursor''
31
5.12 Option ``SilkenMouse''
32
5.13 Option ``shadowfb''
34
5.15 Option ``backingstore''
36
5.17 Option ``ReferenceClock'' ``frequency''
37
5.18 ClockChip ``name''
40
7. Known problems and limitations
46
______________________________________________________________________
48
1. Statement of intent
50
Generally speaking, the driver is intended for all ATI video adapters
51
based on the Mach64 series or older chipsets, providing maximum video
52
function within hardware limitations. The driver is also intended to
53
optionally provide the same level of support for generic VGA or 8514/A
54
adapters. The newer Rage 128 and Radeon chips are not supported
55
by this driver. Rage 128's and Radeon's are, however, supported by
56
separate drivers, and owners of such adapters should consult the
57
documentation provided with these drivers. This driver will also
58
invoke the appropriate driver if it finds Rage 128 and/or Radeon
59
adapter(s) in the system. This driver is still being actively
60
developed, meaning that it currently does not yet fully meet these
63
The driver will provide
65
o accelerated support if an ATI accelerator is detected and the user
66
has not requested that this support be disabled; otherwise
67
o accelerated support if a non-ATI 8514/A-capable adapter is detected
68
and the user has requested such support; otherwise
70
o unaccelerated SuperVGA support if an ATI VGA-capable adapter is
73
o generic VGA support if a non-ATI VGA-capable adapter is detected
74
and the user has requested such support.
76
Thus, the level of support provided not only depends on what the
77
driver detects in the system, but also, on what the user specifies
78
in the xorg.conf file. See the ``xorg.conf specifications''
79
section below for details.
81
If none of the above conditions are met, the ATI driver will
82
essentially disable itself to allow other drivers to examine the
86
2. A note on acceleration
88
The meaning of ``acceleration'', as used in this document, needs to be
89
clarified. Two of the many components in an accelerator are the CRT
90
controller (CRTC) and the Draw Engine. This is in addition to another
91
CRTC that, generally, is also present in the system (often in the same
92
chip) and typically provides EGA, VGA or SuperVGA functionality.
94
A CRTC is the component of a graphics controller that is responsible
95
for reading video memory for output to the screen. A Draw Engine is
96
an accelerator component that can be programmed to manipulate video
97
memory contents, thus freeing the CPU for other tasks.
99
When the VGA CRTC is used, all drawing operations into video memory
100
are the responsibility of the system's CPU, i.e. no Draw Engine can be
101
used. On the other hand, if the accelerator's CRTC is chosen to drive
102
the screen, the Draw Engine can also be used for drawing operations,
103
although the CPU can still be used for this purpose if it can access
104
the accelerator's video memory.
106
Video acceleration refers to the programming of an accelerator's Draw
107
Engine to offload drawing operations from the CPU, and thus also
108
implies the use of the accelerator's CRTC.
111
3. Current implementation for ATI adapters
113
The driver currently supports the SuperVGA capabilities of all ATI
114
adapters except some early Mach8 and Mach32 adapters that do not
115
provide the required functionality. This support works for
116
monochrome, 16-colour and 256-colour video modes, if one of the
117
following ATI graphics controller chips is present:
119
VGAWonder series: 18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6
120
Mach32 series: 68800-3, 68800-6, 68800AX, 68800LX
121
Mach64 series: 88800GX-C, 88800GX-D, 88800GX-E, 88800GX-F, 88800CX,
122
264CT, 264ET, 264VT, 264GT (3D Rage), 264VT-B, 264VT3,
123
264VT4, 264GT-B (3D Rage II), 3D Rage IIc, 3D Rage Pro,
124
3D Rage LT, 3D Rage LT Pro, 3D Rage XL, 3D Rage XC,
125
3D Rage Mobility (including the -M and -P variants)
128
The driver also supports 32K, 64K and 16M-colour modes on the 264xT
129
and 3D Rage series of adapters using the accelerator CRTC (but not the
133
The newer Rage 128 and Radeon chips are not supported by this
134
driver. Rage 128's and Radeon's are, however, supported by separate
135
drivers, and owners of such adapters should consult the documentation
136
provided with these drivers. This driver will also invoke the
137
appropriate driver if it finds Rage 128 and/or Radeon adapter(s) in
140
Adapters based on the above chips have been marketed under a rather
141
large number of names over the years. Among them are:
143
VGAWonder series: VGAWonder V3, VGAWonder V4, VGAWonder V5, VGAWonder+,
144
VGAWonder XL, VGAWonder XL24, VGAWonder VLB, VGA Basic,
145
VGA Basic 16, VGA Edge, VGA Edge 16, VGA Integra,
146
VGA Charger, VGAStereo F/X, VGA 640, VGA 800, VGA 1024,
147
VGA 1024D, VGA 1024 XL, VGA 1024 DXL, VGA 1024 VLB
148
Mach8 series: Graphics Ultra, Graphics Vantage, VGAWonder GT
149
(None of the 8514/Ultra and 8514 Vantage series is
150
supported at this time)
151
Mach32 series: Graphics Ultra+, Graphics Ultra Pro, Graphics Wonder,
152
Graphics Ultra XLR, Graphics Ultra AXO, VLB mach32-D,
153
PCI mach32-D, ISA mach32
154
Mach64 series: Graphics Xpression, Graphics Pro Turbo, WinBoost,
155
WinTurbo, Graphics Pro Turbo 1600, Video Xpression,
156
3D Xpression, Video Xpression+, 3D Xpression+,
157
3D Charger, Video Charger, WinCharger, All-In-Wonder,
158
All-In-Wonder PRO, 3D Pro Turbo, XPERT@Play,
159
XPERT@Play 98, XPERT@Work, XPERT 98, XPERT LCD,
163
Also, a number of mainboards, laptops and notebooks harbour a Mach32
164
or Mach64 controller.
166
VGAWonder, Mach8 and Mach32 ISA adapters are available with or without
169
These adapters are available with a variety of clock generators and
170
RAMDACs. The 264xT and 3D Rage series of chips are integrated
171
controllers, meaning that they include a programmable clock generator
174
For all but Mach64 adapters, this driver still does not provide
175
support for accelerated drawing to the screen. This means that all
176
drawing is done by the CPU, rather than by any accelerator present in
177
the system. This can make opaque moves, for example, quite ``jerky''.
178
Also, given that IBM 8514/A and ATI Mach8 do not allow CPU access to
179
their frame buffer, the driver will currently ignore these
180
accelerators. Most Mach32 adapters provide both accelerated function
181
and SuperVGA functionality, but the driver currently only uses the
184
The driver does however support the accelerator CRTC present in all
185
ATI Mach64 adapters. For 256-colour, and higher depth modes, this
186
support will be used by default, although an xorg.conf option can be
187
specified to use the SuperVGA CRTC instead. A linear video memory
188
aperture is also available in 256-colour and higher depth modes and
189
enabled by default if a 264xT or 3D Rage controller is detected or, on
190
88800 controllers, if the accelerator CRTC is used. xorg.conf options
191
are available to disable this aperture, or (for non-PCI adapters)
192
enable it or move it to some other address.
194
By default, the driver provides some acceleration for Mach64 if the
195
accelerator CRTC is used, and modes whose colour depth greater than or
196
equal to 8 are to be used. This support is as yet incomplete and can
197
be disabled entirely with an xorg.conf option.
199
On non-Intel platforms, the driver can, currently, only support PCI
203
4. Current implementation of generic VGA support for non-ATI adapters
205
Support for generic VGA with non-ATI adapters is also implemented, but
206
has undergone only limited testing. The driver will intentionally
207
disallow the use of this support with ATI adapters. This support must
208
be explicitly requested through an xorg.conf ChipSet specification.
209
This prevents the current VGA generic driver from being disabled.
211
This driver's generic VGA support is intended as an extension of that
212
provided by the current generic driver. Specifically, within the
213
architectural bounds defined by IBM's VGA standard, this driver will
214
allow the use of any 256-colour mode, and any dot clock frequencies
215
both of which allow for many more mode possibilities.
217
The driver will enforce the following limitations derived from IBM's
218
original VGA implementation:
220
o There can only be a set of four (non-programmable) clocks to choose
223
o Video memory is limited to 256kB in monochrome and 16-colour modes.
225
o Video memory is limited to 64kB in 256-colour modes.
227
o Interlaced modes are not available.
229
o Colour depths higher than 8 are not available.
231
5. xorg.conf specifications
233
The driver recognises a number of xorg.conf options. In general, all
234
such options should be specified in a ``Device'' section, and affect
235
only that ``Device'' section.
237
Those options that affect how the driver associates adapters with
238
``Device'' sections are described first. The driver will ignore (with
239
a message) a ``Device'' section if the section cannot be associated
240
with exactly one adapter in the system. Similarly, the driver will
241
ignore, or disable, (with a message) any adapter that cannot be
242
associated with exactly one ``Device'' section. Thus, these options
243
will be required in those uncommon cases where such unique
244
associations cannot automatically be made by the driver.
246
Other options affect the driver's operation once an adapter has been
247
assigned to the ``Device'' section which contains them.
252
The use of this specification is highly recommended if the ``Device''
253
section is to be recognised by the driver. In fact, it is almost (but
254
not quite) mandatory, particularly when using the loader server as it
255
indicates what driver is to be loaded and associated with the
259
5.2. ChipSet ``name''
261
The default ChipSet name for this driver is ``ati''. In this case,
262
any ATI adapter can be associated with the ``Device'' section. If an
263
ATI accelerator is detected and the driver supports it, the
264
accelerator's CRTC will be used to drive the screen. Otherwise, the
265
driver will programme the adapter's SuperVGA CRTC.
267
If ``ativga'' is specified instead, the driver will ignore any ATI
268
accelerator it detects, but otherwise operate as if ``ati'' had been
269
specified. This specification ensures the VGA CRTC is used.
271
A ChipSet name of ``ibmvga'' causes any VGA-capable adapter in the
272
system to be associated with the ``Device'' section. It enables the
273
driver's generic VGA support, but only for non-ATI adapters. If an
274
ATI adapter is associated with the ``Device'' section, the driver will
275
operate as if ``ativga'' had been specified instead.
277
A ChipSet name of ``vgawonder'' is equivalent to ``ativga'', except
278
that only VGAWonder-capable adapters can be assigned to the ``Device''
279
section. This specifically excludes the newer integrated Mach64
282
In some PCI or AGP systems, the driver will not, by default, probe for
283
non-PCI Mach32's or Mach64's. This is because, before doing any such
284
probe, the driver attempts to determine if the probe can cause a
285
lockup. If the driver has enough information to determine that a
286
lockup would occur, it will skip the probe. In some situations, this
287
determination cannot be accurate, and the driver will err on the side
288
of caution, skipping the probe. Specifying a ChipSet name of
289
``mach32'' or ``mach64'', as appropriate, will force the driver to
290
probe for the non-PCI adapter. These ChipSet names should, therefore,
291
only be used when there is in fact such an adapter in the system.
292
They are otherwise equivalent to ``ati''.
294
On non-Intel platforms, only ``ati'' and ``mach64'' ChipSet values are
298
5.3. ChipID & ChipRev specifications
300
These specifications will cause the driver to associate the ``Device''
301
section only with an adapter having the same attributes, or an adapter
302
whose PCI device ID the driver does not recognise. In the second
303
case, these options cause the driver to treat the adapter as if it was
304
one with the specified PCI device ID or revision. ChipID can only be
305
used with Mach32 or Mach64 adapters, and, thus, specifically excludes
306
any other adapter from matching the ``Device'' section. ChipRev is
307
meaningful only with Mach64 adapters, and then only if ChipID is also
308
specified in the same ``Device'' section.
313
This option limits the adapters that can be associated with the
314
``Device'' section to the one with the specified I/O base. This
315
option only applies to Mach64 adapters and specifically excludes other
321
This option limits the adapters that can be associated with the
322
``Device'' section to the one with the specified PCI Bus ID. This
323
specification excludes non-PCI adapters.
328
For the purpose of specifying a clock line in your xorg.conf, one of
329
four different situations can occur, as follows.
331
Those configuring the driver's generic VGA support for a non-ATI
332
adapter, can skip ahead to the ``Clocks for non-ATI adapters'' section
333
below. Those not trying to configure the driver for a Mach64 adapter,
334
can skip ahead to the ``Clocks for fixed clock generators on ATI
335
adapters'' section below.
337
The very earliest Mach64 adapters use fixed (i.e. non-programmable)
338
clock generators. Very few of these (mostly prototypes) are known to
339
exist, but if you have one of these, you can also skip ahead to the
340
``Clocks for fixed clock generators on ATI adapters'' section below.
342
The two cases that are left deal with programmable clock generators,
343
which are used on the great majority of Mach64 adapters.
345
If you are uncertain which situation applies to your adapter, you can
346
run a clock probe with the command ``X -probeonly''.
349
5.6.1. Clocks for supported programmable clock generators
351
At bootup, video BIOS initialisation programmes an initial set of
352
frequencies. Two of these are reserved to allow the setting of modes
353
that do not use a frequency from this initial set. One of these
354
reserved slots is used by the BIOS mode set routine, the other by the
355
particular driver used (e.g. MS-Windows, AutoCAD, X, etc.). The clock
356
numbers reserved in this way are dependent on the particular clock
357
generator used by the adapter.
359
The driver currently supports all programmable clock generators known
360
to exist on Mach64 adapters. In this case, the driver will completely
361
ignore any xorg.conf clock specification, and programme the clock
362
generator as needed by the modes used during the X session.
365
5.6.2. Clocks for unsupported programmable clock generators
367
This case is unlikely to occur, but is documented for the sake of
370
In this situation, the driver will probe the adapter for clock
371
frequencies unless xorg.conf clocks are already specified. In either
372
case, the driver will then attempt to normalise the clocks to one of
373
the following specifications:
377
Clocks 0.000 110.000 126.000 135.000 50.350 56.640 63.000 72.000
378
0.000 80.000 75.000 65.000 40.000 44.900 49.500 50.000
379
0.000 55.000 63.000 67.500 25.180 28.320 31.500 36.000
380
0.000 40.000 37.500 32.500 20.000 22.450 24.750 25.000
386
Clocks 0.000 110.000 126.000 135.000 25.180 28.320 31.500 36.000
387
0.000 80.000 75.000 65.000 40.000 44.900 49.500 50.000
388
0.000 55.000 63.000 67.500 12.590 14.160 15.750 18.000
389
0.000 40.000 37.500 32.500 20.000 22.450 24.750 25.000
395
Clocks 0.000 0.000 0.000 0.000 25.180 28.320 0.000 0.000
396
0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
397
0.000 0.000 0.000 0.000 12.590 14.160 0.000 0.000
398
0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
401
If the driver matches the clocks to the third setting above, function-
402
ality will be extremely limited (assuming the driver works at all).
405
5.6.3. Clocks for fixed clock generators on ATI adapters
407
This section applies to all VGAWonder and Mach32 adapters, and to
408
early Mach64 prototypes.
410
One of the following clocks specifications (or an initial subset
411
thereof) can be used depending on what the adapter uses to generate
414
Crystals (VGA Wonder V3 and V4 adapters only):
416
Clocks 50.000 56.644 0.000 44.900 44.900 50.000 0.000 36.000
417
25.000 28.322 0.000 22.450 22.450 25.000 0.000 18.000
418
16.667 18.881 0.000 14.967 14.967 16.667 0.000 12.000
419
12.500 14.161 0.000 11.225 11.225 12.500 0.000 9.000
423
ATI 18810 clock generator:
425
Clocks 30.240 32.000 37.500 39.000 42.954 48.771 0.000 36.000
426
40.000 0.000 75.000 65.000 50.350 56.640 0.000 44.900
427
15.120 16.000 18.750 19.500 21.477 24.386 0.000 18.000
428
20.000 0.000 37.500 32.500 25.175 28.320 0.000 22.450
429
10.080 10.667 12.500 13.000 14.318 16.257 0.000 12.000
430
13.333 0.000 25.000 21.667 16.783 18.880 0.000 14.967
431
7.560 8.000 9.375 9.750 10.739 12.193 0.000 9.000
432
10.000 0.000 18.750 16.250 12.586 14.160 0.000 11.225
436
ATI 18811-0 and ATI 18812-0 clock generators:
438
Clocks 30.240 32.000 110.000 80.000 42.954 48.771 92.400 36.000
439
39.910 44.900 75.000 65.000 50.350 56.640 0.000 44.900
440
15.120 16.000 55.000 40.000 21.477 24.386 46.200 18.000
441
19.955 22.450 37.500 32.500 25.175 28.320 0.000 22.450
442
10.080 10.667 36.667 26.667 14.318 16.257 30.800 12.000
443
13.303 14.967 25.000 21.667 16.783 18.880 0.000 14.967
444
7.560 8.000 27.500 20.000 10.739 12.193 23.100 9.000
445
9.978 11.225 18.750 16.250 12.588 14.160 0.000 11.225
449
ATI 18811-1 and ATI 18811-2 clock generators:
451
Clocks 135.000 32.000 110.000 80.000 100.000 126.000 92.400 36.000
452
39.910 44.900 75.000 65.000 50.350 56.640 0.000 44.900
453
67.500 16.000 55.000 40.000 50.000 63.000 46.200 18.000
454
19.955 22.450 37.500 32.500 25.175 28.320 0.000 22.450
455
45.000 10.667 36.667 26.667 33.333 42.000 30.800 12.000
456
13.303 14.967 25.000 21.667 16.783 18.880 0.000 14.967
457
33.750 8.000 27.500 20.000 25.000 31.500 23.100 9.000
458
9.978 11.225 18.750 16.250 12.588 14.160 0.000 11.225
462
ICS 2494-AM clock generators (found on some Dell motherboards):
464
Clocks 75.000 77.500 80.000 90.000 25.175 28.322 31.500 36.000
465
100.000 110.000 126.000 135.000 40.000 44.900 50.000 65.000
466
37.500 38.750 40.000 45.000 12.588 14.161 15.750 18.000
467
50.000 55.000 63.000 67.500 20.000 22.450 25.000 32.500
468
25.000 25.833 26.667 30.000 8.392 9.441 10.500 12.000
469
33.333 36.667 42.000 45.000 13.333 14.767 16.667 21.667
470
18.750 19.375 20.000 22.500 6.294 7.081 7.875 9.000
471
25.000 27.500 31.500 33.750 10.000 11.225 12.500 16.250
474
VGAWonder VLB, VGA 1024 VLB, Mach32 and Mach64 owners should only
475
specify up to the first 32 frequencies. Any more will be ignored.
477
Other clock generators that have been used on ATI adapters (which can
478
all be said to be clones of one of the above) might generate non-zero
479
frequencies for those that are zero above, or vice-versa.
481
The order of the clocks is very important, although the driver will
482
reorder the specified clocks if it deems it appropriate to do so.
483
Mach32 and Mach64 owners should note that this order is different than
484
what they would use for previous accelerated servers.
487
5.6.4. Clocks for non-ATI adapters
489
If no clocks are specified in the xorg.conf, the driver will probe for
490
four clocks, the second of which will be assumed to be 28.322 MHz.
491
The first clock will typically be 25.175 MHz, but there are
492
exceptions. You can include up to four clock frequencies in your
493
xorg.conf to specify the actual values used by the adapter. Any more
497
5.7. Option ``nopanel_display''
499
This specification is only effective when the driver detects that the
500
adapter's BIOS has initialised both the digital flat panel and CRT
501
interfaces. In such a situation, the driver will normally drive both
502
the panel and the CRT. This specification causes the driver to
503
disable the digital flat panel and display the screen image on the CRT
504
instead, which could potentially allow for larger physical resolutions
505
than the panel can handle.
508
5.8. Option ``crt_display''
510
This specification is only effective when the driver detects that the
511
adapter's BIOS has initialised the digital flat panel interface, but
512
has disabled the CRT interface. In such a situation the driver will
513
normally drive only the panel. This specification causes the driver
514
to instead display the same image on both the panel and the CRT.
515
5.9. Option ``noaccel''
517
By default, the driver will accelerate draw operations if a Mach64
518
CRTC is used to drive the display. As implemented in this driver,
519
acceleration does not require a linear video memory aperture. This
520
option disables this acceleration.
523
5.10. Option ``nolinear''
525
By default, the driver will enable a linear video memory aperture for
526
256-colour and higher depth modes if it is also using a Mach64
527
accelerator CRTC or an integrated Mach64 graphics chip. This option
528
disables this linear aperture.
530
On non-Intel platforms, the driver requires a linear aperture and, so,
531
this option is ignored.
534
5.11. Option ``HWCursor'' and Option ``SWCursor''
536
Option ``HWCursor'', which is the default, specifies that hardware
537
facilities are to be used to paint the mouse pointer on the screen.
538
Option ``SWCursor'' specifies that the mouse pointer is to be drawn by
539
software, which is much slower. If both options are specified, option
540
``SWCursor'' prevails. Currently, these options are only acted upon
541
for 256-colour or higher depth modes, if a Mach64 accelerator CRTC, or
542
a Mach64 integrated controller is being used. In all other
543
situations, a software cursor will be used, regardless of what these
547
5.12. Option ``SilkenMouse''
549
This option is only acted upon when a hardware cursor is being used.
550
It specifies that the cursor's position on the screen is to be updated
551
as quickly as possible when the mouse is moved. This is the default
552
behaviour. If this option is negated, the cursor may lag the mouse
553
when the X server is very busy.
556
5.13. Option ``shadowfb''
558
If this option is enabled, the driver will cause the CPU to do each
559
drawing operation first into a shadow frame buffer in system virtual
560
memory and then copy the result into video memory. If this option is
561
not active, the CPU will draw directly into video memory. Enabling
562
this option is beneficial for those systems where reading from video
563
memory is, on average, slower than the corresponding read/modify/write
564
operation in system virtual memory. This is normally the case for PCI
565
or AGP adapters, and, so, this option is enabled by default. For
566
other bus types, the default behaviour is to disable this option.
568
Note that, due to various limitations, this option is forcibly
569
disabled when a linear video memory aperture is not enabled, when the
570
frame buffer depth is less than 8, or when acceleration is used.
573
5.14. Option ``dpms''
575
This option enables the driver's support for VESA's Display Power
576
Management Specification.
580
5.15. Option ``backingstore''
582
This is not specifically a driver option. It is used to enable the
583
server's support for backing store, a mechanism by which pixel data
584
for occluded window regions is remembered by the server thereby
585
alleviating the need to send expose events to X clients when the data
586
needs to be redisplayed.
589
5.16. MemBase address
591
This specification is only effective for non-PCI Mach64 adapters, and
592
is used to override the CPU address at which the adapter will map its
593
video memory. Normally, for non-PCI adapters, this address is set by
594
a DOS install utility provided with the adapter. The MemBase option
595
can also be used to enable the linear aperture in those cases where
596
ATI's utility was not, or can not be, used.
598
For PCI and AGP adapters, this address is determined at system bootup
599
according to the PCI Plug'n'Play specification which arbitrates the
600
resource requirements of most devices in the system. This means the
601
driver can not easily change the linear aperture address.
604
5.17. Option ``ReferenceClock'' ``frequency''
606
This option is only applicable to non-Intel platforms, where an
607
adapter BIOS is not available to the driver. The option specifies the
608
reference frequency used by the adapter's clock generator. The
609
default is 14.318 MHz, and other typical values are 28.636, or 29.5
613
5.18. ClockChip ``name''
615
This option is only applicable to non-Intel platforms, where an
616
adapter BIOS is not available to the driver, and the driver cannot
617
reliably determine whether the clock generator the adapter uses is a
618
variant of an ATI 18818 (a.k.a. ICS 2595) or an unsupported clock
619
generator. The only values that are acted upon are ``ATI 18818-0'' or
620
``ATI 18818-1''. From this specification, the driver derives a
621
reference divider of 43 or 46 (respectively) for use in clock
622
programming calculations. The driver's default behaviour, in this
623
case, is to assume an unsupported clock generator, which means it will
624
treat it as a fixed-frequency clock generator, as described under the
625
heading ``Clocks for unsupported programmable clock generators''
631
Mode timings can be derived from the information in X's doc
632
subdirectory. However, it is no longer required to specify such
633
timings in an xorg.conf's ``Monitor'' section(s), if only standard
634
mode timings are to be used. The server automatically inserts VESA
635
standard mode timings in every ``Monitor'' section, and these modes
636
will be checked first for mode constraints (monitor sync tolerances,
637
video memory size, etc.).
639
Furthermore, it is also no longer required to specify mode names in
640
``Display'' subsections. Should no mode names be specified (or those
641
specified do not yield a usable mode), the server will automatically
642
select as a default resolution the largest usable mode, whether or not
643
the chosen mode is specified in the corresponding ``Monitor'' section.
646
For a digital flat panel, any sync tolerances should be removed from
647
the corresponding ``Monitor'' section. The driver will automatically
648
calculate these from the mode that is active on server entry. The
649
driver also inserts timings for a mode called "Native panel mode" that
650
represents the panel's native resolution.
653
7. Known problems and limitations
655
There are several known problems or limitations related to the ATI
656
driver. They include:
659
o When using a Mach64's accelerator CRTC, the virtual resolution must
660
be less than 8192 pixels wide. The VGA CRTC further limits the
661
virtual resolution width to less than 4096 pixels, or to less than
662
2048 pixels for adapters based on 18800-x's (with 256kB of memory)
663
and on Mach64 integrated controllers. These are hardware limits
664
that cannot be circumvented.
666
o Virtual resolutions requiring more than 1MB of video memory (256kB
667
in the monochrome case) are not supported by the VGA CRTC on
668
88800GX and 88800CX adapters. This is a hardware limit that cannot
671
o Due to hardware limitations, doublescanned modes are not supported
672
by the accelerator CRTC in 88800GX, 88800CX, 264CT and 264ET
675
o The ``VScan'' modeline parameter is only supported when using the
678
o Interlaced modes are not supported on 18800-x and 28800-x adapters
679
when using a virtual resolution that is 2048 pixels or wider. When
680
using a 18800-x with 256kB of video memory in 256-colour modes,
681
this limit is reduced to 1024. This is yet another hardware
682
limitation that cannot be circumvented.
684
o Video memory banking does not work in monochrome and 16-colour
685
modes on 18800-x adapters. This appears to be another hardware
686
limit, but this conclusion cannot be confirmed at this time. The
687
driver's default behaviour in this case is to limit video memory to
690
o Video memory corruption can still occur during mode switches on
691
18800-x adapters. Symptoms of this problem include garbled fonts
692
on return to text mode, and various effects (snow, dashed lines,
693
etc) on initial entry into a graphics mode. In the first case, the
694
workaround is to use some other means of restoring the text font.
695
On Linux, this can be accomplished with the kbd or svgalib
696
packages. In the second case, xrefresh(1) will usually clean up
697
the image. No complete solution to this problem is currently
698
known. It appears this corruption occurs due to either video
699
memory bandwidth or RAMDAC limitations, and so the driver will
700
limit mode clocks to 40MHz.
702
o There is some controversy over what the maximum allowed clock
703
frequency should be on 264xT and 3D Rage adapters. For now, clocks
704
will, by default, be limited to 80MHz, 135MHz, 170MHz, 200MHz or
705
230MHz, depending on the specific controller. This limit can only
706
be increased (up to a driver-calculated absolute maximum) through
707
the DACSpeed specification in xorg.conf. Be aware however that
708
doing so is untested and might damage the adapter.
710
o Except as in the previous items, clocks are limited to 80MHz on
711
most adapters, although many are capable of higher frequencies.
712
This will eventually be fixed in a future release.
714
o The use of a laptop's hot-keys to switch displays while this driver
715
is active can cause lockups and/or other woes, and is therefore not
716
recommended. It is not currently possible to solve this problem.
719
o In situations where the driver is to simultaneously display on both
720
a panel and a CRT, the same image will be seen on both. In
721
particular, this means the CRT must be able to synchronise with the
722
timings of the panel's native resolution. This is quite evident
723
when the panel has ``odd-ball'' dimensions, such as 1400x1050, a
724
resolution not commonly possible on CRTs or projection equipment.
726
Also, the display of independent images on the panel and CRT is not
727
currently implemented, and might never be, pending resolution of
731
Support for the following will be added in a future release:
733
o Mach32's accelerator CRTC. This support is the first step towards
734
accelerated support for Mach32's, Mach8's, 8514/A's and other
737
o Colour depth greater than 8 on non-integrated controllers, where
738
permitted by the hardware.
740
o Mach32, Mach8 and 8514/A Draw Engines.
742
o Hardware cursors where implemented by hardware. This has already
743
been done for Mach64 integrated controllers.
745
o TVOut, i.e. the ability to use a television screen as a monitor.
747
o Motion Video, i.e. displaying an asynchronous data stream (TV
748
signal, DVD, etc.) in a window or full-screen.
752
8. Reporting problems
754
If you are experiencing problems that are not already recorded in this
755
document, first ensure that you have the latest current release of
756
this driver and the Xorg X server. Check the server's log (usually
757
found in /var/log/Xorg.0.log) and http://www.x.org/releases/individual/
758
if you are uncertain.
760
Secondly, please check Xorg's doc directory for additional
763
Thirdly, a scan through the comp.windows.x.i386unix and
764
comp.os.linux.x newsgroups, the xorg mailing list archives at
765
http://lists.freedesktop.org/mailman/listinfo/xorg, and the Xorg bug
766
database at https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
767
can also prove useful in resolving problems.
769
If you are still experiencing problems, you can send non-HTMLised e-
770
mail to <mailto:xorg@lists.fredesktop.org>. Please be as specific as
771
possible when describing the problem(s), and include an unedited copy
772
of the server's log and the xorg.conf file used.
778
The complete history of the driver is rather cloudy. The following is
779
more than likely to be incomplete and inaccurate.
781
Apparently, Per Lindqvist first got a driver working with an early ATI
782
adapter under X386 1.1a. This original driver might have actually
783
been based on a non-functional ATI driver written by Thomas Roell
784
(currently of Xi Graphics).
786
Then Doug Evans added support for the ATI VGA Wonder XL, trying in the
787
process to make the driver work with all other ATI adapters available
790
Rik Faith obtained the X11R4 driver from Doug Evans in the summer of
791
1992 and ported the code to the X386 part of X11R5. This subsequently
792
became part of XFree86.
794
Marc Aurele La France took over development and maintenance of the
795
driver in the fall of 1993 after Rik got rid of his VGA Wonder
801
Due to the introduction of loadable drivers in XFree86 4.0, it has
802
become necessary to track driver versions separately. Driver releases
803
use the following version numbering scheme.
805
Version 1 of this driver is the one I inherited from Rik Faith. This
806
is the version found in XFree86 2.0 and 2.1.
808
Version 2 is my first rewrite of this code which only ended up being a
809
partially unsuccessful attempt at generalising the driver for all VGA
810
Wonder, Mach32, and early Mach64 adapters. Various releases of this
811
version of the driver can be found in XFree86 2.1.1, 3.1, 3.1.1 and
814
Version 3 represents my second rewrite (although a rather lame one as
815
rewrites go). Into version 3, I introduced clock programming for
816
Mach64 adapters and merged in the old ati_test debugging tool. This
817
is the version found in XFree86 3.2, 3.3 and 3.3.1.
819
Version 4 is a rather major restructuring of version 3, which became
820
larger than I could comfortably handle in one source file. This is
821
the version found in XFree86 3.3.2, 3.3.3, 3.3.3.1, 3.3.3.2, 3.3.4,
824
Version 5 is an almost complete restructuring of version 4 to fit in
825
the newer driver API of XFree86 4.0 and later.
827
The introduction of version 6 is a first swipe at porting the driver
828
to non-Intel architectures.
830
All questions regarding this software should be directed at the
833
http://lists.freedesktop.org/mailman/listinfo/xorg
835
Please submit bug reports to the Xorg bugzilla:
837
https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
839
The master development code repository can be found at:
841
git://anongit.freedesktop.org/git/xorg/driver/xf86-video-mach64
843
http://cgit.freedesktop.org/xorg/driver/xf86-video-mach64
845
For patch submission instructions, see:
847
http://www.x.org/wiki/Development/Documentation/SubmittingPatches
849
For more information on the git code manager, see:
851
http://wiki.x.org/wiki/GitPage