1 ================================
2 Intel 810/815 Framebuffer driver
3 ================================
5 Tony Daplas <adaplas@pol.net>
7 http://i810fb.sourceforge.net
11 First Released: July 2001
12 Last Update: September 12, 2005
17 This is a framebuffer driver for various Intel 810/815 compatible
18 graphics devices. These include:
23 - Intel 815 Internal graphics only, 100Mhz FSB
24 - Intel 815 Internal graphics only
25 - Intel 815 Internal graphics and AGP
30 - Choice of using Discrete Video Timings, VESA Generalized Timing
31 Formula, or a framebuffer specific database to set the video mode
33 - Supports a variable range of horizontal and vertical resolution and
34 vertical refresh rates if the VESA Generalized Timing Formula is
37 - Supports color depths of 8, 16, 24 and 32 bits per pixel
39 - Supports pseudocolor, directcolor, or truecolor visuals
41 - Full and optimized hardware acceleration at 8, 16 and 24 bpp
43 - Robust video state save and restore
47 - Utilizes user-entered monitor specifications to automatically
48 calculate required video mode parameters.
50 - Can concurrently run with xfree86 running with native i810 drivers
52 - Hardware Cursor Support
54 - Supports EDID probing either by DDC/I2C or through the BIOS
56 C. List of available options
57 =============================
60 enables the i810 driver
62 Recommendation: required
65 select horizontal resolution in pixels. (This parameter will be
66 ignored if 'mode_option' is specified. See 'o' below).
68 Recommendation: user preference
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'
77 Recommendation: user preference
81 select virtual vertical resolution in scanlines. If (0) or none
82 is specified, this will be computed against maximum available memory.
84 Recommendation: do not set
88 select amount of system RAM in MB to allocate for the video memory
90 Recommendation: 1 - 4 MB.
94 select desired pixel depth
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.
105 Recommendation: check monitor manual for correct values
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.
114 Recommendation: check monitor manual for correct values
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.
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.
132 Recommendation: do not set
133 (default = 8 or 16 MB)
136 enable text acceleration. This can be enabled/reenabled anytime
137 by using 'fbset -accel true/false'.
139 Recommendation: enable
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'.
147 Recommendation: do not set
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.
155 Recommendation: do not set
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.
163 Recommendation: do not set
167 Use directcolor visual instead of truecolor for pixel depths greater
168 than 8 bpp. Useful for color tuning, such as gamma control.
170 Recommendation: do not set
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.
181 Separate each option/option-pair by commas (,) and the option from its value
182 with a colon (:) as in the following::
184 video=i810fb:option1,option2:value2
189 In /etc/lilo.conf, add the line::
191 append="video=i810fb:vram:2,xres:1024,yres:768,bpp:8,hsync1:30,hsync2:55, \
192 vsync1:50,vsync2:85,accel,mtrr"
194 This will initialize the framebuffer to 1024x768 at 8bpp. The framebuffer
195 will use 2 MB of System RAM. MTRR support will be enabled. The refresh rate
196 will be computed based on the hsync1/hsync2 and vsync1/vsync2 values.
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
208 The module parameters are essentially similar to the kernel
209 parameters. 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.
212 Example, to enable MTRR, include "mtrr=1".
217 Using the same setup as described above, load the module like this::
219 modprobe i810fb vram=2 xres=1024 bpp=8 hsync1=30 hsync2=55 vsync1=50 \
220 vsync2=85 accel=1 mtrr=1
222 Or just add the following to a configuration file in /etc/modprobe.d/::
224 options i810fb vram=2 xres=1024 bpp=16 hsync1=30 hsync2=55 vsync1=50 \
225 vsync2=85 accel=1 mtrr=1
235 a. Do your usual method of configuring the kernel
237 make menuconfig/xconfig/config
239 b. Under "Code maturity level options" enable "Prompt for development
240 and/or incomplete code/drivers".
242 c. Enable agpgart support for the Intel 810/815 on-board graphics.
243 This is required. The option is under "Character Devices".
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.
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'.
254 f. If you want a framebuffer console, enable it under "Console
257 g. Compile your kernel.
259 h. Load the driver as described in sections D and E.
261 i. Try the DirectFB (http://www.directfb.org) + the i810 gfxdriver
262 patch to see the chipset in action (or inaction :-).
267 1. Geert Uytterhoeven - his excellent howto and the virtual
268 framebuffer driver code made this possible.
270 2. Jeff Hartmann for his agpgart code.
272 3. The X developers. Insights were provided just by reading the
275 4. Intel(c). For this value-oriented chipset driver and for
276 providing documentation.
278 5. Matt Sottek. His inputs and ideas helped in making some
279 optimizations possible.
284 A more complete, and probably updated information is provided at
285 http://i810fb.sourceforge.net.