[This file is cloned from VesaFB/matroxfb]

What is aty128fb?
=================

This is a driver for a graphic framebuffer for ATI Rage128 based devices
on Intel and PPC boxes.

Advantages:

 * It provides a nice large console (128 cols + 48 lines with 1024x768)
   without using tiny, unreadable fonts.
 * You can run XF68_FBDev on top of /dev/fb0
 * Most important: boot logo :-)

Disadvantages:

 * graphic mode is slower than text mode... but you should not notice
   if you use same resolution as you used in textmode.
 * still experimental.


How to use it?
==============

Switching modes is done using the  video=aty128fb:<resolution>... modedb
boot parameter or using `fbset' program.

See Documentation/fb/modedb.txt for more information on modedb
resolutions.

You should compile in both vgacon (to boot if you remove your Rage128 from
box) and aty128fb (for graphics mode). You should not compile-in vesafb
unless you have primary display on non-Rage128 VBE2.0 device (see 
Documentation/fb/vesafb.txt for details).


X11
===

XF68_FBDev should generally work fine, but it is non-accelerated. As of
this document, 8 and 32bpp works fine.  There have been palette issues
when switching from X to console and back to X.  You will have to restart
X to fix this.


Configuration
=============

You can pass kernel command line options to vesafb with
`video=aty128fb:option1,option2:value2,option3' (multiple options should
be separated by comma, values are separated from options by `:'). 
Accepted options:

noaccel  - do not use acceleration engine. It is default.
accel    - use acceleration engine. Not finished.
vmode:x  - chooses PowerMacintosh video mode <x>. Depreciated.
cmode:x  - chooses PowerMacintosh colour mode <x>. Depreciated.
<XxX@X>  - selects startup videomode. See modedb.txt for detailed
	   explanation. Default is 640x480x8bpp.


Limitations
===========

There are known and unknown bugs, features and misfeatures.
Currently there are following known bugs:
 + This driver is still experimental and is not finished.  Too many
   bugs/errata to list here.

--
Brad Douglas <brad@neruo.com>
