NameDateSize

..10-Nov-202518

aclocal.m4H A D10-Nov-2025446.7 KiB

ChangeLogH A D10-Nov-2025371.2 KiB

compileH A D10-Nov-20257.2 KiB

config.guessH A D10-Nov-202548.2 KiB

config.h.inH A D10-Nov-20252.4 KiB

config.subH A D10-Nov-202534.4 KiB

configureH A D10-Nov-2025645.5 KiB

configure.acH A D10-Nov-20258.1 KiB

COPYINGH A D10-Nov-20255.1 KiB

depcompH A D10-Nov-202523 KiB

INSTALLH A D10-Nov-202515.4 KiB

install-shH A D10-Nov-202515 KiB

ltmain.shH A D10-Nov-2025325.2 KiB

Makefile.amH A D10-Nov-20251.3 KiB

Makefile.inH A D10-Nov-202527.4 KiB

man/H10-Nov-202544

missingH A D10-Nov-20256.7 KiB

READMEH A D10-Nov-202536.2 KiB

src/H10-Nov-20254 KiB

README

1  ATI Adapters README file
2  Marc Aurele La France
3  2002 February 12
4
5  This is the README for the ATI Mach64 driver included in this release.
6  ______________________________________________________________________
7
8  Table of Contents
9
10
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
16     5.1 Driver ``ati''
17     5.2 ChipSet ``name''
18     5.3 ChipID & ChipRev specifications
19     5.4 IOBase
20     5.5 BusID
21     5.6 Clocks
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''
33     5.14 Option ``dpms''
34     5.15 Option ``backingstore''
35     5.16 MemBase address
36     5.17 Option ``ReferenceClock'' ``frequency''
37     5.18 ClockChip ``name''
38
39  6. Video modes
40  7. Known problems and limitations
41  8. Reporting problems
42  9. Driver history
43  10. Driver versions
44
45
46  ______________________________________________________________________
47
48  1.  Statement of intent
49
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
61  goals.
62
63  The driver will provide
64
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
69
70  o  unaccelerated SuperVGA support if an ATI VGA-capable adapter is
71     detected; otherwise
72
73  o  generic VGA support if a non-ATI VGA-capable adapter is detected
74     and the user has requested such support.
75
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.
80
81  If none of the above conditions are met, the ATI driver will
82  essentially disable itself to allow other drivers to examine the
83  system.
84
85
86  2.  A note on acceleration
87
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.
93
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.
98
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.
105
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.
109
110
111  3.  Current implementation for ATI adapters
112
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:
118
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)
126
127
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
130  VGA CRTC).
131
132
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
138  the system.
139
140  Adapters based on the above chips have been marketed under a rather
141  large number of names over the years.  Among them are:
142
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,
160                     XPERT XL
161
162
163  Also, a number of mainboards, laptops and notebooks harbour a Mach32
164  or Mach64 controller.
165
166  VGAWonder, Mach8 and Mach32 ISA adapters are available with or without
167  a mouse.
168
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
172  and a RAMDAC.
173
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
182  VGA.
183
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.
193
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.
198
199  On non-Intel platforms, the driver can, currently, only support PCI
200  Mach64 adapters.
201
202
203  4.  Current implementation of generic VGA support for non-ATI adapters
204
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.
210
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.
216
217  The driver will enforce the following limitations derived from IBM's
218  original VGA implementation:
219
220  o  There can only be a set of four (non-programmable) clocks to choose
221     from.
222
223  o  Video memory is limited to 256kB in monochrome and 16-colour modes.
224
225  o  Video memory is limited to 64kB in 256-colour modes.
226
227  o  Interlaced modes are not available.
228
229  o  Colour depths higher than 8 are not available.
230
231  5.  xorg.conf specifications
232
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.
236
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.
245
246  Other options affect the driver's operation once an adapter has been
247  assigned to the ``Device'' section which contains them.
248
249
250  5.1.  Driver ``ati''
251
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
256  ``Device'' section.
257
258
259  5.2.  ChipSet ``name''
260
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.
266
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.
270
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.
276
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
280  controllers.
281
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''.
293
294  On non-Intel platforms, only ``ati'' and ``mach64'' ChipSet values are
295  operative.
296
297
298  5.3.  ChipID & ChipRev specifications
299
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.
309
310
311  5.4.  IOBase
312
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
316  adapters.
317
318
319  5.5.  BusID
320
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.
324
325
326  5.6.  Clocks
327
328  For the purpose of specifying a clock line in your xorg.conf, one of
329  four different situations can occur, as follows.
330
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.
336
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.
341
342  The two cases that are left deal with programmable clock generators,
343  which are used on the great majority of Mach64 adapters.
344
345  If you are uncertain which situation applies to your adapter, you can
346  run a clock probe with the command ``X -probeonly''.
347
348
349  5.6.1.  Clocks for supported programmable clock generators
350
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.
358
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.
363
364
365  5.6.2.  Clocks for unsupported programmable clock generators
366
367  This case is unlikely to occur, but is documented for the sake of
368  completeness.
369
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:
374
375  BIOS setting 1:
376
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
381
382
383
384  BIOS setting 2:
385
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
390
391
392
393  BIOS setting 3:
394
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
399
400
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).
403
404
405  5.6.3.  Clocks for fixed clock generators on ATI adapters
406
407  This section applies to all VGAWonder and Mach32 adapters, and to
408  early Mach64 prototypes.
409
410  One of the following clocks specifications (or an initial subset
411  thereof) can be used depending on what the adapter uses to generate
412  dot clocks:
413
414  Crystals (VGA Wonder V3 and V4 adapters only):
415
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
420
421
422
423  ATI 18810 clock generator:
424
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
433
434
435
436  ATI 18811-0 and ATI 18812-0 clock generators:
437
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
446
447
448
449  ATI 18811-1 and ATI 18811-2 clock generators:
450
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
459
460
461
462  ICS 2494-AM clock generators (found on some Dell motherboards):
463
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
472
473
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.
476
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.
480
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.
485
486
487  5.6.4.  Clocks for non-ATI adapters
488
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
494  will be ignored.
495
496
497  5.7.  Option ``nopanel_display''
498
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.
506
507
508  5.8.  Option ``crt_display''
509
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''
516
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.
521
522
523  5.10.  Option ``nolinear''
524
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.
529
530  On non-Intel platforms, the driver requires a linear aperture and, so,
531  this option is ignored.
532
533
534  5.11.  Option ``HWCursor'' and Option ``SWCursor''
535
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
544  options specify.
545
546
547  5.12.  Option ``SilkenMouse''
548
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.
554
555
556  5.13.  Option ``shadowfb''
557
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.
567
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.
571
572
573  5.14.  Option ``dpms''
574
575  This option enables the driver's support for VESA's Display Power
576  Management Specification.
577
578
579
580  5.15.  Option ``backingstore''
581
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.
587
588
589  5.16.  MemBase address
590
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.
597
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.
602
603
604  5.17.  Option ``ReferenceClock'' ``frequency''
605
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
610  MHz.
611
612
613  5.18.  ClockChip ``name''
614
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''
626  above.
627
628
629  6.  Video modes
630
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.).
638
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.
644
645
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.
651
652
653  7.  Known problems and limitations
654
655  There are several known problems or limitations related to the ATI
656  driver.  They include:
657
658
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.
665
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
669     be circumvented.
670
671  o  Due to hardware limitations, doublescanned modes are not supported
672     by the accelerator CRTC in 88800GX, 88800CX, 264CT and 264ET
673     adapters.
674
675  o  The ``VScan'' modeline parameter is only supported when using the
676     VGA CRTC.
677
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.
683
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
688     256kB.
689
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.
701
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.
709
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.
713
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.
717
718
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.
725
726     Also, the display of independent images on the panel and CRT is not
727     currently implemented, and might never be, pending resolution of
728     the previous item.
729
730
731     Support for the following will be added in a future release:
732
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
735     clones.
736
737  o  Colour depth greater than 8 on non-integrated controllers, where
738     permitted by the hardware.
739
740  o  Mach32, Mach8 and 8514/A Draw Engines.
741
742  o  Hardware cursors where implemented by hardware.  This has already
743     been done for Mach64 integrated controllers.
744
745  o  TVOut, i.e. the ability to use a television screen as a monitor.
746
747  o  Motion Video, i.e. displaying an asynchronous data stream (TV
748     signal, DVD, etc.) in a window or full-screen.
749
750  o  3D operations.
751
752  8.  Reporting problems
753
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 https://www.x.org/releases/individual/
758  if you are uncertain.
759
760  Secondly, please check Xorg's doc directory for additional
761  information.
762
763  Thirdly, a scan through the comp.windows.x.i386unix and
764  comp.os.linux.x newsgroups, the xorg mailing list archives at
765  https://lists.x.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.
768
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.
773
774
775
776  9.  Driver history
777
778  The complete history of the driver is rather cloudy.  The following is
779  more than likely to be incomplete and inaccurate.
780
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).
785
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
788  at the time.
789
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.
793
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
796  adapter.
797
798
799  10.  Driver versions
800
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.
804
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.
807
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
812  3.1.2.
813
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.
818
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,
822  3.3.5 and 3.3.6.
823
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.
826
827  The introduction of version 6 is a first swipe at porting the driver
828  to non-Intel architectures.
829
830  -----------------------------------------------------------------------
831
832All questions regarding this software should be directed at the
833Xorg mailing list:
834
835        https://lists.freedesktop.org/mailman/listinfo/xorg
836
837The primary development code repository can be found at:
838
839        https://gitlab.freedesktop.org/xorg/driver/xf86-video-mach64
840
841Please submit bug reports and requests to merge patches there.
842
843For patch submission instructions, see:
844
845	https://www.x.org/wiki/Development/Documentation/SubmittingPatches
846
847