|  | 
 | Introduction | 
 |  | 
 | 	  This is a frame buffer device driver for 3dfx' Voodoo Graphics  | 
 | 	(aka voodoo 1, aka sst1) and Voodoo² (aka Voodoo 2, aka CVG) based  | 
 | 	video boards. It's highly experimental code, but is guaranteed to work | 
 | 	on my computer, with my "Maxi Gamer 3D" and "Maxi Gamer 3d²" boards, | 
 | 	and with me "between chair and keyboard". Some people tested other | 
 | 	combinations and it seems that it works. | 
 | 	  The main page is located at <http://sstfb.sourceforge.net>, and if | 
 | 	you want the latest version, check out the CVS, as the driver is a work | 
 | 	in progress, I feel uncomfortable with releasing tarballs of something | 
 | 	not completely working...Don't worry, it's still more than useable | 
 | 	(I eat my own dog food) | 
 |  | 
 | 	  Please read the Bug section, and report any success or failure to me | 
 | 	(Ghozlane Toumi <[email protected]>). | 
 | 	  BTW, If you have only one monitor , and you don't feel like playing | 
 | 	with the vga passthrou cable, I can only suggest borrowing a screen | 
 | 	somewhere...  | 
 |  | 
 |  | 
 | Installation  | 
 |  | 
 | 	  This driver (should) work on ix86, with "late" 2.2.x kernel (tested | 
 | 	with x = 19) and "recent" 2.4.x kernel, as a module or compiled in. | 
 | 	  It has been included in mainstream kernel since the infamous 2.4.10. | 
 | 	  You can apply the patches found in sstfb/kernel/*-2.{2|4}.x.patch, | 
 | 	and copy sstfb.c to linux/drivers/video/, or apply a single patch,  | 
 | 	sstfb/patch-2.{2|4}.x-sstfb-yymmdd to your linux source tree. | 
 |  | 
 | 	  Then configure your kernel as usual: choose "m" or "y" to 3Dfx Voodoo | 
 | 	Graphics in section "console". Compile, install, have fun... and please | 
 | 	drop me a report :) | 
 |  | 
 |  | 
 | Module Usage | 
 | 	 | 
 | 	Warnings. | 
 | 	# You should read completely this section before issuing any command. | 
 | 	# If you have only one monitor to play with, once you insmod the | 
 | 	  module, the 3dfx takes control of the output, so you'll have to | 
 | 	  plug the monitor to the "normal" video board in order to issue | 
 | 	  the commands, or you can blindly use sst_dbg_vgapass | 
 |           in the tools directory (See Tools). The latest solution is pass the | 
 | 	  parameter vgapass=1 when insmodding the driver. (See Kernel/Modules | 
 | 	  Options) | 
 |  | 
 | 	Module insertion: | 
 | 	# insmod sstfb.o | 
 | 	  you should see some strange output from the board:  | 
 | 	  a big blue square, a green and a red small squares and a vertical | 
 | 	  white rectangle. why? the function's name is self-explanatory: | 
 | 	  "sstfb_test()"... | 
 | 	  (if you don't have a second monitor, you'll have to plug your monitor | 
 | 	  directly to the 2D videocard to see what you're typing) | 
 | 	# con2fb /dev/fbx /dev/ttyx | 
 | 	  bind a tty to the new frame buffer. if you already have a frame | 
 | 	  buffer driver, the voodoo fb will likely be /dev/fb1. if not,  | 
 | 	  the device will be /dev/fb0. You can check this by doing a  | 
 | 	  cat /proc/fb. You can find a copy of con2fb in tools/ directory. | 
 | 	  if you don't have another fb device, this step is superfluous, | 
 | 	  as the console subsystem automagicaly binds ttys to the fb. | 
 | 	# switch to the virtual console you just mapped. "tadaaa" ... | 
 |  | 
 | 	Module removal: | 
 | 	# con2fb /dev/fbx /dev/ttyx | 
 | 	  bind the tty to the old frame buffer so the module can be removed. | 
 | 	  (how does it work with vgacon ? short answer : it doesn't work) | 
 | 	# rmmod sstfb | 
 |  | 
 |  | 
 | Kernel/Modules Options | 
 |  | 
 | 	You can pass some options to the sstfb module, and via the kernel  | 
 | 	command line when the driver is compiled in: | 
 | 	for module : insmod sstfb.o option1=value1 option2=value2 ... | 
 | 	in kernel :  video=sstfb:option1,option2:value2,option3 ... | 
 | 	 | 
 | 	sstfb supports the following options : | 
 |  | 
 | Module		Kernel		Description | 
 |  | 
 | vgapass=0	vganopass	Enable or disable VGA passthrou cable. | 
 | vgapass=1	vgapass		When enabled, the monitor will get the signal | 
 | 				from the VGA board and not from the voodoo. | 
 | 				Default: nopass | 
 |  | 
 | mem=x		mem:x		Force frame buffer memory in MiB | 
 | 				allowed values: 0, 1, 2, 4. | 
 | 				Default: 0 (= autodetect) | 
 |  | 
 | inverse=1	inverse		Supposed to enable inverse console. | 
 | 				doesn't work yet... | 
 |  | 
 | clipping=1	clipping	Enable or disable clipping. | 
 | clipping=0	noclipping	With clipping enabled, all offscreen | 
 | 				reads and writes are discarded. | 
 | 				Default: enable clipping. | 
 |  | 
 | gfxclk=x	gfxclk:x	Force graphic clock frequency (in MHz). | 
 | 				Be careful with this option, it may be | 
 | 				DANGEROUS. | 
 | 				Default: auto  | 
 | 					50Mhz for Voodoo 1, | 
 | 					75MHz for Voodoo 2.  | 
 |  | 
 | slowpci=1	fastpci		Enable or disable fast PCI read/writes. | 
 | slowpci=1	slowpci		Default : fastpci | 
 |  | 
 | dev=x		dev:x		Attach the driver to device number x. | 
 | 				0 is the first compatible board (in  | 
 | 				lspci order) | 
 |  | 
 | Tools | 
 |  | 
 | 	These tools are mostly for debugging purposes, but you can  | 
 | 	find some of these interesting : | 
 | 	 - con2fb , maps a tty to a fbramebuffer . | 
 | 		con2fb /dev/fb1 /dev/tty5 | 
 | 	 - sst_dbg_vgapass , changes vga passthrou. You have to recompile the | 
 | 	driver with SST_DEBUG and SST_DEBUG_IOCTL set to 1 | 
 | 		sst_dbg_vgapass /dev/fb1 1 (enables vga cable) | 
 | 		sst_dbg_vgapass /dev/fb1 0 (disables vga cable) | 
 | 	 - glide_reset , resets the voodoo using glide | 
 | 		use this after rmmoding sstfb, if the module refuses to | 
 | 		reinsert . | 
 |  | 
 | Bugs | 
 |  | 
 | 	- DO NOT use glide while the sstfb module is in, you'll most likely | 
 | 	hang your computer. | 
 | 	- If you see some artefacts (pixels not cleaning and stuff like that),  | 
 | 	try turning off clipping (clipping=0), and/or using slowpci | 
 | 	- the driver don't detect the 4Mb frame buffer voodoos, it seems that | 
 | 	the 2 last Mbs wrap around. looking into that . | 
 | 	- The driver is 16 bpp only, 24/32 won't work. | 
 | 	- The driver is not your_favorite_toy-safe. this includes SMP... | 
 |           [Actually from inspection it seems to be safe - Alan] | 
 | 	- When using XFree86 FBdev (X over fbdev) you may see strange color | 
 | 	patterns at the border of your windows (the pixels lose the lowest | 
 | 	byte -> basically the blue component and some of the green). I'm unable | 
 | 	to reproduce this with XFree86-3.3, but one of the testers has this | 
 | 	problem with XFree86-4. Apparently recent Xfree86-4.x solve this | 
 | 	problem. | 
 | 	- I didn't really test changing the palette, so you may find some weird | 
 | 	things when playing with that. | 
 | 	- Sometimes the driver will not recognise the DAC, and the | 
 |         initialisation will fail. This is specifically true for | 
 | 	voodoo 2 boards, but it should be solved in recent versions. Please | 
 | 	contact me. | 
 | 	- The 24/32 is not likely to work anytime soon, knowing that the | 
 | 	hardware does ... unusual things in 24/32 bpp. | 
 | 	- When used with another video board, current limitations of the linux | 
 | 	console subsystem can cause some troubles, specifically, you should | 
 | 	disable software scrollback, as it can oops badly ... | 
 |  | 
 | Todo | 
 |  | 
 | 	- Get rid of the previous paragraph. | 
 | 	- Buy more coffee. | 
 | 	- test/port to other arch. | 
 | 	- try to add panning using tweeks with front and back buffer . | 
 | 	- try to implement accel on voodoo2, this board can actually do a  | 
 | 	  lot in 2D even if it was sold as a 3D only board ... | 
 |  | 
 | ghoz. | 
 |  | 
 | --  | 
 | Ghozlane Toumi <[email protected]> | 
 |  | 
 |  | 
 | $Date: 2002/05/09 20:11:45 $ | 
 | http://sstfb.sourceforge.net/README |