Back to home page

OSCL-LXR

 
 

    


0001 ==============
0002 What is sisfb?
0003 ==============
0004 
0005 sisfb is a framebuffer device driver for SiS (Silicon Integrated Systems)
0006 graphics chips. Supported are:
0007 
0008 - SiS 300 series: SiS 300/305, 540, 630(S), 730(S)
0009 - SiS 315 series: SiS 315/H/PRO, 55x, (M)65x, 740, (M)661(F/M)X, (M)741(GX)
0010 - SiS 330 series: SiS 330 ("Xabre"), (M)760
0011 
0012 
0013 Why do I need a framebuffer driver?
0014 ===================================
0015 
0016 sisfb is eg. useful if you want a high-resolution text console. Besides that,
0017 sisfb is required to run DirectFB (which comes with an additional, dedicated
0018 driver for the 315 series).
0019 
0020 On the 300 series, sisfb on kernels older than 2.6.3 furthermore plays an
0021 important role in connection with DRM/DRI: Sisfb manages the memory heap
0022 used by DRM/DRI for 3D texture and other data. This memory management is
0023 required for using DRI/DRM.
0024 
0025 Kernels >= around 2.6.3 do not need sisfb any longer for DRI/DRM memory
0026 management. The SiS DRM driver has been updated and features a memory manager
0027 of its own (which will be used if sisfb is not compiled). So unless you want
0028 a graphical console, you don't need sisfb on kernels >=2.6.3.
0029 
0030 Sidenote: Since this seems to be a commonly made mistake: sisfb and vesafb
0031 cannot be active at the same time! Do only select one of them in your kernel
0032 configuration.
0033 
0034 
0035 How are parameters passed to sisfb?
0036 ===================================
0037 
0038 Well, it depends: If compiled statically into the kernel, use lilo's append
0039 statement to add the parameters to the kernel command line. Please see lilo's
0040 (or GRUB's) documentation for more information. If sisfb is a kernel module,
0041 parameters are given with the modprobe (or insmod) command.
0042 
0043 Example for sisfb as part of the static kernel: Add the following line to your
0044 lilo.conf::
0045 
0046      append="video=sisfb:mode:1024x768x16,mem:12288,rate:75"
0047 
0048 Example for sisfb as a module: Start sisfb by typing::
0049 
0050      modprobe sisfb mode=1024x768x16 rate=75 mem=12288
0051 
0052 A common mistake is that folks use a wrong parameter format when using the
0053 driver compiled into the kernel. Please note: If compiled into the kernel,
0054 the parameter format is video=sisfb:mode:none or video=sisfb:mode:1024x768x16
0055 (or whatever mode you want to use, alternatively using any other format
0056 described above or the vesa keyword instead of mode). If compiled as a module,
0057 the parameter format reads mode=none or mode=1024x768x16 (or whatever mode you
0058 want to use). Using a "=" for a ":" (and vice versa) is a huge difference!
0059 Additionally: If you give more than one argument to the in-kernel sisfb, the
0060 arguments are separated with ",". For example::
0061 
0062    video=sisfb:mode:1024x768x16,rate:75,mem:12288
0063 
0064 
0065 How do I use it?
0066 ================
0067 
0068 Preface statement: This file only covers very little of the driver's
0069 capabilities and features. Please refer to the author's and maintainer's
0070 website at http://www.winischhofer.net/linuxsisvga.shtml for more
0071 information. Additionally, "modinfo sisfb" gives an overview over all
0072 supported options including some explanation.
0073 
0074 The desired display mode can be specified using the keyword "mode" with
0075 a parameter in one of the following formats:
0076 
0077   - XxYxDepth or
0078   - XxY-Depth or
0079   - XxY-Depth@Rate or
0080   - XxY
0081   - or simply use the VESA mode number in hexadecimal or decimal.
0082 
0083 For example: 1024x768x16, 1024x768-16@75, 1280x1024-16. If no depth is
0084 specified, it defaults to 8. If no rate is given, it defaults to 60Hz. Depth 32
0085 means 24bit color depth (but 32 bit framebuffer depth, which is not relevant
0086 to the user).
0087 
0088 Additionally, sisfb understands the keyword "vesa" followed by a VESA mode
0089 number in decimal or hexadecimal. For example: vesa=791 or vesa=0x117. Please
0090 use either "mode" or "vesa" but not both.
0091 
0092 Linux 2.4 only: If no mode is given, sisfb defaults to "no mode" (mode=none) if
0093 compiled as a module; if sisfb is statically compiled into the kernel, it
0094 defaults to 800x600x8 unless CRT2 type is LCD, in which case the LCD's native
0095 resolution is used. If you want to switch to a different mode, use the fbset
0096 shell command.
0097 
0098 Linux 2.6 only: If no mode is given, sisfb defaults to 800x600x8 unless CRT2
0099 type is LCD, in which case it defaults to the LCD's native resolution. If
0100 you want to switch to another mode, use the stty shell command.
0101 
0102 You should compile in both vgacon (to boot if you remove you SiS card from
0103 your system) and sisfb (for graphics mode). Under Linux 2.6, also "Framebuffer
0104 console support" (fbcon) is needed for a graphical console.
0105 
0106 You should *not* compile-in vesafb. And please do not use the "vga=" keyword
0107 in lilo's or grub's configuration file; mode selection is done using the
0108 "mode" or "vesa" keywords as a parameter. See above and below.
0109 
0110 
0111 X11
0112 ===
0113 
0114 If using XFree86 or X.org, it is recommended that you don't use the "fbdev"
0115 driver but the dedicated "sis" X driver. The "sis" X driver and sisfb are
0116 developed by the same person (Thomas Winischhofer) and cooperate well with
0117 each other.
0118 
0119 
0120 SVGALib
0121 =======
0122 
0123 SVGALib, if directly accessing the hardware, never restores the screen
0124 correctly, especially on laptops or if the output devices are LCD or TV.
0125 Therefore, use the chipset "FBDEV" in SVGALib configuration. This will make
0126 SVGALib use the framebuffer device for mode switches and restoration.
0127 
0128 
0129 Configuration
0130 =============
0131 
0132 (Some) accepted options:
0133 
0134 =========  ==================================================================
0135 off        Disable sisfb. This option is only understood if sisfb is
0136            in-kernel, not a module.
0137 mem:X      size of memory for the console, rest will be used for DRI/DRM. X
0138            is in kilobytes. On 300 series, the default is 4096, 8192 or
0139            16384 (each in kilobyte) depending on how much video ram the card
0140            has. On 315/330 series, the default is the maximum available ram
0141            (since DRI/DRM is not supported for these chipsets).
0142 noaccel    do not use 2D acceleration engine. (Default: use acceleration)
0143 noypan     disable y-panning and scroll by redrawing the entire screen.
0144            This is much slower than y-panning. (Default: use y-panning)
0145 vesa:X     selects startup videomode. X is number from 0 to 0x1FF and
0146            represents the VESA mode number (can be given in decimal or
0147            hexadecimal form, the latter prefixed with "0x").
0148 mode:X     selects startup videomode. Please see above for the format of
0149            "X".
0150 =========  ==================================================================
0151 
0152 Boolean options such as "noaccel" or "noypan" are to be given without a
0153 parameter if sisfb is in-kernel (for example "video=sisfb:noypan). If
0154 sisfb is a module, these are to be set to 1 (for example "modprobe sisfb
0155 noypan=1").
0156 
0157 
0158 Thomas Winischhofer <thomas@winischhofer.net>
0159 
0160 May 27, 2004