ATI boards README Marc Aurele La France 8 May 1995 This is the README for the XFree86 ATI VGA driver used in the XF86_Mono, XF86_VGA16 and XF86_SVGA servers. Users of ATI boards based on the Mach8, Mach32 or Mach64 accelerators should be using the accelerated servers (XF86_Mach8, XF86_Mach32 or XF86_Mach64). The unaccelerated servers (XF86_Mono, XF86_VGA16 and XF86_SVGA) might still work, but are a waste of capabilities. 1. What is the ATI VGA driver? The ATI VGA driver is a 256-colour, 16-colour and monochrome driver for XFree86. The driver is intended for all ATI video adapters except those that do not provide SuperVGA functionality (such as some early Mach8 and Mach32 boards). The following approximate maximum resolutions (based on the Golden Ratio of x/y = (1 + sqrt(5))/2) are possible depending on the video memory available on the board (and the capabilities of your monitor): 256k 640x409x256 896x585x16 512k 896x585x256 1280x819x16 1M 1280x819x256 1824x1149x16 Higher resolutions are also possible on Mach32 (but not Mach64) boards with more than 1M of video memory. Maximum monochrome resolutions are the same as those for 16-colour mode, because the monochrome server uses a maximum of one fourth of the available video memory. 2. What is the ATI VGA driver *not*? This driver does not yet support more than 8 bits of pixel depth. Even if your manual says that your graphics adapter supports modes using more than 256 colours, the ATI VGA driver will not use these modes. The ATI VGA driver is not an accelerated driver. If your board is based on the Mach8, Mach32 or Mach64 video controllers, this driver will not use the accelerated functions of the hardware. It will only use the VGA hardware (which, for Mach32's and Mach64's, is integrated into the accelerator). This can make opaque moves, for example, quite jerky. 3. What video adapters will the driver work with? Most boards harbouring the following ATI video controller chips will work with this driver: VGA Wonder series: 18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6 Mach32 series: 68800-3, 68800-6, 68800AX, 68800LX Mach64 series: 88800CX, 88800GX Some early Mach32 boards will not work with this driver because they do not provide VGA functionality. Also, early Mach8 boards will not work for the same reason, unless the board also has a video controller from the VGA Wonder series (or is connected to one through the VGA passthrough connector). These boards are available with a variety of clock generators and RAMDACs. See the XF86Config section below for details. These boards are available with or without a mouse. When they do have a mouse (ISA boards only), it is either a proprietary ATIXL busmouse, or one that uses the Logitech busmouse protocol. VGA Wonder V3 boards use a 18800 video controller and generate dot clocks with crystals. VGA Wonder V4 boards have a 18800-1 and also use crystals. VGA Wonder V5 boards also use a 18800-1, but have a 18810 clock generator. VGA Wonder+ boards use a 28800-2 and a 18810. Other than these, ATI's board naming convention (if it can be said that one exists) starts to fall apart. The VGA Wonder series was also available through ATI's OEM channel under the name VGA1024. Thus, the ATI VGA driver also supports VGA1024, VGA1024D, VGA1024XL, VGA1024DXL and VGA1024VLB boards, among others. 4. What should I put in my XF86Config file? The chipset will be automatically detected. The chipset name for this driver is "vgawonder". If you specify "ati" or "mach64" instead, any clocks specification in XF86Config will be ignored (which means the clocks will be probed). This is done to ensure you are aware that the clocks specification for previous versions of the driver is not supported by this version. The clocks line to be specified in your XF86Config depends on what the board uses to generate dot clocks. For all boards, one of the following clocks specifications (or an initial subset thereof) can be used depending on what the board uses to generate dot clocks: Crystals (VGA Wonder V3 and V4 boards only): Clocks 50.175 56.644 0.000 44.900 44.900 50.175 0.000 36.000 25.088 28.322 0.000 22.450 22.450 25.088 0.000 18.000 16.725 18.881 0.000 14.967 14.967 16.725 0.000 12.000 12.544 14.161 0.000 11.225 11.225 12.544 0.000 9.000 ATI 18810 clock generator: Clocks 30.240 32.000 37.500 39.000 42.954 48.771 0.000 36.000 40.000 56.644 75.000 65.000 50.350 56.640 0.000 44.900 15.120 16.000 18.750 19.500 21.477 24.386 0.000 18.000 20.000 28.322 37.500 32.500 25.175 28.320 0.000 22.450 10.080 10.667 12.500 13.000 14.318 16.257 0.000 12.000 13.333 18.881 25.000 21.667 16.783 18.880 0.000 14.967 7.560 8.000 9.375 9.750 10.739 12.193 0.000 9.000 10.000 14.161 18.750 16.250 12.586 14.160 0.000 11.225 ATI 18811-0 and ATI 18812-0 clock generators: Clocks 30.240 32.000 110.000 80.000 42.954 48.771 92.400 36.000 39.910 44.900 75.000 65.000 50.350 56.640 0.000 44.900 15.120 16.000 55.000 40.000 21.477 24.386 46.200 18.000 19.955 22.450 37.500 32.500 25.175 28.320 0.000 22.450 10.080 10.667 36.667 26.667 14.318 16.257 30.800 12.000 13.303 14.967 25.000 21.667 16.783 18.880 0.000 14.967 7.560 8.000 27.500 20.000 10.739 12.193 23.100 9.000 9.978 11.225 18.750 16.250 12.588 14.160 0.000 11.225 ATI 18811-1 and ATI 18811-2 clock generators: Clocks 135.000 32.000 110.000 80.000 100.000 126.000 92.400 36.000 39.910 44.900 75.000 65.000 50.350 56.640 0.000 44.900 67.500 16.000 55.000 40.000 50.000 63.000 46.200 18.000 19.955 22.450 37.500 32.500 25.175 28.320 0.000 22.450 45.000 10.667 36.667 26.667 33.333 42.000 30.800 12.000 13.303 14.967 25.000 21.667 16.783 18.880 0.000 14.967 33.750 8.000 27.500 20.000 25.000 31.500 23.100 9.000 9.978 11.225 18.750 16.250 12.588 14.160 0.000 11.225 Mach32 and Mach64 owners should only specify up to the first 32 fre- quencies. The possibilities for Mach64 boards also include the newer ATI 18818 clock generator chip. At bootup, video BIOS initialization can set up the 18818 to generate two slightly different sets of dot clocks. A way to duplicate this behaviour in the driver has not yet been found. In the meantime, one of the following clocks specification can be used: ATI 18818 clock generator (primary BIOS setting): Clocks 0.000 110.000 126.000 135.000 50.350 56.644 63.000 72.000 0.000 80.000 75.000 65.000 40.000 44.900 49.500 50.000 0.000 55.000 63.000 67.500 25.175 28.322 31.500 36.000 0.000 40.000 37.500 32.500 20.000 22.450 24.750 25.000 ATI 18818 clock generator (alternate BIOS setting): Clocks 0.000 110.000 126.000 135.000 25.175 28.322 31.500 36.000 0.000 80.000 75.000 65.000 40.000 44.900 49.500 50.000 0.000 55.000 63.000 67.500 12.588 14.161 15.750 18.000 0.000 40.000 37.500 32.500 20.000 22.450 24.750 25.000 Other clock generators that have been used on ATI boards (which can all be said to be clones of one of the above) might generate non-zero frequencies for those that are zero above, or vice-versa. The order of the clocks *is* very important. Mach32 and Mach64 owners should note that this order is different than what they would use for the accelerated servers. A clock probe, done with the command "X -probeonly", will help you decide which of the above to use for your particular board. If the server consistently reports that it has detected an unknown clock generator, please e-mail me the stderr output. Modes can be derived from the information in XFree86's doc directory. If you do not specify a "modes" line in the display subsection of the appropriate screen section of your XF86Config, the driver will generate a default mode and attempt to use it. The timings for the default mode are derived from the timings of the mode (usually a text mode) in effect when the server is started. 5. Upgrading from other releases If you have an Xconfig for XFree86 versions earlier than 2.1.1, or for the alpha Mach64 server, you will need to change it to use it for this version. Specifically, you should run the server with the -probeonly flag and the the XF86Config derived from the Xconfig you used with the older XFree86. This will cause the clocks to be probed. You should replace the XF86Config clocks with the clocks reported by the probe. You should then change the chipset specification to "vgawonder". You should not need to change your mode definitions except for those that are already driving your monitor close to its tolerance limits. You might need to change the dot clock used to one with the next lower (or higher) frequency. 6. What is the history of the driver? The complete history of the driver is rather cloudy. The following is probably incomplete and inaccurate. Apparently, Per Lindqvist (pgd@compuram.bbt.se) first got an ATI driver working with an early ATI card under X386 1.1a. This original driver may have actually been based on an non-functional ATI driver written by Roell. Then Doug Evans (dje@cygnus.com) ported the driver to the ATI VGA Wonder XL, trying in the process to make the driver work with all other ATI cards. Rik Faith (faith@cs.unc.edu) obtained the X11R4 driver from Doug Evans in the summer of 1992, and ported the code to the X386 part of X11R5. This subsequently became part of XFree86. I (Marc La France) have since taken the driver over after Rik got rid of his VGA Wonder card. 7. Miscellaneous notes Dot clocks greater than 80MHz cannot be used as a way still needs to be discovered to make the VGA Wonder controller do pixel multiplexing. Support for more than 8bpp colour depth is pending proper RAMDAC handling. Support for the ATI 18818 clock generator needs to be cleaned up. Please e-mail any bug reports, comments, etc. to Marc Aurele La France, tsi@ualberta.ca $XConsortium: ati.sgml,v 1.1 95/01/06 20:29:55 kaleb Exp $ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/ati.sgml,v 3.5 1995/06/25 09:53:45 dawes Exp $