/Documentation/fb/intel810.txt

https://bitbucket.org/evzijst/gittest · Plain Text · 272 lines · 183 code · 89 blank · 0 comment · 0 complexity · 3cb55b9113a71ca393c1c5601247a0f1 MD5 · raw file

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