usage 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. CyBlaFB is a framebuffer driver for the Cyberblade/i1 graphics core integrated
  2. into the VIA Apollo PLE133 (aka vt8601) south bridge. It is developed and
  3. tested using a VIA EPIA 5000 board.
  4. Cyblafb - compiled into the kernel or as a module?
  5. ==================================================
  6. You might compile cyblafb either as a module or compile it permanently into the
  7. kernel.
  8. Unless you have a real reason to do so you should not compile both vesafb and
  9. cyblafb permanently into the kernel. It's possible and it helps during the
  10. developement cycle, but it's useless and will at least block some otherwise
  11. usefull memory for ordinary users.
  12. Selecting Modes
  13. ===============
  14. Startup Mode
  15. ============
  16. First of all, you might use the "vga=???" boot parameter as it is
  17. documented in vesafb.txt and svga.txt. Cyblafb will detect the video
  18. mode selected and will use the geometry and timings found by
  19. inspecting the hardware registers.
  20. video=cyblafb vga=0x317
  21. Alternatively you might use a combination of the mode, ref and bpp
  22. parameters. If you compiled the driver into the kernel, add something
  23. like this to the kernel command line:
  24. video=cyblafb:1280x1024,bpp=16,ref=50 ...
  25. If you compiled the driver as a module, the same mode would be
  26. selected by the following command:
  27. modprobe cyblafb mode=1280x1024 bpp=16 ref=50 ...
  28. None of the modes possible to select as startup modes are affected by
  29. the problems described at the end of the next subsection.
  30. Mode changes using fbset
  31. ========================
  32. You might use fbset to change the video mode, see "man fbset". Cyblafb
  33. generally does assume that you know what you are doing. But it does
  34. some checks, especially those that are needed to prevent you from
  35. damaging your hardware.
  36. - only 8, 16, 24 and 32 bpp video modes are accepted
  37. - interlaced video modes are not accepted
  38. - double scan video modes are not accepted
  39. - if a flat panel is found, cyblafb does not allow you
  40. to program a resolution higher than the physical
  41. resolution of the flat panel monitor
  42. - cyblafb does not allow xres to differ from xres_virtual
  43. - cyblafb does not allow vclk to exceed 230 MHz. As 32 bpp
  44. and (currently) 24 bit modes use a doubled vclk internally,
  45. the dotclock limit as seen by fbset is 115 MHz for those
  46. modes and 230 MHz for 8 and 16 bpp modes.
  47. Any request that violates the rules given above will be ignored and
  48. fbset will return an error.
  49. If you program a virtual y resolution higher than the hardware limit,
  50. cyblafb will silently decrease that value to the highest possible
  51. value.
  52. Attempts to disable acceleration are ignored.
  53. Some video modes that should work do not work as expected. If you use
  54. the standard fb.modes, fbset 640x480-60 will program that mode, but
  55. you will see a vertical area, about two characters wide, with only
  56. much darker characters than the other characters on the screen.
  57. Cyblafb does allow that mode to be set, as it does not violate the
  58. official specifications. It would need a lot of code to reliably sort
  59. out all invalid modes, playing around with the margin values will
  60. give a valid mode quickly. And if cyblafb would detect such an invalid
  61. mode, should it silently alter the requested values or should it
  62. report an error? Both options have some pros and cons. As stated
  63. above, none of the startup modes are affected, and if you set
  64. verbosity to 1 or higher, cyblafb will print the fbset command that
  65. would be needed to program that mode using fbset.
  66. Other Parameters
  67. ================
  68. crt don't autodetect, assume monitor connected to
  69. standard VGA connector
  70. fp don't autodetect, assume flat panel display
  71. connected to flat panel monitor interface
  72. nativex inform driver about native x resolution of
  73. flat panel monitor connected to special
  74. interface (should be autodetected)
  75. stretch stretch image to adapt low resolution modes to
  76. higer resolutions of flat panel monitors
  77. connected to special interface
  78. center center image to adapt low resolution modes to
  79. higer resolutions of flat panel monitors
  80. connected to special interface
  81. memsize use if autodetected memsize is wrong ...
  82. should never be necessary
  83. nopcirr disable PCI read retry
  84. nopciwr disable PCI write retry
  85. nopcirb disable PCI read bursts
  86. nopciwb disable PCI write bursts
  87. bpp bpp for specified modes
  88. valid values: 8 || 16 || 24 || 32
  89. ref refresh rate for specified mode
  90. valid values: 50 <= ref <= 85
  91. mode 640x480 or 800x600 or 1024x768 or 1280x1024
  92. if not specified, the startup mode will be detected
  93. and used, so you might also use the vga=??? parameter
  94. described in vesafb.txt. If you do not specify a mode,
  95. bpp and ref parameters are ignored.
  96. verbosity 0 is the default, increase to at least 2 for every
  97. bug report!
  98. vesafb allows cyblafb to be loaded after vesafb has been
  99. loaded. See sections "Module unloading ...".
  100. Development hints
  101. =================
  102. It's much faster do compile a module and to load the new version after
  103. unloading the old module than to compile a new kernel and to reboot. So if you
  104. try to work on cyblafb, it might be a good idea to use cyblafb as a module.
  105. In real life, fast often means dangerous, and that's also the case here. If
  106. you introduce a serious bug when cyblafb is compiled into the kernel, the
  107. kernel will lock or oops with a high probability before the file system is
  108. mounted, and the danger for your data is low. If you load a broken own version
  109. of cyblafb on a running system, the danger for the integrity of the file
  110. system is much higher as you might need a hard reset afterwards. Decide
  111. yourself.
  112. Module unloading, the vfb method
  113. ================================
  114. If you want to unload/reload cyblafb using the virtual framebuffer, you need
  115. to enable vfb support in the kernel first. After that, load the modules as
  116. shown below:
  117. modprobe vfb vfb_enable=1
  118. modprobe fbcon
  119. modprobe cyblafb
  120. fbset -fb /dev/fb1 1280x1024-60 -vyres 2662
  121. con2fb /dev/fb1 /dev/tty1
  122. ...
  123. If you now made some changes to cyblafb and want to reload it, you might do it
  124. as show below:
  125. con2fb /dev/fb0 /dev/tty1
  126. ...
  127. rmmod cyblafb
  128. modprobe cyblafb
  129. con2fb /dev/fb1 /dev/tty1
  130. ...
  131. Of course, you might choose another mode, and most certainly you also want to
  132. map some other /dev/tty* to the real framebuffer device. You might also choose
  133. to compile fbcon as a kernel module or place it permanently in the kernel.
  134. I do not know of any way to unload fbcon, and fbcon will prevent the
  135. framebuffer device loaded first from unloading. [If there is a way, then
  136. please add a description here!]
  137. Module unloading, the vesafb method
  138. ===================================
  139. Configure the kernel:
  140. <*> Support for frame buffer devices
  141. [*] VESA VGA graphics support
  142. <M> Cyberblade/i1 support
  143. Add e.g. "video=vesafb:ypan vga=0x307" to the kernel parameters. The ypan
  144. parameter is important, choose any vga parameter you like as long as it is
  145. a graphics mode.
  146. After booting, load cyblafb without any mode and bpp parameter and assign
  147. cyblafb to individual ttys using con2fb, e.g.:
  148. modprobe cyblafb vesafb=1
  149. con2fb /dev/fb1 /dev/tty1
  150. Unloading cyblafb works without problems after you assign vesafb to all
  151. ttys again, e.g.:
  152. con2fb /dev/fb0 /dev/tty1
  153. rmmod cyblafb