About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / fb / intel810.txt


Based on kernel version 4.16.1. Page generated on 2018-04-09 11:53 EST.

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


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog