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