intel810.rst 8.4 KB

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