This is the README for the XFree86 ATI SVGA driver. Last Revised: Wed March 23 1994 by tsi@gpu.srv.ualberta.ca NOTE: Users of boards with the ATI Mach8 or Mach32 chipsets should be using the accelerated servers (XF86_Mach8 or XF86_Mach32). The SVGA server still works, but this is a waste of capabilities. Q. What's new? This is complete rewrite of the ATI SVGA driver found in XFree86 2.0 and 2.1. The major changes are a complete overhaul of clock selection and the addition of support for the 16-colour and monochrome servers. WARNING: The clocks specification used with previous versions of the driver SHOULD NOT BE USED with this one. Q. What is the ATI SVGA driver? The ATI SVGA driver is a 256-colour, 16-colour and monochrome driver for XFree86. The driver was written for the ATI VGAWONDER series of graphics adapters. The following approximate maximum resolutions are possible depending on the video memory available on the board: 256K 640x400x256 800x600x16 512K 800x600x256 1296x800x16 1M 1296x800x256 1600x1200x16 Maximum monochrome resolutions are the same as those for 16-colour mode. Q. What is the ATI SVGA driver *NOT*? The ATI SVGA driver does not (yet) support more than 8 bits of pixel depth. This is because XFree86 does not yet include a 15-bit, 16-bit or 24-bit server. Therefore, even though your manual says that your graphics adapter supports modes using more than 256 colors, the ATI SVGA driver will not use these modes. The ATI SVGA driver is not an accelerated driver. If you have an ATI GRAPHICS ULTRA series card, the ATI SVGA driver will not use the accelerated hardware. It will only use the SVGA hardware. This will probably not be any faster than a VGA WONDER card, unless the card is on a local bus (and then, it won't be faster than a VGA WONDER card on a local bus, if a card of this type existed). Q. What cards will the driver work with? This is a difficult question, because there are many different ATI video cards, and it is sometimes difficult to tell them apart. The best way is to look on the card itself for the ATI chip numbers. Here is a partial list of ATI VGA WONDER cards. Adapter version Dot clock Chip version VGA WONDER V3 Crystals ATI18800 Might work VGA WONDER V4 Crystals ATI18800-1 Might work VGA WONDER V5 ATI18810 ATI18800-1 Might work VGA WONDER + (V6) ATI18810 ATI28800-2 Might work VGA WONDER (1 MB) ATI18810 ATI28800-4 Supported VGA WONDER (1 MB) ATI18810 ATI28800-5 Supported VGA WONDER XL ATI18810 ATI28800-5 Supported VGA WONDER XL24 ATI18810(?) ATI28800-6 Supported VGA 1024 D/XL/DXL ATI18811-0 ATI28800-5 Supported Other combinations are possible. Note that the ATI SVGA driver code has hooks and some support for all of the cards listed. However, with the earlier cards, there are serious differences in the programmer's interface. The only people who have ever worked on the code have had 28800-4 and 28800-5 chips, so these chips are the only ones that are actually known to work. The ATI GRAPHICS ULTRA chips seem to have SVGA support which is equivalent to the 28800-4, 28800-5, and 28800-a, although I can find no documentation on this in the technical manuals provided by ATI. The ULTRA PLUS and ULTRA PRO boards have been tested to some extent, and seem to work fine, but the original ULTRA may have some problems at greater than 640x480 resolution. Q. What should I put in my Xconfig file? The Chipset will be automatically detected. The chipset name for this driver is "vgawonder". If you specify "ati" instead, any clocks specification in Xconfig 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. 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: 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 clock generator: 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 The order of the clocks *is* important. Also, expect the server to zero duplicate clocks. A clock probe might show values for those that are 0.000 above. The probed values are approximate and the above are "spec'ed" values. If your probe shows a large discrepancy from the above, please e-mail me the stderr output. Q. 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 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. The major reference that was used was a manual from ATI: "VGA WONDER Programmer's Reference" ATI Technologies, 1991. Release 1.3 -- Reference #PRG28800-13 However, Chapter 11 (ATI 18800 ATI VGAWONDER) of George Sutty and Steve Blair's "Advanced Programmer's Guide to SuperVGAs" (Brady/Simon & Schuster, 1990) was also useful. Further, someone e-mailed Rik a random document from the ATI BBS which was dated 3Jul91 and which may have been named PROGINFO.DOC. Q. What is the future of the driver? Please e-mail me any bug reports, comments, etc... $XFree86: mit/server/ddx/x386/etc/README.ati,v 2.1 1994/04/16 04:27:55 dawes Exp $