1*4882a593Smuzhiyun============== 2*4882a593SmuzhiyunWhat is sisfb? 3*4882a593Smuzhiyun============== 4*4882a593Smuzhiyun 5*4882a593Smuzhiyunsisfb is a framebuffer device driver for SiS (Silicon Integrated Systems) 6*4882a593Smuzhiyungraphics chips. Supported are: 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun- SiS 300 series: SiS 300/305, 540, 630(S), 730(S) 9*4882a593Smuzhiyun- SiS 315 series: SiS 315/H/PRO, 55x, (M)65x, 740, (M)661(F/M)X, (M)741(GX) 10*4882a593Smuzhiyun- SiS 330 series: SiS 330 ("Xabre"), (M)760 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunWhy do I need a framebuffer driver? 14*4882a593Smuzhiyun=================================== 15*4882a593Smuzhiyun 16*4882a593Smuzhiyunsisfb is eg. useful if you want a high-resolution text console. Besides that, 17*4882a593Smuzhiyunsisfb is required to run DirectFB (which comes with an additional, dedicated 18*4882a593Smuzhiyundriver for the 315 series). 19*4882a593Smuzhiyun 20*4882a593SmuzhiyunOn the 300 series, sisfb on kernels older than 2.6.3 furthermore plays an 21*4882a593Smuzhiyunimportant role in connection with DRM/DRI: Sisfb manages the memory heap 22*4882a593Smuzhiyunused by DRM/DRI for 3D texture and other data. This memory management is 23*4882a593Smuzhiyunrequired for using DRI/DRM. 24*4882a593Smuzhiyun 25*4882a593SmuzhiyunKernels >= around 2.6.3 do not need sisfb any longer for DRI/DRM memory 26*4882a593Smuzhiyunmanagement. The SiS DRM driver has been updated and features a memory manager 27*4882a593Smuzhiyunof its own (which will be used if sisfb is not compiled). So unless you want 28*4882a593Smuzhiyuna graphical console, you don't need sisfb on kernels >=2.6.3. 29*4882a593Smuzhiyun 30*4882a593SmuzhiyunSidenote: Since this seems to be a commonly made mistake: sisfb and vesafb 31*4882a593Smuzhiyuncannot be active at the same time! Do only select one of them in your kernel 32*4882a593Smuzhiyunconfiguration. 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun 35*4882a593SmuzhiyunHow are parameters passed to sisfb? 36*4882a593Smuzhiyun=================================== 37*4882a593Smuzhiyun 38*4882a593SmuzhiyunWell, it depends: If compiled statically into the kernel, use lilo's append 39*4882a593Smuzhiyunstatement to add the parameters to the kernel command line. Please see lilo's 40*4882a593Smuzhiyun(or GRUB's) documentation for more information. If sisfb is a kernel module, 41*4882a593Smuzhiyunparameters are given with the modprobe (or insmod) command. 42*4882a593Smuzhiyun 43*4882a593SmuzhiyunExample for sisfb as part of the static kernel: Add the following line to your 44*4882a593Smuzhiyunlilo.conf:: 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun append="video=sisfb:mode:1024x768x16,mem:12288,rate:75" 47*4882a593Smuzhiyun 48*4882a593SmuzhiyunExample for sisfb as a module: Start sisfb by typing:: 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun modprobe sisfb mode=1024x768x16 rate=75 mem=12288 51*4882a593Smuzhiyun 52*4882a593SmuzhiyunA common mistake is that folks use a wrong parameter format when using the 53*4882a593Smuzhiyundriver compiled into the kernel. Please note: If compiled into the kernel, 54*4882a593Smuzhiyunthe parameter format is video=sisfb:mode:none or video=sisfb:mode:1024x768x16 55*4882a593Smuzhiyun(or whatever mode you want to use, alternatively using any other format 56*4882a593Smuzhiyundescribed above or the vesa keyword instead of mode). If compiled as a module, 57*4882a593Smuzhiyunthe parameter format reads mode=none or mode=1024x768x16 (or whatever mode you 58*4882a593Smuzhiyunwant to use). Using a "=" for a ":" (and vice versa) is a huge difference! 59*4882a593SmuzhiyunAdditionally: If you give more than one argument to the in-kernel sisfb, the 60*4882a593Smuzhiyunarguments are separated with ",". For example:: 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun video=sisfb:mode:1024x768x16,rate:75,mem:12288 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun 65*4882a593SmuzhiyunHow do I use it? 66*4882a593Smuzhiyun================ 67*4882a593Smuzhiyun 68*4882a593SmuzhiyunPreface statement: This file only covers very little of the driver's 69*4882a593Smuzhiyuncapabilities and features. Please refer to the author's and maintainer's 70*4882a593Smuzhiyunwebsite at http://www.winischhofer.net/linuxsisvga.shtml for more 71*4882a593Smuzhiyuninformation. Additionally, "modinfo sisfb" gives an overview over all 72*4882a593Smuzhiyunsupported options including some explanation. 73*4882a593Smuzhiyun 74*4882a593SmuzhiyunThe desired display mode can be specified using the keyword "mode" with 75*4882a593Smuzhiyuna parameter in one of the following formats: 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun - XxYxDepth or 78*4882a593Smuzhiyun - XxY-Depth or 79*4882a593Smuzhiyun - XxY-Depth@Rate or 80*4882a593Smuzhiyun - XxY 81*4882a593Smuzhiyun - or simply use the VESA mode number in hexadecimal or decimal. 82*4882a593Smuzhiyun 83*4882a593SmuzhiyunFor example: 1024x768x16, 1024x768-16@75, 1280x1024-16. If no depth is 84*4882a593Smuzhiyunspecified, it defaults to 8. If no rate is given, it defaults to 60Hz. Depth 32 85*4882a593Smuzhiyunmeans 24bit color depth (but 32 bit framebuffer depth, which is not relevant 86*4882a593Smuzhiyunto the user). 87*4882a593Smuzhiyun 88*4882a593SmuzhiyunAdditionally, sisfb understands the keyword "vesa" followed by a VESA mode 89*4882a593Smuzhiyunnumber in decimal or hexadecimal. For example: vesa=791 or vesa=0x117. Please 90*4882a593Smuzhiyunuse either "mode" or "vesa" but not both. 91*4882a593Smuzhiyun 92*4882a593SmuzhiyunLinux 2.4 only: If no mode is given, sisfb defaults to "no mode" (mode=none) if 93*4882a593Smuzhiyuncompiled as a module; if sisfb is statically compiled into the kernel, it 94*4882a593Smuzhiyundefaults to 800x600x8 unless CRT2 type is LCD, in which case the LCD's native 95*4882a593Smuzhiyunresolution is used. If you want to switch to a different mode, use the fbset 96*4882a593Smuzhiyunshell command. 97*4882a593Smuzhiyun 98*4882a593SmuzhiyunLinux 2.6 only: If no mode is given, sisfb defaults to 800x600x8 unless CRT2 99*4882a593Smuzhiyuntype is LCD, in which case it defaults to the LCD's native resolution. If 100*4882a593Smuzhiyunyou want to switch to another mode, use the stty shell command. 101*4882a593Smuzhiyun 102*4882a593SmuzhiyunYou should compile in both vgacon (to boot if you remove you SiS card from 103*4882a593Smuzhiyunyour system) and sisfb (for graphics mode). Under Linux 2.6, also "Framebuffer 104*4882a593Smuzhiyunconsole support" (fbcon) is needed for a graphical console. 105*4882a593Smuzhiyun 106*4882a593SmuzhiyunYou should *not* compile-in vesafb. And please do not use the "vga=" keyword 107*4882a593Smuzhiyunin lilo's or grub's configuration file; mode selection is done using the 108*4882a593Smuzhiyun"mode" or "vesa" keywords as a parameter. See above and below. 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun 111*4882a593SmuzhiyunX11 112*4882a593Smuzhiyun=== 113*4882a593Smuzhiyun 114*4882a593SmuzhiyunIf using XFree86 or X.org, it is recommended that you don't use the "fbdev" 115*4882a593Smuzhiyundriver but the dedicated "sis" X driver. The "sis" X driver and sisfb are 116*4882a593Smuzhiyundeveloped by the same person (Thomas Winischhofer) and cooperate well with 117*4882a593Smuzhiyuneach other. 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun 120*4882a593SmuzhiyunSVGALib 121*4882a593Smuzhiyun======= 122*4882a593Smuzhiyun 123*4882a593SmuzhiyunSVGALib, if directly accessing the hardware, never restores the screen 124*4882a593Smuzhiyuncorrectly, especially on laptops or if the output devices are LCD or TV. 125*4882a593SmuzhiyunTherefore, use the chipset "FBDEV" in SVGALib configuration. This will make 126*4882a593SmuzhiyunSVGALib use the framebuffer device for mode switches and restoration. 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun 129*4882a593SmuzhiyunConfiguration 130*4882a593Smuzhiyun============= 131*4882a593Smuzhiyun 132*4882a593Smuzhiyun(Some) accepted options: 133*4882a593Smuzhiyun 134*4882a593Smuzhiyun========= ================================================================== 135*4882a593Smuzhiyunoff Disable sisfb. This option is only understood if sisfb is 136*4882a593Smuzhiyun in-kernel, not a module. 137*4882a593Smuzhiyunmem:X size of memory for the console, rest will be used for DRI/DRM. X 138*4882a593Smuzhiyun is in kilobytes. On 300 series, the default is 4096, 8192 or 139*4882a593Smuzhiyun 16384 (each in kilobyte) depending on how much video ram the card 140*4882a593Smuzhiyun has. On 315/330 series, the default is the maximum available ram 141*4882a593Smuzhiyun (since DRI/DRM is not supported for these chipsets). 142*4882a593Smuzhiyunnoaccel do not use 2D acceleration engine. (Default: use acceleration) 143*4882a593Smuzhiyunnoypan disable y-panning and scroll by redrawing the entire screen. 144*4882a593Smuzhiyun This is much slower than y-panning. (Default: use y-panning) 145*4882a593Smuzhiyunvesa:X selects startup videomode. X is number from 0 to 0x1FF and 146*4882a593Smuzhiyun represents the VESA mode number (can be given in decimal or 147*4882a593Smuzhiyun hexadecimal form, the latter prefixed with "0x"). 148*4882a593Smuzhiyunmode:X selects startup videomode. Please see above for the format of 149*4882a593Smuzhiyun "X". 150*4882a593Smuzhiyun========= ================================================================== 151*4882a593Smuzhiyun 152*4882a593SmuzhiyunBoolean options such as "noaccel" or "noypan" are to be given without a 153*4882a593Smuzhiyunparameter if sisfb is in-kernel (for example "video=sisfb:noypan). If 154*4882a593Smuzhiyunsisfb is a module, these are to be set to 1 (for example "modprobe sisfb 155*4882a593Smuzhiyunnoypan=1"). 156*4882a593Smuzhiyun 157*4882a593Smuzhiyun 158*4882a593SmuzhiyunThomas Winischhofer <thomas@winischhofer.net> 159*4882a593Smuzhiyun 160*4882a593SmuzhiyunMay 27, 2004 161