home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 45 / cda45.iso / Linux / XFree86-4.0 / doc / README.ati < prev    next >
Encoding:
Text File  |  2000-03-09  |  27.7 KB  |  578 lines

  1.                           ATI Adapters README file
  2.  
  3.                             Marc Aurele La France
  4.  
  5.                                1999 October 25
  6.  
  7.                                   Abstract
  8.  
  9.      This is the README for the XFree86 ATI driver included in this
  10.      release.
  11.  
  12. 1.  Statement of intent
  13.  
  14. Generally speaking, the driver is intended for all ATI video adapters, pro-
  15. viding maximum video function within hardware limitations.  The driver is
  16. also intended to optionally provide the same level of support for generic VGA
  17. or 8514/A adapters.  This driver is still being actively developed, meaning
  18. that it currently does not yet fully meet these goals.
  19.  
  20. The driver will provide
  21.  
  22.    o accelerated support if an ATI accelerator is detected and the user has
  23.      not requested that this support be disabled;  otherwise
  24.  
  25.    o accelerated support if a non-ATI 8514/A-capable adapter is detected and
  26.      the user has requested such support;  otherwise
  27.  
  28.    o unaccelerated SuperVGA support if an ATI VGA-capable adapter is
  29.      detected; otherwise
  30.  
  31.    o generic VGA support if a non-ATI VGA-capable adapter is detected and the
  32.      user has requested such support.
  33.  
  34. Thus, the support provided not only depends on what the driver detects in the
  35. system, but also, on what the user specifies in the XF86Config file.  See the
  36. ``XF86Config specifications'' section below for details.
  37.  
  38. If none of the above conditions are met, the ATI driver will essentially dis-
  39. able itself to allow other drivers to examine the system.
  40.  
  41. 2.  A note on acceleration
  42.  
  43. The meaning of ``acceleration'', as used in this document, needs to be clari-
  44. fied.  Two of the many components in an accelerator are the CRT controller
  45. (CRTC) and the Draw Engine.  This is in addition to another CRTC that, gener-
  46. ally, is also present in the system (often in the same chip) and typically
  47. provides EGA, VGA or SuperVGA functionality.
  48.  
  49. A CRTC is the component of a graphics controller that is responsible for
  50. reading video memory for output to the screen.  A Draw Engine is an accelera-
  51. tor component that can be programmed to manipulate video memory contents,
  52. thus freeing the CPU for other tasks.
  53.  
  54. When the VGA CRTC is used, all drawing operations into video memory are the
  55. responsibility of the system's CPU, i.e. no Draw Engine can be used.  On the
  56. other hand, if the accelerator's CRTC is chosen to drive the screen, the Draw
  57. Engine can also be used for drawing operations, although the CPU can still be
  58. used for this purpose if it can access the accelerator's video memory.
  59.  
  60. Video acceleration refers to the programming of an accelerator's Draw Engine
  61. to offload drawing operations from the CPU, and thus also implies the use of
  62. the accelerator's CRTC.
  63.  
  64. 3.  Current implementation for ATI adapters
  65.  
  66. The driver currently supports the SuperVGA capabilities of all ATI adapters
  67. except some early Mach8 and Mach32 adapters that do not provide the required
  68. functionality.  This support works for monochrome, 16-colour and 256-colour
  69. video modes, if one of the following ATI graphics controller chips is pre-
  70. sent:
  71.  
  72.      VGAWonder series:  18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6
  73.         Mach32 series:  68800-3, 68800-6, 68800AX, 68800LX
  74.         Mach64 series:  88800GX-C, 88800GX-D, 88800GX-E, 88800GX-F, 88800CX,
  75.                         264CT, 264ET, 264VT, 264GT (3D Rage), 264VT-B, 264VT3,
  76.                         264VT4, 264GT-B (3D Rage II), 3D Rage IIc, 3D Rage Pro,
  77.                         3D Rage LT, 3D Rage LT Pro, 3D Rage XL, 3D Rage XC,
  78.                         3D Rage Mobility
  79.  
  80. The driver also supports 32K, 64K and 16M-colour modes on the 264xT and 3D
  81. Rage series of adapters using the accelerator CRTC (but not the VGA CRTC).
  82. This support is as yet unaccelerated.
  83.  
  84. The newer Rage 128 chips are not yet supported.
  85.  
  86. Adapters based on the above chips have been marketed under a rather large
  87. number of names over the years.  Among them are:
  88.  
  89.      VGAWonder series:  VGAWonder V3, VGAWonder V4, VGAWonder V5, VGAWonder+,
  90.                         VGAWonder XL, VGAWonder XL24, VGAWonder VLB, VGA Basic,
  91.                         VGA Basic 16, VGA Edge, VGA Edge 16, VGA Integra,
  92.                         VGA Charger, VGAStereo F/X, VGA 640, VGA 800, VGA 1024,
  93.                         VGA 1024D, VGA 1024 XL, VGA 1024 DXL, VGA 1024 VLB
  94.          Mach8 series:  Graphics Ultra, Graphics Vantage, VGAWonder GT
  95.                         (None of the 8514/Ultra and 8514 Vantage series is
  96.                          supported at this time)
  97.         Mach32 series:  Graphics Ultra+, Graphics Ultra Pro, Graphics Wonder,
  98.                         Graphics Ultra XLR, Graphics Ultra AXO, VLB mach32-D,
  99.                         PCI mach32-D, ISA mach32
  100.         Mach64 series:  Graphics Xpression, Graphics Pro Turbo, WinBoost,
  101.                         WinTurbo, Graphics Pro Turbo 1600, Video Xpression,
  102.                         3D Xpression, Video Xpression+, 3D Xpression+,
  103.                         3D Charger, Video Charger, WinCharger, All-In-Wonder,
  104.                         All-In-Wonder PRO, 3D Pro Turbo, XPERT@Play,
  105.                         XPERT@Play 98, XPERT@Work, XPERT 98, XPERT LCD,
  106.                         XPERT XL
  107.  
  108. VGAWonder, Mach8 and Mach32 ISA adapters are available with or without a
  109. mouse.
  110.  
  111. These adapters are available with a variety of clock generators and RAMDACs.
  112. The 264xT and 3D Rage series of chips are integrated controllers, meaning
  113. that they include a programmable clock generator and a RAMDAC.
  114.  
  115. This driver still does not provide support for accelerated drawing to the
  116. screen.  This means that all drawing is done by the CPU, rather than by any
  117. accelerator present in the system.  This can make opaque moves, for example,
  118. quite ``jerky''.  Also, given that IBM 8514/A and ATI Mach8 do not allow CPU
  119. access to their frame buffer, the driver will currently ignore these acceler-
  120. ators.  Most Mach32 adapters provide both accelerated function and VGA func-
  121. tionality, but the driver currently only uses the VGA.
  122.  
  123. The driver does however support the accelerator CRTC present in all ATI
  124. Mach64 adapters.  For 256-colour, and higher depth modes, this support will
  125. be used by default, although an XF86Config option can be specified to use the
  126. SuperVGA CRTC instead.  A linear video memory aperture is also available in
  127. 256-colour and higher depth modes and enabled by default if a 264xT or 3D
  128. Rage controller is detected or, on 88800 controllers, if the accelerator CRTC
  129. is used.  An XF86Config option is available to disable this aperture, or (on
  130. non-PCI adapters) enable it or move it to some other address.
  131.  
  132. 4.  Current implementation of generic VGA support for non-ATI adapters
  133.  
  134. Support for generic VGA with non-ATI adapters is also implemented, but has
  135. undergone only limited testing.  The driver will intentionally disallow the
  136. use of this support with ATI adapters.  This support must be explicitly
  137. requested through an XF86Config ChipSet specification.  This prevents the
  138. current generic driver from being disabled.
  139.  
  140. This driver's generic VGA support is intended as an extension of that pro-
  141. vided by the current generic driver.  Specifically, within the architectural
  142. bounds defined by IBM's VGA standard, this driver will allow the use of any
  143. 256-colour mode, and any dot clock frequencies both of which allow for many
  144. more mode possibilities.
  145.  
  146. The driver will enforce the following limitations derived from IBM's original
  147. VGA implementation:
  148.  
  149.    o There can only be a set of four (non-programmable) clocks to choose
  150.      from.
  151.  
  152.    o Video memory is limited to 256kB in monochrome and 16-colour modes.
  153.  
  154.    o Video memory is limited to 64kB in 256-colour modes.
  155.  
  156.    o Interlaced modes are not available.
  157.  
  158. 5.  XF86Config specifications
  159.  
  160. The driver recognizes a number of XF86Config options.  In general, all such
  161. options should be specified in a ``Device'' section, and affect only that
  162. ``Device'' section.
  163.  
  164. Those options that affect how the driver associates adapters with ``Device''
  165. sections are described first.  The driver will ignore (with a message) a
  166. ``Device'' section if the section cannot be associated with exactly one
  167. adapter in the system.  Similarly, the driver will ignore, or disable, (with
  168. a message) any adapter that cannot be associated with exactly one ``Device''
  169. section.  Thus, these options will be required in those uncommon cases where
  170. such unique associations cannot automatically be made by the driver.
  171.  
  172. Other options affect the driver's operation once an adapter has been assigned
  173. to the ``Device'' section which contains them.
  174.  
  175. 5.1  Driver ``ati''
  176.  
  177. The use of this specification is highly recommended if the ``Device'' section
  178. is to be recognized by the driver.  In fact, it is almost (but not quite)
  179. mandatory, particularly when using the loader server as it indicates what
  180. driver is to be loaded and associated with the ``Device'' section.
  181.  
  182. 5.2  ChipSet ``name''
  183.  
  184. The default ChipSet name for this driver is ``ati''.  In this case, any ATI
  185. adapter can be associated with the ``Device'' section.  If an ATI accelerator
  186. is detected and the driver supports it, the accelerator's CRTC will be used
  187. to drive the screen.  Otherwise, the driver will programme the adapter's
  188. SuperVGA CRTC.
  189.  
  190. If ``ativga'' is specified instead, the driver will ignore any ATI accelera-
  191. tor it detects, but otherwise operate as if ``ati'' had been specified.
  192.  
  193. A ChipSet name of ``ibmvga'' causes any VGA-capable adapter in the system to
  194. be associated with the ``Device'' section.  It enables the driver's generic
  195. VGA support, but only for non-ATI adapters.  If an ATI adapter is associated
  196. with the ``Device'' section, the driver will operate as if ``ativga'' had
  197. been specified instead.
  198.  
  199. A ChipSet name of ``vgawonder'' is equivalent to ``ativga'', except that only
  200. VGAWonder-capable adapters can be assigned to the ``Device'' section.  This
  201. specifically excludes newer Mach64's with integrated controllers.
  202.  
  203. In some PCI or AGP systems, the driver will not, by default, probe for non-
  204. PCI Mach32's or Mach64's.  This is because, before doing any such probe, the
  205. driver attempts to determine if the probe can cause a lockup.  If the driver
  206. has enough information to determine that a lockup would occur, it will skip
  207. the probe.  In some situations, this determination cannot be accurate, and
  208. the driver will err on the side of caution, skipping the probe.  Specifying a
  209. ChipSet name of ``mach32'' or ``mach64'', as appropriate, will force the
  210. driver to probe for the non-PCI adapter.  These ChipSet names should, there-
  211. fore, only be used when there is in fact such an adapter in the system.  They
  212. are otherwise equivalent to ``ati''.
  213.  
  214. 5.3  ChipID & ChipRev specifications
  215.  
  216. These specifications will cause the driver to associate the ``Device'' sec-
  217. tion only with an adapter having the same attributes, or an adapter whose PCI
  218. device ID the driver does not recognize.  In the second case, these options
  219. cause the driver to treat the adapter as if it was one with the specified PCI
  220. device ID or revision.  ChipID can only be used with Mach32 or Mach64
  221. adapters.  ChipRev is meaningful only with Mach64 adapters.
  222.  
  223. 5.4  IOBase
  224.  
  225. This option limits the adapters that can be associated with the ``Device''
  226. section to those with the specified I/O base.  This option only applies to
  227. Mach64 adapters.
  228.  
  229. 5.5  BusID
  230.  
  231. This option limits the adapters that can be associated with the ``Device''
  232. section to those with the specified PCI Bus ID.
  233.  
  234. 5.6  Clocks
  235.  
  236. For the purpose of specifying a clock line in your XF86Config, one of four
  237. different situations can occur, as follows.
  238.  
  239. Those configuring the driver's generic VGA support for a non-ATI adapter, can
  240. skip ahead to the ``Clocks for non-ATI adapters'' section below.  Those not
  241. trying to configure the driver for a Mach64 adapter, can skip ahead to the
  242. ``Clocks for fixed clock generators on ATI adapters'' section below.
  243.  
  244. The very earliest Mach64 adapters use fixed (i.e. non-programmable) clock
  245. generators.  Very few of these (mostly prototypes) are known to exist, but if
  246. you have one of these, you can also skip ahead to the ``Clocks for fixed
  247. clock generators on ATI adapters'' section below.
  248.  
  249. The two cases that are left deal with programmable clock generators, which
  250. are used on the great majority of Mach64 adapters.
  251.  
  252. If you are uncertain which situation applies to your adapter, you can run a
  253. clock probe with the command ``X -probeonly''.
  254.  
  255. 5.6.1  Clocks for supported programmable clock generators
  256.  
  257. At bootup, video BIOS initialization programmes an initial set of frequen-
  258. cies.  Two of these are reserved to allow the setting of modes that do not
  259. use a frequency from this initial set.  One of these reserved slots is used
  260. by the BIOS mode set routine, the other by the particular driver used (e.g.
  261. MS-Windows, AutoCAD, X, etc.).  The clock numbers reserved in this way are
  262. dependent on the particular clock generator used by the adapter.
  263.  
  264. The driver currently supports all programmable clock generators known to
  265. exist on Mach64 adapters.  In this case, the driver will completely ignore
  266. any XF86Config clock specification, and programme the clock generator as
  267. needed by the modes used during the X session.
  268.  
  269. 5.6.2  Clocks for unsupported programmable clock generators
  270.  
  271. This case is unlikely to occur, but is documented for the sake of complete-
  272. ness.
  273.  
  274. In this situation, the driver will probe the adapter for clock frequencies
  275. unless XF86Config clocks are already specified.  In either case, the driver
  276. will then attempt to normalize the clocks to one of the following specifica-
  277. tions:
  278.  
  279.      BIOS setting 1:
  280.  
  281.        Clocks   0.000 110.000 126.000 135.000  50.350  56.640  63.000  72.000
  282.                 0.000  80.000  75.000  65.000  40.000  44.900  49.500  50.000
  283.                 0.000  55.000  63.000  67.500  25.180  28.320  31.500  36.000
  284.                 0.000  40.000  37.500  32.500  20.000  22.450  24.750  25.000
  285.  
  286.      BIOS setting 2:
  287.  
  288.        Clocks   0.000 110.000 126.000 135.000  25.180  28.320  31.500  36.000
  289.                 0.000  80.000  75.000  65.000  40.000  44.900  49.500  50.000
  290.                 0.000  55.000  63.000  67.500  12.590  14.160  15.750  18.000
  291.                 0.000  40.000  37.500  32.500  20.000  22.450  24.750  25.000
  292.  
  293.      BIOS setting 3:
  294.  
  295.        Clocks   0.000   0.000   0.000   0.000  25.180  28.320   0.000   0.000
  296.                 0.000   0.000   0.000   0.000   0.000   0.000   0.000   0.000
  297.                 0.000   0.000   0.000   0.000  12.590  14.160   0.000   0.000
  298.                 0.000   0.000   0.000   0.000   0.000   0.000   0.000   0.000
  299.  
  300. If the driver matches the clocks to the third setting above, functionality
  301. will be extremely limited (assuming the driver works at all).
  302.  
  303. 5.6.3  Clocks for fixed clock generators on ATI adapters
  304.  
  305. This section applies to all VGAWonder and Mach32 adapters, and to early
  306. Mach64 prototypes.
  307.  
  308. One of the following clocks specifications (or an initial subset thereof) can
  309. be used depending on what the adapter uses to generate dot clocks:
  310.  
  311.      Crystals (VGA Wonder V3 and V4 adapters only):
  312.  
  313.        Clocks  50.000  56.644   0.000  44.900  44.900  50.000   0.000  36.000
  314.                25.000  28.322   0.000  22.450  22.450  25.000   0.000  18.000
  315.                16.667  18.881   0.000  14.967  14.967  16.667   0.000  12.000
  316.                12.500  14.161   0.000  11.225  11.225  12.500   0.000   9.000
  317.  
  318.      ATI 18810 clock generator:
  319.  
  320.        Clocks  30.240  32.000  37.500  39.000  42.954  48.771   0.000  36.000
  321.                40.000   0.000  75.000  65.000  50.350  56.640   0.000  44.900
  322.                15.120  16.000  18.750  19.500  21.477  24.386   0.000  18.000
  323.                20.000   0.000  37.500  32.500  25.175  28.320   0.000  22.450
  324.                10.080  10.667  12.500  13.000  14.318  16.257   0.000  12.000
  325.                13.333   0.000  25.000  21.667  16.783  18.880   0.000  14.967
  326.                 7.560   8.000   9.375   9.750  10.739  12.193   0.000   9.000
  327.                10.000   0.000  18.750  16.250  12.586  14.160   0.000  11.225
  328.  
  329.      ATI 18811-0 and ATI 18812-0 clock generators:
  330.  
  331.        Clocks  30.240  32.000 110.000  80.000  42.954  48.771  92.400  36.000
  332.                39.910  44.900  75.000  65.000  50.350  56.640   0.000  44.900
  333.                15.120  16.000  55.000  40.000  21.477  24.386  46.200  18.000
  334.                19.955  22.450  37.500  32.500  25.175  28.320   0.000  22.450
  335.                10.080  10.667  36.667  26.667  14.318  16.257  30.800  12.000
  336.                13.303  14.967  25.000  21.667  16.783  18.880   0.000  14.967
  337.                 7.560   8.000  27.500  20.000  10.739  12.193  23.100   9.000
  338.                 9.978  11.225  18.750  16.250  12.588  14.160   0.000  11.225
  339.  
  340.      ATI 18811-1 and ATI 18811-2 clock generators:
  341.  
  342.        Clocks 135.000  32.000 110.000  80.000 100.000 126.000  92.400  36.000
  343.                39.910  44.900  75.000  65.000  50.350  56.640   0.000  44.900
  344.                67.500  16.000  55.000  40.000  50.000  63.000  46.200  18.000
  345.                19.955  22.450  37.500  32.500  25.175  28.320   0.000  22.450
  346.                45.000  10.667  36.667  26.667  33.333  42.000  30.800  12.000
  347.                13.303  14.967  25.000  21.667  16.783  18.880   0.000  14.967
  348.                33.750   8.000  27.500  20.000  25.000  31.500  23.100   9.000
  349.                 9.978  11.225  18.750  16.250  12.588  14.160   0.000  11.225
  350.  
  351.      ICS 2494-AM clock generators (found on some Dell motherboards):
  352.  
  353.        Clocks  75.000  77.500  80.000  90.000  25.175  28.322  31.500  36.000
  354.               100.000 110.000 126.000 135.000  40.000  44.900  50.000  65.000
  355.                37.500  38.750  40.000  45.000  12.588  14.161  15.750  18.000
  356.                50.000  55.000  63.000  67.500  20.000  22.450  25.000  32.500
  357.                25.000  25.833  26.667  30.000   8.392   9.441  10.500  12.000
  358.                33.333  36.667  42.000  45.000  13.333  14.767  16.667  21.667
  359.                18.750  19.375  20.000  22.500   6.294   7.081   7.875   9.000
  360.                25.000  27.500  31.500  33.750  10.000  11.225  12.500  16.250
  361.  
  362. VGAWonder VLB, VGA 1024 VLB, Mach32 and Mach64 owners should only specify up
  363. to the first 32 frequencies.
  364.  
  365. Other clock generators that have been used on ATI adapters (which can all be
  366. said to be clones of one of the above) might generate non-zero frequencies
  367. for those that are zero above, or vice-versa.
  368.  
  369. The order of the clocks is very important, although the driver will reorder
  370. the clocks if it deems it appropriate to do so.  Mach32 and Mach64 owners
  371. should note that this order is different than what they would use for previ-
  372. ous XFree86 accelerated servers.
  373.  
  374. 5.6.4  Clocks for non-ATI adapters
  375.  
  376. If no clocks are specified in the XF86Config, the driver will probe for four
  377. clocks, the second of which will be assumed to be 28.322MHz.  You can include
  378. up to four clock frequencies in your XF86Config to specify the actual values
  379. used by the adapter.  Any more will be ignored.
  380.  
  381. 5.7  Option ``crt_screen''
  382.  
  383. This specification is only effective when the driver detects that the
  384. adapter's BIOS has initialized both the digital flat panel and CRT inter-
  385. faces.  In such a situation, the driver will normally drive the panel and
  386. disable the CRT.  This specification causes the driver to disable the digital
  387. flat panel and display the screen image on the CRT instead.
  388.  
  389. 5.8  Option ``nolinear''
  390.  
  391. By default, the driver will enable a linear video memory aperture for
  392. 256-colour and higher depth modes if it is also using a Mach64 accelerator
  393. CRTC or an integrated Mach64 graphics chip.  This option disables this linear
  394. aperture.
  395.  
  396. 5.9  Option ``shadowfb''
  397.  
  398. If this option is enabled, the driver will cause the CPU to do each drawing
  399. operation first into a shadow frame buffer in system virtual memory and then
  400. copy the result into video memory.  If this option is not active, the CPU
  401. will draw directly into video memory.  Enabling this option is beneficial for
  402. those systems where reading from video memory is, on average, slower than the
  403. corresponding read/modify/write operation in system virtual memory.  This is
  404. normally the case for PCI or AGP adapters, and, so, this option is enabled by
  405. default.  For other bus types, the default behaviour is to disable this
  406. option.
  407.  
  408. Note that, due to various limitations, this option is forcibly disabled when
  409. a linear video memory aperture is not enabled, or when the frame buffer depth
  410. is less than 8.  The use of video acceleration, when implemented in a future
  411. driver release, will also disable frame buffer shadowing.
  412.  
  413. 5.10  MemBase address
  414.  
  415. This specification is only effective for non-PCI Mach64 adapters, and is used
  416. to override the CPU address at which the adapter will map its video memory.
  417. Normally, for non-PCI adapters, this address is set by a DOS install utility
  418. provided with the adapter.  The MemBase option can also be used to enable the
  419. linear aperture in those cases where ATI's utility was not, or can not be,
  420. used.
  421.  
  422. For PCI adapters, this address is determined at system bootup according to
  423. the PCI Plug'n'Play specification which arbitrates the resource requirements
  424. of most devices in the system.  This means the driver can not easily change
  425. the linear aperture address.
  426.  
  427. 6.  Known problems and limitations
  428.  
  429. There are several known problems or limitations related to the XFree86 ATI
  430. driver.  They include:
  431.  
  432.    o A number of system lockups and blank screens have been reported when
  433.      using PCI Mach64 adapters.  The great majority of these problems have
  434.      been found to be due to system aspects that are unrelated to this
  435.      driver.  As of this writing, these problems can be divided into three
  436.      general areas:
  437.  
  438.      Improper mouse protocol specification with some recent mice.  Try dif-
  439.      ferent protocol specifications or another mouse.
  440.  
  441.      A system conflict with APM.  This problem is Linux-specific.  There is a
  442.      bug in kernels 2.0.31 or earlier that prevents proper APM operation.
  443.      Upgrade to a more recent kernel or disable APM support.
  444.  
  445.    o When using a Mach64's accelerator CRTC, the virtual resolution must be
  446.      less than 8192 pixels wide.  The VGA CRTC further limits the virtual
  447.      resolution width to less than 4096 pixels, or to less than 2048 pixels
  448.      for adapters based on 18800-x's (with 256kB of memory) and on Mach64
  449.      integrated controllers.  These are hardware limits that cannot be cir-
  450.      cumvented.
  451.  
  452.    o Virtual resolutions requiring more than 1MB of video memory (256kB in
  453.      the monochrome case) are not supported by the VGA CRTC on 88800GX and
  454.      88800CX adapters.  This is a hardware limit that cannot be circumvented.
  455.  
  456.    o Due to hardware limitations, doublescanned modes are not supported by
  457.      the accelerator CRTC in 88800GX, 88800CX, 264CT and 264ET adapters.
  458.  
  459.    o The ``VScan'' modeline parameter is only supported when using the VGA
  460.      CRTC.
  461.  
  462.    o Interlaced modes are not supported on 18800-x and 28800-x adapters when
  463.      using a virtual resolution that is 2048 pixels or wider.  When using a
  464.      18800-x with 256kB of video memory in 256-colour modes, this limit is
  465.      reduced to 1024.  This is yet another hardware limitation that cannot be
  466.      circumvented.
  467.  
  468.    o Video memory banking does not work in monochrome and 16-colour modes on
  469.      18800-x adapters.  This appears to be another hardware limit, but this
  470.      conclusion cannot be confirmed at this time.  The driver's default
  471.      behaviour in this case is to limit video memory to 256kB.
  472.  
  473.    o Video memory corruption can still occur during mode switches on 18800-x
  474.      adapters.  Symptoms of this problem include garbled fonts on return to
  475.      text mode, and various effects (snow, dashed lines, etc) on initial
  476.      entry into a graphics mode.  In the first case, the workaround is to use
  477.      some other means of restoring the text font.  On Linux, this can be
  478.      accomplished with the kbd or svgalib packages.  In the second case, xre-
  479.      fresh(1) will usually clean up the image.  No complete solution to this
  480.      problem is currently known.  It appears this corruption occurs due to
  481.      either video memory bandwidth or RAMDAC limitations, and so the driver
  482.      will limit mode clocks to 40MHz.
  483.  
  484.    o There is some controversy over what the maximum allowed clock frequency
  485.      should be on 264xT and 3D Rage adapters.  For now, clocks will, by
  486.      default, be limited to 80MHz, 135MHz, 170MHz, 200MHz or 230MHz, depend-
  487.      ing on the specific controller.  This limit can only be increased (up to
  488.      a driver-calculated absolute maximum) through the DACSpeed specification
  489.      in XF86Config.  Be aware however that doing so is untested and might
  490.      damage the adapter.
  491.  
  492.    o Except as in the previous items, clocks are limited to 80MHz on most
  493.      adapters, although many are capable of higher frequencies.  This will be
  494.      fixed in a future release.
  495.  
  496. Support for the following will be added in a future release:
  497.  
  498.    o Mach32 accelerator's CRTC.  This support is the first step towards
  499.      accelerated support for Mach32's, Mach8's, 8514/A's and other clones.
  500.  
  501.    o Colour depth greater than 8, where permitted by the hardware.
  502.  
  503.    o Mach64, Mach32, Mach8 and 8514/A Draw Engines.
  504.  
  505.    o Hardware cursors.
  506.  
  507. 7.  Reporting problems
  508.  
  509. If you are experiencing problems that are not already recorded in this docu-
  510. ment, first ensure that you have the latest current release of this driver
  511. and XFree86.  Check the server's stderr output and
  512. ftp://ftp.xfree86.org/pub/XFree86 if you are uncertain.
  513.  
  514. Secondly, please check XFree86's doc directory for additional information.
  515.  
  516. Thirdly, do not forget to read http://www.xfree86.org/FAQ.
  517.  
  518. Fourth, a scan through the comp.windows.x.i386unix and comp.os.linux.x news-
  519. groups using your favourite archiving service can also prove useful in
  520. resolving problems.
  521.  
  522. If you are still experiencing problems, you can send me e-mail at <tsi@ual-
  523. berta.ca>.  Please be as specific as possible when describing the problem(s),
  524. and include an unedited copy of the server's stderr and the XF86Config file
  525. used.
  526.  
  527. 8.  Driver history
  528.  
  529. The complete history of the driver is rather cloudy.  The following is more
  530. than likely to be incomplete and inaccurate.
  531.  
  532. Apparently, Per Lindqvist first got a driver working with an early ATI
  533. adapter under X386 1.1a.  This original driver might have actually been based
  534. on a non-functional ATI driver written by Thomas Roell (currently of Xi
  535. Graphics).
  536.  
  537. Then Doug Evans (dje@cygnus.com) added support for the ATI VGA Wonder XL,
  538. trying in the process to make the driver work with all other ATI adapters
  539. available at the time.
  540.  
  541. Rik Faith (faith@cs.unc.edu) obtained the X11R4 driver from Doug Evans in the
  542. summer of 1992 and ported the code to the X386 part of X11R5.  This subse-
  543. quently became part of XFree86.
  544.  
  545. I (Marc Aurele La France) took over development and maintenance of the driver
  546. in the fall of 1993 after Rik got rid of his VGA Wonder adapter.
  547.  
  548. 9.  Driver versions
  549.  
  550. Due to the introduction of loadable drivers in XFree86 4.0, it has become
  551. necessary to track driver versions separately.  With this release of the
  552. driver, I am introducing the following version numbering scheme.
  553.  
  554. Version 1 of this driver is the one I inherited from Rik Faith.  This is the
  555. version found in XFree86 2.0 and 2.1.
  556.  
  557. Version 2 is my first rewrite of this code which only ended up being a par-
  558. tially unsuccessful attempt at generalizing the driver for all VGA Wonder,
  559. Mach32, and early Mach64 adapters.  Various releases of this version of the
  560. driver can be found in XFree86 2.1.1, 3.1, 3.1.1 and 3.1.2.
  561.  
  562. Version 3 represents my second rewrite (although a rather lame one as
  563. rewrites go).  Into version 3, I introduced clock programming for Mach64
  564. adapters and merged in the old ati_test debugging tool.  This is the version
  565. found in XFree86 3.2, 3.3 and 3.3.1.
  566.  
  567. Version 4 is a rather major restructuring of version 3, which became larger
  568. than I could comfortably handle in one source file.  This version will make
  569. it quite a bit easier to introduce new function such as acceleration, addi-
  570. tional colour depths, and so on.  This is the version found in XFree86 3.3.2,
  571. 3.3.3, 3.3.3.1, 3.3.3.2 and 3.3.4.
  572.  
  573. Version 5 is an almost complete restructuring of version 4 to fit in the new
  574. driver API of XFree86 4.0.
  575.  
  576.      Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/ati.sgml,v 3.29 2000/02/18 12:19:08 tsi Exp $
  577.  
  578.