Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | |
| 2 | Introduction |
| 3 | |
| 4 | This is a frame buffer device driver for 3dfx' Voodoo Graphics |
| 5 | (aka voodoo 1, aka sst1) and Voodoo² (aka Voodoo 2, aka CVG) based |
| 6 | video boards. It's highly experimental code, but is guaranteed to work |
| 7 | on my computer, with my "Maxi Gamer 3D" and "Maxi Gamer 3d²" boards, |
| 8 | and with me "between chair and keyboard". Some people tested other |
| 9 | combinations and it seems that it works. |
| 10 | The main page is located at <http://sstfb.sourceforge.net>, and if |
| 11 | you want the latest version, check out the CVS, as the driver is a work |
| 12 | in progress, I feel uncomfortable with releasing tarballs of something |
| 13 | not completely working...Don't worry, it's still more than useable |
| 14 | (I eat my own dog food) |
| 15 | |
| 16 | Please read the Bug section, and report any success or failure to me |
| 17 | (Ghozlane Toumi <gtoumi@laposte.net>). |
| 18 | BTW, If you have only one monitor , and you don't feel like playing |
| 19 | with the vga passthrou cable, I can only suggest borrowing a screen |
| 20 | somewhere... |
| 21 | |
| 22 | |
| 23 | Installation |
| 24 | |
| 25 | This driver (should) work on ix86, with "late" 2.2.x kernel (tested |
| 26 | with x = 19) and "recent" 2.4.x kernel, as a module or compiled in. |
| 27 | It has been included in mainstream kernel since the infamous 2.4.10. |
| 28 | You can apply the patches found in sstfb/kernel/*-2.{2|4}.x.patch, |
| 29 | and copy sstfb.c to linux/drivers/video/, or apply a single patch, |
| 30 | sstfb/patch-2.{2|4}.x-sstfb-yymmdd to your linux source tree. |
| 31 | |
| 32 | Then configure your kernel as usual: choose "m" or "y" to 3Dfx Voodoo |
| 33 | Graphics in section "console". Compile, install, have fun... and please |
| 34 | drop me a report :) |
| 35 | |
| 36 | |
| 37 | Module Usage |
| 38 | |
| 39 | Warnings. |
| 40 | # You should read completely this section before issuing any command. |
| 41 | # If you have only one monitor to play with, once you insmod the |
| 42 | module, the 3dfx takes control of the output, so you'll have to |
| 43 | plug the monitor to the "normal" video board in order to issue |
| 44 | the commands, or you can blindly use sst_dbg_vgapass |
| 45 | in the tools directory (See Tools). The latest solution is pass the |
| 46 | parameter vgapass=1 when insmodding the driver. (See Kernel/Modules |
| 47 | Options) |
| 48 | |
| 49 | Module insertion: |
| 50 | # insmod sstfb.o |
Matt LaPlante | fff9289 | 2006-10-03 22:47:42 +0200 | [diff] [blame] | 51 | you should see some strange output from the board: |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 52 | a big blue square, a green and a red small squares and a vertical |
Matt LaPlante | fff9289 | 2006-10-03 22:47:42 +0200 | [diff] [blame] | 53 | white rectangle. why? the function's name is self-explanatory: |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 54 | "sstfb_test()"... |
| 55 | (if you don't have a second monitor, you'll have to plug your monitor |
Matt LaPlante | fff9289 | 2006-10-03 22:47:42 +0200 | [diff] [blame] | 56 | directly to the 2D videocard to see what you're typing) |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 57 | # con2fb /dev/fbx /dev/ttyx |
| 58 | bind a tty to the new frame buffer. if you already have a frame |
| 59 | buffer driver, the voodoo fb will likely be /dev/fb1. if not, |
| 60 | the device will be /dev/fb0. You can check this by doing a |
| 61 | cat /proc/fb. You can find a copy of con2fb in tools/ directory. |
| 62 | if you don't have another fb device, this step is superfluous, |
| 63 | as the console subsystem automagicaly binds ttys to the fb. |
| 64 | # switch to the virtual console you just mapped. "tadaaa" ... |
| 65 | |
| 66 | Module removal: |
| 67 | # con2fb /dev/fbx /dev/ttyx |
| 68 | bind the tty to the old frame buffer so the module can be removed. |
| 69 | (how does it work with vgacon ? short answer : it doesn't work) |
| 70 | # rmmod sstfb |
| 71 | |
| 72 | |
| 73 | Kernel/Modules Options |
| 74 | |
Matt LaPlante | 992caac | 2006-10-03 22:52:05 +0200 | [diff] [blame] | 75 | You can pass some options to the sstfb module, and via the kernel |
| 76 | command line when the driver is compiled in: |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 77 | for module : insmod sstfb.o option1=value1 option2=value2 ... |
| 78 | in kernel : video=sstfb:option1,option2:value2,option3 ... |
| 79 | |
Matt LaPlante | a2ffd27 | 2006-10-03 22:49:15 +0200 | [diff] [blame] | 80 | sstfb supports the following options : |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 81 | |
| 82 | Module Kernel Description |
| 83 | |
| 84 | vgapass=0 vganopass Enable or disable VGA passthrou cable. |
| 85 | vgapass=1 vgapass When enabled, the monitor will get the signal |
| 86 | from the VGA board and not from the voodoo. |
| 87 | Default: nopass |
| 88 | |
| 89 | mem=x mem:x Force frame buffer memory in MiB |
| 90 | allowed values: 0, 1, 2, 4. |
| 91 | Default: 0 (= autodetect) |
| 92 | |
| 93 | inverse=1 inverse Supposed to enable inverse console. |
| 94 | doesn't work yet... |
| 95 | |
| 96 | clipping=1 clipping Enable or disable clipping. |
| 97 | clipping=0 noclipping With clipping enabled, all offscreen |
Matt LaPlante | fff9289 | 2006-10-03 22:47:42 +0200 | [diff] [blame] | 98 | reads and writes are discarded. |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 99 | Default: enable clipping. |
| 100 | |
| 101 | gfxclk=x gfxclk:x Force graphic clock frequency (in MHz). |
Matt LaPlante | fff9289 | 2006-10-03 22:47:42 +0200 | [diff] [blame] | 102 | Be careful with this option, it may be |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 103 | DANGEROUS. |
| 104 | Default: auto |
| 105 | 50Mhz for Voodoo 1, |
| 106 | 75MHz for Voodoo 2. |
| 107 | |
| 108 | slowpci=1 fastpci Enable or disable fast PCI read/writes. |
| 109 | slowpci=1 slowpci Default : fastpci |
| 110 | |
| 111 | dev=x dev:x Attach the driver to device number x. |
| 112 | 0 is the first compatible board (in |
| 113 | lspci order) |
| 114 | |
| 115 | Tools |
| 116 | |
| 117 | These tools are mostly for debugging purposes, but you can |
| 118 | find some of these interesting : |
| 119 | - con2fb , maps a tty to a fbramebuffer . |
| 120 | con2fb /dev/fb1 /dev/tty5 |
| 121 | - sst_dbg_vgapass , changes vga passthrou. You have to recompile the |
| 122 | driver with SST_DEBUG and SST_DEBUG_IOCTL set to 1 |
| 123 | sst_dbg_vgapass /dev/fb1 1 (enables vga cable) |
| 124 | sst_dbg_vgapass /dev/fb1 0 (disables vga cable) |
| 125 | - glide_reset , resets the voodoo using glide |
| 126 | use this after rmmoding sstfb, if the module refuses to |
| 127 | reinsert . |
| 128 | |
| 129 | Bugs |
| 130 | |
| 131 | - DO NOT use glide while the sstfb module is in, you'll most likely |
| 132 | hang your computer. |
| 133 | - If you see some artefacts (pixels not cleaning and stuff like that), |
| 134 | try turning off clipping (clipping=0), and/or using slowpci |
| 135 | - the driver don't detect the 4Mb frame buffer voodoos, it seems that |
| 136 | the 2 last Mbs wrap around. looking into that . |
| 137 | - The driver is 16 bpp only, 24/32 won't work. |
| 138 | - The driver is not your_favorite_toy-safe. this includes SMP... |
| 139 | [Actually from inspection it seems to be safe - Alan] |
Matt LaPlante | 53cb472 | 2006-10-03 22:55:17 +0200 | [diff] [blame] | 140 | - When using XFree86 FBdev (X over fbdev) you may see strange color |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 141 | patterns at the border of your windows (the pixels lose the lowest |
Matt LaPlante | 53cb472 | 2006-10-03 22:55:17 +0200 | [diff] [blame] | 142 | byte -> basically the blue component and some of the green). I'm unable |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 143 | to reproduce this with XFree86-3.3, but one of the testers has this |
Matt LaPlante | 53cb472 | 2006-10-03 22:55:17 +0200 | [diff] [blame] | 144 | problem with XFree86-4. Apparently recent Xfree86-4.x solve this |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 145 | problem. |
| 146 | - I didn't really test changing the palette, so you may find some weird |
| 147 | things when playing with that. |
Matt LaPlante | 53cb472 | 2006-10-03 22:55:17 +0200 | [diff] [blame] | 148 | - Sometimes the driver will not recognise the DAC, and the |
| 149 | initialisation will fail. This is specifically true for |
| 150 | voodoo 2 boards, but it should be solved in recent versions. Please |
| 151 | contact me. |
| 152 | - The 24/32 is not likely to work anytime soon, knowing that the |
| 153 | hardware does ... unusual things in 24/32 bpp. |
| 154 | - When used with another video board, current limitations of the linux |
| 155 | console subsystem can cause some troubles, specifically, you should |
| 156 | disable software scrollback, as it can oops badly ... |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 157 | |
| 158 | Todo |
| 159 | |
| 160 | - Get rid of the previous paragraph. |
| 161 | - Buy more coffee. |
| 162 | - test/port to other arch. |
| 163 | - try to add panning using tweeks with front and back buffer . |
Matt LaPlante | 3f6dee9 | 2006-10-03 22:45:33 +0200 | [diff] [blame] | 164 | - try to implement accel on voodoo2, this board can actually do a |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 165 | lot in 2D even if it was sold as a 3D only board ... |
| 166 | |
| 167 | ghoz. |
| 168 | |
| 169 | -- |
| 170 | Ghozlane Toumi <gtoumi@laposte.net> |
| 171 | |
| 172 | |
| 173 | $Date: 2002/05/09 20:11:45 $ |
| 174 | http://sstfb.sourceforge.net/README |