Blame view

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