1 Intel 810/815 Framebuffer driver
2 Tony Daplas <adaplas@pol.net>
3 http://i810fb.sourceforge.net
7 First Released: July 2001
8 Last Update: September 12, 2005
9 ================================================================
12 This is a framebuffer driver for various Intel 810/815 compatible
13 graphics devices. These would include:
18 Intel 815 Internal graphics only, 100Mhz FSB
19 Intel 815 Internal graphics only
20 Intel 815 Internal graphics and AGP
24 - Choice of using Discrete Video Timings, VESA Generalized Timing
25 Formula, or a framebuffer specific database to set the video mode
27 - Supports a variable range of horizontal and vertical resolution, and
28 vertical refresh rates if the VESA Generalized Timing Formula is
31 - Supports color depths of 8, 16, 24 and 32 bits per pixel
33 - Supports pseudocolor, directcolor, or truecolor visuals
35 - Full and optimized hardware acceleration at 8, 16 and 24 bpp
37 - Robust video state save and restore
41 - Utilizes user-entered monitor specifications to automatically
42 calculate required video mode parameters.
44 - Can concurrently run with xfree86 running with native i810 drivers
46 - Hardware Cursor Support
48 - Supports EDID probing either by DDC/I2C or through the BIOS
50 C. List of available options
53 enables the i810 driver
55 Recommendation: required
58 select horizontal resolution in pixels. (This parameter will be
59 ignored if 'mode_option' is specified. See 'o' below).
61 Recommendation: user preference
65 select vertical resolution in scanlines. If Discrete Video Timings
66 is enabled, this will be ignored and computed as 3*xres/4. (This
67 parameter will be ignored if 'mode_option' is specified. See 'o'
70 Recommendation: user preference
74 select virtual vertical resolution in scanlines. If (0) or none
75 is specified, this will be computed against maximum available memory.
77 Recommendation: do not set
81 select amount of system RAM in MB to allocate for the video memory
83 Recommendation: 1 - 4 MB.
87 select desired pixel depth
92 g. "hsync1/hsync2:<value>"
93 select the minimum and maximum Horizontal Sync Frequency of the
94 monitor in KHz. If a using a fixed frequency monitor, hsync1 must
95 be equal to hsync2. If EDID probing is successful, these will be
96 ignored and values will be taken from the EDID block.
98 Recommendation: check monitor manual for correct values
101 h. "vsync1/vsync2:<value>"
102 select the minimum and maximum Vertical Sync Frequency of the monitor
103 in Hz. You can also use this option to lock your monitor's refresh
104 rate. If EDID probing is successful, these will be ignored and values
105 will be taken from the EDID block.
107 Recommendation: check monitor manual for correct values
110 IMPORTANT: If you need to clamp your timings, try to give some
111 leeway for computational errors (over/underflows). Example: if
112 using vsync1/vsync2 = 60/60, make sure hsync1/hsync2 has at least
113 a 1 unit difference, and vice versa.
116 select at what offset in MB of the logical memory to allocate the
117 framebuffer memory. The intent is to avoid the memory blocks
118 used by standard graphics applications (XFree86). The default
119 offset (16 MB for a 64MB aperture, 8 MB for a 32MB aperture) will
120 avoid XFree86's usage and allows up to 7MB/15MB of framebuffer
121 memory. Depending on your usage, adjust the value up or down,
122 (0 for maximum usage, 31/63 MB for the least amount). Note, an
123 arbitrary setting may conflict with XFree86.
125 Recommendation: do not set
126 (default = 8 or 16 MB)
129 enable text acceleration. This can be enabled/reenabled anytime
130 by using 'fbset -accel true/false'.
132 Recommendation: enable
136 enable MTRR. This allows data transfers to the framebuffer memory
137 to occur in bursts which can significantly increase performance.
138 Not very helpful with the i810/i815 because of 'shared memory'.
140 Recommendation: do not set
144 if specified, secondary/external VGA output will always be enabled.
145 Useful if the BIOS turns off the VGA port when no monitor is attached.
146 The external VGA monitor can then be attached without rebooting.
148 Recommendation: do not set
152 Forces the hardware engine to do a "sync" or wait for the hardware
153 to finish before starting another instruction. This will produce a
154 more stable setup, but will be slower.
156 Recommendation: do not set
160 Use directcolor visual instead of truecolor for pixel depths greater
161 than 8 bpp. Useful for color tuning, such as gamma control.
163 Recommendation: do not set
165 o. <xres>x<yres>[-<bpp>][@<refresh>]
166 The driver will now accept specification of boot mode option. If this
167 is specified, the options 'xres' and 'yres' will be ignored. See
168 Documentation/fb/modedb.txt for usage.
172 Separate each option/option-pair by commas (,) and the option from its value
173 with a colon (:) as in the following:
175 video=i810fb:option1,option2:value2
180 In /etc/lilo.conf, add the line:
182 append="video=i810fb:vram:2,xres:1024,yres:768,bpp:8,hsync1:30,hsync2:55, \
183 vsync1:50,vsync2:85,accel,mtrr"
185 This will initialize the framebuffer to 1024x768 at 8bpp. The framebuffer
186 will use 2 MB of System RAM. MTRR support will be enabled. The refresh rate
187 will be computed based on the hsync1/hsync2 and vsync1/vsync2 values.
190 You must include hsync1, hsync2, vsync1 and vsync2 to enable video modes
191 better than 640x480 at 60Hz. HOWEVER, if your chipset/display combination
192 supports I2C and has an EDID block, you can safely exclude hsync1, hsync2,
193 vsync1 and vsync2 parameters. These parameters will be taken from the EDID
198 The module parameters are essentially similar to the kernel
199 parameters. The main difference is that you need to include a Boolean value
200 (1 for TRUE, and 0 for FALSE) for those options which don't need a value.
202 Example, to enable MTRR, include "mtrr=1".
207 Using the same setup as described above, load the module like this:
209 modprobe i810fb vram=2 xres=1024 bpp=8 hsync1=30 hsync2=55 vsync1=50 \
210 vsync2=85 accel=1 mtrr=1
212 Or just add the following to /etc/modprobe.conf
214 options i810fb vram=2 xres=1024 bpp=16 hsync1=30 hsync2=55 vsync1=50 \
215 vsync2=85 accel=1 mtrr=1
224 a. Do your usual method of configuring the kernel.
226 make menuconfig/xconfig/config
228 b. Under "Code Maturity Options", enable "Prompt for experimental/
229 incomplete code/drivers".
231 c. Enable agpgart support for the Intel 810/815 on-board graphics.
232 This is required. The option is under "Character Devices"
234 d. Under "Graphics Support", select "Intel 810/815" either statically
235 or as a module. Choose "use VESA Generalized Timing Formula" if
236 you need to maximize the capability of your display. To be on the
237 safe side, you can leave this unselected.
239 e. If you want support for DDC/I2C probing (Plug and Play Displays),
240 set 'Enable DDC Support' to 'y'. To make this option appear, set
241 'use VESA Generalized Timing Formula' to 'y'.
243 f. If you want a framebuffer console, enable it under "Console
246 g. Compile your kernel.
248 h. Load the driver as described in section D and E.
250 i. Try the DirectFB (http://www.directfb.org) + the i810 gfxdriver
251 patch to see the chipset in action (or inaction :-).
255 1. Geert Uytterhoeven - his excellent howto and the virtual
256 framebuffer driver code made this possible.
258 2. Jeff Hartmann for his agpgart code.
260 3. The X developers. Insights were provided just by reading the
263 4. Intel(c). For this value-oriented chipset driver and for
264 providing documentation.
266 5. Matt Sottek. His inputs and ideas helped in making some
267 optimizations possible.
271 A more complete, and probably updated information is provided at
272 http://i810fb.sourceforge.net.
274 ###########################