Back to home page

OSCL-LXR

 
 

    


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