0001 =====
0002 sstfb
0003 =====
0004
0005 Introduction
0006 ============
0007
0008 This is a frame buffer device driver for 3dfx' Voodoo Graphics
0009 (aka voodoo 1, aka sst1) and Voodoo² (aka Voodoo 2, aka CVG) based
0010 video boards. It's highly experimental code, but is guaranteed to work
0011 on my computer, with my "Maxi Gamer 3D" and "Maxi Gamer 3d²" boards,
0012 and with me "between chair and keyboard". Some people tested other
0013 combinations and it seems that it works.
0014 The main page is located at <http://sstfb.sourceforge.net>, and if
0015 you want the latest version, check out the CVS, as the driver is a work
0016 in progress, I feel uncomfortable with releasing tarballs of something
0017 not completely working...Don't worry, it's still more than usable
0018 (I eat my own dog food)
0019
0020 Please read the Bug section, and report any success or failure to me
0021 (Ghozlane Toumi <gtoumi@laposte.net>).
0022 BTW, If you have only one monitor , and you don't feel like playing
0023 with the vga passthrou cable, I can only suggest borrowing a screen
0024 somewhere...
0025
0026
0027 Installation
0028 ============
0029
0030 This driver (should) work on ix86, with "late" 2.2.x kernel (tested
0031 with x = 19) and "recent" 2.4.x kernel, as a module or compiled in.
0032 It has been included in mainstream kernel since the infamous 2.4.10.
0033 You can apply the patches found in `sstfb/kernel/*-2.{2|4}.x.patch`,
0034 and copy sstfb.c to linux/drivers/video/, or apply a single patch,
0035 `sstfb/patch-2.{2|4}.x-sstfb-yymmdd` to your linux source tree.
0036
0037 Then configure your kernel as usual: choose "m" or "y" to 3Dfx Voodoo
0038 Graphics in section "console". Compile, install, have fun... and please
0039 drop me a report :)
0040
0041
0042 Module Usage
0043 ============
0044
0045 .. warning::
0046
0047 #. You should read completely this section before issuing any command.
0048
0049 #. If you have only one monitor to play with, once you insmod the
0050 module, the 3dfx takes control of the output, so you'll have to
0051 plug the monitor to the "normal" video board in order to issue
0052 the commands, or you can blindly use sst_dbg_vgapass
0053 in the tools directory (See Tools). The latest solution is pass the
0054 parameter vgapass=1 when insmodding the driver. (See Kernel/Modules
0055 Options)
0056
0057 Module insertion
0058 ----------------
0059
0060 #. insmod sstfb.o
0061
0062 you should see some strange output from the board:
0063 a big blue square, a green and a red small squares and a vertical
0064 white rectangle. why? the function's name is self-explanatory:
0065 "sstfb_test()"...
0066 (if you don't have a second monitor, you'll have to plug your monitor
0067 directly to the 2D videocard to see what you're typing)
0068
0069 #. con2fb /dev/fbx /dev/ttyx
0070
0071 bind a tty to the new frame buffer. if you already have a frame
0072 buffer driver, the voodoo fb will likely be /dev/fb1. if not,
0073 the device will be /dev/fb0. You can check this by doing a
0074 cat /proc/fb. You can find a copy of con2fb in tools/ directory.
0075 if you don't have another fb device, this step is superfluous,
0076 as the console subsystem automagicaly binds ttys to the fb.
0077 #. switch to the virtual console you just mapped. "tadaaa" ...
0078
0079 Module removal
0080 --------------
0081
0082 #. con2fb /dev/fbx /dev/ttyx
0083
0084 bind the tty to the old frame buffer so the module can be removed.
0085 (how does it work with vgacon ? short answer : it doesn't work)
0086
0087 #. rmmod sstfb
0088
0089
0090 Kernel/Modules Options
0091 ----------------------
0092
0093 You can pass some options to the sstfb module, and via the kernel
0094 command line when the driver is compiled in:
0095 for module : insmod sstfb.o option1=value1 option2=value2 ...
0096 in kernel : video=sstfb:option1,option2:value2,option3 ...
0097
0098 sstfb supports the following options:
0099
0100 =============== =============== ===============================================
0101 Module Kernel Description
0102 =============== =============== ===============================================
0103 vgapass=0 vganopass Enable or disable VGA passthrou cable.
0104 vgapass=1 vgapass When enabled, the monitor will get the signal
0105 from the VGA board and not from the voodoo.
0106
0107 Default: nopass
0108
0109 mem=x mem:x Force frame buffer memory in MiB
0110 allowed values: 0, 1, 2, 4.
0111
0112 Default: 0 (= autodetect)
0113
0114 inverse=1 inverse Supposed to enable inverse console.
0115 doesn't work yet...
0116
0117 clipping=1 clipping Enable or disable clipping.
0118 clipping=0 noclipping With clipping enabled, all offscreen
0119 reads and writes are discarded.
0120
0121 Default: enable clipping.
0122
0123 gfxclk=x gfxclk:x Force graphic clock frequency (in MHz).
0124 Be careful with this option, it may be
0125 DANGEROUS.
0126
0127 Default: auto
0128
0129 - 50Mhz for Voodoo 1,
0130 - 75MHz for Voodoo 2.
0131
0132 slowpci=1 fastpci Enable or disable fast PCI read/writes.
0133 slowpci=1 slowpci Default : fastpci
0134
0135 dev=x dev:x Attach the driver to device number x.
0136 0 is the first compatible board (in
0137 lspci order)
0138 =============== =============== ===============================================
0139
0140 Tools
0141 =====
0142
0143 These tools are mostly for debugging purposes, but you can
0144 find some of these interesting:
0145
0146 - `con2fb`, maps a tty to a fbramebuffer::
0147
0148 con2fb /dev/fb1 /dev/tty5
0149
0150 - `sst_dbg_vgapass`, changes vga passthrou. You have to recompile the
0151 driver with SST_DEBUG and SST_DEBUG_IOCTL set to 1::
0152
0153 sst_dbg_vgapass /dev/fb1 1 (enables vga cable)
0154 sst_dbg_vgapass /dev/fb1 0 (disables vga cable)
0155
0156 - `glide_reset`, resets the voodoo using glide
0157 use this after rmmoding sstfb, if the module refuses to
0158 reinsert.
0159
0160 Bugs
0161 ====
0162
0163 - DO NOT use glide while the sstfb module is in, you'll most likely
0164 hang your computer.
0165 - If you see some artefacts (pixels not cleaning and stuff like that),
0166 try turning off clipping (clipping=0), and/or using slowpci
0167 - the driver don't detect the 4Mb frame buffer voodoos, it seems that
0168 the 2 last Mbs wrap around. looking into that .
0169 - The driver is 16 bpp only, 24/32 won't work.
0170 - The driver is not your_favorite_toy-safe. this includes SMP...
0171
0172 [Actually from inspection it seems to be safe - Alan]
0173
0174 - When using XFree86 FBdev (X over fbdev) you may see strange color
0175 patterns at the border of your windows (the pixels lose the lowest
0176 byte -> basically the blue component and some of the green). I'm unable
0177 to reproduce this with XFree86-3.3, but one of the testers has this
0178 problem with XFree86-4. Apparently recent Xfree86-4.x solve this
0179 problem.
0180 - I didn't really test changing the palette, so you may find some weird
0181 things when playing with that.
0182 - Sometimes the driver will not recognise the DAC, and the
0183 initialisation will fail. This is specifically true for
0184 voodoo 2 boards, but it should be solved in recent versions. Please
0185 contact me.
0186 - The 24/32 is not likely to work anytime soon, knowing that the
0187 hardware does ... unusual things in 24/32 bpp.
0188
0189 Todo
0190 ====
0191
0192 - Get rid of the previous paragraph.
0193 - Buy more coffee.
0194 - test/port to other arch.
0195 - try to add panning using tweeks with front and back buffer .
0196 - try to implement accel on voodoo2, this board can actually do a
0197 lot in 2D even if it was sold as a 3D only board ...
0198
0199 Ghozlane Toumi <gtoumi@laposte.net>
0200
0201
0202 Date: 2002/05/09 20:11:45
0203
0204 http://sstfb.sourceforge.net/README