|
@@ -0,0 +1,188 @@
|
|
|
+
|
|
|
+uvesafb - A Generic Driver for VBE2+ compliant video cards
|
|
|
+==========================================================
|
|
|
+
|
|
|
+1. Requirements
|
|
|
+---------------
|
|
|
+
|
|
|
+uvesafb should work with any video card that has a Video BIOS compliant
|
|
|
+with the VBE 2.0 standard.
|
|
|
+
|
|
|
+Unlike other drivers, uvesafb makes use of a userspace helper called
|
|
|
+v86d. v86d is used to run the x86 Video BIOS code in a simulated and
|
|
|
+controlled environment. This allows uvesafb to function on arches other
|
|
|
+than x86. Check the v86d documentation for a list of currently supported
|
|
|
+arches.
|
|
|
+
|
|
|
+v86d source code can be downloaded from the following website:
|
|
|
+ http://dev.gentoo.org/~spock/projects/uvesafb
|
|
|
+
|
|
|
+Please refer to the v86d documentation for detailed configuration and
|
|
|
+installation instructions.
|
|
|
+
|
|
|
+Note that the v86d userspace helper has to be available at all times in
|
|
|
+order for uvesafb to work properly. If you want to use uvesafb during
|
|
|
+early boot, you will have to include v86d into an initramfs image, and
|
|
|
+either compile it into the kernel or use it as an initrd.
|
|
|
+
|
|
|
+2. Caveats and limitations
|
|
|
+--------------------------
|
|
|
+
|
|
|
+uvesafb is a _generic_ driver which supports a wide variety of video
|
|
|
+cards, but which is ultimately limited by the Video BIOS interface.
|
|
|
+The most important limitations are:
|
|
|
+
|
|
|
+- Lack of any type of acceleration.
|
|
|
+- A strict and limited set of supported video modes. Often the native
|
|
|
+ or most optimal resolution/refresh rate for your setup will not work
|
|
|
+ with uvesafb, simply because the Video BIOS doesn't support the
|
|
|
+ video mode you want to use. This can be especially painful with
|
|
|
+ widescreen panels, where native video modes don't have the 4:3 aspect
|
|
|
+ ratio, which is what most BIOS-es are limited to.
|
|
|
+- Adjusting the refresh rate is only possible with a VBE 3.0 compliant
|
|
|
+ Video BIOS. Note that many nVidia Video BIOS-es claim to be VBE 3.0
|
|
|
+ compliant, while they simply ignore any refresh rate settings.
|
|
|
+
|
|
|
+3. Configuration
|
|
|
+----------------
|
|
|
+
|
|
|
+uvesafb can be compiled either as a module, or directly into the kernel.
|
|
|
+In both cases it supports the same set of configuration options, which
|
|
|
+are either given on the kernel command line or as module parameters, e.g.:
|
|
|
+
|
|
|
+ video=uvesafb:1024x768-32,mtrr:3,ywrap (compiled into the kernel)
|
|
|
+
|
|
|
+ # modprobe uvesafb mode=1024x768-32 mtrr=3 scroll=ywrap (module)
|
|
|
+
|
|
|
+Accepted options:
|
|
|
+
|
|
|
+ypan Enable display panning using the VESA protected mode
|
|
|
+ interface. The visible screen is just a window of the
|
|
|
+ video memory, console scrolling is done by changing the
|
|
|
+ start of the window. Available on x86 only.
|
|
|
+
|
|
|
+ywrap Same as ypan, but assumes your gfx board can wrap-around
|
|
|
+ the video memory (i.e. starts reading from top if it
|
|
|
+ reaches the end of video memory). Faster than ypan.
|
|
|
+ Available on x86 only.
|
|
|
+
|
|
|
+redraw Scroll by redrawing the affected part of the screen, this
|
|
|
+ is the safe (and slow) default.
|
|
|
+
|
|
|
+(If you're using uvesafb as a module, the above three options are
|
|
|
+ used a parameter of the scroll option, e.g. scroll=ypan.)
|
|
|
+
|
|
|
+vgapal Use the standard VGA registers for palette changes.
|
|
|
+
|
|
|
+pmipal Use the protected mode interface for palette changes.
|
|
|
+ This is the default if the protected mode interface is
|
|
|
+ available. Available on x86 only.
|
|
|
+
|
|
|
+mtrr:n Setup memory type range registers for the framebuffer
|
|
|
+ where n:
|
|
|
+ 0 - disabled (equivalent to nomtrr) (default)
|
|
|
+ 1 - uncachable
|
|
|
+ 2 - write-back
|
|
|
+ 3 - write-combining
|
|
|
+ 4 - write-through
|
|
|
+
|
|
|
+ If you see the following in dmesg, choose the type that matches
|
|
|
+ the old one. In this example, use "mtrr:2".
|
|
|
+...
|
|
|
+mtrr: type mismatch for e0000000,8000000 old: write-back new: write-combining
|
|
|
+...
|
|
|
+
|
|
|
+nomtrr Do not use memory type range registers.
|
|
|
+
|
|
|
+vremap:n
|
|
|
+ Remap 'n' MiB of video RAM. If 0 or not specified, remap memory
|
|
|
+ according to video mode.
|
|
|
+
|
|
|
+vtotal:n
|
|
|
+ If the video BIOS of your card incorrectly determines the total
|
|
|
+ amount of video RAM, use this option to override the BIOS (in MiB).
|
|
|
+
|
|
|
+<mode> The mode you want to set, in the standard modedb format. Refer to
|
|
|
+ modedb.txt for a detailed description. When uvesafb is compiled as
|
|
|
+ a module, the mode string should be provided as a value of the
|
|
|
+ 'mode' option.
|
|
|
+
|
|
|
+vbemode:x
|
|
|
+ Force the use of VBE mode x. The mode will only be set if it's
|
|
|
+ found in the VBE-provided list of supported modes.
|
|
|
+ NOTE: The mode number 'x' should be specified in VESA mode number
|
|
|
+ notation, not the Linux kernel one (eg. 257 instead of 769).
|
|
|
+ HINT: If you use this option because normal <mode> parameter does
|
|
|
+ not work for you and you use a X server, you'll probably want to
|
|
|
+ set the 'nocrtc' option to ensure that the video mode is properly
|
|
|
+ restored after console <-> X switches.
|
|
|
+
|
|
|
+nocrtc Do not use CRTC timings while setting the video mode. This option
|
|
|
+ has any effect only if the Video BIOS is VBE 3.0 compliant. Use it
|
|
|
+ if you have problems with modes set the standard way. Note that
|
|
|
+ using this option implies that any refresh rate adjustments will
|
|
|
+ be ignored and the refresh rate will stay at your BIOS default (60 Hz).
|
|
|
+
|
|
|
+noedid Do not try to fetch and use EDID-provided modes.
|
|
|
+
|
|
|
+noblank Disable hardware blanking.
|
|
|
+
|
|
|
+v86d:path
|
|
|
+ Set path to the v86d executable. This option is only available as
|
|
|
+ a module parameter, and not as a part of the video= string. If you
|
|
|
+ need to use it and have uvesafb built into the kernel, use
|
|
|
+ uvesafb.v86d="path".
|
|
|
+
|
|
|
+Additionally, the following parameters may be provided. They all override the
|
|
|
+EDID-provided values and BIOS defaults. Refer to your monitor's specs to get
|
|
|
+the correct values for maxhf, maxvf and maxclk for your hardware.
|
|
|
+
|
|
|
+maxhf:n Maximum horizontal frequency (in kHz).
|
|
|
+maxvf:n Maximum vertical frequency (in Hz).
|
|
|
+maxclk:n Maximum pixel clock (in MHz).
|
|
|
+
|
|
|
+4. The sysfs interface
|
|
|
+----------------------
|
|
|
+
|
|
|
+uvesafb provides several sysfs nodes for configurable parameters and
|
|
|
+additional information.
|
|
|
+
|
|
|
+Driver attributes:
|
|
|
+
|
|
|
+/sys/bus/platform/drivers/uvesafb
|
|
|
+ - v86d (default: /sbin/v86d)
|
|
|
+ Path to the v86d executable. v86d is started by uvesafb
|
|
|
+ if an instance of the daemon isn't already running.
|
|
|
+
|
|
|
+Device attributes:
|
|
|
+
|
|
|
+/sys/bus/platform/drivers/uvesafb/uvesafb.0
|
|
|
+ - nocrtc
|
|
|
+ Use the default refresh rate (60 Hz) if set to 1.
|
|
|
+
|
|
|
+ - oem_product_name
|
|
|
+ - oem_product_rev
|
|
|
+ - oem_string
|
|
|
+ - oem_vendor
|
|
|
+ Information about the card and its maker.
|
|
|
+
|
|
|
+ - vbe_modes
|
|
|
+ A list of video modes supported by the Video BIOS along with their
|
|
|
+ VBE mode numbers in hex.
|
|
|
+
|
|
|
+ - vbe_version
|
|
|
+ A BCD value indicating the implemented VBE standard.
|
|
|
+
|
|
|
+5. Miscellaneous
|
|
|
+----------------
|
|
|
+
|
|
|
+Uvesafb will set a video mode with the default refresh rate and timings
|
|
|
+from the Video BIOS if you set pixclock to 0 in fb_var_screeninfo.
|
|
|
+
|
|
|
+
|
|
|
+--
|
|
|
+ Michal Januszewski <spock@gentoo.org>
|
|
|
+ Last updated: 2007-06-16
|
|
|
+
|
|
|
+ Documentation of the uvesafb options is loosely based on vesafb.txt.
|
|
|
+
|