==================================
ϡ
linux-2.6.13-rc3/Documentation/fb/sisfb.txt 
Ǥ
Ρ JF ץ < http://www.linux.or.jp/JF/ >
  2005/7/15
 : Thomas Winischhofer <thomas at winischhofer dot net>
  Hiroshi.Suzuki < setter at reset dot jp >
  Chie Nakatani  <jeanne at mbox dot kyoto-inet dot or dot jp>
==================================

What is sisfb?

"sisfb"äƥʥˡ
==============

sisfb is a framebuffer device driver for SiS (Silicon Integrated Systems)
graphics chips. Supported are:

- SiS 300 series: SiS 300/305, 540, 630(S), 730(S)
- SiS 315 series: SiS 315/H/PRO, 55x, (M)65x, 740, (M)661(F/M)X, (M)741(GX)
- SiS 330 series: SiS 330 ("Xabre"), (M)760

  sisfb ϡSiS (Silicon Integrated Systems) եååѤΥե졼Хåե
ǥХɥ饤ФǤݡȤƤΤϡ

- SiS 300 ꡼: SiS 300/305, 540, 630(S), 730(S)
- SiS 315 ꡼: SiS 315/H/PRO, 55x, (M)65x, 740, (M)661(F/M)X, (M)741(GX)
- SiS 330 ꡼: SiS 330 ("Xabre"), (M)760


Why do I need a framebuffer driver?

ʤե졼Хåեɥ饤ФɬפʤΡ
===================================

sisfb is eg. useful if you want a high-resolution text console. Besides that,
sisfb is required to run DirectFB (which comes with an additional, dedicated
driver for the 315 series).

  sisfb ϡ㤨С٥ƥȥ󥽡Ѥ̤ޤ
˲äơsisfb ϡDirectFB(315꡼Ѥѥɥ饤Ф°Ƥ) 
¹ԤɬפǤ

On the 300 series, sisfb on kernels older than 2.6.3 furthermore plays an
important role in connection with DRM/DRI: Sisfb manages the memory heap
used by DRM/DRI for 3D texture and other data. This memory management is
required for using DRI/DRM.

  300 ꡼Ǥϡ2.6.3 ŤͥǤ sisfb ϡ
DRM/DRI ³˽פܤ̤ޤ
sisfb ϡ3Dƥ䤽¾ǡФơDRM/DRIǻȤҡ֤ޤ
ΥϡDRI/DRM ɬפǤ

Kernels >= around 2.6.3 do not need sisfb any longer for DRI/DRM memory
management. The SiS DRM driver has been updated and features a memory manager
of its own (which will be used if sisfb is not compiled). So unless you want
a graphical console, you don't need sisfb on kernels >=2.6.3.

  2.6.3 հʾΥͥǤϡDRI/DRM  sisfb Ϥ⤦ɬפǤϤޤ
SiS DRM ɥ饤ФϤǤ˹Ƥꡢ켫ȤΥ
(sisfb ѥ뤵ʤ˻Ѥޤ) Ƥޤ
2.6.3 ʹߤΥͥǤϡե륳󥽡뤬ɬפʾsisfb ϡפǤ

Sidenote: Since this seems to be a commonly made mistake: sisfb and vesafb
cannot be active at the same time! Do only select one of them in your kernel
configuration.

աϡ褯ְ㤤ޤsisfb ȡvesafb ϡƱͭˤǤޤ
ͥ륳ե졼Ǥɤ餫ҤȤĤǤޤ

How are parameters passed to sisfb?

ѥ᡼ϡɤΤ褦ˤƤˤ sisfb Ϥޤ
===================================

Well, it depends: If compiled statically into the kernel, use lilo's append
statement to add the parameters to the kernel command line. Please see lilo's
(or GRUB's) documentation for more information. If sisfb is a kernel module,
parameters are given with the modprobe (or insmod) command.

  ˤޤ ͥȤ߹ߤǥѥ뤷硢lilo  append 
ơȥȤ ͥ륳ޥɥ饤ѥ᡼ɲäޤ
ܺ٤ϡlilo(ޤϡGRUB) ΥɥȤ򸫤Ƥ
sisfb ⥸塼ˤ硢ѥ᡼ϡmodprobe(ޤ insmod)ޥɤȤȤ
Ϳޤ

Example for sisfb as part of the static kernel: Add the following line to your
lilo.conf:

sisfb ͥȤ߹ߤǤ㡧 ʲιԤ lilo.conf ɲäޤ

     append="video=sisfb:mode:1024x768x16,mem:12288,rate:75"

Example for sisfb as a module: Start sisfb by typing

sisfb ⥸塼ξ硧Ϥˤ sisfb 򳫻

     modprobe sisfb mode=1024x768x16 rate=75 mem=12288

A common mistake is that folks use a wrong parameter format when using the
driver compiled into the kernel. Please note: If compiled into the kernel,
the parameter format is video=sisfb:mode:none or video=sisfb:mode:1024x768x16
(or whatever mode you want to use, alternatively using any other format
described above or the vesa keyword instead of mode). If compiled as a module,
the parameter format reads mode=none or mode=1024x768x16 (or whatever mode you
want to use). Using a "=" for a ":" (and vice versa) is a huge difference!
Additionally: If you give more than one argument to the in-kernel sisfb, the
arguments are separated with ",". For example:

  褯ְ뤳Ȥϡɥ饤ФͥΰȤƥѥ뤵Ƥˡ
ְäѥ᡼եޥåȤѤ뤳ȤǤ
  ⤷Ƥ ͥȤ߹ߤǥѥ뤷硢ѥ᡼ϡ
video=sisfb:mode:none 
ޤϡ 
video=sisfb:mode:1024x768x16
Ȥˤʤޤ
(¾Υ⡼ɤȤ硢嵭ޤϡmode  vesa ɤΤɤ餫
Ǥդ˻ѤǤޤ)
  ⥸塼Ȥƥѥ뤷硢ѥ᡼ϡ mode=none ޤϡ
mode=1024x768x16 (ޤϡѤ¾Υ⡼)Ȥˤʤޤ
"="  ":" ˤ(뤤Ϥε) ѤΤϡ礭ʰ㤤ޤ
ɵ ͥ sisfb ˡ2İʾΰͿ硢ϡ"," ˤäƶڤޤ
㡧

   video=sisfb:mode:1024x768x16,rate:75,mem:12288


How do I use it?

ɤΤ褦˻ȤΡ
================

Preface statement: This file only covers very little of the driver's
capabilities and features. Please refer to the author's and maintainer's
website at http://www.winischhofer.net/linuxsisvga.shtml for more
information. Additionally, "modinfo sisfb" gives an overview over all
supported options including some explanation.

  Ϥ: Υեϡɥ饤ФǽϤͤˤĤƤۤɾܤޤ
˾뤿ˡ/ƥ  ֥
http://www.winischhofer.net/linuxsisvga.shtml 򻲾ȤƤ
ˡ"modinfo sisfb" ǤϡݡȤƤ뤹٤ƤΥץˤĤơ
ñդǳפɽޤ(modinfo ޥɤξܺ٤ϡman modinfo 򻲾ȤƤ)

The desired display mode can be specified using the keyword "mode" with
a parameter in one of the follwing formats:
  - XxYxDepth or
  - XxY-Depth or
  - XxY-Depth@Rate or
  - XxY
  - or simply use the VESA mode number in hexadecimal or decimal.

  Ȥǥץ쥤⡼ɤϰʲΥեޥåȤΤҤȤĤȡ"mode" ɤѤ
Ǥޤ
  - XxYxDepth ޤ
  - XxY-Depth ޤ
  - XxY-Depth@Rate ޤ
  - XxY
  - ޤϡñ 16ʿ ޤϡ10ʿ VESA ⡼ֹѤޤ

For example: 1024x768x16, 1024x768-16@75, 1280x1024-16. If no depth is
specified, it defaults to 8. If no rate is given, it defaults to 60Hz. Depth 32
means 24bit color depth (but 32 bit framebuffer depth, which is not relevant
to the user).

㡧 1024x768x16, 1024x768-16@75, 1280x1024-16
  (Depth) ꤷʤ硢ǥեȤ 8 ˤʤޤ
Ʊȿ(rate) ꤷʤ硢 ǥեȤ 60Hz ˤʤޤ
Depth 32 ϡ24ӥåȤο٤̣ޤ(32 ӥå ե졼Хåեϡ桼ˤȤäƤϡ
ŬڤǤϤޤ)

Additionally, sisfb understands the keyword "vesa" followed by a VESA mode
number in decimal or hexadecimal. For example: vesa=791 or vesa=0x117. Please
use either "mode" or "vesa" but not both.

  ˡsisfb ϡ10ʿ ޤϡ16ʿ VESA ⡼ֹ椬³ "vesa" 򤷤ޤ
㡧vesa=791 ޤ vesa=0x117
"mode" ޤ "vesa" Τɤ餫(ξǤϤʤ)ѤƤ

Linux 2.4 only: If no mode is given, sisfb defaults to "no mode" (mode=none) if
compiled as a module; if sisfb is statically compiled into the kernel, it
defaults to 800x600x8 unless CRT2 type is LCD, in which case the LCD's native
resolution is used. If you want to switch to a different mode, use the fbset
shell command.

  Linux 2.4 ξΤߡ⥸塼Ȥƥѥ뤵Ƥơmode Ϳʤ硢
sisfb ϡǥեȤ "no mode" (mode=none) ˤʤޤͥȤ߹ޤƤ硢
ǥեȤϡCRT2  פ LCD ǤϤʤ 800x600x8 Ȥʤꡢ¾ξ硢LCD 
ͥƥ֤ʲ٤Ѥޤۤʤ⡼ɤڴ硢fbset 륳ޥɤѤޤ

Linux 2.6 only: If no mode is given, sisfb defaults to 800x600x8 unless CRT2
type is LCD, in which case it defaults to the LCD's native resolution. If
you want to switch to another mode, use the stty shell command.

  Linux 2.6 ξΤߡmode Ϳʤ硢ǥեȤϡCRT2  פ 
LCD ǤϤʤ 800x600x8 Ȥʤꡢ¾ξ硢LCD Υͥƥ֤ʲ٤Ѥޤ
¾Υ⡼ɤؤ硢stty 륳ޥɤѤޤ

You should compile in both vgacon (to boot if you remove you SiS card from
your system) and sisfb (for graphics mode). Under Linux 2.6, also "Framebuffer
console support" (fbcon) is needed for a graphical console.

  vgacon (ƥफ顢SiS ɤ򳰤ƥ֡Ȥ뤿)ӡsisfb (եå⡼ɤΤ)
ξ򥳥ѥ뤷ʤФʤޤLinux 2.6 Ǥϡ"Framebuffer console support" (fbcon) 
⡢ե륳󥽡ΤɬפǤ

You should *not* compile-in vesafb. And please do not use the "vga=" keyword
in lilo's or grub's configuration file; mode selection is done using the
"mode" or "vesa" keywords as a parameter. See above and below.

  vesafb Ȥ߹ߤǥѥ뤷Ƥ**ޤ**ޤlilo ޤϡ grub ե
 "vga=" ɤѤʤǤ ⡼ϡ"mode" ޤ "vesa" ɤ
ѥ᡼ȤƻѤ뤳ȤǤʤޤҤȤȲεҤ⸫Ƥ


X11
===

If using XFree86 or X.org, it is recommended that you don't use the "fbdev"
driver but the dedicated "sis" X driver. The "sis" X driver and sisfb are
developed by the same person (Thomas Winischhofer) and cooperate well with
each other.

  XFree86 ޤ X.org Ѥ硢"fbdev" ɥ饤ФǤϤʤ󶡤Ƥ "sis" 
X ɥ饤ФȤ褦侩ޤ
  "sis" X ɥ饤 ӡsisfb ϡƱ(Thomas Winischhofer) ȡɤϼԤˤä
ȯƤޤ


SVGALib
=======

SVGALib, if directly accessing the hardware, never restores the screen
correctly, especially on laptops or if the output devices are LCD or TV.
Therefore, use the chipset "FBDEV" in SVGALib configuration. This will make
SVGALib use the framebuffer device for mode switches and restoration.

  SVGALib⤷ľŪ˥ϡɥ˥롢Τ˲̤ʤä˥åץȥåפξ硢
ޤϡϥǥХLCD䡢TVξ硣ΤˡSVGALib ǡåץå "FBDEV" 
Ѥޤ
  ϡSVGALib  ⡼ڴ䡢ꥹȥ˥ե졼ХåեǥХѤ褦ˤޤ


Configuration


=============

(Some) accepted options:

(Ĥ) ѤǤ륪ץ:

off      - Disable sisfb. This option is only understood if sisfb is
           in-kernel, not a module.
mem:X    - size of memory for the console, rest will be used for DRI/DRM. X
           is in kilobytes. On 300 series, the default is 4096, 8192 or
	   16384 (each in kilobyte) depending on how much video ram the card
           has. On 315/330 series, the default is the maximum available ram
	   (since DRI/DRM is not supported for these chipsets).
noaccel  - do not use 2D acceleration engine. (Default: use acceleration)
noypan   - disable y-panning and scroll by redrawing the entire screen.
           This is much slower than y-panning. (Default: use y-panning)
vesa:X   - selects startup videomode. X is number from 0 to 0x1FF and
           represents the VESA mode number (can be given in decimal or
	   hexadecimal form, the latter prefixed with "0x").
mode:X   - selects startup videomode. Please see above for the format of
           "X".

off      - sisfb ̵ˤ롣Υץϡsisfb ⥸塼ǤϤʤͥȤ߹ߤξ
            Τ߻Ȥޤ
mem:X    - 󥽡ΤΥꥵĤϡDRI/DRMѤ˻Ѥޤ 
           X ϡХȤǤ300 ꡼ǤϡǥեȤϡɤɤRAMĤˤꡢ
           4096, 8192 ޤϡ16384 (줾졢Х)Ǥ 
           315/330 ꡼Ǥϡ ǥեȤϡѲǽ RAM κͤǤ
	   (åץåȤǤϡDRI/DRM ϥݡȤޤ)
noaccel  - 2D 졼󥨥󥸥Ȥʤ(ǥե: 졼Ȥ)
noypan   - Τκ y-ѥ˥ ȡ Ѥʤ
           ϡ y-ѥ˥ ꡢȤƤ٤ʤޤ (ǥեȡy-ѥ˥󥰤Ȥ)
vesa:X   - ȥåץӥǥ⡼ɤX ϡ0顢0x1FF ο ӡVESA ⡼ֹ
           ("0x" ǻϤޤʸ10ʿޤϡ16ʿͿ)
mode:X   - ȥåץӥǥ⡼ɤ"X"ΥեޥåȤϾ嵭ȡ

Boolean options such as "noaccel" or "noypan" are to be given without a
parameter if sisfb is in-kernel (for example "video=sisfb:noypan). If
sisfb is a module, these are to be set to 1 (for example "modprobe sisfb
noypan=1").

  "noaccel"  "noypan" ʤɤΡ֡ͥץϡsisfb ͥȤ߹ߤ˾硢
ѥ᡼Ȥʤޤ
(㡧"video=sisfb:noypan")
sisfb ⥸塼ξ硢1 򥻥åȤޤ(㡧 "modprobe sisfb noypan=1")

--
Thomas Winischhofer <thomas at winischhofer dot net>
May 27, 2004


