Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) ==========================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) uvesafb - A Generic Driver for VBE2+ compliant video cards
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) ==========================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) 1. Requirements
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) ---------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) uvesafb should work with any video card that has a Video BIOS compliant
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) with the VBE 2.0 standard.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) Unlike other drivers, uvesafb makes use of a userspace helper called
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) v86d.  v86d is used to run the x86 Video BIOS code in a simulated and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) controlled environment.  This allows uvesafb to function on arches other
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) than x86.  Check the v86d documentation for a list of currently supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) arches.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) v86d source code can be downloaded from the following website:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19)   https://github.com/mjanusz/v86d
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) Please refer to the v86d documentation for detailed configuration and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) installation instructions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) Note that the v86d userspace helper has to be available at all times in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) order for uvesafb to work properly.  If you want to use uvesafb during
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) early boot, you will have to include v86d into an initramfs image, and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) either compile it into the kernel or use it as an initrd.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) 2. Caveats and limitations
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) --------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) uvesafb is a _generic_ driver which supports a wide variety of video
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) cards, but which is ultimately limited by the Video BIOS interface.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) The most important limitations are:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) - Lack of any type of acceleration.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) - A strict and limited set of supported video modes.  Often the native
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38)   or most optimal resolution/refresh rate for your setup will not work
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39)   with uvesafb, simply because the Video BIOS doesn't support the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40)   video mode you want to use.  This can be especially painful with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41)   widescreen panels, where native video modes don't have the 4:3 aspect
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42)   ratio, which is what most BIOS-es are limited to.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) - Adjusting the refresh rate is only possible with a VBE 3.0 compliant
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44)   Video BIOS.  Note that many nVidia Video BIOS-es claim to be VBE 3.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45)   compliant, while they simply ignore any refresh rate settings.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 3. Configuration
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) ----------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) uvesafb can be compiled either as a module, or directly into the kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) In both cases it supports the same set of configuration options, which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) are either given on the kernel command line or as module parameters, e.g.::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54)  video=uvesafb:1024x768-32,mtrr:3,ywrap (compiled into the kernel)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56)  # modprobe uvesafb mode_option=1024x768-32 mtrr=3 scroll=ywrap  (module)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) Accepted options:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) ======= =========================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) ypan    Enable display panning using the VESA protected mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 	interface.  The visible screen is just a window of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 	video memory, console scrolling is done by changing the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 	start of the window.  This option is available on x86
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 	only and is the default option on that architecture.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) ywrap   Same as ypan, but assumes your gfx board can wrap-around
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 	the video memory (i.e. starts reading from top if it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 	reaches the end of video memory).  Faster than ypan.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 	Available on x86 only.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) redraw  Scroll by redrawing the affected part of the screen, this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 	is the default on non-x86.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) ======= =========================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) (If you're using uvesafb as a module, the above three options are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) used a parameter of the scroll option, e.g. scroll=ypan.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) =========== ====================================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) vgapal      Use the standard VGA registers for palette changes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) pmipal      Use the protected mode interface for palette changes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83)             This is the default if the protected mode interface is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84)             available.  Available on x86 only.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) mtrr:n      Setup memory type range registers for the framebuffer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87)             where n:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89)                 - 0 - disabled (equivalent to nomtrr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90)                 - 3 - write-combining (default)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92)             Values other than 0 and 3 will result in a warning and will be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93)             treated just like 3.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) nomtrr      Do not use memory type range registers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) vremap:n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98)             Remap 'n' MiB of video RAM.  If 0 or not specified, remap memory
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99)             according to video mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) vtotal:n    If the video BIOS of your card incorrectly determines the total
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)             amount of video RAM, use this option to override the BIOS (in MiB).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) <mode>      The mode you want to set, in the standard modedb format.  Refer to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105)             modedb.txt for a detailed description.  When uvesafb is compiled as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106)             a module, the mode string should be provided as a value of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107)             'mode_option' option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) vbemode:x   Force the use of VBE mode x.  The mode will only be set if it's
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110)             found in the VBE-provided list of supported modes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111)             NOTE: The mode number 'x' should be specified in VESA mode number
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)             notation, not the Linux kernel one (eg. 257 instead of 769).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113)             HINT: If you use this option because normal <mode> parameter does
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114)             not work for you and you use a X server, you'll probably want to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115)             set the 'nocrtc' option to ensure that the video mode is properly
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116)             restored after console <-> X switches.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) nocrtc      Do not use CRTC timings while setting the video mode.  This option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119)             has any effect only if the Video BIOS is VBE 3.0 compliant.  Use it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)             if you have problems with modes set the standard way.  Note that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)             using this option implies that any refresh rate adjustments will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122)             be ignored and the refresh rate will stay at your BIOS default
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123)             (60 Hz).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) noedid      Do not try to fetch and use EDID-provided modes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) noblank     Disable hardware blanking.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) v86d:path   Set path to the v86d executable. This option is only available as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)             a module parameter, and not as a part of the video= string.  If you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131)             need to use it and have uvesafb built into the kernel, use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132)             uvesafb.v86d="path".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) =========== ====================================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) Additionally, the following parameters may be provided.  They all override the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) EDID-provided values and BIOS defaults.  Refer to your monitor's specs to get
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) the correct values for maxhf, maxvf and maxclk for your hardware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) =========== ======================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) maxhf:n     Maximum horizontal frequency (in kHz).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) maxvf:n     Maximum vertical frequency (in Hz).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) maxclk:n    Maximum pixel clock (in MHz).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) =========== ======================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) 4. The sysfs interface
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) ----------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) uvesafb provides several sysfs nodes for configurable parameters and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) additional information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) Driver attributes:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) /sys/bus/platform/drivers/uvesafb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154)   v86d
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155)     (default: /sbin/v86d)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157)     Path to the v86d executable. v86d is started by uvesafb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158)     if an instance of the daemon isn't already running.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) Device attributes:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) /sys/bus/platform/drivers/uvesafb/uvesafb.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163)   nocrtc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164)     Use the default refresh rate (60 Hz) if set to 1.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166)   oem_product_name, oem_product_rev, oem_string, oem_vendor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167)     Information about the card and its maker.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169)   vbe_modes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170)     A list of video modes supported by the Video BIOS along with their
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171)     VBE mode numbers in hex.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173)   vbe_version
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174)     A BCD value indicating the implemented VBE standard.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) 5. Miscellaneous
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) ----------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) Uvesafb will set a video mode with the default refresh rate and timings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) from the Video BIOS if you set pixclock to 0 in fb_var_screeninfo.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184)  Michal Januszewski <spock@gentoo.org>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186)  Last updated: 2017-10-10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188)  Documentation of the uvesafb options is loosely based on vesafb.txt.