11b12faf6Smrg  ATI Adapters README file
21b12faf6Smrg  Marc Aurele La France
31b12faf6Smrg  2002 February 12
41b12faf6Smrg
5e35d4d8eSmrg  This is the README for the ATI Mach64 driver included in this release.
61b12faf6Smrg  ______________________________________________________________________
71b12faf6Smrg
81b12faf6Smrg  Table of Contents
91b12faf6Smrg
101b12faf6Smrg
111b12faf6Smrg  1. Statement of intent
121b12faf6Smrg  2. A note on acceleration
131b12faf6Smrg  3. Current implementation for ATI adapters
141b12faf6Smrg  4. Current implementation of generic VGA support for non-ATI adapters
151b12faf6Smrg  5. xorg.conf specifications
161b12faf6Smrg     5.1 Driver ``ati''
171b12faf6Smrg     5.2 ChipSet ``name''
181b12faf6Smrg     5.3 ChipID & ChipRev specifications
191b12faf6Smrg     5.4 IOBase
201b12faf6Smrg     5.5 BusID
211b12faf6Smrg     5.6 Clocks
221b12faf6Smrg        5.6.1 Clocks for supported programmable clock generators
231b12faf6Smrg        5.6.2 Clocks for unsupported programmable clock generators
241b12faf6Smrg        5.6.3 Clocks for fixed clock generators on ATI adapters
251b12faf6Smrg        5.6.4 Clocks for non-ATI adapters
261b12faf6Smrg     5.7 Option ``nopanel_display''
271b12faf6Smrg     5.8 Option ``crt_display''
281b12faf6Smrg     5.9 Option ``noaccel''
291b12faf6Smrg     5.10 Option ``nolinear''
301b12faf6Smrg     5.11 Option ``HWCursor'' and Option ``SWCursor''
311b12faf6Smrg     5.12 Option ``SilkenMouse''
321b12faf6Smrg     5.13 Option ``shadowfb''
331b12faf6Smrg     5.14 Option ``dpms''
341b12faf6Smrg     5.15 Option ``backingstore''
351b12faf6Smrg     5.16 MemBase address
361b12faf6Smrg     5.17 Option ``ReferenceClock'' ``frequency''
371b12faf6Smrg     5.18 ClockChip ``name''
381b12faf6Smrg
391b12faf6Smrg  6. Video modes
401b12faf6Smrg  7. Known problems and limitations
411b12faf6Smrg  8. Reporting problems
421b12faf6Smrg  9. Driver history
431b12faf6Smrg  10. Driver versions
441b12faf6Smrg
451b12faf6Smrg
461b12faf6Smrg  ______________________________________________________________________
471b12faf6Smrg
481b12faf6Smrg  1.  Statement of intent
491b12faf6Smrg
501b12faf6Smrg  Generally speaking, the driver is intended for all ATI video adapters
511b12faf6Smrg  based on the Mach64 series or older chipsets, providing maximum video
521b12faf6Smrg  function within hardware limitations.  The driver is also intended to
531b12faf6Smrg  optionally provide the same level of support for generic VGA or 8514/A
54e35d4d8eSmrg  adapters.  The newer Rage 128 and Radeon chips are not supported
551b12faf6Smrg  by this driver.  Rage 128's and Radeon's are, however, supported by
561b12faf6Smrg  separate drivers, and owners of such adapters should consult the
571b12faf6Smrg  documentation provided with these drivers.  This driver will also
581b12faf6Smrg  invoke the appropriate driver if it finds Rage 128 and/or Radeon
591b12faf6Smrg  adapter(s) in the system.  This driver is still being actively
601b12faf6Smrg  developed, meaning that it currently does not yet fully meet these
611b12faf6Smrg  goals.
621b12faf6Smrg
631b12faf6Smrg  The driver will provide
641b12faf6Smrg
651b12faf6Smrg  o  accelerated support if an ATI accelerator is detected and the user
661b12faf6Smrg     has not requested that this support be disabled; otherwise
671b12faf6Smrg  o  accelerated support if a non-ATI 8514/A-capable adapter is detected
681b12faf6Smrg     and the user has requested such support; otherwise
691b12faf6Smrg
701b12faf6Smrg  o  unaccelerated SuperVGA support if an ATI VGA-capable adapter is
711b12faf6Smrg     detected; otherwise
721b12faf6Smrg
731b12faf6Smrg  o  generic VGA support if a non-ATI VGA-capable adapter is detected
741b12faf6Smrg     and the user has requested such support.
751b12faf6Smrg
761b12faf6Smrg     Thus, the level of support provided not only depends on what the
771b12faf6Smrg     driver detects in the system, but also, on what the user specifies
781b12faf6Smrg     in the xorg.conf file.  See the ``xorg.conf specifications''
791b12faf6Smrg     section below for details.
801b12faf6Smrg
811b12faf6Smrg  If none of the above conditions are met, the ATI driver will
821b12faf6Smrg  essentially disable itself to allow other drivers to examine the
831b12faf6Smrg  system.
841b12faf6Smrg
851b12faf6Smrg
861b12faf6Smrg  2.  A note on acceleration
871b12faf6Smrg
881b12faf6Smrg  The meaning of ``acceleration'', as used in this document, needs to be
891b12faf6Smrg  clarified.  Two of the many components in an accelerator are the CRT
901b12faf6Smrg  controller (CRTC) and the Draw Engine.  This is in addition to another
911b12faf6Smrg  CRTC that, generally, is also present in the system (often in the same
921b12faf6Smrg  chip) and typically provides EGA, VGA or SuperVGA functionality.
931b12faf6Smrg
941b12faf6Smrg  A CRTC is the component of a graphics controller that is responsible
951b12faf6Smrg  for reading video memory for output to the screen.  A Draw Engine is
961b12faf6Smrg  an accelerator component that can be programmed to manipulate video
971b12faf6Smrg  memory contents, thus freeing the CPU for other tasks.
981b12faf6Smrg
991b12faf6Smrg  When the VGA CRTC is used, all drawing operations into video memory
1001b12faf6Smrg  are the responsibility of the system's CPU, i.e. no Draw Engine can be
1011b12faf6Smrg  used.  On the other hand, if the accelerator's CRTC is chosen to drive
1021b12faf6Smrg  the screen, the Draw Engine can also be used for drawing operations,
1031b12faf6Smrg  although the CPU can still be used for this purpose if it can access
1041b12faf6Smrg  the accelerator's video memory.
1051b12faf6Smrg
1061b12faf6Smrg  Video acceleration refers to the programming of an accelerator's Draw
1071b12faf6Smrg  Engine to offload drawing operations from the CPU, and thus also
1081b12faf6Smrg  implies the use of the accelerator's CRTC.
1091b12faf6Smrg
1101b12faf6Smrg
1111b12faf6Smrg  3.  Current implementation for ATI adapters
1121b12faf6Smrg
1131b12faf6Smrg  The driver currently supports the SuperVGA capabilities of all ATI
1141b12faf6Smrg  adapters except some early Mach8 and Mach32 adapters that do not
1151b12faf6Smrg  provide the required functionality.  This support works for
1161b12faf6Smrg  monochrome, 16-colour and 256-colour video modes, if one of the
1171b12faf6Smrg  following ATI graphics controller chips is present:
1181b12faf6Smrg
1191b12faf6Smrg  VGAWonder series:  18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6
1201b12faf6Smrg     Mach32 series:  68800-3, 68800-6, 68800AX, 68800LX
1211b12faf6Smrg     Mach64 series:  88800GX-C, 88800GX-D, 88800GX-E, 88800GX-F, 88800CX,
1221b12faf6Smrg                     264CT, 264ET, 264VT, 264GT (3D Rage), 264VT-B, 264VT3,
1231b12faf6Smrg                     264VT4, 264GT-B (3D Rage II), 3D Rage IIc, 3D Rage Pro,
1241b12faf6Smrg                     3D Rage LT, 3D Rage LT Pro, 3D Rage XL, 3D Rage XC,
1251b12faf6Smrg                     3D Rage Mobility (including the -M and -P variants)
1261b12faf6Smrg
1271b12faf6Smrg
1281b12faf6Smrg  The driver also supports 32K, 64K and 16M-colour modes on the 264xT
1291b12faf6Smrg  and 3D Rage series of adapters using the accelerator CRTC (but not the
1301b12faf6Smrg  VGA CRTC).
1311b12faf6Smrg
1321b12faf6Smrg
133e35d4d8eSmrg  The newer Rage 128 and Radeon chips are not supported by this
1341b12faf6Smrg  driver.  Rage 128's and Radeon's are, however, supported by separate
1351b12faf6Smrg  drivers, and owners of such adapters should consult the documentation
1361b12faf6Smrg  provided with these drivers.  This driver will also invoke the
1371b12faf6Smrg  appropriate driver if it finds Rage 128 and/or Radeon adapter(s) in
1381b12faf6Smrg  the system.
1391b12faf6Smrg
1401b12faf6Smrg  Adapters based on the above chips have been marketed under a rather
1411b12faf6Smrg  large number of names over the years.  Among them are:
1421b12faf6Smrg
1431b12faf6Smrg  VGAWonder series:  VGAWonder V3, VGAWonder V4, VGAWonder V5, VGAWonder+,
1441b12faf6Smrg                     VGAWonder XL, VGAWonder XL24, VGAWonder VLB, VGA Basic,
1451b12faf6Smrg                     VGA Basic 16, VGA Edge, VGA Edge 16, VGA Integra,
1461b12faf6Smrg                     VGA Charger, VGAStereo F/X, VGA 640, VGA 800, VGA 1024,
1471b12faf6Smrg                     VGA 1024D, VGA 1024 XL, VGA 1024 DXL, VGA 1024 VLB
1481b12faf6Smrg      Mach8 series:  Graphics Ultra, Graphics Vantage, VGAWonder GT
1491b12faf6Smrg                     (None of the 8514/Ultra and 8514 Vantage series is
1501b12faf6Smrg                      supported at this time)
1511b12faf6Smrg     Mach32 series:  Graphics Ultra+, Graphics Ultra Pro, Graphics Wonder,
1521b12faf6Smrg                     Graphics Ultra XLR, Graphics Ultra AXO, VLB mach32-D,
1531b12faf6Smrg                     PCI mach32-D, ISA mach32
1541b12faf6Smrg     Mach64 series:  Graphics Xpression, Graphics Pro Turbo, WinBoost,
1551b12faf6Smrg                     WinTurbo, Graphics Pro Turbo 1600, Video Xpression,
1561b12faf6Smrg                     3D Xpression, Video Xpression+, 3D Xpression+,
1571b12faf6Smrg                     3D Charger, Video Charger, WinCharger, All-In-Wonder,
1581b12faf6Smrg                     All-In-Wonder PRO, 3D Pro Turbo, XPERT@Play,
1591b12faf6Smrg                     XPERT@Play 98, XPERT@Work, XPERT 98, XPERT LCD,
1601b12faf6Smrg                     XPERT XL
1611b12faf6Smrg
1621b12faf6Smrg
1631b12faf6Smrg  Also, a number of mainboards, laptops and notebooks harbour a Mach32
1641b12faf6Smrg  or Mach64 controller.
1651b12faf6Smrg
1661b12faf6Smrg  VGAWonder, Mach8 and Mach32 ISA adapters are available with or without
1671b12faf6Smrg  a mouse.
1681b12faf6Smrg
1691b12faf6Smrg  These adapters are available with a variety of clock generators and
1701b12faf6Smrg  RAMDACs.  The 264xT and 3D Rage series of chips are integrated
1711b12faf6Smrg  controllers, meaning that they include a programmable clock generator
1721b12faf6Smrg  and a RAMDAC.
1731b12faf6Smrg
1741b12faf6Smrg  For all but Mach64 adapters, this driver still does not provide
1751b12faf6Smrg  support for accelerated drawing to the screen.  This means that all
1761b12faf6Smrg  drawing is done by the CPU, rather than by any accelerator present in
1771b12faf6Smrg  the system.  This can make opaque moves, for example, quite ``jerky''.
1781b12faf6Smrg  Also, given that IBM 8514/A and ATI Mach8 do not allow CPU access to
1791b12faf6Smrg  their frame buffer, the driver will currently ignore these
1801b12faf6Smrg  accelerators.  Most Mach32 adapters provide both accelerated function
1811b12faf6Smrg  and SuperVGA functionality, but the driver currently only uses the
1821b12faf6Smrg  VGA.
1831b12faf6Smrg
1841b12faf6Smrg  The driver does however support the accelerator CRTC present in all
1851b12faf6Smrg  ATI Mach64 adapters.  For 256-colour, and higher depth modes, this
1861b12faf6Smrg  support will be used by default, although an xorg.conf option can be
1871b12faf6Smrg  specified to use the SuperVGA CRTC instead.  A linear video memory
1881b12faf6Smrg  aperture is also available in 256-colour and higher depth modes and
1891b12faf6Smrg  enabled by default if a 264xT or 3D Rage controller is detected or, on
1901b12faf6Smrg  88800 controllers, if the accelerator CRTC is used.  xorg.conf options
1911b12faf6Smrg  are available to disable this aperture, or (for non-PCI adapters)
1921b12faf6Smrg  enable it or move it to some other address.
1931b12faf6Smrg
1941b12faf6Smrg  By default, the driver provides some acceleration for Mach64 if the
1951b12faf6Smrg  accelerator CRTC is used, and modes whose colour depth greater than or
1961b12faf6Smrg  equal to 8 are to be used.  This support is as yet incomplete and can
1971b12faf6Smrg  be disabled entirely with an xorg.conf option.
1981b12faf6Smrg
1991b12faf6Smrg  On non-Intel platforms, the driver can, currently, only support PCI
2001b12faf6Smrg  Mach64 adapters.
2011b12faf6Smrg
2021b12faf6Smrg
2031b12faf6Smrg  4.  Current implementation of generic VGA support for non-ATI adapters
2041b12faf6Smrg
2051b12faf6Smrg  Support for generic VGA with non-ATI adapters is also implemented, but
2061b12faf6Smrg  has undergone only limited testing.  The driver will intentionally
2071b12faf6Smrg  disallow the use of this support with ATI adapters.  This support must
2081b12faf6Smrg  be explicitly requested through an xorg.conf ChipSet specification.
2091b12faf6Smrg  This prevents the current VGA generic driver from being disabled.
2101b12faf6Smrg
2111b12faf6Smrg  This driver's generic VGA support is intended as an extension of that
2121b12faf6Smrg  provided by the current generic driver.  Specifically, within the
2131b12faf6Smrg  architectural bounds defined by IBM's VGA standard, this driver will
2141b12faf6Smrg  allow the use of any 256-colour mode, and any dot clock frequencies
2151b12faf6Smrg  both of which allow for many more mode possibilities.
2161b12faf6Smrg
2171b12faf6Smrg  The driver will enforce the following limitations derived from IBM's
2181b12faf6Smrg  original VGA implementation:
2191b12faf6Smrg
2201b12faf6Smrg  o  There can only be a set of four (non-programmable) clocks to choose
2211b12faf6Smrg     from.
2221b12faf6Smrg
2231b12faf6Smrg  o  Video memory is limited to 256kB in monochrome and 16-colour modes.
2241b12faf6Smrg
2251b12faf6Smrg  o  Video memory is limited to 64kB in 256-colour modes.
2261b12faf6Smrg
2271b12faf6Smrg  o  Interlaced modes are not available.
2281b12faf6Smrg
2291b12faf6Smrg  o  Colour depths higher than 8 are not available.
2301b12faf6Smrg
2311b12faf6Smrg  5.  xorg.conf specifications
2321b12faf6Smrg
2331b12faf6Smrg  The driver recognises a number of xorg.conf options.  In general, all
2341b12faf6Smrg  such options should be specified in a ``Device'' section, and affect
2351b12faf6Smrg  only that ``Device'' section.
2361b12faf6Smrg
2371b12faf6Smrg  Those options that affect how the driver associates adapters with
2381b12faf6Smrg  ``Device'' sections are described first.  The driver will ignore (with
2391b12faf6Smrg  a message) a ``Device'' section if the section cannot be associated
2401b12faf6Smrg  with exactly one adapter in the system.  Similarly, the driver will
2411b12faf6Smrg  ignore, or disable, (with a message) any adapter that cannot be
2421b12faf6Smrg  associated with exactly one ``Device'' section.  Thus, these options
2431b12faf6Smrg  will be required in those uncommon cases where such unique
2441b12faf6Smrg  associations cannot automatically be made by the driver.
2451b12faf6Smrg
2461b12faf6Smrg  Other options affect the driver's operation once an adapter has been
2471b12faf6Smrg  assigned to the ``Device'' section which contains them.
2481b12faf6Smrg
2491b12faf6Smrg
2501b12faf6Smrg  5.1.  Driver ``ati''
2511b12faf6Smrg
2521b12faf6Smrg  The use of this specification is highly recommended if the ``Device''
2531b12faf6Smrg  section is to be recognised by the driver.  In fact, it is almost (but
2541b12faf6Smrg  not quite) mandatory, particularly when using the loader server as it
2551b12faf6Smrg  indicates what driver is to be loaded and associated with the
2561b12faf6Smrg  ``Device'' section.
2571b12faf6Smrg
2581b12faf6Smrg
2591b12faf6Smrg  5.2.  ChipSet ``name''
2601b12faf6Smrg
2611b12faf6Smrg  The default ChipSet name for this driver is ``ati''.  In this case,
2621b12faf6Smrg  any ATI adapter can be associated with the ``Device'' section.  If an
2631b12faf6Smrg  ATI accelerator is detected and the driver supports it, the
2641b12faf6Smrg  accelerator's CRTC will be used to drive the screen.  Otherwise, the
2651b12faf6Smrg  driver will programme the adapter's SuperVGA CRTC.
2661b12faf6Smrg
2671b12faf6Smrg  If ``ativga'' is specified instead, the driver will ignore any ATI
2681b12faf6Smrg  accelerator it detects, but otherwise operate as if ``ati'' had been
2691b12faf6Smrg  specified.  This specification ensures the VGA CRTC is used.
2701b12faf6Smrg
2711b12faf6Smrg  A ChipSet name of ``ibmvga'' causes any VGA-capable adapter in the
2721b12faf6Smrg  system to be associated with the ``Device'' section.  It enables the
2731b12faf6Smrg  driver's generic VGA support, but only for non-ATI adapters.  If an
2741b12faf6Smrg  ATI adapter is associated with the ``Device'' section, the driver will
2751b12faf6Smrg  operate as if ``ativga'' had been specified instead.
2761b12faf6Smrg
2771b12faf6Smrg  A ChipSet name of ``vgawonder'' is equivalent to ``ativga'', except
2781b12faf6Smrg  that only VGAWonder-capable adapters can be assigned to the ``Device''
2791b12faf6Smrg  section.  This specifically excludes the newer integrated Mach64
2801b12faf6Smrg  controllers.
2811b12faf6Smrg
2821b12faf6Smrg  In some PCI or AGP systems, the driver will not, by default, probe for
2831b12faf6Smrg  non-PCI Mach32's or Mach64's.  This is because, before doing any such
2841b12faf6Smrg  probe, the driver attempts to determine if the probe can cause a
2851b12faf6Smrg  lockup.  If the driver has enough information to determine that a
2861b12faf6Smrg  lockup would occur, it will skip the probe.  In some situations, this
2871b12faf6Smrg  determination cannot be accurate, and the driver will err on the side
2881b12faf6Smrg  of caution, skipping the probe.  Specifying a ChipSet name of
2891b12faf6Smrg  ``mach32'' or ``mach64'', as appropriate, will force the driver to
2901b12faf6Smrg  probe for the non-PCI adapter.  These ChipSet names should, therefore,
2911b12faf6Smrg  only be used when there is in fact such an adapter in the system.
2921b12faf6Smrg  They are otherwise equivalent to ``ati''.
2931b12faf6Smrg
2941b12faf6Smrg  On non-Intel platforms, only ``ati'' and ``mach64'' ChipSet values are
2951b12faf6Smrg  operative.
2961b12faf6Smrg
2971b12faf6Smrg
2981b12faf6Smrg  5.3.  ChipID & ChipRev specifications
2991b12faf6Smrg
3001b12faf6Smrg  These specifications will cause the driver to associate the ``Device''
3011b12faf6Smrg  section only with an adapter having the same attributes, or an adapter
3021b12faf6Smrg  whose PCI device ID the driver does not recognise.  In the second
3031b12faf6Smrg  case, these options cause the driver to treat the adapter as if it was
3041b12faf6Smrg  one with the specified PCI device ID or revision.  ChipID can only be
3051b12faf6Smrg  used with Mach32 or Mach64 adapters, and, thus, specifically excludes
3061b12faf6Smrg  any other adapter from matching the ``Device'' section.  ChipRev is
3071b12faf6Smrg  meaningful only with Mach64 adapters, and then only if ChipID is also
3081b12faf6Smrg  specified in the same ``Device'' section.
3091b12faf6Smrg
3101b12faf6Smrg
3111b12faf6Smrg  5.4.  IOBase
3121b12faf6Smrg
3131b12faf6Smrg  This option limits the adapters that can be associated with the
3141b12faf6Smrg  ``Device'' section to the one with the specified I/O base.  This
3151b12faf6Smrg  option only applies to Mach64 adapters and specifically excludes other
3161b12faf6Smrg  adapters.
3171b12faf6Smrg
3181b12faf6Smrg
3191b12faf6Smrg  5.5.  BusID
3201b12faf6Smrg
3211b12faf6Smrg  This option limits the adapters that can be associated with the
3221b12faf6Smrg  ``Device'' section to the one with the specified PCI Bus ID.  This
3231b12faf6Smrg  specification excludes non-PCI adapters.
3241b12faf6Smrg
3251b12faf6Smrg
3261b12faf6Smrg  5.6.  Clocks
3271b12faf6Smrg
3281b12faf6Smrg  For the purpose of specifying a clock line in your xorg.conf, one of
3291b12faf6Smrg  four different situations can occur, as follows.
3301b12faf6Smrg
3311b12faf6Smrg  Those configuring the driver's generic VGA support for a non-ATI
3321b12faf6Smrg  adapter, can skip ahead to the ``Clocks for non-ATI adapters'' section
3331b12faf6Smrg  below.  Those not trying to configure the driver for a Mach64 adapter,
3341b12faf6Smrg  can skip ahead to the ``Clocks for fixed clock generators on ATI
3351b12faf6Smrg  adapters'' section below.
3361b12faf6Smrg
3371b12faf6Smrg  The very earliest Mach64 adapters use fixed (i.e. non-programmable)
3381b12faf6Smrg  clock generators.  Very few of these (mostly prototypes) are known to
3391b12faf6Smrg  exist, but if you have one of these, you can also skip ahead to the
3401b12faf6Smrg  ``Clocks for fixed clock generators on ATI adapters'' section below.
3411b12faf6Smrg
3421b12faf6Smrg  The two cases that are left deal with programmable clock generators,
3431b12faf6Smrg  which are used on the great majority of Mach64 adapters.
3441b12faf6Smrg
3451b12faf6Smrg  If you are uncertain which situation applies to your adapter, you can
3461b12faf6Smrg  run a clock probe with the command ``X -probeonly''.
3471b12faf6Smrg
3481b12faf6Smrg
3491b12faf6Smrg  5.6.1.  Clocks for supported programmable clock generators
3501b12faf6Smrg
3511b12faf6Smrg  At bootup, video BIOS initialisation programmes an initial set of
3521b12faf6Smrg  frequencies.  Two of these are reserved to allow the setting of modes
3531b12faf6Smrg  that do not use a frequency from this initial set.  One of these
3541b12faf6Smrg  reserved slots is used by the BIOS mode set routine, the other by the
3551b12faf6Smrg  particular driver used (e.g. MS-Windows, AutoCAD, X, etc.).  The clock
3561b12faf6Smrg  numbers reserved in this way are dependent on the particular clock
3571b12faf6Smrg  generator used by the adapter.
3581b12faf6Smrg
3591b12faf6Smrg  The driver currently supports all programmable clock generators known
3601b12faf6Smrg  to exist on Mach64 adapters.  In this case, the driver will completely
3611b12faf6Smrg  ignore any xorg.conf clock specification, and programme the clock
3621b12faf6Smrg  generator as needed by the modes used during the X session.
3631b12faf6Smrg
3641b12faf6Smrg
3651b12faf6Smrg  5.6.2.  Clocks for unsupported programmable clock generators
3661b12faf6Smrg
3671b12faf6Smrg  This case is unlikely to occur, but is documented for the sake of
3681b12faf6Smrg  completeness.
3691b12faf6Smrg
3701b12faf6Smrg  In this situation, the driver will probe the adapter for clock
3711b12faf6Smrg  frequencies unless xorg.conf clocks are already specified.  In either
3721b12faf6Smrg  case, the driver will then attempt to normalise the clocks to one of
3731b12faf6Smrg  the following specifications:
3741b12faf6Smrg
3751b12faf6Smrg  BIOS setting 1:
3761b12faf6Smrg
3771b12faf6Smrg    Clocks   0.000 110.000 126.000 135.000  50.350  56.640  63.000  72.000
3781b12faf6Smrg             0.000  80.000  75.000  65.000  40.000  44.900  49.500  50.000
3791b12faf6Smrg             0.000  55.000  63.000  67.500  25.180  28.320  31.500  36.000
3801b12faf6Smrg             0.000  40.000  37.500  32.500  20.000  22.450  24.750  25.000
3811b12faf6Smrg
3821b12faf6Smrg
3831b12faf6Smrg
3841b12faf6Smrg  BIOS setting 2:
3851b12faf6Smrg
3861b12faf6Smrg    Clocks   0.000 110.000 126.000 135.000  25.180  28.320  31.500  36.000
3871b12faf6Smrg             0.000  80.000  75.000  65.000  40.000  44.900  49.500  50.000
3881b12faf6Smrg             0.000  55.000  63.000  67.500  12.590  14.160  15.750  18.000
3891b12faf6Smrg             0.000  40.000  37.500  32.500  20.000  22.450  24.750  25.000
3901b12faf6Smrg
3911b12faf6Smrg
3921b12faf6Smrg
3931b12faf6Smrg  BIOS setting 3:
3941b12faf6Smrg
3951b12faf6Smrg    Clocks   0.000   0.000   0.000   0.000  25.180  28.320   0.000   0.000
3961b12faf6Smrg             0.000   0.000   0.000   0.000   0.000   0.000   0.000   0.000
3971b12faf6Smrg             0.000   0.000   0.000   0.000  12.590  14.160   0.000   0.000
3981b12faf6Smrg             0.000   0.000   0.000   0.000   0.000   0.000   0.000   0.000
3991b12faf6Smrg
4001b12faf6Smrg
4011b12faf6Smrg  If the driver matches the clocks to the third setting above, function-
4021b12faf6Smrg  ality will be extremely limited (assuming the driver works at all).
4031b12faf6Smrg
4041b12faf6Smrg
4051b12faf6Smrg  5.6.3.  Clocks for fixed clock generators on ATI adapters
4061b12faf6Smrg
4071b12faf6Smrg  This section applies to all VGAWonder and Mach32 adapters, and to
4081b12faf6Smrg  early Mach64 prototypes.
4091b12faf6Smrg
4101b12faf6Smrg  One of the following clocks specifications (or an initial subset
4111b12faf6Smrg  thereof) can be used depending on what the adapter uses to generate
4121b12faf6Smrg  dot clocks:
4131b12faf6Smrg
4141b12faf6Smrg  Crystals (VGA Wonder V3 and V4 adapters only):
4151b12faf6Smrg
4161b12faf6Smrg    Clocks  50.000  56.644   0.000  44.900  44.900  50.000   0.000  36.000
4171b12faf6Smrg            25.000  28.322   0.000  22.450  22.450  25.000   0.000  18.000
4181b12faf6Smrg            16.667  18.881   0.000  14.967  14.967  16.667   0.000  12.000
4191b12faf6Smrg            12.500  14.161   0.000  11.225  11.225  12.500   0.000   9.000
4201b12faf6Smrg
4211b12faf6Smrg
4221b12faf6Smrg
4231b12faf6Smrg  ATI 18810 clock generator:
4241b12faf6Smrg
4251b12faf6Smrg    Clocks  30.240  32.000  37.500  39.000  42.954  48.771   0.000  36.000
4261b12faf6Smrg            40.000   0.000  75.000  65.000  50.350  56.640   0.000  44.900
4271b12faf6Smrg            15.120  16.000  18.750  19.500  21.477  24.386   0.000  18.000
4281b12faf6Smrg            20.000   0.000  37.500  32.500  25.175  28.320   0.000  22.450
4291b12faf6Smrg            10.080  10.667  12.500  13.000  14.318  16.257   0.000  12.000
4301b12faf6Smrg            13.333   0.000  25.000  21.667  16.783  18.880   0.000  14.967
4311b12faf6Smrg             7.560   8.000   9.375   9.750  10.739  12.193   0.000   9.000
4321b12faf6Smrg            10.000   0.000  18.750  16.250  12.586  14.160   0.000  11.225
4331b12faf6Smrg
4341b12faf6Smrg
4351b12faf6Smrg
4361b12faf6Smrg  ATI 18811-0 and ATI 18812-0 clock generators:
4371b12faf6Smrg
4381b12faf6Smrg    Clocks  30.240  32.000 110.000  80.000  42.954  48.771  92.400  36.000
4391b12faf6Smrg            39.910  44.900  75.000  65.000  50.350  56.640   0.000  44.900
4401b12faf6Smrg            15.120  16.000  55.000  40.000  21.477  24.386  46.200  18.000
4411b12faf6Smrg            19.955  22.450  37.500  32.500  25.175  28.320   0.000  22.450
4421b12faf6Smrg            10.080  10.667  36.667  26.667  14.318  16.257  30.800  12.000
4431b12faf6Smrg            13.303  14.967  25.000  21.667  16.783  18.880   0.000  14.967
4441b12faf6Smrg             7.560   8.000  27.500  20.000  10.739  12.193  23.100   9.000
4451b12faf6Smrg             9.978  11.225  18.750  16.250  12.588  14.160   0.000  11.225
4461b12faf6Smrg
4471b12faf6Smrg
4481b12faf6Smrg
4491b12faf6Smrg  ATI 18811-1 and ATI 18811-2 clock generators:
4501b12faf6Smrg
4511b12faf6Smrg    Clocks 135.000  32.000 110.000  80.000 100.000 126.000  92.400  36.000
4521b12faf6Smrg            39.910  44.900  75.000  65.000  50.350  56.640   0.000  44.900
4531b12faf6Smrg            67.500  16.000  55.000  40.000  50.000  63.000  46.200  18.000
4541b12faf6Smrg            19.955  22.450  37.500  32.500  25.175  28.320   0.000  22.450
4551b12faf6Smrg            45.000  10.667  36.667  26.667  33.333  42.000  30.800  12.000
4561b12faf6Smrg            13.303  14.967  25.000  21.667  16.783  18.880   0.000  14.967
4571b12faf6Smrg            33.750   8.000  27.500  20.000  25.000  31.500  23.100   9.000
4581b12faf6Smrg             9.978  11.225  18.750  16.250  12.588  14.160   0.000  11.225
4591b12faf6Smrg
4601b12faf6Smrg
4611b12faf6Smrg
4621b12faf6Smrg  ICS 2494-AM clock generators (found on some Dell motherboards):
4631b12faf6Smrg
4641b12faf6Smrg    Clocks  75.000  77.500  80.000  90.000  25.175  28.322  31.500  36.000
4651b12faf6Smrg           100.000 110.000 126.000 135.000  40.000  44.900  50.000  65.000
4661b12faf6Smrg            37.500  38.750  40.000  45.000  12.588  14.161  15.750  18.000
4671b12faf6Smrg            50.000  55.000  63.000  67.500  20.000  22.450  25.000  32.500
4681b12faf6Smrg            25.000  25.833  26.667  30.000   8.392   9.441  10.500  12.000
4691b12faf6Smrg            33.333  36.667  42.000  45.000  13.333  14.767  16.667  21.667
4701b12faf6Smrg            18.750  19.375  20.000  22.500   6.294   7.081   7.875   9.000
4711b12faf6Smrg            25.000  27.500  31.500  33.750  10.000  11.225  12.500  16.250
4721b12faf6Smrg
4731b12faf6Smrg
4741b12faf6Smrg  VGAWonder VLB, VGA 1024 VLB, Mach32 and Mach64 owners should only
4751b12faf6Smrg  specify up to the first 32 frequencies.  Any more will be ignored.
4761b12faf6Smrg
4771b12faf6Smrg  Other clock generators that have been used on ATI adapters (which can
4781b12faf6Smrg  all be said to be clones of one of the above) might generate non-zero
4791b12faf6Smrg  frequencies for those that are zero above, or vice-versa.
4801b12faf6Smrg
4811b12faf6Smrg  The order of the clocks is very important, although the driver will
4821b12faf6Smrg  reorder the specified clocks if it deems it appropriate to do so.
4831b12faf6Smrg  Mach32 and Mach64 owners should note that this order is different than
4841b12faf6Smrg  what they would use for previous accelerated servers.
4851b12faf6Smrg
4861b12faf6Smrg
4871b12faf6Smrg  5.6.4.  Clocks for non-ATI adapters
4881b12faf6Smrg
4891b12faf6Smrg  If no clocks are specified in the xorg.conf, the driver will probe for
4901b12faf6Smrg  four clocks, the second of which will be assumed to be 28.322 MHz.
4911b12faf6Smrg  The first clock will typically be 25.175 MHz, but there are
4921b12faf6Smrg  exceptions.  You can include up to four clock frequencies in your
4931b12faf6Smrg  xorg.conf to specify the actual values used by the adapter.  Any more
4941b12faf6Smrg  will be ignored.
4951b12faf6Smrg
4961b12faf6Smrg
4971b12faf6Smrg  5.7.  Option ``nopanel_display''
4981b12faf6Smrg
4991b12faf6Smrg  This specification is only effective when the driver detects that the
5001b12faf6Smrg  adapter's BIOS has initialised both the digital flat panel and CRT
5011b12faf6Smrg  interfaces.  In such a situation, the driver will normally drive both
5021b12faf6Smrg  the panel and the CRT.  This specification causes the driver to
5031b12faf6Smrg  disable the digital flat panel and display the screen image on the CRT
5041b12faf6Smrg  instead, which could potentially allow for larger physical resolutions
5051b12faf6Smrg  than the panel can handle.
5061b12faf6Smrg
5071b12faf6Smrg
5081b12faf6Smrg  5.8.  Option ``crt_display''
5091b12faf6Smrg
5101b12faf6Smrg  This specification is only effective when the driver detects that the
5111b12faf6Smrg  adapter's BIOS has initialised the digital flat panel interface, but
5121b12faf6Smrg  has disabled the CRT interface.  In such a situation the driver will
5131b12faf6Smrg  normally drive only the panel.  This specification causes the driver
5141b12faf6Smrg  to instead display the same image on both the panel and the CRT.
5151b12faf6Smrg  5.9.  Option ``noaccel''
5161b12faf6Smrg
5171b12faf6Smrg  By default, the driver will accelerate draw operations if a Mach64
5181b12faf6Smrg  CRTC is used to drive the display.  As implemented in this driver,
5191b12faf6Smrg  acceleration does not require a linear video memory aperture.  This
5201b12faf6Smrg  option disables this acceleration.
5211b12faf6Smrg
5221b12faf6Smrg
5231b12faf6Smrg  5.10.  Option ``nolinear''
5241b12faf6Smrg
5251b12faf6Smrg  By default, the driver will enable a linear video memory aperture for
5261b12faf6Smrg  256-colour and higher depth modes if it is also using a Mach64
5271b12faf6Smrg  accelerator CRTC or an integrated Mach64 graphics chip.  This option
5281b12faf6Smrg  disables this linear aperture.
5291b12faf6Smrg
5301b12faf6Smrg  On non-Intel platforms, the driver requires a linear aperture and, so,
5311b12faf6Smrg  this option is ignored.
5321b12faf6Smrg
5331b12faf6Smrg
5341b12faf6Smrg  5.11.  Option ``HWCursor'' and Option ``SWCursor''
5351b12faf6Smrg
5361b12faf6Smrg  Option ``HWCursor'', which is the default, specifies that hardware
5371b12faf6Smrg  facilities are to be used to paint the mouse pointer on the screen.
5381b12faf6Smrg  Option ``SWCursor'' specifies that the mouse pointer is to be drawn by
5391b12faf6Smrg  software, which is much slower.  If both options are specified, option
5401b12faf6Smrg  ``SWCursor'' prevails.  Currently, these options are only acted upon
5411b12faf6Smrg  for 256-colour or higher depth modes, if a Mach64 accelerator CRTC, or
5421b12faf6Smrg  a Mach64 integrated controller is being used.  In all other
5431b12faf6Smrg  situations, a software cursor will be used, regardless of what these
5441b12faf6Smrg  options specify.
5451b12faf6Smrg
5461b12faf6Smrg
5471b12faf6Smrg  5.12.  Option ``SilkenMouse''
5481b12faf6Smrg
5491b12faf6Smrg  This option is only acted upon when a hardware cursor is being used.
5501b12faf6Smrg  It specifies that the cursor's position on the screen is to be updated
5511b12faf6Smrg  as quickly as possible when the mouse is moved.  This is the default
5521b12faf6Smrg  behaviour.  If this option is negated, the cursor may lag the mouse
5531b12faf6Smrg  when the X server is very busy.
5541b12faf6Smrg
5551b12faf6Smrg
5561b12faf6Smrg  5.13.  Option ``shadowfb''
5571b12faf6Smrg
5581b12faf6Smrg  If this option is enabled, the driver will cause the CPU to do each
5591b12faf6Smrg  drawing operation first into a shadow frame buffer in system virtual
5601b12faf6Smrg  memory and then copy the result into video memory.  If this option is
5611b12faf6Smrg  not active, the CPU will draw directly into video memory.  Enabling
5621b12faf6Smrg  this option is beneficial for those systems where reading from video
5631b12faf6Smrg  memory is, on average, slower than the corresponding read/modify/write
5641b12faf6Smrg  operation in system virtual memory.  This is normally the case for PCI
5651b12faf6Smrg  or AGP adapters, and, so, this option is enabled by default.  For
5661b12faf6Smrg  other bus types, the default behaviour is to disable this option.
5671b12faf6Smrg
5681b12faf6Smrg  Note that, due to various limitations, this option is forcibly
5691b12faf6Smrg  disabled when a linear video memory aperture is not enabled, when the
5701b12faf6Smrg  frame buffer depth is less than 8, or when acceleration is used.
5711b12faf6Smrg
5721b12faf6Smrg
5731b12faf6Smrg  5.14.  Option ``dpms''
5741b12faf6Smrg
5751b12faf6Smrg  This option enables the driver's support for VESA's Display Power
5761b12faf6Smrg  Management Specification.
5771b12faf6Smrg
5781b12faf6Smrg
5791b12faf6Smrg
5801b12faf6Smrg  5.15.  Option ``backingstore''
5811b12faf6Smrg
5821b12faf6Smrg  This is not specifically a driver option.  It is used to enable the
5831b12faf6Smrg  server's support for backing store, a mechanism by which pixel data
5841b12faf6Smrg  for occluded window regions is remembered by the server thereby
5851b12faf6Smrg  alleviating the need to send expose events to X clients when the data
5861b12faf6Smrg  needs to be redisplayed.
5871b12faf6Smrg
5881b12faf6Smrg
5891b12faf6Smrg  5.16.  MemBase address
5901b12faf6Smrg
5911b12faf6Smrg  This specification is only effective for non-PCI Mach64 adapters, and
5921b12faf6Smrg  is used to override the CPU address at which the adapter will map its
5931b12faf6Smrg  video memory.  Normally, for non-PCI adapters, this address is set by
5941b12faf6Smrg  a DOS install utility provided with the adapter.  The MemBase option
5951b12faf6Smrg  can also be used to enable the linear aperture in those cases where
5961b12faf6Smrg  ATI's utility was not, or can not be, used.
5971b12faf6Smrg
5981b12faf6Smrg  For PCI and AGP adapters, this address is determined at system bootup
5991b12faf6Smrg  according to the PCI Plug'n'Play specification which arbitrates the
6001b12faf6Smrg  resource requirements of most devices in the system.  This means the
6011b12faf6Smrg  driver can not easily change the linear aperture address.
6021b12faf6Smrg
6031b12faf6Smrg
6041b12faf6Smrg  5.17.  Option ``ReferenceClock'' ``frequency''
6051b12faf6Smrg
6061b12faf6Smrg  This option is only applicable to non-Intel platforms, where an
6071b12faf6Smrg  adapter BIOS is not available to the driver.  The option specifies the
6081b12faf6Smrg  reference frequency used by the adapter's clock generator.  The
6091b12faf6Smrg  default is 14.318 MHz, and other typical values are 28.636, or 29.5
6101b12faf6Smrg  MHz.
6111b12faf6Smrg
6121b12faf6Smrg
6131b12faf6Smrg  5.18.  ClockChip ``name''
6141b12faf6Smrg
6151b12faf6Smrg  This option is only applicable to non-Intel platforms, where an
6161b12faf6Smrg  adapter BIOS is not available to the driver, and the driver cannot
6171b12faf6Smrg  reliably determine whether the clock generator the adapter uses is a
6181b12faf6Smrg  variant of an ATI 18818 (a.k.a.  ICS 2595) or an unsupported clock
6191b12faf6Smrg  generator.  The only values that are acted upon are ``ATI 18818-0'' or
6201b12faf6Smrg  ``ATI 18818-1''.  From this specification, the driver derives a
6211b12faf6Smrg  reference divider of 43 or 46 (respectively) for use in clock
6221b12faf6Smrg  programming calculations.  The driver's default behaviour, in this
6231b12faf6Smrg  case, is to assume an unsupported clock generator, which means it will
6241b12faf6Smrg  treat it as a fixed-frequency clock generator, as described under the
6251b12faf6Smrg  heading ``Clocks for unsupported programmable clock generators''
6261b12faf6Smrg  above.
6271b12faf6Smrg
6281b12faf6Smrg
6291b12faf6Smrg  6.  Video modes
6301b12faf6Smrg
6311b12faf6Smrg  Mode timings can be derived from the information in X's doc
6321b12faf6Smrg  subdirectory.  However, it is no longer required to specify such
6331b12faf6Smrg  timings in an xorg.conf's ``Monitor'' section(s), if only standard
6341b12faf6Smrg  mode timings are to be used.  The server automatically inserts VESA
6351b12faf6Smrg  standard mode timings in every ``Monitor'' section, and these modes
6361b12faf6Smrg  will be checked first for mode constraints (monitor sync tolerances,
6371b12faf6Smrg  video memory size, etc.).
6381b12faf6Smrg
6391b12faf6Smrg  Furthermore, it is also no longer required to specify mode names in
6401b12faf6Smrg  ``Display'' subsections.  Should no mode names be specified (or those
6411b12faf6Smrg  specified do not yield a usable mode), the server will automatically
6421b12faf6Smrg  select as a default resolution the largest usable mode, whether or not
6431b12faf6Smrg  the chosen mode is specified in the corresponding ``Monitor'' section.
6441b12faf6Smrg
6451b12faf6Smrg
6461b12faf6Smrg  For a digital flat panel, any sync tolerances should be removed from
6471b12faf6Smrg  the corresponding ``Monitor'' section.  The driver will automatically
6481b12faf6Smrg  calculate these from the mode that is active on server entry.  The
6491b12faf6Smrg  driver also inserts timings for a mode called "Native panel mode" that
6501b12faf6Smrg  represents the panel's native resolution.
6511b12faf6Smrg
6521b12faf6Smrg
6531b12faf6Smrg  7.  Known problems and limitations
6541b12faf6Smrg
6551b12faf6Smrg  There are several known problems or limitations related to the ATI
6561b12faf6Smrg  driver.  They include:
6571b12faf6Smrg
6581b12faf6Smrg
6591b12faf6Smrg  o  When using a Mach64's accelerator CRTC, the virtual resolution must
6601b12faf6Smrg     be less than 8192 pixels wide.  The VGA CRTC further limits the
6611b12faf6Smrg     virtual resolution width to less than 4096 pixels, or to less than
6621b12faf6Smrg     2048 pixels for adapters based on 18800-x's (with 256kB of memory)
6631b12faf6Smrg     and on Mach64 integrated controllers.  These are hardware limits
6641b12faf6Smrg     that cannot be circumvented.
6651b12faf6Smrg
6661b12faf6Smrg  o  Virtual resolutions requiring more than 1MB of video memory (256kB
6671b12faf6Smrg     in the monochrome case) are not supported by the VGA CRTC on
6681b12faf6Smrg     88800GX and 88800CX adapters.  This is a hardware limit that cannot
6691b12faf6Smrg     be circumvented.
6701b12faf6Smrg
6711b12faf6Smrg  o  Due to hardware limitations, doublescanned modes are not supported
6721b12faf6Smrg     by the accelerator CRTC in 88800GX, 88800CX, 264CT and 264ET
6731b12faf6Smrg     adapters.
6741b12faf6Smrg
6751b12faf6Smrg  o  The ``VScan'' modeline parameter is only supported when using the
6761b12faf6Smrg     VGA CRTC.
6771b12faf6Smrg
6781b12faf6Smrg  o  Interlaced modes are not supported on 18800-x and 28800-x adapters
6791b12faf6Smrg     when using a virtual resolution that is 2048 pixels or wider.  When
6801b12faf6Smrg     using a 18800-x with 256kB of video memory in 256-colour modes,
6811b12faf6Smrg     this limit is reduced to 1024.  This is yet another hardware
6821b12faf6Smrg     limitation that cannot be circumvented.
6831b12faf6Smrg
6841b12faf6Smrg  o  Video memory banking does not work in monochrome and 16-colour
6851b12faf6Smrg     modes on 18800-x adapters.  This appears to be another hardware
6861b12faf6Smrg     limit, but this conclusion cannot be confirmed at this time.  The
6871b12faf6Smrg     driver's default behaviour in this case is to limit video memory to
6881b12faf6Smrg     256kB.
6891b12faf6Smrg
6901b12faf6Smrg  o  Video memory corruption can still occur during mode switches on
6911b12faf6Smrg     18800-x adapters.  Symptoms of this problem include garbled fonts
6921b12faf6Smrg     on return to text mode, and various effects (snow, dashed lines,
6931b12faf6Smrg     etc) on initial entry into a graphics mode.  In the first case, the
6941b12faf6Smrg     workaround is to use some other means of restoring the text font.
6951b12faf6Smrg     On Linux, this can be accomplished with the kbd or svgalib
6961b12faf6Smrg     packages.  In the second case, xrefresh(1) will usually clean up
6971b12faf6Smrg     the image.  No complete solution to this problem is currently
6981b12faf6Smrg     known.  It appears this corruption occurs due to either video
6991b12faf6Smrg     memory bandwidth or RAMDAC limitations, and so the driver will
7001b12faf6Smrg     limit mode clocks to 40MHz.
7011b12faf6Smrg
7021b12faf6Smrg  o  There is some controversy over what the maximum allowed clock
7031b12faf6Smrg     frequency should be on 264xT and 3D Rage adapters.  For now, clocks
7041b12faf6Smrg     will, by default, be limited to 80MHz, 135MHz, 170MHz, 200MHz or
7051b12faf6Smrg     230MHz, depending on the specific controller.  This limit can only
7061b12faf6Smrg     be increased (up to a driver-calculated absolute maximum) through
7071b12faf6Smrg     the DACSpeed specification in xorg.conf.  Be aware however that
7081b12faf6Smrg     doing so is untested and might damage the adapter.
7091b12faf6Smrg
7101b12faf6Smrg  o  Except as in the previous items, clocks are limited to 80MHz on
7111b12faf6Smrg     most adapters, although many are capable of higher frequencies.
7121b12faf6Smrg     This will eventually be fixed in a future release.
7131b12faf6Smrg
7141b12faf6Smrg  o  The use of a laptop's hot-keys to switch displays while this driver
7151b12faf6Smrg     is active can cause lockups and/or other woes, and is therefore not
7161b12faf6Smrg     recommended.  It is not currently possible to solve this problem.
7171b12faf6Smrg
7181b12faf6Smrg
7191b12faf6Smrg  o  In situations where the driver is to simultaneously display on both
7201b12faf6Smrg     a panel and a CRT, the same image will be seen on both.  In
7211b12faf6Smrg     particular, this means the CRT must be able to synchronise with the
7221b12faf6Smrg     timings of the panel's native resolution.  This is quite evident
7231b12faf6Smrg     when the panel has ``odd-ball'' dimensions, such as 1400x1050, a
7241b12faf6Smrg     resolution not commonly possible on CRTs or projection equipment.
7251b12faf6Smrg
7261b12faf6Smrg     Also, the display of independent images on the panel and CRT is not
7271b12faf6Smrg     currently implemented, and might never be, pending resolution of
7281b12faf6Smrg     the previous item.
7291b12faf6Smrg
7301b12faf6Smrg
7311b12faf6Smrg     Support for the following will be added in a future release:
7321b12faf6Smrg
7331b12faf6Smrg  o  Mach32's accelerator CRTC.  This support is the first step towards
7341b12faf6Smrg     accelerated support for Mach32's, Mach8's, 8514/A's and other
7351b12faf6Smrg     clones.
7361b12faf6Smrg
7371b12faf6Smrg  o  Colour depth greater than 8 on non-integrated controllers, where
7381b12faf6Smrg     permitted by the hardware.
7391b12faf6Smrg
7401b12faf6Smrg  o  Mach32, Mach8 and 8514/A Draw Engines.
7411b12faf6Smrg
7421b12faf6Smrg  o  Hardware cursors where implemented by hardware.  This has already
7431b12faf6Smrg     been done for Mach64 integrated controllers.
7441b12faf6Smrg
7451b12faf6Smrg  o  TVOut, i.e. the ability to use a television screen as a monitor.
7461b12faf6Smrg
7471b12faf6Smrg  o  Motion Video, i.e. displaying an asynchronous data stream (TV
7481b12faf6Smrg     signal, DVD, etc.) in a window or full-screen.
7491b12faf6Smrg
7501b12faf6Smrg  o  3D operations.
7511b12faf6Smrg
7521b12faf6Smrg  8.  Reporting problems
7531b12faf6Smrg
7541b12faf6Smrg  If you are experiencing problems that are not already recorded in this
7551b12faf6Smrg  document, first ensure that you have the latest current release of
7561b12faf6Smrg  this driver and the Xorg X server.  Check the server's log (usually
7570b0ce0bfSmrg  found in /var/log/Xorg.0.log) and https://www.x.org/releases/individual/
7581b12faf6Smrg  if you are uncertain.
7591b12faf6Smrg
7601b12faf6Smrg  Secondly, please check Xorg's doc directory for additional
7611b12faf6Smrg  information.
7621b12faf6Smrg
7631b12faf6Smrg  Thirdly, a scan through the comp.windows.x.i386unix and
7641b12faf6Smrg  comp.os.linux.x newsgroups, the xorg mailing list archives at
7650b0ce0bfSmrg  https://lists.x.org/mailman/listinfo/xorg, and the Xorg bug
7661b12faf6Smrg  database at https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
7671b12faf6Smrg  can also prove useful in resolving problems.
7681b12faf6Smrg
7691b12faf6Smrg  If you are still experiencing problems, you can send non-HTMLised e-
7701b12faf6Smrg  mail to  <mailto:xorg@lists.fredesktop.org>.  Please be as specific as
7711b12faf6Smrg  possible when describing the problem(s), and include an unedited copy
7721b12faf6Smrg  of the server's log and the xorg.conf file used.
7731b12faf6Smrg
7741b12faf6Smrg
7751b12faf6Smrg
7761b12faf6Smrg  9.  Driver history
7771b12faf6Smrg
7781b12faf6Smrg  The complete history of the driver is rather cloudy.  The following is
7791b12faf6Smrg  more than likely to be incomplete and inaccurate.
7801b12faf6Smrg
7811b12faf6Smrg  Apparently, Per Lindqvist first got a driver working with an early ATI
7821b12faf6Smrg  adapter under X386 1.1a.  This original driver might have actually
7831b12faf6Smrg  been based on a non-functional ATI driver written by Thomas Roell
7841b12faf6Smrg  (currently of Xi Graphics).
7851b12faf6Smrg
7861b12faf6Smrg  Then Doug Evans added support for the ATI VGA Wonder XL, trying in the
7871b12faf6Smrg  process to make the driver work with all other ATI adapters available
7881b12faf6Smrg  at the time.
7891b12faf6Smrg
7901b12faf6Smrg  Rik Faith obtained the X11R4 driver from Doug Evans in the summer of
7911b12faf6Smrg  1992 and ported the code to the X386 part of X11R5.  This subsequently
7921b12faf6Smrg  became part of XFree86.
7931b12faf6Smrg
7941b12faf6Smrg  Marc Aurele La France took over development and maintenance of the
7951b12faf6Smrg  driver in the fall of 1993 after Rik got rid of his VGA Wonder
7961b12faf6Smrg  adapter.
7971b12faf6Smrg
7981b12faf6Smrg
7991b12faf6Smrg  10.  Driver versions
8001b12faf6Smrg
8011b12faf6Smrg  Due to the introduction of loadable drivers in XFree86 4.0, it has
8021b12faf6Smrg  become necessary to track driver versions separately.  Driver releases
8031b12faf6Smrg  use the following version numbering scheme.
8041b12faf6Smrg
8051b12faf6Smrg  Version 1 of this driver is the one I inherited from Rik Faith.  This
8061b12faf6Smrg  is the version found in XFree86 2.0 and 2.1.
8071b12faf6Smrg
8081b12faf6Smrg  Version 2 is my first rewrite of this code which only ended up being a
8091b12faf6Smrg  partially unsuccessful attempt at generalising the driver for all VGA
8101b12faf6Smrg  Wonder, Mach32, and early Mach64 adapters.  Various releases of this
8111b12faf6Smrg  version of the driver can be found in XFree86 2.1.1, 3.1, 3.1.1 and
8121b12faf6Smrg  3.1.2.
8131b12faf6Smrg
8141b12faf6Smrg  Version 3 represents my second rewrite (although a rather lame one as
8151b12faf6Smrg  rewrites go).  Into version 3, I introduced clock programming for
8161b12faf6Smrg  Mach64 adapters and merged in the old ati_test debugging tool.  This
8171b12faf6Smrg  is the version found in XFree86 3.2, 3.3 and 3.3.1.
8181b12faf6Smrg
8191b12faf6Smrg  Version 4 is a rather major restructuring of version 3, which became
8201b12faf6Smrg  larger than I could comfortably handle in one source file.  This is
8211b12faf6Smrg  the version found in XFree86 3.3.2, 3.3.3, 3.3.3.1, 3.3.3.2, 3.3.4,
8221b12faf6Smrg  3.3.5 and 3.3.6.
8231b12faf6Smrg
8241b12faf6Smrg  Version 5 is an almost complete restructuring of version 4 to fit in
8251b12faf6Smrg  the newer driver API of XFree86 4.0 and later.
8261b12faf6Smrg
8271b12faf6Smrg  The introduction of version 6 is a first swipe at porting the driver
8281b12faf6Smrg  to non-Intel architectures.
829d31dbc53Smrg
8300b0ce0bfSmrg  -----------------------------------------------------------------------
8310b0ce0bfSmrg
832d31dbc53SmrgAll questions regarding this software should be directed at the
833d31dbc53SmrgXorg mailing list:
834d31dbc53Smrg
8350b0ce0bfSmrg        https://lists.freedesktop.org/mailman/listinfo/xorg
8362a51b5beSmrg
8370b0ce0bfSmrgThe primary development code repository can be found at:
838d31dbc53Smrg
8390b0ce0bfSmrg        https://gitlab.freedesktop.org/xorg/driver/xf86-video-mach64
840d31dbc53Smrg
8410b0ce0bfSmrgPlease submit bug reports and requests to merge patches there.
842d31dbc53Smrg
8432a51b5beSmrgFor patch submission instructions, see:
8442a51b5beSmrg
8450b0ce0bfSmrg	https://www.x.org/wiki/Development/Documentation/SubmittingPatches
8461b12faf6Smrg
847