]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
drivers: video: Kconfig: Add configs for enabling video at SPL
authorNikhil M Jain <n-jain1@ti.com>
Thu, 20 Apr 2023 12:10:59 +0000 (17:40 +0530)
committerAnatolij Gustschin <agust@denx.de>
Mon, 24 Apr 2023 19:37:45 +0000 (21:37 +0200)
Add Kconfigs which enable the video driver and splash screen at SPL
stage only and not at u-boot proper. The existing Kconfigs from u-boot
proper were not used to make SPL splash screen independent to them.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
Reviewed-by: Devarsh Thakkar <devarsht@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
drivers/video/Kconfig

index 334d64c948515aaa7f9d0a26e414f629bbf70589..9b7abd4283536158041c59c2ed3c3d5c580ddc2c 100644 (file)
@@ -886,7 +886,7 @@ endif # SPLASH_SCREEN
 
 config VIDEO_BMP_GZIP
        bool "Gzip compressed BMP image support"
-       depends on CMD_BMP || SPLASH_SCREEN
+       depends on BMP || SPLASH_SCREEN
        help
          If this option is set, additionally to standard BMP
          images, gzipped BMP images can be displayed via the
@@ -923,4 +923,225 @@ config BMP_32BPP
 
 endif # VIDEO
 
+config SPL_VIDEO
+       bool "Enable driver model support for LCD/video"
+       depends on SPL_DM
+       help
+         The video subsystem adds a small amount of overhead to the image.
+         If this is acceptable and you have a need to use video drivers in
+         SPL, enable this option. It might provide a cleaner interface to
+         setting up video within SPL, and allows the same drivers to be
+         used as U-Boot proper.
+
+if SPL_VIDEO
+source "drivers/video/tidss/Kconfig"
+
+config SPL_VIDEO_LOGO
+       bool "Show the U-Boot logo on the display at SPL"
+       default y if !SPL_SPLASH_SCREEN
+       select SPL_VIDEO_BMP_RLE8
+       help
+         This enables showing the U-Boot logo on the display when a video
+         device is probed. It appears at the top right. The logo itself is at
+         tools/logos/u-boot_logo.bmp and looks best when the display has a
+         black background.
+
+config SPL_SPLASH_SCREEN
+       bool "Show a splash-screen image at SPL"
+       help
+         If this option is set, the environment is checked for a variable
+         "splashimage" at spl stage.
+
+config SPL_SYS_WHITE_ON_BLACK
+       bool "Display console as white on a black background at SPL"
+       help
+        Normally the display is black on a white background, Enable this
+        option to invert this, i.e. white on a black background at spl stage.
+        This can be better in low-light situations or to reduce eye strain in
+        some cases.
+
+config SPL_VIDEO_PCI_DEFAULT_FB_SIZE
+       hex "Default framebuffer size to use if no drivers request it at SPL"
+       default 0x1000000 if X86 && PCI
+       default 0 if !(X86 && PCI)
+       help
+         Generally, video drivers request the amount of memory they need for
+         the frame buffer when they are bound, by setting the size field in
+         struct video_uc_plat. That memory is then reserved for use after
+         relocation. But PCI drivers cannot be bound before relocation unless
+         they are mentioned in the devicetree.
+
+         With this value set appropriately, it is possible for PCI video
+         devices to have a framebuffer allocated by U-Boot.
+
+         Note: the framebuffer needs to be large enough to store all pixels at
+         maximum resolution. For example, at 1920 x 1200 with 32 bits per
+         pixel, 2560 * 1600 * 32 / 8 = 0xfa0000 bytes are needed.
+
+config SPL_CONSOLE_SCROLL_LINES
+       int "Number of lines to scroll the console by at SPL"
+       default 1
+       help
+         When the console need to be scrolled, this is the number of
+         lines to scroll by. It defaults to 1. Increasing this makes the
+         console jump but can help speed up operation when scrolling
+         is slow.
+
+config SPL_CONSOLE_NORMAL
+       bool "Support a simple text console at SPL"
+       default y
+       help
+         Support drawing text on the frame buffer console so that it can be
+         used as a console. Rotation is not supported by this driver (see
+         CONFIG_CONSOLE_ROTATION for that). A built-in 8x16 font is used
+         for the display.
+
+config SPL_BACKLIGHT
+       bool "Enable panel backlight uclass support at SPL"
+       default y
+       help
+         This provides backlight uclass driver that enables basic panel
+         backlight support.
+
+config SPL_PANEL
+       bool "Enable panel uclass support at SPL"
+       default y
+       help
+         This provides panel uclass driver that enables basic panel support.
+
+config SPL_SIMPLE_PANEL
+       bool "Enable simple panel support at SPL"
+       depends on SPL_PANEL && SPL_BACKLIGHT && SPL_DM_GPIO
+       default y
+       help
+         This turns on a simple panel driver that enables a compatible
+         video panel.
+
+config SPL_SYS_WHITE_ON_BLACK
+       bool "Display console as white on a black background at SPL"
+       help
+        Normally the display is black on a white background, Enable this
+        option to invert this, i.e. white on a black background at spl stage.
+        This can be better in low-light situations or to reduce eye strain in
+        some cases.
+
+if SPL_SPLASH_SCREEN
+
+config SPL_SPLASH_SCREEN_ALIGN
+       bool "Allow positioning the splash image anywhere on the display at SPL"
+       help
+         If this option is set the splash image can be freely positioned
+         on the screen only at SPL. Environment variable "splashpos" specifies
+         the position as "x,y". If a positive number is given it is used as
+         number of pixel from left/top. If a negative number is given it
+         is used as number of pixel from right/bottom.
+
+config SPL_SPLASH_SOURCE
+       bool "Control the source of the splash image at SPL"
+       help
+         Use the splash_source.c library. This library provides facilities to
+         declare board specific splash image locations, routines for loading
+         splash image from supported locations, and a way of controlling the
+         selected splash location using the "splashsource" environment
+         variable.
+
+         This CONFIG works as follows:
+
+         - If splashsource is set to a supported location name as defined by
+           board code, use that splash location.
+         - If splashsource is undefined, use the first splash location as
+           default.
+         - If splashsource is set to an unsupported value, do not load a splash
+           screen.
+
+         A splash source location can describe either storage with raw data, a
+         storage formatted with a file system or a FIT image. In case of a
+         filesystem, the splash screen data is loaded as a file. The name of
+         the splash screen file can be controlled with the environment variable
+         "splashfile".
+
+         To enable loading the splash image from a FIT image, CONFIG_FIT must
+         be enabled. The FIT image has to start at the 'offset' field address
+         in the selected splash location. The name of splash image within the
+         FIT shall be specified by the environment variable "splashfile".
+
+         In case the environment variable "splashfile" is not defined the
+         default name 'splash.bmp' will be used.
+
+endif # SPL_SPLASH_SCREEN
+
+config SPL_VIDEO_BMP_GZIP
+       bool "Gzip compressed BMP image support at SPL"
+       depends on SPL_SPLASH_SCREEN || SPL_BMP
+       help
+         If this option is set, additionally to standard BMP
+         images, gzipped BMP images can be displayed via the
+         splashscreen supportat SPL stage.
+
+config SPL_VIDEO_LOGO_MAX_SIZE
+       hex "Maximum size of the bitmap logo in bytes at SPL"
+       default 0x100000
+       help
+         Sets the maximum uncompressed size of the logo. This is needed when
+         decompressing a BMP file using the gzip algorithm, since it cannot
+         read the size from the bitmap header.
+
+config SPL_VIDEO_BMP_RLE8
+       bool "Run length encoded BMP image (RLE8) support at SPL"
+       help
+         If this option is set, the 8-bit RLE compressed BMP images
+         is supported.
+
+config SPL_BMP_16BPP
+       bool "16-bit-per-pixel BMP image support at SPL"
+       help
+         Support display of bitmaps file with 16-bit-per-pixel
+
+config SPL_BMP_24BPP
+       bool "24-bit-per-pixel BMP image support at SPL"
+       help
+         Support display of bitmaps file with 24-bit-per-pixel.
+
+config SPL_BMP_32BPP
+       bool "32-bit-per-pixel BMP image support at SPL"
+       help
+         Support display of bitmaps file with 32-bit-per-pixel.
+
+config SPL_VIDEO_BPP8
+       bool "Support 8-bit-per-pixel displays at SPL"
+       default y
+       help
+         Support drawing text and bitmaps onto a 8-bit-per-pixel display.
+         Enabling this will include code to support this display. Without
+         this option, such displays will not be supported and console output
+         will be empty.
+
+config SPL_VIDEO_BPP16
+       bool "Support 16-bit-per-pixel displays at SPL"
+       default y
+       help
+         Support drawing text and bitmaps onto a 16-bit-per-pixel display.
+         Enabling this will include code to support this display. Without
+         this option, such displays will not be supported and console output
+         will be empty.
+
+config SPL_VIDEO_BPP32
+       bool "Support 32-bit-per-pixel displays at SPL"
+       default y
+       help
+         Support drawing text and bitmaps onto a 32-bit-per-pixel display.
+         Enabling this will include code to support this display. Without
+         this option, such displays will not be supported and console output
+         will be empty.
+
+config SPL_HIDE_LOGO_VERSION
+    bool "Hide the version information on the splash screen at SPL"
+    help
+      Normally the U-Boot version string is shown on the display when the
+      splash screen is enabled. This information is not otherwise visible
+      since video starts up after U-Boot has displayed the initial banner.
+
+      Enable this option to hide this information.
+endif
+
 endmenu