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