README 36 KB

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