SPDX-License-Identifier: GPL-2.0+
/*
 * (C) Copyright 2000
 * Paolo Scaffardi, AIRVENT SAM s.p.a - RIMINI(ITALY), arsenio@tin.it
 */

"video-mode" environment variable
=================================

The 'video-mode' environment variable can be used to enable and configure
some video drivers.  The format matches the video= command-line option used
for Linux:

	video-mode=<driver>:<xres>x<yres>-<depth>@<freq><,option=string>

	<driver>	The video driver name, ignored by U-Boot
	<xres>		The X resolution (in pixels) to use.
	<yres>		The Y resolution (in pixels) to use.
	<depth>		The color depth (in bits) to use.
	<freq>		The frequency (in Hz) to use.
	<options>	A comma-separated list of device-specific options


U-Boot MPC8xx video controller driver
=====================================

The driver has been tested with the following configurations:

- MPC823FADS with AD7176 on a PAL TV (YCbYCr)	- arsenio@tin.it

Example: video-mode=fslfb:1280x1024-32@60,monitor=dvi


U-Boot sunxi video controller driver
====================================

U-Boot supports hdmi and lcd output on Allwinner sunxi SoCs, lcd output
requires the CONFIG_VIDEO_LCD_MODE Kconfig value to be set.

The sunxi U-Boot driver supports the following video-mode options:

- monitor=[none|dvi|hdmi|lcd|vga|composite-*] - Select the video output to use
 none:     Disable video output.
 dvi/hdmi: Selects output over the hdmi connector with dvi resp. hdmi output
           format, if edid is used the format is automatically selected.
 lcd:      Selects video output to a LCD screen.
 vga:      Selects video output over the VGA connector.
 composite-pal/composite-ntsc/composite-pal-m/composite-pal-nc:
           Selects composite video output, note the specified resolution is
           ignored with composite video output.
 Defaults to monitor=dvi.

- hpd=[0|1] - Enable use of the hdmi HotPlug Detect feature
 0: Disabled. Configure dvi/hdmi output even if no cable is detected
 1: Enabled.  Fallback to the lcd / vga / none in that order (if available)
 Defaults to hpd=1.

- hpd_delay=<int> - How long to wait for the hdmi HPD signal in milliseconds
 When the monitor and the board power up at the same time, it may take some
 time for the monitor to assert the HPD signal. This configures how long to
 wait for the HPD signal before assuming no cable is connected.
 Defaults to hpd_delay=500.

- edid=[0|1] - Enable use of DDC + EDID to get monitor info
 0: Disabled.
 1: Enabled. If valid EDID info was read from the monitor the EDID info will
    overrides the xres, yres and refresh from the video-mode env. variable.
 Defaults to edid=1.

- overscan_x/overscan_y=<int> - Set x/y overscan value
 This configures a black border on the left and right resp. top and bottom
 to deal with overscanning displays. Defaults to overscan_x=32 and
 overscan_y=20 for composite monitors, 0 for other monitors.

For example to always use the hdmi connector, even if no cable is inserted,
using edid info when available and otherwise initalizing it at 1024x768@60Hz,
use: "setenv video-mode sunxi:1024x768-24@60,monitor=dvi,hpd=0,edid=1".


TrueType fonts
--------------

U-Boot supports the use of antialiased TrueType fonts on some platforms. This
has been tested in x86, ARMv7 and sandbox.

To enable this, select CONFIG_CONSOLE_TRUETYPE. You can choose between several
fonts, with CONSOLE_TRUETYPE_NIMBUS being the default.

TrueType support requires floating point at present. On ARMv7 platforms you
need to disable use of the private libgcc. You can do this by disabling
CONFIG_USE_PRIVATE_LIBGCC. See chromebook_jerry for an example. Note that this
increases U-Boot's size by about 70KB at present.

On ARM you should also make sure your toolchain supports hardfp. This is
normally given in the name of your toolchain, e.g. arm-linux-gnueabihf (hf
means hardware floating point). You can also run gcc with -v to see if it has
this option.
