1 Intel 810/815 Framebuffer driver
2 Tony Daplas <adaplas@pol.net>
3 http://i810fb.sourceforge.net
7 First Released: July 2001
8 ================================================================
11 This is a framebuffer driver for various Intel 810/815 compatible
12 graphics devices. These would include:
17 Intel 815 Internal graphics only, 100Mhz FSB
18 Intel 815 Internal graphics only
19 Intel 815 Internal graphics and AGP
23 - Choice of using Discrete Video Timings, VESA Generalized Timing
24 Formula, or a framebuffer specific database to set the video mode
26 - Supports a variable range of horizontal and vertical resolution, and
27 vertical refresh rates if the VESA Generalized Timing Formula is
30 - Supports color depths of 8, 16, 24 and 32 bits per pixel
32 - Supports pseudocolor, directcolor, or truecolor visuals
34 - Full and optimized hardware acceleration at 8, 16 and 24 bpp
36 - Robust video state save and restore
40 - Utilizes user-entered monitor specifications to automatically
41 calculate required video mode parameters.
43 - Can concurrently run with xfree86 running with native i810 drivers
45 - Hardware Cursor Support
47 C. List of available options
50 enables the i810 driver
52 Recommendation: required
55 select horizontal resolution in pixels
57 Recommendation: user preference
61 select vertical resolution in scanlines. If Discrete Video Timings
62 is enabled, this will be ignored and computed as 3*xres/4.
64 Recommendation: user preference
68 select virtual vertical resolution in scanlines. If (0) or none
69 is specified, this will be computed against maximum available memory.
71 Recommendation: do not set
75 select amount of system RAM in MB to allocate for the video memory
77 Recommendation: 1 - 4 MB.
81 select desired pixel depth
86 g. "hsync1/hsync2:<value>"
87 select the minimum and maximum Horizontal Sync Frequency of the
88 monitor in KHz. If a using a fixed frequency monitor, hsync1 must
91 Recommendation: check monitor manual for correct values
94 h. "vsync1/vsync2:<value>"
95 select the minimum and maximum Vertical Sync Frequency of the monitor
96 in Hz. You can also use this option to lock your monitor's refresh
99 Recommendation: check monitor manual for correct values
102 IMPORTANT: If you need to clamp your timings, try to give some
103 leeway for computational errors (over/underflows). Example: if
104 using vsync1/vsync2 = 60/60, make sure hsync1/hsync2 has at least
105 a 1 unit difference, and vice versa.
108 select at what offset in MB of the logical memory to allocate the
109 framebuffer memory. The intent is to avoid the memory blocks
110 used by standard graphics applications (XFree86). The default
111 offset (16 MB for a 64MB aperture, 8 MB for a 32MB aperture) will
112 avoid XFree86's usage and allows up to 7MB/15MB of framebuffer
113 memory. Depending on your usage, adjust the value up or down,
114 (0 for maximum usage, 31/63 MB for the least amount). Note, an
115 arbitrary setting may conflict with XFree86.
117 Recommendation: do not set
118 (default = 8 or 16 MB)
121 enable text acceleration. This can be enabled/reenabled anytime
122 by using 'fbset -accel true/false'.
124 Recommendation: enable
128 enable MTRR. This allows data transfers to the framebuffer memory
129 to occur in bursts which can significantly increase performance.
130 Not very helpful with the i810/i815 because of 'shared memory'.
132 Recommendation: do not set
136 if specified, secondary/external VGA output will always be enabled.
137 Useful if the BIOS turns off the VGA port when no monitor is attached.
138 The external VGA monitor can then be attached without rebooting.
140 Recommendation: do not set
144 Forces the hardware engine to do a "sync" or wait for the hardware
145 to finish before starting another instruction. This will produce a
146 more stable setup, but will be slower.
148 Recommendation: do not set
152 Use directcolor visual instead of truecolor for pixel depths greater
153 than 8 bpp. Useful for color tuning, such as gamma control.
155 Recommendation: do not set
160 Separate each option/option-pair by commas (,) and the option from its value
161 with a colon (:) as in the following:
163 video=i810fb:option1,option2:value2
168 In /etc/lilo.conf, add the line:
170 append="video=i810fb:vram:2,xres:1024,yres:768,bpp:8,hsync1:30,hsync2:55, \
171 vsync1:50,vsync2:85,accel,mtrr"
173 This will initialize the framebuffer to 1024x768 at 8bpp. The framebuffer
174 will use 2 MB of System RAM. MTRR support will be enabled. The refresh rate
175 will be computed based on the hsync1/hsync2 and vsync1/vsync2 values.
178 You must include hsync1, hsync2, vsync1 and vsync2 to enable video modes
179 better than 640x480 at 60Hz.
183 The module parameters are essentially similar to the kernel
184 parameters. The main difference is that you need to include a Boolean value
185 (1 for TRUE, and 0 for FALSE) for those options which don't need a value.
187 Example, to enable MTRR, include "mtrr=1".
192 Using the same setup as described above, load the module like this:
194 modprobe i810fb vram=2 xres=1024 bpp=8 hsync1=30 hsync2=55 vsync1=50 \
195 vsync2=85 accel=1 mtrr=1
197 Or just add the following to /etc/modprobe.conf
199 options i810fb vram=2 xres=1024 bpp=16 hsync1=30 hsync2=55 vsync1=50 \
200 vsync2=85 accel=1 mtrr=1
209 a. Do your usual method of configuring the kernel.
211 make menuconfig/xconfig/config
213 b. Under "Code Maturity Options", enable "Prompt for experimental/
214 incomplete code/drivers".
216 c. Enable agpgart support for the Intel 810/815 on-board graphics.
217 This is required. The option is under "Character Devices"
219 d. Under "Graphics Support", select "Intel 810/815" either statically
220 or as a module. Choose "use VESA GTF for video timings" if you
221 need to maximize the capability of your display. To be on the
222 safe side, you can leave this unselected.
224 e. If you want a framebuffer console, enable it under "Console
227 f. Compile your kernel.
229 g. Load the driver as described in section D and E.
232 h. If you are going to run XFree86 with its native drivers, the
233 standard XFree86 4.1.0 and 4.2.0 drivers should work as is.
234 However, there's a bug in the XFree86 i810 drivers. It attempts
235 to use XAA even when switched to the console. This will crash
236 your server. I have a fix at this site:
238 http://i810fb.sourceforge.net.
240 You can either use the patch, or just replace
242 /usr/X11R6/lib/modules/drivers/i810_drv.o
244 with the one provided at the website.
246 i. Try the DirectFB (http://www.directfb.org) + the i810 gfxdriver
247 patch to see the chipset in action (or inaction :-).
251 1. Geert Uytterhoeven - his excellent howto and the virtual
252 framebuffer driver code made this possible.
254 2. Jeff Hartmann for his agpgart code.
256 3. The X developers. Insights were provided just by reading the
259 4. Intel(c). For this value-oriented chipset driver and for
260 providing documentation.
262 5. Matt Sottek. His inputs and ideas helped in making some
263 optimizations possible.
267 A more complete, and probably updated information is provided at
268 http://i810fb.sourceforge.net.
270 ###########################