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