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