linux/Documentation/fb/intel810.rst
<<
>>
Prefs
   1================================
   2Intel 810/815 Framebuffer driver
   3================================
   4
   5Tony Daplas <adaplas@pol.net>
   6
   7http://i810fb.sourceforge.net
   8
   9March 17, 2002
  10
  11First Released: July 2001
  12Last Update:    September 12, 2005
  13
  14A. Introduction
  15===============
  16
  17        This is a framebuffer driver for various Intel 810/815 compatible
  18        graphics devices.  These include:
  19
  20        - Intel 810
  21        - Intel 810E
  22        - Intel 810-DC100
  23        - Intel 815 Internal graphics only, 100Mhz FSB
  24        - Intel 815 Internal graphics only
  25        - Intel 815 Internal graphics and AGP
  26
  27B.  Features
  28============
  29
  30        - Choice of using Discrete Video Timings, VESA Generalized Timing
  31          Formula, or a framebuffer specific database to set the video mode
  32
  33        - Supports a variable range of horizontal and vertical resolution and
  34          vertical refresh rates if the VESA Generalized Timing Formula is
  35          enabled.
  36
  37        - Supports color depths of 8, 16, 24 and 32 bits per pixel
  38
  39        - Supports pseudocolor, directcolor, or truecolor visuals
  40
  41        - Full and optimized hardware acceleration at 8, 16 and 24 bpp
  42
  43        - Robust video state save and restore
  44
  45        - MTRR support
  46
  47        - Utilizes user-entered monitor specifications to automatically
  48          calculate required video mode parameters.
  49
  50        - Can concurrently run with xfree86 running with native i810 drivers
  51
  52        - Hardware Cursor Support
  53
  54        - Supports EDID probing either by DDC/I2C or through the BIOS
  55
  56C.  List of available options
  57=============================
  58
  59   a. "video=i810fb"
  60        enables the i810 driver
  61
  62        Recommendation: required
  63
  64   b. "xres:<value>"
  65        select horizontal resolution in pixels. (This parameter will be
  66        ignored if 'mode_option' is specified.  See 'o' below).
  67
  68        Recommendation: user preference
  69        (default = 640)
  70
  71   c. "yres:<value>"
  72        select vertical resolution in scanlines. If Discrete Video Timings
  73        is enabled, this will be ignored and computed as 3*xres/4.  (This
  74        parameter will be ignored if 'mode_option' is specified.  See 'o'
  75        below)
  76
  77        Recommendation: user preference
  78        (default = 480)
  79
  80   d. "vyres:<value>"
  81        select virtual vertical resolution in scanlines. If (0) or none
  82        is specified, this will be computed against maximum available memory.
  83
  84        Recommendation: do not set
  85        (default = 480)
  86
  87   e. "vram:<value>"
  88        select amount of system RAM in MB to allocate for the video memory
  89
  90        Recommendation: 1 - 4 MB.
  91        (default = 4)
  92
  93   f. "bpp:<value>"
  94        select desired pixel depth
  95
  96        Recommendation: 8
  97        (default = 8)
  98
  99   g. "hsync1/hsync2:<value>"
 100        select the minimum and maximum Horizontal Sync Frequency of the
 101        monitor in kHz.  If using a fixed frequency monitor, hsync1 must
 102        be equal to hsync2. If EDID probing is successful, these will be
 103        ignored and values will be taken from the EDID block.
 104
 105        Recommendation: check monitor manual for correct values
 106        (default = 29/30)
 107
 108   h. "vsync1/vsync2:<value>"
 109        select the minimum and maximum Vertical Sync Frequency of the monitor
 110        in Hz. You can also use this option to lock your monitor's refresh
 111        rate. If EDID probing is successful, these will be ignored and values
 112        will be taken from the EDID block.
 113
 114        Recommendation: check monitor manual for correct values
 115        (default = 60/60)
 116
 117        IMPORTANT:  If you need to clamp your timings, try to give some
 118        leeway for computational errors (over/underflows).  Example: if
 119        using vsync1/vsync2 = 60/60, make sure hsync1/hsync2 has at least
 120        a 1 unit difference, and vice versa.
 121
 122   i. "voffset:<value>"
 123        select at what offset in MB of the logical memory to allocate the
 124        framebuffer memory.  The intent is to avoid the memory blocks
 125        used by standard graphics applications (XFree86).  The default
 126        offset (16 MB for a 64 MB aperture, 8 MB for a 32 MB aperture) will
 127        avoid XFree86's usage and allows up to 7 MB/15 MB of framebuffer
 128        memory.  Depending on your usage, adjust the value up or down
 129        (0 for maximum usage, 31/63 MB for the least amount).  Note, an
 130        arbitrary setting may conflict with XFree86.
 131
 132        Recommendation: do not set
 133        (default = 8 or 16 MB)
 134
 135   j. "accel"
 136        enable text acceleration.  This can be enabled/reenabled anytime
 137        by using 'fbset -accel true/false'.
 138
 139        Recommendation: enable
 140        (default = not set)
 141
 142   k. "mtrr"
 143        enable MTRR.  This allows data transfers to the framebuffer memory
 144        to occur in bursts which can significantly increase performance.
 145        Not very helpful with the i810/i815 because of 'shared memory'.
 146
 147        Recommendation: do not set
 148        (default = not set)
 149
 150   l. "extvga"
 151        if specified, secondary/external VGA output will always be enabled.
 152        Useful if the BIOS turns off the VGA port when no monitor is attached.
 153        The external VGA monitor can then be attached without rebooting.
 154
 155        Recommendation: do not set
 156        (default = not set)
 157
 158   m. "sync"
 159        Forces the hardware engine to do a "sync" or wait for the hardware
 160        to finish before starting another instruction. This will produce a
 161        more stable setup, but will be slower.
 162
 163        Recommendation: do not set
 164        (default = not set)
 165
 166   n. "dcolor"
 167        Use directcolor visual instead of truecolor for pixel depths greater
 168        than 8 bpp.  Useful for color tuning, such as gamma control.
 169
 170        Recommendation: do not set
 171        (default = not set)
 172
 173   o. <xres>x<yres>[-<bpp>][@<refresh>]
 174        The driver will now accept specification of boot mode option.  If this
 175        is specified, the options 'xres' and 'yres' will be ignored. See
 176        Documentation/fb/modedb.rst for usage.
 177
 178D. Kernel booting
 179=================
 180
 181Separate each option/option-pair by commas (,) and the option from its value
 182with a colon (:) as in the following::
 183
 184        video=i810fb:option1,option2:value2
 185
 186Sample Usage
 187------------
 188
 189In /etc/lilo.conf, add the line::
 190
 191  append="video=i810fb:vram:2,xres:1024,yres:768,bpp:8,hsync1:30,hsync2:55, \
 192          vsync1:50,vsync2:85,accel,mtrr"
 193
 194This will initialize the framebuffer to 1024x768 at 8bpp.  The framebuffer
 195will use 2 MB of System RAM. MTRR support will be enabled. The refresh rate
 196will be computed based on the hsync1/hsync2 and vsync1/vsync2 values.
 197
 198IMPORTANT:
 199  You must include hsync1, hsync2, vsync1 and vsync2 to enable video modes
 200  better than 640x480 at 60Hz. HOWEVER, if your chipset/display combination
 201  supports I2C and has an EDID block, you can safely exclude hsync1, hsync2,
 202  vsync1 and vsync2 parameters.  These parameters will be taken from the EDID
 203  block.
 204
 205E.  Module options
 206==================
 207
 208The module parameters are essentially similar to the kernel
 209parameters. The main difference is that you need to include a Boolean value
 210(1 for TRUE, and 0 for FALSE) for those options which don't need a value.
 211
 212Example, to enable MTRR, include "mtrr=1".
 213
 214Sample Usage
 215------------
 216
 217Using the same setup as described above, load the module like this::
 218
 219        modprobe i810fb vram=2 xres=1024 bpp=8 hsync1=30 hsync2=55 vsync1=50 \
 220                 vsync2=85 accel=1 mtrr=1
 221
 222Or just add the following to a configuration file in /etc/modprobe.d/::
 223
 224        options i810fb vram=2 xres=1024 bpp=16 hsync1=30 hsync2=55 vsync1=50 \
 225        vsync2=85 accel=1 mtrr=1
 226
 227and just do a::
 228
 229        modprobe i810fb
 230
 231
 232F.  Setup
 233=========
 234
 235        a. Do your usual method of configuring the kernel
 236
 237           make menuconfig/xconfig/config
 238
 239        b. Under "Code maturity level options" enable "Prompt for development
 240           and/or incomplete code/drivers".
 241
 242        c. Enable agpgart support for the Intel 810/815 on-board graphics.
 243           This is required.  The option is under "Character Devices".
 244
 245        d. Under "Graphics Support", select "Intel 810/815" either statically
 246           or as a module.  Choose "use VESA Generalized Timing Formula" if
 247           you need to maximize the capability of your display.  To be on the
 248           safe side, you can leave this unselected.
 249
 250        e. If you want support for DDC/I2C probing (Plug and Play Displays),
 251           set 'Enable DDC Support' to 'y'. To make this option appear, set
 252           'use VESA Generalized Timing Formula' to 'y'.
 253
 254        f. If you want a framebuffer console, enable it under "Console
 255           Drivers".
 256
 257        g. Compile your kernel.
 258
 259        h. Load the driver as described in sections D and E.
 260
 261        i.  Try the DirectFB (http://www.directfb.org) + the i810 gfxdriver
 262            patch to see the chipset in action (or inaction :-).
 263
 264G.  Acknowledgment:
 265===================
 266
 267        1.  Geert Uytterhoeven - his excellent howto and the virtual
 268            framebuffer driver code made this possible.
 269
 270        2.  Jeff Hartmann for his agpgart code.
 271
 272        3.  The X developers.  Insights were provided just by reading the
 273            XFree86 source code.
 274
 275        4.  Intel(c).  For this value-oriented chipset driver and for
 276            providing documentation.
 277
 278        5. Matt Sottek.  His inputs and ideas  helped in making some
 279           optimizations possible.
 280
 281H.  Home Page:
 282==============
 283
 284        A more complete, and probably updated information is provided at
 285        http://i810fb.sourceforge.net.
 286
 287Tony
 288