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 <>, 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)
  16          Please read the Bug section, and report any success or failure to me
  17        (Ghozlane Toumi <>).
  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... 
  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.
  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 :)
  37Module Usage
  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)
  49        Module insertion:
  50        # insmod sstfb.o
  51          you should see some strange output from the board: 
  52          a big blue square, a green and a red small squares and a vertical
  53          white rectangle. why? the function's name is self-explanatory:
  54          "sstfb_test()"...
  55          (if you don't have a second monitor, you'll have to plug your monitor
  56          directly to the 2D videocard to see what you're typing)
  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" ...
  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
  73Kernel/Modules Options
  75        You can pass some options to the sstfb module, and via the kernel 
  76        command line when the driver is compiled in:
  77        for module : insmod sstfb.o option1=value1 option2=value2 ...
  78        in kernel :  video=sstfb:option1,option2:value2,option3 ...
  80        sstfb supports the following options :
  82Module          Kernel          Description
  84vgapass=0       vganopass       Enable or disable VGA passthrou cable.
  85vgapass=1       vgapass         When enabled, the monitor will get the signal
  86                                from the VGA board and not from the voodoo.
  87                                Default: nopass
  89mem=x           mem:x           Force frame buffer memory in MiB
  90                                allowed values: 0, 1, 2, 4.
  91                                Default: 0 (= autodetect)
  93inverse=1       inverse         Supposed to enable inverse console.
  94                                doesn't work yet...
  96clipping=1      clipping        Enable or disable clipping.
  97clipping=0      noclipping      With clipping enabled, all offscreen
  98                                reads and writes are discarded.
  99                                Default: enable clipping.
 101gfxclk=x        gfxclk:x        Force graphic clock frequency (in MHz).
 102                                Be careful with this option, it may be
 103                                DANGEROUS.
 104                                Default: auto 
 105                                        50Mhz for Voodoo 1,
 106                                        75MHz for Voodoo 2. 
 108slowpci=1       fastpci         Enable or disable fast PCI read/writes.
 109slowpci=1       slowpci         Default : fastpci
 111dev=x           dev:x           Attach the driver to device number x.
 112                                0 is the first compatible board (in 
 113                                lspci order)
 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 .
 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]
 140        - When using XFree86 FBdev (X over fbdev) you may see strange color
 141        patterns at the border of your windows (the pixels lose the lowest
 142        byte -> basically the blue component and some of the green). I'm unable
 143        to reproduce this with XFree86-3.3, but one of the testers has this
 144        problem with XFree86-4. Apparently recent Xfree86-4.x solve this
 145        problem.
 146        - I didn't really test changing the palette, so you may find some weird
 147        things when playing with that.
 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 ...
 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 .
 164        - try to implement accel on voodoo2, this board can actually do a 
 165          lot in 2D even if it was sold as a 3D only board ...
 170Ghozlane Toumi <>
 173$Date: 2002/05/09 20:11:45 $
 175 kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.