From: Nikhil M Jain <n-jain1@ti.com>
To: <n-jain1@ti.com>, <u-boot@lists.denx.de>, <sjg@chromium.org>
Cc: <trini@konsulko.com>, <devarsht@ti.com>, <vigneshr@ti.com>,
<nsekhar@ti.com>
Subject: [PATCH V7 01/14] drivers: video: Kconfig: Add configs for enabling video at SPL
Date: Mon, 10 Apr 2023 12:58:30 +0530 [thread overview]
Message-ID: <20230410072843.97922-2-n-jain1@ti.com> (raw)
In-Reply-To: <20230410072843.97922-1-n-jain1@ti.com>
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>
---
V7:
- Add Reviewed-by and Tested-by tag.
V6:
- Replace CMD_BMP with BMP.
V5:
- Added Reviewed-by tag.
V4:
- No change.
V3:
- Add separate SPL video and splash configs.
- Reviewed-by tag not added due to additional changes in V3.
V2:
- No change.
drivers/video/Kconfig | 223 +++++++++++++++++++++++++++++++++++++++++-
1 file changed, 222 insertions(+), 1 deletion(-)
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 60f4a4bf9c..05eaaa767a 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -893,7 +893,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
@@ -930,4 +930,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 atSPL"
+ 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
--
2.34.1
next prev parent reply other threads:[~2023-04-10 7:29 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-10 7:28 [PATCH V7 00/14] Add splash screen support at u-boot SPL Nikhil M Jain
2023-04-10 7:28 ` Nikhil M Jain [this message]
2023-04-10 7:28 ` [PATCH V7 02/14] drivers: video: tidss: Kconfig: Configs to enable TIDSS at SPL Nikhil M Jain
2023-04-10 7:28 ` [PATCH V7 03/14] drivers: Makefile: Add rule to compile video driver Nikhil M Jain
2023-04-10 7:28 ` [PATCH V7 04/14] drivers: video: Makefile: Rule to compile necessary video driver files Nikhil M Jain
2023-04-10 7:28 ` [PATCH V7 05/14] drivers: video: tidss: Makefile: Add condition to compile TIDSS at SPL Nikhil M Jain
2023-04-10 7:28 ` [PATCH V7 06/14] common: Makefile: Add rule to compile splash and splash_source " Nikhil M Jain
2023-04-10 7:28 ` [PATCH V7 07/14] common: Kconfig: Add BMP configs Nikhil M Jain
2023-04-10 7:28 ` [PATCH V7 08/14] cmd: bmp: Split bmp commands and functions Nikhil M Jain
2023-04-10 7:28 ` [PATCH V7 09/14] common: Makefile: Rule to compile bmp.c Nikhil M Jain
2023-04-10 7:28 ` [PATCH V7 10/14] drivers: video: Enable necessary video functions at SPL Nikhil M Jain
2023-04-10 7:28 ` [PATCH V7 11/14] common: Enable splash " Nikhil M Jain
2023-04-18 9:10 ` Lothar Waßmann
2023-04-10 7:28 ` [PATCH V7 12/14] include: Enable video related global data variable and splash " Nikhil M Jain
2023-04-10 7:28 ` [PATCH V7 13/14] board: ti: am62x: evm: OSPI support for splash screen Nikhil M Jain
2023-04-10 7:28 ` [PATCH V7 14/14] common: Replace #ifdef and #if with if's Nikhil M Jain
2023-04-17 5:39 ` Devarsh Thakkar
2023-04-18 7:37 ` Nikhil M Jain
2023-04-18 8:48 ` Nikhil M Jain
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230410072843.97922-2-n-jain1@ti.com \
--to=n-jain1@ti.com \
--cc=devarsht@ti.com \
--cc=nsekhar@ti.com \
--cc=sjg@chromium.org \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
--cc=vigneshr@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox