All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 00/15] Add splash screen support at u-boot SPL
@ 2023-03-29 12:01 Nikhil M Jain
  2023-03-29 12:01 ` [PATCH v4 01/15] drivers: video: Kconfig: Add configs for enabling video at SPL Nikhil M Jain
                   ` (15 more replies)
  0 siblings, 16 replies; 35+ messages in thread
From: Nikhil M Jain @ 2023-03-29 12:01 UTC (permalink / raw)
  To: n-jain1, u-boot, sjg; +Cc: trini, devarsht, vigneshr, nsekhar

To enable splash screen at SPL stage move video driver and splash screen
framework at SPL, which will bring up image on display very quickly and
thus have early display support in SPL.

Change in V4
- Add Reviewed-by tag in apprpriate patch

Change in V3
- Add separate video configs for SPL splash screen
- Add rule to compile video driver in drivers/Makefile at SPL
- Add rule to compile splash.c and splash_source.c
- Squash drivers: video: video-uclass: Disable u-boot logo at SPL into
  drivers: video: Use CONFIG_IS_ENABLED and CONFIG_VAL
- Split cmd/bmp.c to separate bmp functions and commands.
- Add CONFIG_BMP and CONFIG_SPL_BMP.
- Add rule to compile necessary files required for video driver. 
- Add rule to compile common/bmp.c

Change in V2
- Removed artifacts from bad patch apply. 

Nikhil M Jain (15):
  drivers: video: Kconfig: Add configs for enabling video at SPL
  drivers: video: tidss: Kconfig: Configs to enable TIDSS at SPL
  drivers: Makefile: Add rule to compile video driver
  drivers: video: Makefile: Rule to compile necessary video driver
    files.
  drivers: video: tidss: Makefile: Add condition to compile TIDSS at SPL
  common: Makefile: Add rule to compile splash and splash_source at SPL
  common: Kconfig: Add BMP configs
  cmd: bmp: Split bmp commands and functions
  cmd: Makefile: Rule to compile bmp_cmd
  common: Makefile: Rule to compile bmp.c
  drivers: video: Enable necessary video functions at SPL
  common: Enable splash functions at SPL
  include: Enable video related global data variable and splash at SPL
  common: splash: Replace CONFIG_CMD_BMP
  board: ti: am62x: evm: OSPI support for splash screen

 board/ti/am62x/evm.c              |   8 +-
 cmd/Makefile                      |   3 +-
 cmd/bmp_cmd.c                     |  98 +++++++++++++
 common/Kconfig                    |  12 ++
 common/Makefile                   |   3 +
 {cmd => common}/bmp.c             | 114 +--------------
 common/splash.c                   |  10 +-
 drivers/Makefile                  |   2 +-
 drivers/video/Kconfig             | 221 ++++++++++++++++++++++++++++++
 drivers/video/Makefile            |  10 ++
 drivers/video/console_normal.c    |   6 +-
 drivers/video/tidss/Kconfig       |   6 +
 drivers/video/tidss/Makefile      |   2 +-
 drivers/video/vidconsole-uclass.c |   2 +-
 drivers/video/video-uclass.c      |  14 +-
 drivers/video/video_bmp.c         |   8 +-
 include/asm-generic/global_data.h |   4 +-
 include/splash.h                  |   6 +-
 include/video.h                   |   7 +
 19 files changed, 399 insertions(+), 137 deletions(-)
 create mode 100644 cmd/bmp_cmd.c
 rename {cmd => common}/bmp.c (58%)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 35+ messages in thread

* [PATCH v4 01/15] drivers: video: Kconfig: Add configs for enabling video at SPL
  2023-03-29 12:01 [PATCH v4 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
@ 2023-03-29 12:01 ` Nikhil M Jain
  2023-03-30  8:52   ` Devarsh Thakkar
  2023-03-29 12:01 ` [PATCH v4 02/15] drivers: video: tidss: Kconfig: Configs to enable TIDSS " Nikhil M Jain
                   ` (14 subsequent siblings)
  15 siblings, 1 reply; 35+ messages in thread
From: Nikhil M Jain @ 2023-03-29 12:01 UTC (permalink / raw)
  To: n-jain1, u-boot, sjg; +Cc: trini, devarsht, vigneshr, nsekhar

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>
---
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 | 221 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 221 insertions(+)

diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 2a76d19cc8..6ced6e0c41 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -900,4 +900,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 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_CMD_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


^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH v4 02/15] drivers: video: tidss: Kconfig: Configs to enable TIDSS at SPL
  2023-03-29 12:01 [PATCH v4 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
  2023-03-29 12:01 ` [PATCH v4 01/15] drivers: video: Kconfig: Add configs for enabling video at SPL Nikhil M Jain
@ 2023-03-29 12:01 ` Nikhil M Jain
  2023-03-29 12:01 ` [PATCH v4 03/15] drivers: Makefile: Add rule to compile video driver Nikhil M Jain
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 35+ messages in thread
From: Nikhil M Jain @ 2023-03-29 12:01 UTC (permalink / raw)
  To: n-jain1, u-boot, sjg; +Cc: trini, devarsht, vigneshr, nsekhar

To enable tidss video driver only at SPL stage, add necessary config,
CONFIG_SPL_VIDEO_TIDSS.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
V4:
- Add Reviewed-By tag

V3:
- No change

V2:
- No change

 drivers/video/tidss/Kconfig | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/video/tidss/Kconfig b/drivers/video/tidss/Kconfig
index 2a5e56ea4e..748c332281 100644
--- a/drivers/video/tidss/Kconfig
+++ b/drivers/video/tidss/Kconfig
@@ -16,3 +16,9 @@ menuconfig VIDEO_TIDSS
 	  DPI . This option enables these supports which can be used on
 	  devices which have OLDI or HDMI display connected.
 
+config SPL_VIDEO_TIDSS
+	bool "Enable TIDSS video support in SPL Stage"
+	depends on SPL_VIDEO
+	help
+	  This options enables tidss driver in SPL stage. If
+	  you need to use tidssat SPL stage use this config.
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH v4 03/15] drivers: Makefile: Add rule to compile video driver
  2023-03-29 12:01 [PATCH v4 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
  2023-03-29 12:01 ` [PATCH v4 01/15] drivers: video: Kconfig: Add configs for enabling video at SPL Nikhil M Jain
  2023-03-29 12:01 ` [PATCH v4 02/15] drivers: video: tidss: Kconfig: Configs to enable TIDSS " Nikhil M Jain
@ 2023-03-29 12:01 ` Nikhil M Jain
  2023-03-30  9:30   ` Devarsh Thakkar
  2023-03-29 12:01 ` [PATCH v4 04/15] drivers: video: Makefile: Rule to compile necessary video driver files Nikhil M Jain
                   ` (12 subsequent siblings)
  15 siblings, 1 reply; 35+ messages in thread
From: Nikhil M Jain @ 2023-03-29 12:01 UTC (permalink / raw)
  To: n-jain1, u-boot, sjg; +Cc: trini, devarsht, vigneshr, nsekhar

CONFIG_$(SPL_)VIDEO checks for CONFIG_SPL_VIDEO at SPL and CONFIG_VIDEO
at u-boot proper and compiles video driver at respective stage.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
---
V4:
- No change

V3 (patch introduced):
- Add rule to compile video driver at SPL

 drivers/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/Makefile b/drivers/Makefile
index 15d19d0c8a..6fd4d80206 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -38,6 +38,7 @@ obj-$(CONFIG_$(SPL_TPL_)TPM) += tpm/
 obj-$(CONFIG_XEN) += xen/
 obj-$(CONFIG_$(SPL_)FPGA) += fpga/
 obj-y += bus/
+obj-$(CONFIG_$(SPL_)VIDEO) += video/
 
 ifndef CONFIG_TPL_BUILD
 ifndef CONFIG_VPL_BUILD
@@ -96,7 +97,6 @@ obj-y += rtc/
 obj-y += scsi/
 obj-y += sound/
 obj-y += spmi/
-obj-y += video/
 obj-y += watchdog/
 obj-$(CONFIG_QE) += qe/
 obj-$(CONFIG_U_QE) += qe/
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH v4 04/15] drivers: video: Makefile: Rule to compile necessary video driver files.
  2023-03-29 12:01 [PATCH v4 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (2 preceding siblings ...)
  2023-03-29 12:01 ` [PATCH v4 03/15] drivers: Makefile: Add rule to compile video driver Nikhil M Jain
@ 2023-03-29 12:01 ` Nikhil M Jain
  2023-03-30 20:14   ` Simon Glass
  2023-03-29 12:01 ` [PATCH v4 05/15] drivers: video: tidss: Makefile: Add condition to compile TIDSS at SPL Nikhil M Jain
                   ` (11 subsequent siblings)
  15 siblings, 1 reply; 35+ messages in thread
From: Nikhil M Jain @ 2023-03-29 12:01 UTC (permalink / raw)
  To: n-jain1, u-boot, sjg; +Cc: trini, devarsht, vigneshr, nsekhar

To enable video driver at SPL, need to compile video-uclass,
vidconsole-uclass, backlight-uclass, panel-uclass, simple-panel, add
rules to compile them at SPL only. To support splash_display at SPL,
need to compile video-bmp, add rule to compile at SPL stage only.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
---
V4:
- No change

V3:
- Rule to compile backlight, console and panel files
- Not added Reiewed-by tag due to changes

V2:
- No change

 drivers/video/Makefile | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/video/Makefile b/drivers/video/Makefile
index cdb7d9a54d..2374b240c2 100644
--- a/drivers/video/Makefile
+++ b/drivers/video/Makefile
@@ -68,3 +68,12 @@ obj-$(CONFIG_VIDEO_ZYNQMP_DPSUB) += zynqmp_dpsub.o
 
 obj-y += bridge/
 obj-y += sunxi/
+
+ifdef CONFIG_SPL_BUILD
+obj-$(CONFIG_SPL_BACKLIGHT) += backlight-uclass.o
+obj-$(CONFIG_SPL_PANEL) += panel-uclass.o
+obj-$(CONFIG_SPL_SIMPLE_PANEL) += simple_panel.o
+obj-$(CONFIG_SPL_CONSOLE_NORMAL) += console_normal.o
+obj-$(CONFIG_SPL_VIDEO) += video-uclass.o vidconsole-uclass.o
+obj-$(CONFIG_SPL_VIDEO) += video_bmp.o
+endif
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH v4 05/15] drivers: video: tidss: Makefile: Add condition to compile TIDSS at SPL
  2023-03-29 12:01 [PATCH v4 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (3 preceding siblings ...)
  2023-03-29 12:01 ` [PATCH v4 04/15] drivers: video: Makefile: Rule to compile necessary video driver files Nikhil M Jain
@ 2023-03-29 12:01 ` Nikhil M Jain
  2023-03-29 12:01 ` [PATCH v4 06/15] common: Makefile: Add rule to compile splash and splash_source " Nikhil M Jain
                   ` (10 subsequent siblings)
  15 siblings, 0 replies; 35+ messages in thread
From: Nikhil M Jain @ 2023-03-29 12:01 UTC (permalink / raw)
  To: n-jain1, u-boot, sjg; +Cc: trini, devarsht, vigneshr, nsekhar

To enable TIDSS driver only at SPL stage add rule to compile the TIDSS
video driver, for SPL stage only if CONFIG_SPL_VIDEO_TIDSS is defined.

CONFIG_$(SPL_)VIDEO_TIDSS will compile tidss_drv, at SPL stage only if
CONFIG_SPL_VIDEO_TIDSS is defined and at u-boot proper if
CONFIG_VIDEO_TIDSS is defined.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
V4:
- Added Reviewed-by tag

V3:
- No change

V2:
- No change

 drivers/video/Makefile       | 1 +
 drivers/video/tidss/Makefile | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/video/Makefile b/drivers/video/Makefile
index 2374b240c2..fcf256d80a 100644
--- a/drivers/video/Makefile
+++ b/drivers/video/Makefile
@@ -76,4 +76,5 @@ obj-$(CONFIG_SPL_SIMPLE_PANEL) += simple_panel.o
 obj-$(CONFIG_SPL_CONSOLE_NORMAL) += console_normal.o
 obj-$(CONFIG_SPL_VIDEO) += video-uclass.o vidconsole-uclass.o
 obj-$(CONFIG_SPL_VIDEO) += video_bmp.o
+obj-$(CONFIG_SPL_VIDEO_TIDSS) += tidss/
 endif
diff --git a/drivers/video/tidss/Makefile b/drivers/video/tidss/Makefile
index f4f8c6c470..a29cee2a41 100644
--- a/drivers/video/tidss/Makefile
+++ b/drivers/video/tidss/Makefile
@@ -9,4 +9,4 @@
 # Author: Tomi Valkeinen <tomi.valkeinen@ti.com>
 
 
-obj-${CONFIG_VIDEO_TIDSS} = tidss_drv.o
+obj-${CONFIG_$(SPL_)VIDEO_TIDSS} = tidss_drv.o
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH v4 06/15] common: Makefile: Add rule to compile splash and splash_source at SPL
  2023-03-29 12:01 [PATCH v4 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (4 preceding siblings ...)
  2023-03-29 12:01 ` [PATCH v4 05/15] drivers: video: tidss: Makefile: Add condition to compile TIDSS at SPL Nikhil M Jain
@ 2023-03-29 12:01 ` Nikhil M Jain
  2023-03-30  9:44   ` Devarsh Thakkar
  2023-03-29 12:01 ` [PATCH v4 07/15] common: Kconfig: Add BMP config Nikhil M Jain
                   ` (9 subsequent siblings)
  15 siblings, 1 reply; 35+ messages in thread
From: Nikhil M Jain @ 2023-03-29 12:01 UTC (permalink / raw)
  To: n-jain1, u-boot, sjg; +Cc: trini, devarsht, vigneshr, nsekhar

To enable splash screen and loading bmp from boot media, add rules to
compile splash.c and splash_source.c at SPL stage only when
CONFIG_SPL_SPLASH_SCREEN and CONFIG_SPL_SPLASH_SOURCE are defined.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
---
V4:
- No change

V3 (patch introduced):
- Rule to compile splash.c and splash_source.c

 common/Makefile | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/common/Makefile b/common/Makefile
index a50302d8b5..3a6ca337e0 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -56,6 +56,8 @@ obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += fdt_support.o
 obj-$(CONFIG_SPL_USB_HOST) += usb.o usb_hub.o
 obj-$(CONFIG_SPL_USB_STORAGE) += usb_storage.o
 obj-$(CONFIG_SPL_MUSB_NEW) += usb.o
+obj-$(CONFIG_SPL_SPLASH_SCREEN) += splash.o
+obj-$(CONFIG_SPL_SPLASH_SOURCE) += splash_source.o
 endif # CONFIG_SPL_BUILD
 
 #others
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH v4 07/15] common: Kconfig: Add BMP config
  2023-03-29 12:01 [PATCH v4 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (5 preceding siblings ...)
  2023-03-29 12:01 ` [PATCH v4 06/15] common: Makefile: Add rule to compile splash and splash_source " Nikhil M Jain
@ 2023-03-29 12:01 ` Nikhil M Jain
  2023-03-30 20:14   ` Simon Glass
  2023-03-29 12:01 ` [PATCH v4 08/15] cmd: bmp: Split bmp commands and functions Nikhil M Jain
                   ` (8 subsequent siblings)
  15 siblings, 1 reply; 35+ messages in thread
From: Nikhil M Jain @ 2023-03-29 12:01 UTC (permalink / raw)
  To: n-jain1, u-boot, sjg; +Cc: trini, devarsht, vigneshr, nsekhar

Add CONFIG_BMP and CONFIG_SPL_BMP which enable displaying bmp images at
u-boot proper and SPL.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
---
V4:
- No change

V3 (patch introduced):
- Add CONFIG BMP and SPL_BMP

 common/Kconfig | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/common/Kconfig b/common/Kconfig
index 0afc01b759..3fa7ba86cd 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -1106,3 +1106,15 @@ config FDT_SIMPLEFB
 
 config IO_TRACE
 	bool
+
+config BMP
+	bool "Enable bmp image display"
+	default y if CMD_BMP
+	help
+	  Enable bmp functions to display bmp image and get bmp info.
+
+config SPL_BMP
+	bool "Enable bmp image display at  SPL"
+	depends on SPL_VIDEO
+	help
+	  Enable bmp functions to display bmp image and get bmp info at SPL.
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH v4 08/15] cmd: bmp: Split bmp commands and functions
  2023-03-29 12:01 [PATCH v4 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (6 preceding siblings ...)
  2023-03-29 12:01 ` [PATCH v4 07/15] common: Kconfig: Add BMP config Nikhil M Jain
@ 2023-03-29 12:01 ` Nikhil M Jain
  2023-03-30 20:14   ` Simon Glass
  2023-03-29 12:01 ` [PATCH v4 09/15] cmd: Makefile: Rule to compile bmp_cmd Nikhil M Jain
                   ` (7 subsequent siblings)
  15 siblings, 1 reply; 35+ messages in thread
From: Nikhil M Jain @ 2023-03-29 12:01 UTC (permalink / raw)
  To: n-jain1, u-boot, sjg; +Cc: trini, devarsht, vigneshr, nsekhar

To enable splash screen at spl, need to compile cmd/bmp.c which also
includes bmp commands, since SPL can't have commands split bmp.c into
common/bmp.c which includes all bmp functions and cmd/bmp_cmd contains
bmp commands.

Add delclaration for bmp_info in video.h.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
---
V4:
- No change

V3 (patch introduced):
- Split bmp functions and commands

 cmd/bmp_cmd.c         |  98 +++++++++++++++++++++++++++++++++++++++
 {cmd => common}/bmp.c | 104 +-----------------------------------------
 include/video.h       |   7 +++
 3 files changed, 106 insertions(+), 103 deletions(-)
 create mode 100644 cmd/bmp_cmd.c
 rename {cmd => common}/bmp.c (62%)

diff --git a/cmd/bmp_cmd.c b/cmd/bmp_cmd.c
new file mode 100644
index 0000000000..735790fda7
--- /dev/null
+++ b/cmd/bmp_cmd.c
@@ -0,0 +1,98 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * (C) Copyright 2002
+ * Detlev Zundel, DENX Software Engineering, dzu@denx.de.
+ */
+
+/*
+ * BMP handling routines
+ */
+
+#include <common.h>
+#include <bmp_layout.h>
+#include <command.h>
+#include <image.h>
+#include <mapmem.h>
+#include <splash.h>
+#include <video.h>
+#include <stdlib.h>
+
+static int do_bmp_info(struct cmd_tbl *cmdtp, int flag, int argc,
+		       char *const argv[])
+{
+	ulong addr;
+
+	switch (argc) {
+	case 1:		/* use image_load_addr as default address */
+		addr = image_load_addr;
+		break;
+	case 2:		/* use argument */
+		addr = hextoul(argv[1], NULL);
+		break;
+	default:
+		return CMD_RET_USAGE;
+	}
+
+	return (bmp_info(addr));
+}
+
+static int do_bmp_display(struct cmd_tbl *cmdtp, int flag, int argc,
+			  char *const argv[])
+{
+	ulong addr;
+	int x = 0, y = 0;
+
+	splash_get_pos(&x, &y);
+
+	switch (argc) {
+	case 1:		/* use image_load_addr as default address */
+		addr = image_load_addr;
+		break;
+	case 2:		/* use argument */
+		addr = hextoul(argv[1], NULL);
+		break;
+	case 4:
+		addr = hextoul(argv[1], NULL);
+		if (!strcmp(argv[2], "m"))
+			x = BMP_ALIGN_CENTER;
+		else
+			x = dectoul(argv[2], NULL);
+		if (!strcmp(argv[3], "m"))
+			y = BMP_ALIGN_CENTER;
+		else
+			y = dectoul(argv[3], NULL);
+		break;
+	default:
+		return CMD_RET_USAGE;
+	}
+
+	return (bmp_display(addr, x, y));
+}
+
+static struct cmd_tbl cmd_bmp_sub[] = {
+	U_BOOT_CMD_MKENT(info, 3, 0, do_bmp_info, "", ""),
+	U_BOOT_CMD_MKENT(display, 5, 0, do_bmp_display, "", ""),
+};
+
+static int do_bmp(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
+{
+	struct cmd_tbl *c;
+
+	/* Strip off leading 'bmp' command argument */
+	argc--;
+	argv++;
+
+	c = find_cmd_tbl(argv[0], &cmd_bmp_sub[0], ARRAY_SIZE(cmd_bmp_sub));
+
+	if (c)
+		return  c->cmd(cmdtp, flag, argc, argv);
+	else
+		return CMD_RET_USAGE;
+}
+
+U_BOOT_CMD(
+	bmp,	5,	1,	do_bmp,
+	"manipulate BMP image data",
+	"info <imageAddr>          - display image info\n"
+	"bmp display <imageAddr> [x y] - display image at x,y"
+);
diff --git a/cmd/bmp.c b/common/bmp.c
similarity index 62%
rename from cmd/bmp.c
rename to common/bmp.c
index 46d0d916e8..540d06e63f 100644
--- a/cmd/bmp.c
+++ b/common/bmp.c
@@ -13,7 +13,6 @@
 #include <command.h>
 #include <dm.h>
 #include <gzip.h>
-#include <image.h>
 #include <log.h>
 #include <malloc.h>
 #include <mapmem.h>
@@ -21,8 +20,6 @@
 #include <video.h>
 #include <asm/byteorder.h>
 
-static int bmp_info (ulong addr);
-
 /*
  * Allocate and decompress a BMP image using gunzip().
  *
@@ -88,62 +85,6 @@ struct bmp_image *gunzip_bmp(unsigned long addr, unsigned long *lenp,
 }
 #endif
 
-static int do_bmp_info(struct cmd_tbl *cmdtp, int flag, int argc,
-		       char *const argv[])
-{
-	ulong addr;
-
-	switch (argc) {
-	case 1:		/* use image_load_addr as default address */
-		addr = image_load_addr;
-		break;
-	case 2:		/* use argument */
-		addr = hextoul(argv[1], NULL);
-		break;
-	default:
-		return CMD_RET_USAGE;
-	}
-
-	return (bmp_info(addr));
-}
-
-static int do_bmp_display(struct cmd_tbl *cmdtp, int flag, int argc,
-			  char *const argv[])
-{
-	ulong addr;
-	int x = 0, y = 0;
-
-	splash_get_pos(&x, &y);
-
-	switch (argc) {
-	case 1:		/* use image_load_addr as default address */
-		addr = image_load_addr;
-		break;
-	case 2:		/* use argument */
-		addr = hextoul(argv[1], NULL);
-		break;
-	case 4:
-		addr = hextoul(argv[1], NULL);
-		if (!strcmp(argv[2], "m"))
-			x = BMP_ALIGN_CENTER;
-		else
-			x = dectoul(argv[2], NULL);
-		if (!strcmp(argv[3], "m"))
-			y = BMP_ALIGN_CENTER;
-		else
-			y = dectoul(argv[3], NULL);
-		break;
-	default:
-		return CMD_RET_USAGE;
-	}
-
-	 return (bmp_display(addr, x, y));
-}
-
-static struct cmd_tbl cmd_bmp_sub[] = {
-	U_BOOT_CMD_MKENT(info, 3, 0, do_bmp_info, "", ""),
-	U_BOOT_CMD_MKENT(display, 5, 0, do_bmp_display, "", ""),
-};
 
 #ifdef CONFIG_NEEDS_MANUAL_RELOC
 void bmp_reloc(void) {
@@ -151,50 +92,7 @@ void bmp_reloc(void) {
 }
 #endif
 
-/*
- * Subroutine:  do_bmp
- *
- * Description: Handler for 'bmp' command..
- *
- * Inputs:	argv[1] contains the subcommand
- *
- * Return:      None
- *
- */
-static int do_bmp(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
-{
-	struct cmd_tbl *c;
-
-	/* Strip off leading 'bmp' command argument */
-	argc--;
-	argv++;
-
-	c = find_cmd_tbl(argv[0], &cmd_bmp_sub[0], ARRAY_SIZE(cmd_bmp_sub));
-
-	if (c)
-		return  c->cmd(cmdtp, flag, argc, argv);
-	else
-		return CMD_RET_USAGE;
-}
-
-U_BOOT_CMD(
-	bmp,	5,	1,	do_bmp,
-	"manipulate BMP image data",
-	"info <imageAddr>          - display image info\n"
-	"bmp display <imageAddr> [x y] - display image at x,y"
-);
-
-/*
- * Subroutine:  bmp_info
- *
- * Description: Show information about bmp file in memory
- *
- * Inputs:	addr		address of the bmp file
- *
- * Return:      None
- *
- */
-static int bmp_info(ulong addr)
+int bmp_info(ulong addr)
 {
 	struct bmp_image *bmp = (struct bmp_image *)map_sysmem(addr, 0);
 	void *bmp_alloc_addr = NULL;
diff --git a/include/video.h b/include/video.h
index 3f67a93bc9..4b7e866c65 100644
--- a/include/video.h
+++ b/include/video.h
@@ -355,4 +355,11 @@ void *video_get_u_boot_logo(void);
  */
 int bmp_display(ulong addr, int x, int y);
 
+/*
+ * bmp_info() - Show information about bmp file
+ *
+ * @addr: address of bmp file
+ */
+int bmp_info(ulong addr);
+
 #endif
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH v4 09/15] cmd: Makefile: Rule to compile bmp_cmd
  2023-03-29 12:01 [PATCH v4 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (7 preceding siblings ...)
  2023-03-29 12:01 ` [PATCH v4 08/15] cmd: bmp: Split bmp commands and functions Nikhil M Jain
@ 2023-03-29 12:01 ` Nikhil M Jain
  2023-03-30 10:02   ` Devarsh Thakkar
  2023-03-30 10:06   ` Devarsh Thakkar
  2023-03-29 12:01 ` [PATCH v4 10/15] common: Makefile: Rule to compile bmp.c Nikhil M Jain
                   ` (6 subsequent siblings)
  15 siblings, 2 replies; 35+ messages in thread
From: Nikhil M Jain @ 2023-03-29 12:01 UTC (permalink / raw)
  To: n-jain1, u-boot, sjg; +Cc: trini, devarsht, vigneshr, nsekhar

Change rule to compile bmp_cmd when CONFIG_CMD_BMP is defined, in place
of bmp.c.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
---
V4:
- No change

V3 (patch introduced):
- Rule to compile bmp_cmd.c

 cmd/Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/cmd/Makefile b/cmd/Makefile
index 36d2daf22a..c773acb1a1 100644
--- a/cmd/Makefile
+++ b/cmd/Makefile
@@ -29,7 +29,7 @@ obj-$(CONFIG_CMD_BIND) += bind.o
 obj-$(CONFIG_CMD_BINOP) += binop.o
 obj-$(CONFIG_CMD_BLOBLIST) += bloblist.o
 obj-$(CONFIG_CMD_BLOCK_CACHE) += blkcache.o
-obj-$(CONFIG_CMD_BMP) += bmp.o
+obj-$(CONFIG_CMD_BMP) += bmp_cmd.o
 obj-$(CONFIG_CMD_BOOTCOUNT) += bootcount.o
 obj-$(CONFIG_CMD_BOOTEFI) += bootefi.o
 obj-$(CONFIG_CMD_BOOTMENU) += bootmenu.o
@@ -235,6 +235,7 @@ obj-$(CONFIG_$(SPL_)CMD_TLV_EEPROM) += tlv_eeprom.o
 
 # core command
 obj-y += nvedit.o
+obj-y += read.o
 
 obj-$(CONFIG_CMD_BCM_EXT_UTILS) += broadcom/
 
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH v4 10/15] common: Makefile: Rule to compile bmp.c
  2023-03-29 12:01 [PATCH v4 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (8 preceding siblings ...)
  2023-03-29 12:01 ` [PATCH v4 09/15] cmd: Makefile: Rule to compile bmp_cmd Nikhil M Jain
@ 2023-03-29 12:01 ` Nikhil M Jain
  2023-03-30 10:05   ` Devarsh Thakkar
  2023-03-29 12:01 ` [PATCH v4 11/15] drivers: video: Enable necessary video functions at SPL Nikhil M Jain
                   ` (5 subsequent siblings)
  15 siblings, 1 reply; 35+ messages in thread
From: Nikhil M Jain @ 2023-03-29 12:01 UTC (permalink / raw)
  To: n-jain1, u-boot, sjg; +Cc: trini, devarsht, vigneshr, nsekhar

Add rule to compile bmp.c at SPL and u-boot proper when CONFIG_SPL_BMP
and CONFIG_BMP are defined.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
---
V4:
- No change

V3 (patch introduced):
- Rule to compile common/bmp.c

 common/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/common/Makefile b/common/Makefile
index 3a6ca337e0..c87bb2e78b 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -45,6 +45,7 @@ endif # !CONFIG_SPL_BUILD
 
 obj-$(CONFIG_$(SPL_TPL_)BOOTSTAGE) += bootstage.o
 obj-$(CONFIG_$(SPL_TPL_)BLOBLIST) += bloblist.o
+obj-$(CONFIG_$(SPL_)BMP) += bmp.o
 
 ifdef CONFIG_SPL_BUILD
 ifdef CONFIG_SPL_DFU
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH v4 11/15] drivers: video: Enable necessary video functions at SPL
  2023-03-29 12:01 [PATCH v4 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (9 preceding siblings ...)
  2023-03-29 12:01 ` [PATCH v4 10/15] common: Makefile: Rule to compile bmp.c Nikhil M Jain
@ 2023-03-29 12:01 ` Nikhil M Jain
  2023-03-30 10:14   ` Devarsh Thakkar
  2023-03-29 12:01 ` [PATCH v4 12/15] common: Enable splash " Nikhil M Jain
                   ` (4 subsequent siblings)
  15 siblings, 1 reply; 35+ messages in thread
From: Nikhil M Jain @ 2023-03-29 12:01 UTC (permalink / raw)
  To: n-jain1, u-boot, sjg; +Cc: trini, devarsht, vigneshr, nsekhar

To support video driver at SPL use CONFIG_IS_ENABLED and CONFIG_VAL,
which checks for stage specific configs and thus enables video support
at respective stage.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
---
V4:
- No change

V3 (patch introduced):
- Enable necessary video functions at SPL

 drivers/video/console_normal.c    |  6 +++---
 drivers/video/vidconsole-uclass.c |  2 +-
 drivers/video/video-uclass.c      | 14 +++++++-------
 drivers/video/video_bmp.c         |  8 ++++----
 4 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/drivers/video/console_normal.c b/drivers/video/console_normal.c
index 04f022491e..e48f170c30 100644
--- a/drivers/video/console_normal.c
+++ b/drivers/video/console_normal.c
@@ -24,7 +24,7 @@ static int console_normal_set_row(struct udevice *dev, uint row, int clr)
 	line = vid_priv->fb + row * VIDEO_FONT_HEIGHT * vid_priv->line_length;
 	switch (vid_priv->bpix) {
 	case VIDEO_BPP8:
-		if (IS_ENABLED(CONFIG_VIDEO_BPP8)) {
+		if (CONFIG_IS_ENABLED(VIDEO_BPP8)) {
 			uint8_t *dst = line;
 
 			for (i = 0; i < pixels; i++)
@@ -33,7 +33,7 @@ static int console_normal_set_row(struct udevice *dev, uint row, int clr)
 			break;
 		}
 	case VIDEO_BPP16:
-		if (IS_ENABLED(CONFIG_VIDEO_BPP16)) {
+		if (CONFIG_IS_ENABLED(VIDEO_BPP16)) {
 			uint16_t *dst = line;
 
 			for (i = 0; i < pixels; i++)
@@ -42,7 +42,7 @@ static int console_normal_set_row(struct udevice *dev, uint row, int clr)
 			break;
 		}
 	case VIDEO_BPP32:
-		if (IS_ENABLED(CONFIG_VIDEO_BPP32)) {
+		if (CONFIG_IS_ENABLED(VIDEO_BPP32)) {
 			uint32_t *dst = line;
 
 			for (i = 0; i < pixels; i++)
diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c
index 72a13d3052..ca6139a050 100644
--- a/drivers/video/vidconsole-uclass.c
+++ b/drivers/video/vidconsole-uclass.c
@@ -86,7 +86,7 @@ static void vidconsole_newline(struct udevice *dev)
 	struct vidconsole_priv *priv = dev_get_uclass_priv(dev);
 	struct udevice *vid_dev = dev->parent;
 	struct video_priv *vid_priv = dev_get_uclass_priv(vid_dev);
-	const int rows = CONFIG_CONSOLE_SCROLL_LINES;
+	const int rows = CONFIG_VAL(CONSOLE_SCROLL_LINES);
 	int i, ret;
 
 	priv->xcur_frac = priv->xstart_frac;
diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
index 6aaacff10d..93445002d8 100644
--- a/drivers/video/video-uclass.c
+++ b/drivers/video/video-uclass.c
@@ -116,7 +116,7 @@ int video_reserve(ulong *addrp)
 
 	/* Allocate space for PCI video devices in case there were not bound */
 	if (*addrp == gd->video_top)
-		*addrp -= CONFIG_VIDEO_PCI_DEFAULT_FB_SIZE;
+		*addrp -= CONFIG_VAL(VIDEO_PCI_DEFAULT_FB_SIZE);
 
 	gd->video_bottom = *addrp;
 	gd->fb_base = *addrp;
@@ -133,7 +133,7 @@ int video_fill(struct udevice *dev, u32 colour)
 
 	switch (priv->bpix) {
 	case VIDEO_BPP16:
-		if (IS_ENABLED(CONFIG_VIDEO_BPP16)) {
+		if (CONFIG_IS_ENABLED(VIDEO_BPP16)) {
 			u16 *ppix = priv->fb;
 			u16 *end = priv->fb + priv->fb_size;
 
@@ -142,7 +142,7 @@ int video_fill(struct udevice *dev, u32 colour)
 			break;
 		}
 	case VIDEO_BPP32:
-		if (IS_ENABLED(CONFIG_VIDEO_BPP32)) {
+		if (CONFIG_IS_ENABLED(VIDEO_BPP32)) {
 			u32 *ppix = priv->fb;
 			u32 *end = priv->fb + priv->fb_size;
 
@@ -196,14 +196,14 @@ u32 video_index_to_colour(struct video_priv *priv, unsigned int idx)
 {
 	switch (priv->bpix) {
 	case VIDEO_BPP16:
-		if (IS_ENABLED(CONFIG_VIDEO_BPP16)) {
+		if (CONFIG_IS_ENABLED(VIDEO_BPP16)) {
 			return ((colours[idx].r >> 3) << 11) |
 			       ((colours[idx].g >> 2) <<  5) |
 			       ((colours[idx].b >> 3) <<  0);
 		}
 		break;
 	case VIDEO_BPP32:
-		if (IS_ENABLED(CONFIG_VIDEO_BPP32)) {
+		if (CONFIG_IS_ENABLED(VIDEO_BPP32)) {
 			if (priv->format == VIDEO_X2R10G10B10)
 				return (colours[idx].r << 22) |
 				       (colours[idx].g << 12) |
@@ -497,8 +497,8 @@ static int video_post_probe(struct udevice *dev)
 		return ret;
 	}
 
-	if (IS_ENABLED(CONFIG_VIDEO_LOGO) &&
-	    !IS_ENABLED(CONFIG_SPLASH_SCREEN) && !plat->hide_logo) {
+	if (CONFIG_IS_ENABLED(VIDEO_LOGO) &&
+	    !CONFIG_IS_ENABLED(SPLASH_SCREEN) && !plat->hide_logo) {
 		ret = show_splash(dev);
 		if (ret) {
 			log_debug("Cannot show splash screen\n");
diff --git a/drivers/video/video_bmp.c b/drivers/video/video_bmp.c
index 6188a13e44..47e52c4f69 100644
--- a/drivers/video/video_bmp.c
+++ b/drivers/video/video_bmp.c
@@ -320,7 +320,7 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
 	switch (bmp_bpix) {
 	case 1:
 	case 8:
-		if (IS_ENABLED(CONFIG_VIDEO_BMP_RLE8)) {
+		if (CONFIG_IS_ENABLED(VIDEO_BMP_RLE8)) {
 			u32 compression = get_unaligned_le32(
 				&bmp->header.compression);
 			debug("compressed %d %d\n", compression, BMP_BI_RLE8);
@@ -348,7 +348,7 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
 		}
 		break;
 	case 16:
-		if (IS_ENABLED(CONFIG_BMP_16BPP)) {
+		if (CONFIG_IS_ENABLED(BMP_16BPP)) {
 			for (i = 0; i < height; ++i) {
 				schedule();
 				for (j = 0; j < width; j++) {
@@ -361,7 +361,7 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
 		}
 		break;
 	case 24:
-		if (IS_ENABLED(CONFIG_BMP_24BPP)) {
+		if (CONFIG_IS_ENABLED(BMP_24BPP)) {
 			for (i = 0; i < height; ++i) {
 				for (j = 0; j < width; j++) {
 					if (bpix == 16) {
@@ -395,7 +395,7 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
 		}
 		break;
 	case 32:
-		if (IS_ENABLED(CONFIG_BMP_32BPP)) {
+		if (CONFIG_IS_ENABLED(BMP_32BPP)) {
 			for (i = 0; i < height; ++i) {
 				for (j = 0; j < width; j++) {
 					if (eformat == VIDEO_X2R10G10B10) {
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH v4 12/15] common: Enable splash functions at SPL
  2023-03-29 12:01 [PATCH v4 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (10 preceding siblings ...)
  2023-03-29 12:01 ` [PATCH v4 11/15] drivers: video: Enable necessary video functions at SPL Nikhil M Jain
@ 2023-03-29 12:01 ` Nikhil M Jain
  2023-03-30 10:45   ` Devarsh Thakkar
  2023-03-29 12:01 ` [PATCH v4 13/15] include: Enable video related global data variable and splash " Nikhil M Jain
                   ` (3 subsequent siblings)
  15 siblings, 1 reply; 35+ messages in thread
From: Nikhil M Jain @ 2023-03-29 12:01 UTC (permalink / raw)
  To: n-jain1, u-boot, sjg; +Cc: trini, devarsht, vigneshr, nsekhar

To support splash screen at SPL use CONFIG_IS_ENABLED and CONFIG_VAL. To
check for stage specific configs at u-boot proper and SPL.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
---
V4:
- No change

V3 (patch introduced):
- Enable splash functions at SPL

 common/bmp.c    | 10 +++++-----
 common/splash.c | 10 +++++-----
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/common/bmp.c b/common/bmp.c
index 540d06e63f..51766b3c21 100644
--- a/common/bmp.c
+++ b/common/bmp.c
@@ -33,7 +33,7 @@
  * Returns NULL if decompression failed, or if the decompressed data
  * didn't contain a valid BMP signature.
  */
-#ifdef CONFIG_VIDEO_BMP_GZIP
+#if CONFIG_IS_ENABLED(VIDEO_BMP_GZIP)
 struct bmp_image *gunzip_bmp(unsigned long addr, unsigned long *lenp,
 			     void **alloc_addr)
 {
@@ -44,9 +44,9 @@ struct bmp_image *gunzip_bmp(unsigned long addr, unsigned long *lenp,
 	/*
 	 * Decompress bmp image
 	 */
-	len = CONFIG_VIDEO_LOGO_MAX_SIZE;
+	len = CONFIG_VAL(VIDEO_LOGO_MAX_SIZE);
 	/* allocate extra 3 bytes for 32-bit-aligned-address + 2 alignment */
-	dst = malloc(CONFIG_VIDEO_LOGO_MAX_SIZE + 3);
+	dst = malloc(CONFIG_VAL(VIDEO_LOGO_MAX_SIZE) + 3);
 	if (!dst) {
 		puts("Error: malloc in gunzip failed!\n");
 		return NULL;
@@ -55,12 +55,12 @@ struct bmp_image *gunzip_bmp(unsigned long addr, unsigned long *lenp,
 	/* align to 32-bit-aligned-address + 2 */
 	bmp = dst + 2;
 
-	if (gunzip(bmp, CONFIG_VIDEO_LOGO_MAX_SIZE, map_sysmem(addr, 0),
+	if (gunzip(bmp, CONFIG_VAL(VIDEO_LOGO_MAX_SIZE), map_sysmem(addr, 0),
 		   &len)) {
 		free(dst);
 		return NULL;
 	}
-	if (len == CONFIG_VIDEO_LOGO_MAX_SIZE)
+	if (len == CONFIG_VAL(VIDEO_LOGO_MAX_SIZE))
 		puts("Image could be truncated (increase CONFIG_VIDEO_LOGO_MAX_SIZE)!\n");
 
 	/*
diff --git a/common/splash.c b/common/splash.c
index 245ff680eb..9bb2c1121e 100644
--- a/common/splash.c
+++ b/common/splash.c
@@ -89,14 +89,14 @@ static inline int splash_video_logo_load(void) { return -ENOSYS; }
 
 __weak int splash_screen_prepare(void)
 {
-	if (IS_ENABLED(CONFIG_SPLASH_SOURCE))
+	if (CONFIG_IS_ENABLED(SPLASH_SOURCE))
 		return splash_source_load(default_splash_locations,
 					  ARRAY_SIZE(default_splash_locations));
 
 	return splash_video_logo_load();
 }
 
-#ifdef CONFIG_SPLASH_SCREEN_ALIGN
+#if CONFIG_IS_ENABLED(SPLASH_SCREEN_ALIGN)
 void splash_get_pos(int *x, int *y)
 {
 	char *s = env_get("splashpos");
@@ -119,7 +119,7 @@ void splash_get_pos(int *x, int *y)
 }
 #endif /* CONFIG_SPLASH_SCREEN_ALIGN */
 
-#if defined(CONFIG_VIDEO) && !defined(CONFIG_HIDE_LOGO_VERSION)
+#if CONFIG_IS_ENABLED(VIDEO) && !CONFIG_IS_ENABLED(HIDE_LOGO_VERSION)
 
 #ifdef CONFIG_VIDEO_LOGO
 #include <bmp_logo.h>
@@ -157,7 +157,7 @@ void splash_display_banner(void)
  * Common function to show a splash image if env("splashimage") is set.
  * For additional details please refer to doc/README.splashprepare.
  */
-#if defined(CONFIG_SPLASH_SCREEN) && defined(CONFIG_CMD_BMP)
+#if CONFIG_IS_ENABLED(SPLASH_SCREEN) && defined(CONFIG_CMD_BMP)
 int splash_display(void)
 {
 	ulong addr;
@@ -181,7 +181,7 @@ int splash_display(void)
 	if (x || y)
 		goto end;
 
-#if defined(CONFIG_VIDEO) && !defined(CONFIG_HIDE_LOGO_VERSION)
+#if CONFIG_IS_ENABLED(VIDEO) && CONFIG_IS_ENABLED(HIDE_LOGO_VERSION)
 	splash_display_banner();
 #endif
 end:
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH v4 13/15] include: Enable video related global data variable and splash at SPL
  2023-03-29 12:01 [PATCH v4 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (11 preceding siblings ...)
  2023-03-29 12:01 ` [PATCH v4 12/15] common: Enable splash " Nikhil M Jain
@ 2023-03-29 12:01 ` Nikhil M Jain
  2023-03-30 10:46   ` Devarsh Thakkar
  2023-03-29 12:01 ` [PATCH v4 14/15] common: splash: Replace CONFIG_CMD_BMP Nikhil M Jain
                   ` (2 subsequent siblings)
  15 siblings, 1 reply; 35+ messages in thread
From: Nikhil M Jain @ 2023-03-29 12:01 UTC (permalink / raw)
  To: n-jain1, u-boot, sjg; +Cc: trini, devarsht, vigneshr, nsekhar

To include video related global data variables and splash functions at
SPL, use CONFIG_IS_ENABLED.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
---
V4:
- No change

V3 (patch introduced):
- Include video related global data variables
- Include splash display functions

 include/asm-generic/global_data.h | 4 ++--
 include/splash.h                  | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/include/asm-generic/global_data.h b/include/asm-generic/global_data.h
index da17ac8cbc..bad9f9382e 100644
--- a/include/asm-generic/global_data.h
+++ b/include/asm-generic/global_data.h
@@ -68,7 +68,7 @@ struct global_data {
 	 * @mem_clk: memory clock rate in Hz
 	 */
 	unsigned long mem_clk;
-#if defined(CONFIG_VIDEO)
+#if CONFIG_IS_ENABLED(VIDEO)
 	/**
 	 * @fb_base: base address of frame buffer memory
 	 */
@@ -359,7 +359,7 @@ struct global_data {
 	 */
 	struct membuff console_in;
 #endif
-#ifdef CONFIG_VIDEO
+#if CONFIG_IS_ENABLED(VIDEO)
 	/**
 	 * @video_top: top of video frame buffer area
 	 */
diff --git a/include/splash.h b/include/splash.h
index 33e45e6941..6adde9148c 100644
--- a/include/splash.h
+++ b/include/splash.h
@@ -49,7 +49,7 @@ struct splash_location {
 	char *ubivol;	/* UBI volume-name for ubifsmount */
 };
 
-#ifdef CONFIG_SPLASH_SOURCE
+#if CONFIG_IS_ENABLED(SPLASH_SOURCE)
 int splash_source_load(struct splash_location *locations, uint size);
 #else
 static inline int splash_source_load(struct splash_location *locations,
@@ -61,13 +61,13 @@ static inline int splash_source_load(struct splash_location *locations,
 
 int splash_screen_prepare(void);
 
-#ifdef CONFIG_SPLASH_SCREEN_ALIGN
+#if CONFIG_IS_ENABLED(SPLASH_SCREEN_ALIGN)
 void splash_get_pos(int *x, int *y);
 #else
 static inline void splash_get_pos(int *x, int *y) { }
 #endif
 
-#if defined(CONFIG_SPLASH_SCREEN) && defined(CONFIG_CMD_BMP)
+#if CONFIG_IS_ENABLED(SPLASH_SCREEN) && defined(CONFIG_CMD_BMP)
 int splash_display(void);
 #else
 static inline int splash_display(void)
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH v4 14/15] common: splash: Replace CONFIG_CMD_BMP
  2023-03-29 12:01 [PATCH v4 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (12 preceding siblings ...)
  2023-03-29 12:01 ` [PATCH v4 13/15] include: Enable video related global data variable and splash " Nikhil M Jain
@ 2023-03-29 12:01 ` Nikhil M Jain
  2023-03-30 10:50   ` Devarsh Thakkar
  2023-03-29 12:01 ` [PATCH v4 15/15] board: ti: am62x: evm: OSPI support for splash screen Nikhil M Jain
  2023-03-30 20:14 ` [PATCH v4 00/15] Add splash screen support at u-boot SPL Simon Glass
  15 siblings, 1 reply; 35+ messages in thread
From: Nikhil M Jain @ 2023-03-29 12:01 UTC (permalink / raw)
  To: n-jain1, u-boot, sjg; +Cc: trini, devarsht, vigneshr, nsekhar

Replace CONFIG_CMD_BMP with CONFIG_BMP to enable splash_display function
at u-boot proper and SPL.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
---
V4:
- No change

V3 (patch introduced):
- Replace CONFIG_CMD_BMP with CONFIG_BMP

 common/splash.c  | 2 +-
 include/splash.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/common/splash.c b/common/splash.c
index 9bb2c1121e..a1dd872f59 100644
--- a/common/splash.c
+++ b/common/splash.c
@@ -157,7 +157,7 @@ void splash_display_banner(void)
  * Common function to show a splash image if env("splashimage") is set.
  * For additional details please refer to doc/README.splashprepare.
  */
-#if CONFIG_IS_ENABLED(SPLASH_SCREEN) && defined(CONFIG_CMD_BMP)
+#if CONFIG_IS_ENABLED(SPLASH_SCREEN) && CONFIG_IS_ENABLED(BMP)
 int splash_display(void)
 {
 	ulong addr;
diff --git a/include/splash.h b/include/splash.h
index 6adde9148c..b6a100ffc3 100644
--- a/include/splash.h
+++ b/include/splash.h
@@ -67,7 +67,7 @@ void splash_get_pos(int *x, int *y);
 static inline void splash_get_pos(int *x, int *y) { }
 #endif
 
-#if CONFIG_IS_ENABLED(SPLASH_SCREEN) && defined(CONFIG_CMD_BMP)
+#if CONFIG_IS_ENABLED(SPLASH_SCREEN) && CONFIG_IS_ENABLED(BMP)
 int splash_display(void);
 #else
 static inline int splash_display(void)
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH v4 15/15] board: ti: am62x: evm: OSPI support for splash screen
  2023-03-29 12:01 [PATCH v4 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (13 preceding siblings ...)
  2023-03-29 12:01 ` [PATCH v4 14/15] common: splash: Replace CONFIG_CMD_BMP Nikhil M Jain
@ 2023-03-29 12:01 ` Nikhil M Jain
  2023-03-30 10:50   ` Devarsh Thakkar
  2023-03-30 20:14 ` [PATCH v4 00/15] Add splash screen support at u-boot SPL Simon Glass
  15 siblings, 1 reply; 35+ messages in thread
From: Nikhil M Jain @ 2023-03-29 12:01 UTC (permalink / raw)
  To: n-jain1, u-boot, sjg; +Cc: trini, devarsht, vigneshr, nsekhar

Add ospi boot media support to load splash image from OSPI memory,
add offset to read image from ospi and necessary flags defininig type
of storage and storage device.

Use CONFIG_IS_ENBALED to use the splash locations at SPL and u-boot
proper.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
V4:
- Added Reviewed-by tag

V3:
- Enable splash location at SPL

V2:
- no change

 board/ti/am62x/evm.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/board/ti/am62x/evm.c b/board/ti/am62x/evm.c
index 584b4ec552..63f7517d11 100644
--- a/board/ti/am62x/evm.c
+++ b/board/ti/am62x/evm.c
@@ -20,8 +20,14 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-#ifdef CONFIG_SPLASH_SCREEN
+#ifdef CONFIG_IS_ENABLED(SPLASH_SCREEN)
 static struct splash_location default_splash_locations[] = {
+	{
+		.name = "sf",
+		.storage = SPLASH_STORAGE_SF,
+		.flags = SPLASH_STORAGE_RAW,
+		.offset = 0x700000,
+	},
 	{
 		.name		= "mmc",
 		.storage	= SPLASH_STORAGE_MMC,
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 35+ messages in thread

* Re: [PATCH v4 01/15] drivers: video: Kconfig: Add configs for enabling video at SPL
  2023-03-29 12:01 ` [PATCH v4 01/15] drivers: video: Kconfig: Add configs for enabling video at SPL Nikhil M Jain
@ 2023-03-30  8:52   ` Devarsh Thakkar
  0 siblings, 0 replies; 35+ messages in thread
From: Devarsh Thakkar @ 2023-03-30  8:52 UTC (permalink / raw)
  To: Nikhil M Jain, u-boot, sjg; +Cc: trini, vigneshr, nsekhar

Hi Nikhil,

Thanks for the patch.

On 29/03/23 17:31, Nikhil M Jain wrote:
> 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>

Regards
Devarsh
> ---
> 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 | 221 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 221 insertions(+)
> 
> diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
> index 2a76d19cc8..6ced6e0c41 100644
> --- a/drivers/video/Kconfig
> +++ b/drivers/video/Kconfig
> @@ -900,4 +900,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 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_CMD_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

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH v4 03/15] drivers: Makefile: Add rule to compile video driver
  2023-03-29 12:01 ` [PATCH v4 03/15] drivers: Makefile: Add rule to compile video driver Nikhil M Jain
@ 2023-03-30  9:30   ` Devarsh Thakkar
  0 siblings, 0 replies; 35+ messages in thread
From: Devarsh Thakkar @ 2023-03-30  9:30 UTC (permalink / raw)
  To: Nikhil M Jain, u-boot, sjg; +Cc: trini, vigneshr, nsekhar

Hi Nikhil,

Thanks for the patch.
On 29/03/23 17:31, Nikhil M Jain wrote:
> CONFIG_$(SPL_)VIDEO checks for CONFIG_SPL_VIDEO at SPL and CONFIG_VIDEO
> at u-boot proper and compiles video driver at respective stage.
> 
> Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
> ---
> V4:
> - No change
> 
> V3 (patch introduced):
> - Add rule to compile video driver at SPL
> 
>  drivers/Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/Makefile b/drivers/Makefile
> index 15d19d0c8a..6fd4d80206 100644
> --- a/drivers/Makefile
> +++ b/drivers/Makefile
> @@ -38,6 +38,7 @@ obj-$(CONFIG_$(SPL_TPL_)TPM) += tpm/
>  obj-$(CONFIG_XEN) += xen/
>  obj-$(CONFIG_$(SPL_)FPGA) += fpga/
>  obj-y += bus/
> +obj-$(CONFIG_$(SPL_)VIDEO) += video/imho it should be obj-y +=video here (see below)
>  ifndef CONFIG_TPL_BUILD
>  ifndef CONFIG_VPL_BUILD
> @@ -96,7 +97,6 @@ obj-y += rtc/
>  obj-y += scsi/
>  obj-y += sound/
>  obj-y += spmi/
> -obj-y += video/
Looks to me we are breaking backward compatibility here.
For e.g. I think configs/pinebook_defconfig only enables CONFIG_VIDEO_BRIDGE
now it has to enable CONFIG_VIDEO explicitly too ?


Regards
Devarsh

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH v4 06/15] common: Makefile: Add rule to compile splash and splash_source at SPL
  2023-03-29 12:01 ` [PATCH v4 06/15] common: Makefile: Add rule to compile splash and splash_source " Nikhil M Jain
@ 2023-03-30  9:44   ` Devarsh Thakkar
  0 siblings, 0 replies; 35+ messages in thread
From: Devarsh Thakkar @ 2023-03-30  9:44 UTC (permalink / raw)
  To: Nikhil M Jain, u-boot, sjg; +Cc: trini, vigneshr, nsekhar

Hi Nikhil,

Thanks for the patch.

On 29/03/23 17:31, Nikhil M Jain wrote:
> To enable splash screen and loading bmp from boot media, add rules to
> compile splash.c and splash_source.c at SPL stage only when
> CONFIG_SPL_SPLASH_SCREEN and CONFIG_SPL_SPLASH_SOURCE are defined.
> 
> Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
> ---
> V4:
> - No change
> 
> V3 (patch introduced):
> - Rule to compile splash.c and splash_source.c
> 
>  common/Makefile | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/common/Makefile b/common/Makefile
> index a50302d8b5..3a6ca337e0 100644
> --- a/common/Makefile
> +++ b/common/Makefile
> @@ -56,6 +56,8 @@ obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += fdt_support.o
>  obj-$(CONFIG_SPL_USB_HOST) += usb.o usb_hub.o
>  obj-$(CONFIG_SPL_USB_STORAGE) += usb_storage.o
>  obj-$(CONFIG_SPL_MUSB_NEW) += usb.o
> +obj-$(CONFIG_SPL_SPLASH_SCREEN) += splash.o
I think above macro is tied to using splashimage env, I think you should use
obj-y for this as done in u-boot proper for not to alter the meaning of macro
for now.
In case separate Kconfig is needed for splash.o than imho it should be fixed
in u-boot proper and parallel Kconfig should be introduced for SPL then.

Regards
Devarsh

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH v4 09/15] cmd: Makefile: Rule to compile bmp_cmd
  2023-03-29 12:01 ` [PATCH v4 09/15] cmd: Makefile: Rule to compile bmp_cmd Nikhil M Jain
@ 2023-03-30 10:02   ` Devarsh Thakkar
  2023-03-30 10:06   ` Devarsh Thakkar
  1 sibling, 0 replies; 35+ messages in thread
From: Devarsh Thakkar @ 2023-03-30 10:02 UTC (permalink / raw)
  To: Nikhil M Jain, u-boot, sjg; +Cc: trini, vigneshr, nsekhar

Hi Nikhil,

Thanks for the patch.

On 29/03/23 17:31, Nikhil M Jain wrote:
> Change rule to compile bmp_cmd when CONFIG_CMD_BMP is defined, in place
> of bmp.c.
> 
> Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
> ---
> V4:
> - No change
> 
> V3 (patch introduced):
> - Rule to compile bmp_cmd.c
> 
>  cmd/Makefile | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/cmd/Makefile b/cmd/Makefile
> index 36d2daf22a..c773acb1a1 100644
> --- a/cmd/Makefile
> +++ b/cmd/Makefile
> @@ -29,7 +29,7 @@ obj-$(CONFIG_CMD_BIND) += bind.o
>  obj-$(CONFIG_CMD_BINOP) += binop.o
>  obj-$(CONFIG_CMD_BLOBLIST) += bloblist.o
>  obj-$(CONFIG_CMD_BLOCK_CACHE) += blkcache.o
> -obj-$(CONFIG_CMD_BMP) += bmp.o
I think we are breaking backward compatibility here, the platforms only
enabled CONFIG_CMD_BMP in defconfig.
> +obj-$(CONFIG_CMD_BMP) += bmp_cmd.o 
I think you should add bmp.o too in above to preserve backward compatibility.

Regards
Devarsh

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH v4 10/15] common: Makefile: Rule to compile bmp.c
  2023-03-29 12:01 ` [PATCH v4 10/15] common: Makefile: Rule to compile bmp.c Nikhil M Jain
@ 2023-03-30 10:05   ` Devarsh Thakkar
  0 siblings, 0 replies; 35+ messages in thread
From: Devarsh Thakkar @ 2023-03-30 10:05 UTC (permalink / raw)
  To: Nikhil M Jain, u-boot, sjg; +Cc: trini, vigneshr, nsekhar

Hi Nikhil

Thanks for the patch.
On 29/03/23 17:31, Nikhil M Jain wrote:
> Add rule to compile bmp.c at SPL and u-boot proper when CONFIG_SPL_BMP
> and CONFIG_BMP are defined.
> 
> Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
> ---
> V4:
> - No change
> 
> V3 (patch introduced):
> - Rule to compile common/bmp.c
> 
>  common/Makefile | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/common/Makefile b/common/Makefile
> index 3a6ca337e0..c87bb2e78b 100644
> --- a/common/Makefile
> +++ b/common/Makefile
> @@ -45,6 +45,7 @@ endif # !CONFIG_SPL_BUILD
>  
>  obj-$(CONFIG_$(SPL_TPL_)BOOTSTAGE) += bootstage.o
>  obj-$(CONFIG_$(SPL_TPL_)BLOBLIST) += bloblist.o
> +obj-$(CONFIG_$(SPL_)BMP) += bmp.o
If going with suggestion in previous patch to preserve backward compatiblity
with u-boot proper you should go with
CONFIG_SPL_BMP to make it specific to SPL.

Regards
Devarsh

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH v4 09/15] cmd: Makefile: Rule to compile bmp_cmd
  2023-03-29 12:01 ` [PATCH v4 09/15] cmd: Makefile: Rule to compile bmp_cmd Nikhil M Jain
  2023-03-30 10:02   ` Devarsh Thakkar
@ 2023-03-30 10:06   ` Devarsh Thakkar
  1 sibling, 0 replies; 35+ messages in thread
From: Devarsh Thakkar @ 2023-03-30 10:06 UTC (permalink / raw)
  To: Nikhil M Jain, u-boot, sjg; +Cc: trini, vigneshr, nsekhar

Hi Nikhil,

One more comment on this patch.

On 29/03/23 17:31, Nikhil M Jain wrote:
> Change rule to compile bmp_cmd when CONFIG_CMD_BMP is defined, in place
> of bmp.c.
> 
> Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
> ---
> V4:
> - No change
> 
> V3 (patch introduced):
> - Rule to compile bmp_cmd.c
> 
>  cmd/Makefile | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/cmd/Makefile b/cmd/Makefile
> index 36d2daf22a..c773acb1a1 100644
> --- a/cmd/Makefile
> +++ b/cmd/Makefile
> @@ -29,7 +29,7 @@ obj-$(CONFIG_CMD_BIND) += bind.o
>  obj-$(CONFIG_CMD_BINOP) += binop.o
>  obj-$(CONFIG_CMD_BLOBLIST) += bloblist.o
>  obj-$(CONFIG_CMD_BLOCK_CACHE) += blkcache.o
> -obj-$(CONFIG_CMD_BMP) += bmp.o
> +obj-$(CONFIG_CMD_BMP) += bmp_cmd.o
>  obj-$(CONFIG_CMD_BOOTCOUNT) += bootcount.o
>  obj-$(CONFIG_CMD_BOOTEFI) += bootefi.o
>  obj-$(CONFIG_CMD_BOOTMENU) += bootmenu.o
> @@ -235,6 +235,7 @@ obj-$(CONFIG_$(SPL_)CMD_TLV_EEPROM) += tlv_eeprom.o
>  
>  # core command
>  obj-y += nvedit.o
> +obj-y += read.o
commit message doesnt describe above change, is it really required ?

Regards
Devarsh

>  
>  obj-$(CONFIG_CMD_BCM_EXT_UTILS) += broadcom/
>  

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH v4 11/15] drivers: video: Enable necessary video functions at SPL
  2023-03-29 12:01 ` [PATCH v4 11/15] drivers: video: Enable necessary video functions at SPL Nikhil M Jain
@ 2023-03-30 10:14   ` Devarsh Thakkar
  0 siblings, 0 replies; 35+ messages in thread
From: Devarsh Thakkar @ 2023-03-30 10:14 UTC (permalink / raw)
  To: Nikhil M Jain, u-boot, sjg; +Cc: trini, vigneshr, nsekhar

Hi Nikhil,

Thanks for the patch.

On 29/03/23 17:31, Nikhil M Jain wrote:
> To support video driver at SPL use CONFIG_IS_ENABLED and CONFIG_VAL,
> which checks for stage specific configs and thus enables video support
> at respective stage.
> 
> Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
Reviewed-by: Devarsh Thakkar <devarsht@ti.com>

Regards
Devarsh
> ---
> V4:
> - No change
> 
> V3 (patch introduced):
> - Enable necessary video functions at SPL
> 
>  drivers/video/console_normal.c    |  6 +++---
>  drivers/video/vidconsole-uclass.c |  2 +-
>  drivers/video/video-uclass.c      | 14 +++++++-------
>  drivers/video/video_bmp.c         |  8 ++++----
>  4 files changed, 15 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/video/console_normal.c b/drivers/video/console_normal.c
> index 04f022491e..e48f170c30 100644
> --- a/drivers/video/console_normal.c
> +++ b/drivers/video/console_normal.c
> @@ -24,7 +24,7 @@ static int console_normal_set_row(struct udevice *dev, uint row, int clr)
>  	line = vid_priv->fb + row * VIDEO_FONT_HEIGHT * vid_priv->line_length;
>  	switch (vid_priv->bpix) {
>  	case VIDEO_BPP8:
> -		if (IS_ENABLED(CONFIG_VIDEO_BPP8)) {
> +		if (CONFIG_IS_ENABLED(VIDEO_BPP8)) {
>  			uint8_t *dst = line;
>  
>  			for (i = 0; i < pixels; i++)
> @@ -33,7 +33,7 @@ static int console_normal_set_row(struct udevice *dev, uint row, int clr)
>  			break;
>  		}
>  	case VIDEO_BPP16:
> -		if (IS_ENABLED(CONFIG_VIDEO_BPP16)) {
> +		if (CONFIG_IS_ENABLED(VIDEO_BPP16)) {
>  			uint16_t *dst = line;
>  
>  			for (i = 0; i < pixels; i++)
> @@ -42,7 +42,7 @@ static int console_normal_set_row(struct udevice *dev, uint row, int clr)
>  			break;
>  		}
>  	case VIDEO_BPP32:
> -		if (IS_ENABLED(CONFIG_VIDEO_BPP32)) {
> +		if (CONFIG_IS_ENABLED(VIDEO_BPP32)) {
>  			uint32_t *dst = line;
>  
>  			for (i = 0; i < pixels; i++)
> diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c
> index 72a13d3052..ca6139a050 100644
> --- a/drivers/video/vidconsole-uclass.c
> +++ b/drivers/video/vidconsole-uclass.c
> @@ -86,7 +86,7 @@ static void vidconsole_newline(struct udevice *dev)
>  	struct vidconsole_priv *priv = dev_get_uclass_priv(dev);
>  	struct udevice *vid_dev = dev->parent;
>  	struct video_priv *vid_priv = dev_get_uclass_priv(vid_dev);
> -	const int rows = CONFIG_CONSOLE_SCROLL_LINES;
> +	const int rows = CONFIG_VAL(CONSOLE_SCROLL_LINES);
>  	int i, ret;
>  
>  	priv->xcur_frac = priv->xstart_frac;
> diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
> index 6aaacff10d..93445002d8 100644
> --- a/drivers/video/video-uclass.c
> +++ b/drivers/video/video-uclass.c
> @@ -116,7 +116,7 @@ int video_reserve(ulong *addrp)
>  
>  	/* Allocate space for PCI video devices in case there were not bound */
>  	if (*addrp == gd->video_top)
> -		*addrp -= CONFIG_VIDEO_PCI_DEFAULT_FB_SIZE;
> +		*addrp -= CONFIG_VAL(VIDEO_PCI_DEFAULT_FB_SIZE);
>  
>  	gd->video_bottom = *addrp;
>  	gd->fb_base = *addrp;
> @@ -133,7 +133,7 @@ int video_fill(struct udevice *dev, u32 colour)
>  
>  	switch (priv->bpix) {
>  	case VIDEO_BPP16:
> -		if (IS_ENABLED(CONFIG_VIDEO_BPP16)) {
> +		if (CONFIG_IS_ENABLED(VIDEO_BPP16)) {
>  			u16 *ppix = priv->fb;
>  			u16 *end = priv->fb + priv->fb_size;
>  
> @@ -142,7 +142,7 @@ int video_fill(struct udevice *dev, u32 colour)
>  			break;
>  		}
>  	case VIDEO_BPP32:
> -		if (IS_ENABLED(CONFIG_VIDEO_BPP32)) {
> +		if (CONFIG_IS_ENABLED(VIDEO_BPP32)) {
>  			u32 *ppix = priv->fb;
>  			u32 *end = priv->fb + priv->fb_size;
>  
> @@ -196,14 +196,14 @@ u32 video_index_to_colour(struct video_priv *priv, unsigned int idx)
>  {
>  	switch (priv->bpix) {
>  	case VIDEO_BPP16:
> -		if (IS_ENABLED(CONFIG_VIDEO_BPP16)) {
> +		if (CONFIG_IS_ENABLED(VIDEO_BPP16)) {
>  			return ((colours[idx].r >> 3) << 11) |
>  			       ((colours[idx].g >> 2) <<  5) |
>  			       ((colours[idx].b >> 3) <<  0);
>  		}
>  		break;
>  	case VIDEO_BPP32:
> -		if (IS_ENABLED(CONFIG_VIDEO_BPP32)) {
> +		if (CONFIG_IS_ENABLED(VIDEO_BPP32)) {
>  			if (priv->format == VIDEO_X2R10G10B10)
>  				return (colours[idx].r << 22) |
>  				       (colours[idx].g << 12) |
> @@ -497,8 +497,8 @@ static int video_post_probe(struct udevice *dev)
>  		return ret;
>  	}
>  
> -	if (IS_ENABLED(CONFIG_VIDEO_LOGO) &&
> -	    !IS_ENABLED(CONFIG_SPLASH_SCREEN) && !plat->hide_logo) {
> +	if (CONFIG_IS_ENABLED(VIDEO_LOGO) &&
> +	    !CONFIG_IS_ENABLED(SPLASH_SCREEN) && !plat->hide_logo) {
>  		ret = show_splash(dev);
>  		if (ret) {
>  			log_debug("Cannot show splash screen\n");
> diff --git a/drivers/video/video_bmp.c b/drivers/video/video_bmp.c
> index 6188a13e44..47e52c4f69 100644
> --- a/drivers/video/video_bmp.c
> +++ b/drivers/video/video_bmp.c
> @@ -320,7 +320,7 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
>  	switch (bmp_bpix) {
>  	case 1:
>  	case 8:
> -		if (IS_ENABLED(CONFIG_VIDEO_BMP_RLE8)) {
> +		if (CONFIG_IS_ENABLED(VIDEO_BMP_RLE8)) {
>  			u32 compression = get_unaligned_le32(
>  				&bmp->header.compression);
>  			debug("compressed %d %d\n", compression, BMP_BI_RLE8);
> @@ -348,7 +348,7 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
>  		}
>  		break;
>  	case 16:
> -		if (IS_ENABLED(CONFIG_BMP_16BPP)) {
> +		if (CONFIG_IS_ENABLED(BMP_16BPP)) {
>  			for (i = 0; i < height; ++i) {
>  				schedule();
>  				for (j = 0; j < width; j++) {
> @@ -361,7 +361,7 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
>  		}
>  		break;
>  	case 24:
> -		if (IS_ENABLED(CONFIG_BMP_24BPP)) {
> +		if (CONFIG_IS_ENABLED(BMP_24BPP)) {
>  			for (i = 0; i < height; ++i) {
>  				for (j = 0; j < width; j++) {
>  					if (bpix == 16) {
> @@ -395,7 +395,7 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
>  		}
>  		break;
>  	case 32:
> -		if (IS_ENABLED(CONFIG_BMP_32BPP)) {
> +		if (CONFIG_IS_ENABLED(BMP_32BPP)) {
>  			for (i = 0; i < height; ++i) {
>  				for (j = 0; j < width; j++) {
>  					if (eformat == VIDEO_X2R10G10B10) {

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH v4 12/15] common: Enable splash functions at SPL
  2023-03-29 12:01 ` [PATCH v4 12/15] common: Enable splash " Nikhil M Jain
@ 2023-03-30 10:45   ` Devarsh Thakkar
  2023-03-30 11:52     ` Nikhil M Jain
  0 siblings, 1 reply; 35+ messages in thread
From: Devarsh Thakkar @ 2023-03-30 10:45 UTC (permalink / raw)
  To: Nikhil M Jain, u-boot, sjg; +Cc: trini, vigneshr, nsekhar

Hi Nikhil

Thanks for the patch,

On 29/03/23 17:31, Nikhil M Jain wrote:
> To support splash screen at SPL use CONFIG_IS_ENABLED and CONFIG_VAL. To
> check for stage specific configs at u-boot proper and SPL.
> 
> Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
> ---
> V4:
> - No change
> 
> V3 (patch introduced):
> - Enable splash functions at SPL
> 
>  common/bmp.c    | 10 +++++-----
>  common/splash.c | 10 +++++-----
>  2 files changed, 10 insertions(+), 10 deletions(-)
> 
> diff --git a/common/bmp.c b/common/bmp.c
> index 540d06e63f..51766b3c21 100644
> --- a/common/bmp.c
> +++ b/common/bmp.c
> @@ -33,7 +33,7 @@
>   * Returns NULL if decompression failed, or if the decompressed data
>   * didn't contain a valid BMP signature.
>   */
> -#ifdef CONFIG_VIDEO_BMP_GZIP
> +#if CONFIG_IS_ENABLED(VIDEO_BMP_GZIP)
>  struct bmp_image *gunzip_bmp(unsigned long addr, unsigned long *lenp,
>  			     void **alloc_addr)
>  {
> @@ -44,9 +44,9 @@ struct bmp_image *gunzip_bmp(unsigned long addr, unsigned long *lenp,
>  	/*
>  	 * Decompress bmp image
>  	 */
> -	len = CONFIG_VIDEO_LOGO_MAX_SIZE;
> +	len = CONFIG_VAL(VIDEO_LOGO_MAX_SIZE);
>  	/* allocate extra 3 bytes for 32-bit-aligned-address + 2 alignment */
> -	dst = malloc(CONFIG_VIDEO_LOGO_MAX_SIZE + 3);
> +	dst = malloc(CONFIG_VAL(VIDEO_LOGO_MAX_SIZE) + 3);
>  	if (!dst) {
>  		puts("Error: malloc in gunzip failed!\n");
>  		return NULL;
> @@ -55,12 +55,12 @@ struct bmp_image *gunzip_bmp(unsigned long addr, unsigned long *lenp,
>  	/* align to 32-bit-aligned-address + 2 */
>  	bmp = dst + 2;
>  
> -	if (gunzip(bmp, CONFIG_VIDEO_LOGO_MAX_SIZE, map_sysmem(addr, 0),
> +	if (gunzip(bmp, CONFIG_VAL(VIDEO_LOGO_MAX_SIZE), map_sysmem(addr, 0),
>  		   &len)) {
>  		free(dst);
>  		return NULL;
>  	}
> -	if (len == CONFIG_VIDEO_LOGO_MAX_SIZE)
> +	if (len == CONFIG_VAL(VIDEO_LOGO_MAX_SIZE))
>  		puts("Image could be truncated (increase CONFIG_VIDEO_LOGO_MAX_SIZE)!\n");
>  
>  	/*
> diff --git a/common/splash.c b/common/splash.c
> index 245ff680eb..9bb2c1121e 100644
> --- a/common/splash.c
> +++ b/common/splash.c
> @@ -89,14 +89,14 @@ static inline int splash_video_logo_load(void) { return -ENOSYS; }
>  
>  __weak int splash_screen_prepare(void)
>  {
> -	if (IS_ENABLED(CONFIG_SPLASH_SOURCE))
> +	if (CONFIG_IS_ENABLED(SPLASH_SOURCE))
>  		return splash_source_load(default_splash_locations,
>  					  ARRAY_SIZE(default_splash_locations));
>  
>  	return splash_video_logo_load();
>  }
>  
> -#ifdef CONFIG_SPLASH_SCREEN_ALIGN
> +#if CONFIG_IS_ENABLED(SPLASH_SCREEN_ALIGN)
>  void splash_get_pos(int *x, int *y)
>  {
>  	char *s = env_get("splashpos");
> @@ -119,7 +119,7 @@ void splash_get_pos(int *x, int *y)
>  }
>  #endif /* CONFIG_SPLASH_SCREEN_ALIGN */
>  
> -#if defined(CONFIG_VIDEO) && !defined(CONFIG_HIDE_LOGO_VERSION)
> +#if CONFIG_IS_ENABLED(VIDEO) && !CONFIG_IS_ENABLED(HIDE_LOGO_VERSION)
>  
>  #ifdef CONFIG_VIDEO_LOGO
>  #include <bmp_logo.h>
> @@ -157,7 +157,7 @@ void splash_display_banner(void)
>   * Common function to show a splash image if env("splashimage") is set.
>   * For additional details please refer to doc/README.splashprepare.
>   */
> -#if defined(CONFIG_SPLASH_SCREEN) && defined(CONFIG_CMD_BMP)
> +#if CONFIG_IS_ENABLED(SPLASH_SCREEN) && defined(CONFIG_CMD_BMP)
I thought you don't set CONFIG_CMD_BMP for SPL ?
If so you should add an or for CONFIG_SPL_BMP ?
I am not sure how it works today then without this change.

Regards
Devarsh

>  int splash_display(void)
>  {
>  	ulong addr;
> @@ -181,7 +181,7 @@ int splash_display(void)
>  	if (x || y)
>  		goto end;
>  
> -#if defined(CONFIG_VIDEO) && !defined(CONFIG_HIDE_LOGO_VERSION)
> +#if CONFIG_IS_ENABLED(VIDEO) && CONFIG_IS_ENABLED(HIDE_LOGO_VERSION)
>  	splash_display_banner();
>  #endif
>  end:

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH v4 13/15] include: Enable video related global data variable and splash at SPL
  2023-03-29 12:01 ` [PATCH v4 13/15] include: Enable video related global data variable and splash " Nikhil M Jain
@ 2023-03-30 10:46   ` Devarsh Thakkar
  0 siblings, 0 replies; 35+ messages in thread
From: Devarsh Thakkar @ 2023-03-30 10:46 UTC (permalink / raw)
  To: Nikhil M Jain, u-boot, sjg; +Cc: trini, vigneshr, nsekhar

Hi Nikhil

Thanks for the patch,

On 29/03/23 17:31, Nikhil M Jain wrote:
> To include video related global data variables and splash functions at
> SPL, use CONFIG_IS_ENABLED.
> 
> Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
> ---
> V4:
> - No change
> 
> V3 (patch introduced):
> - Include video related global data variables
> - Include splash display functions
> 
>  include/asm-generic/global_data.h | 4 ++--
>  include/splash.h                  | 6 +++---
>  2 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/include/asm-generic/global_data.h b/include/asm-generic/global_data.h
> index da17ac8cbc..bad9f9382e 100644
> --- a/include/asm-generic/global_data.h
> +++ b/include/asm-generic/global_data.h
> @@ -68,7 +68,7 @@ struct global_data {
>  	 * @mem_clk: memory clock rate in Hz
>  	 */
>  	unsigned long mem_clk;
> -#if defined(CONFIG_VIDEO)
> +#if CONFIG_IS_ENABLED(VIDEO)
>  	/**
>  	 * @fb_base: base address of frame buffer memory
>  	 */
> @@ -359,7 +359,7 @@ struct global_data {
>  	 */
>  	struct membuff console_in;
>  #endif
> -#ifdef CONFIG_VIDEO
> +#if CONFIG_IS_ENABLED(VIDEO)
>  	/**
>  	 * @video_top: top of video frame buffer area
>  	 */
> diff --git a/include/splash.h b/include/splash.h
> index 33e45e6941..6adde9148c 100644
> --- a/include/splash.h
> +++ b/include/splash.h
> @@ -49,7 +49,7 @@ struct splash_location {
>  	char *ubivol;	/* UBI volume-name for ubifsmount */
>  };
>  
> -#ifdef CONFIG_SPLASH_SOURCE
> +#if CONFIG_IS_ENABLED(SPLASH_SOURCE)
>  int splash_source_load(struct splash_location *locations, uint size);
>  #else
>  static inline int splash_source_load(struct splash_location *locations,
> @@ -61,13 +61,13 @@ static inline int splash_source_load(struct splash_location *locations,
>  
>  int splash_screen_prepare(void);
>  
> -#ifdef CONFIG_SPLASH_SCREEN_ALIGN
> +#if CONFIG_IS_ENABLED(SPLASH_SCREEN_ALIGN)
>  void splash_get_pos(int *x, int *y);
>  #else
>  static inline void splash_get_pos(int *x, int *y) { }
>  #endif
>  
> -#if defined(CONFIG_SPLASH_SCREEN) && defined(CONFIG_CMD_BMP)
> +#if CONFIG_IS_ENABLED(SPLASH_SCREEN) && defined(CONFIG_CMD_BMP)
Same comment as previous patch, don't you need CONFIG_SPL_BMP ?
>  int splash_display(void);
>  #else
>  static inline int splash_display(void)

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH v4 14/15] common: splash: Replace CONFIG_CMD_BMP
  2023-03-29 12:01 ` [PATCH v4 14/15] common: splash: Replace CONFIG_CMD_BMP Nikhil M Jain
@ 2023-03-30 10:50   ` Devarsh Thakkar
  0 siblings, 0 replies; 35+ messages in thread
From: Devarsh Thakkar @ 2023-03-30 10:50 UTC (permalink / raw)
  To: Nikhil M Jain, u-boot, sjg; +Cc: trini, vigneshr, nsekhar

Hi Nikhil,

Thanks for the patch.
I think good to squash similar patches to CONFIG_BMP together.
On 29/03/23 17:31, Nikhil M Jain wrote:
> Replace CONFIG_CMD_BMP with CONFIG_BMP to enable splash_display function
> at u-boot proper and SPL.
> 
> Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
> ---
> V4:
> - No change
> 
> V3 (patch introduced):
> - Replace CONFIG_CMD_BMP with CONFIG_BMP
> 
>  common/splash.c  | 2 +-
>  include/splash.h | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/common/splash.c b/common/splash.c
> index 9bb2c1121e..a1dd872f59 100644
> --- a/common/splash.c
> +++ b/common/splash.c
> @@ -157,7 +157,7 @@ void splash_display_banner(void)
>   * Common function to show a splash image if env("splashimage") is set.
>   * For additional details please refer to doc/README.splashprepare.
>   */
> -#if CONFIG_IS_ENABLED(SPLASH_SCREEN) && defined(CONFIG_CMD_BMP)
> +#if CONFIG_IS_ENABLED(SPLASH_SCREEN) && CONFIG_IS_ENABLED(BMP)
This seems to break backward compatibility for platforms who only use
CONFIG_CMD_BMP.
I think you can use CONFIG_CMD_BMP orred with CONFIG_SPL_BMP

Regards
Devarsh
>  int splash_display(void)
>  {
>  	ulong addr;
> diff --git a/include/splash.h b/include/splash.h
> index 6adde9148c..b6a100ffc3 100644
> --- a/include/splash.h
> +++ b/include/splash.h
> @@ -67,7 +67,7 @@ void splash_get_pos(int *x, int *y);
>  static inline void splash_get_pos(int *x, int *y) { }
>  #endif
>  
> -#if CONFIG_IS_ENABLED(SPLASH_SCREEN) && defined(CONFIG_CMD_BMP)
> +#if CONFIG_IS_ENABLED(SPLASH_SCREEN) && CONFIG_IS_ENABLED(BMP)
>  int splash_display(void);
>  #else
>  static inline int splash_display(void)

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH v4 15/15] board: ti: am62x: evm: OSPI support for splash screen
  2023-03-29 12:01 ` [PATCH v4 15/15] board: ti: am62x: evm: OSPI support for splash screen Nikhil M Jain
@ 2023-03-30 10:50   ` Devarsh Thakkar
  0 siblings, 0 replies; 35+ messages in thread
From: Devarsh Thakkar @ 2023-03-30 10:50 UTC (permalink / raw)
  To: Nikhil M Jain, u-boot, sjg; +Cc: trini, vigneshr, nsekhar

Hi Nikhil

Thanks for the patch.

On 29/03/23 17:31, Nikhil M Jain wrote:
> Add ospi boot media support to load splash image from OSPI memory,
> add offset to read image from ospi and necessary flags defininig type
> of storage and storage device.
> 
> Use CONFIG_IS_ENBALED to use the splash locations at SPL and u-boot
> proper.
> 
> Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Devarsh Thakkar <devarsht@ti.com>

Regards
Devarsh
> ---
> V4:
> - Added Reviewed-by tag
> 
> V3:
> - Enable splash location at SPL
> 
> V2:
> - no change
> 
>  board/ti/am62x/evm.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/board/ti/am62x/evm.c b/board/ti/am62x/evm.c
> index 584b4ec552..63f7517d11 100644
> --- a/board/ti/am62x/evm.c
> +++ b/board/ti/am62x/evm.c
> @@ -20,8 +20,14 @@
>  
>  DECLARE_GLOBAL_DATA_PTR;
>  
> -#ifdef CONFIG_SPLASH_SCREEN
> +#ifdef CONFIG_IS_ENABLED(SPLASH_SCREEN)
>  static struct splash_location default_splash_locations[] = {
> +	{
> +		.name = "sf",
> +		.storage = SPLASH_STORAGE_SF,
> +		.flags = SPLASH_STORAGE_RAW,
> +		.offset = 0x700000,
> +	},
>  	{
>  		.name		= "mmc",
>  		.storage	= SPLASH_STORAGE_MMC,

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH v4 12/15] common: Enable splash functions at SPL
  2023-03-30 10:45   ` Devarsh Thakkar
@ 2023-03-30 11:52     ` Nikhil M Jain
  0 siblings, 0 replies; 35+ messages in thread
From: Nikhil M Jain @ 2023-03-30 11:52 UTC (permalink / raw)
  To: Devarsh Thakkar, u-boot, sjg; +Cc: trini, vigneshr, nsekhar

Hi Devarsh

On 30/03/23 16:15, Devarsh Thakkar wrote:
> Hi Nikhil
> 
> Thanks for the patch,
> 
> On 29/03/23 17:31, Nikhil M Jain wrote:
>> To support splash screen at SPL use CONFIG_IS_ENABLED and CONFIG_VAL. To
>> check for stage specific configs at u-boot proper and SPL.
>>
>> Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
>> ---
>> V4:
>> - No change
>>
>> V3 (patch introduced):
>> - Enable splash functions at SPL
>>
>>   common/bmp.c    | 10 +++++-----
>>   common/splash.c | 10 +++++-----
>>   2 files changed, 10 insertions(+), 10 deletions(-)
>>
>> diff --git a/common/bmp.c b/common/bmp.c
>> index 540d06e63f..51766b3c21 100644
>> --- a/common/bmp.c
>> +++ b/common/bmp.c
>> @@ -33,7 +33,7 @@
>>    * Returns NULL if decompression failed, or if the decompressed data
>>    * didn't contain a valid BMP signature.
>>    */
>> -#ifdef CONFIG_VIDEO_BMP_GZIP
>> +#if CONFIG_IS_ENABLED(VIDEO_BMP_GZIP)
>>   struct bmp_image *gunzip_bmp(unsigned long addr, unsigned long *lenp,
>>   			     void **alloc_addr)
>>   {
>> @@ -44,9 +44,9 @@ struct bmp_image *gunzip_bmp(unsigned long addr, unsigned long *lenp,
>>   	/*
>>   	 * Decompress bmp image
>>   	 */
>> -	len = CONFIG_VIDEO_LOGO_MAX_SIZE;
>> +	len = CONFIG_VAL(VIDEO_LOGO_MAX_SIZE);
>>   	/* allocate extra 3 bytes for 32-bit-aligned-address + 2 alignment */
>> -	dst = malloc(CONFIG_VIDEO_LOGO_MAX_SIZE + 3);
>> +	dst = malloc(CONFIG_VAL(VIDEO_LOGO_MAX_SIZE) + 3);
>>   	if (!dst) {
>>   		puts("Error: malloc in gunzip failed!\n");
>>   		return NULL;
>> @@ -55,12 +55,12 @@ struct bmp_image *gunzip_bmp(unsigned long addr, unsigned long *lenp,
>>   	/* align to 32-bit-aligned-address + 2 */
>>   	bmp = dst + 2;
>>   
>> -	if (gunzip(bmp, CONFIG_VIDEO_LOGO_MAX_SIZE, map_sysmem(addr, 0),
>> +	if (gunzip(bmp, CONFIG_VAL(VIDEO_LOGO_MAX_SIZE), map_sysmem(addr, 0),
>>   		   &len)) {
>>   		free(dst);
>>   		return NULL;
>>   	}
>> -	if (len == CONFIG_VIDEO_LOGO_MAX_SIZE)
>> +	if (len == CONFIG_VAL(VIDEO_LOGO_MAX_SIZE))
>>   		puts("Image could be truncated (increase CONFIG_VIDEO_LOGO_MAX_SIZE)!\n");
>>   
>>   	/*
>> diff --git a/common/splash.c b/common/splash.c
>> index 245ff680eb..9bb2c1121e 100644
>> --- a/common/splash.c
>> +++ b/common/splash.c
>> @@ -89,14 +89,14 @@ static inline int splash_video_logo_load(void) { return -ENOSYS; }
>>   
>>   __weak int splash_screen_prepare(void)
>>   {
>> -	if (IS_ENABLED(CONFIG_SPLASH_SOURCE))
>> +	if (CONFIG_IS_ENABLED(SPLASH_SOURCE))
>>   		return splash_source_load(default_splash_locations,
>>   					  ARRAY_SIZE(default_splash_locations));
>>   
>>   	return splash_video_logo_load();
>>   }
>>   
>> -#ifdef CONFIG_SPLASH_SCREEN_ALIGN
>> +#if CONFIG_IS_ENABLED(SPLASH_SCREEN_ALIGN)
>>   void splash_get_pos(int *x, int *y)
>>   {
>>   	char *s = env_get("splashpos");
>> @@ -119,7 +119,7 @@ void splash_get_pos(int *x, int *y)
>>   }
>>   #endif /* CONFIG_SPLASH_SCREEN_ALIGN */
>>   
>> -#if defined(CONFIG_VIDEO) && !defined(CONFIG_HIDE_LOGO_VERSION)
>> +#if CONFIG_IS_ENABLED(VIDEO) && !CONFIG_IS_ENABLED(HIDE_LOGO_VERSION)
>>   
>>   #ifdef CONFIG_VIDEO_LOGO
>>   #include <bmp_logo.h>
>> @@ -157,7 +157,7 @@ void splash_display_banner(void)
>>    * Common function to show a splash image if env("splashimage") is set.
>>    * For additional details please refer to doc/README.splashprepare.
>>    */
>> -#if defined(CONFIG_SPLASH_SCREEN) && defined(CONFIG_CMD_BMP)
>> +#if CONFIG_IS_ENABLED(SPLASH_SCREEN) && defined(CONFIG_CMD_BMP)
> I thought you don't set CONFIG_CMD_BMP for SPL ?
> If so you should add an or for CONFIG_SPL_BMP ?
> I am not sure how it works today then without this change.
> 
I have done the change in
patch 14  common: splash: Replace CONFIG_CMD_BMP

> Regards
> Devarsh
> 
>>   int splash_display(void)
>>   {
>>   	ulong addr;
>> @@ -181,7 +181,7 @@ int splash_display(void)
>>   	if (x || y)
>>   		goto end;
>>   
>> -#if defined(CONFIG_VIDEO) && !defined(CONFIG_HIDE_LOGO_VERSION)
>> +#if CONFIG_IS_ENABLED(VIDEO) && CONFIG_IS_ENABLED(HIDE_LOGO_VERSION)
>>   	splash_display_banner();
>>   #endif
>>   end:

Thanks,
Nikhil

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH v4 00/15] Add splash screen support at u-boot SPL
  2023-03-29 12:01 [PATCH v4 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (14 preceding siblings ...)
  2023-03-29 12:01 ` [PATCH v4 15/15] board: ti: am62x: evm: OSPI support for splash screen Nikhil M Jain
@ 2023-03-30 20:14 ` Simon Glass
  2023-03-31  4:58   ` Nikhil M Jain
  15 siblings, 1 reply; 35+ messages in thread
From: Simon Glass @ 2023-03-30 20:14 UTC (permalink / raw)
  To: Nikhil M Jain; +Cc: u-boot, trini, devarsht, vigneshr, nsekhar

Hi Nikhil,

On Thu, 30 Mar 2023 at 01:01, Nikhil M Jain <n-jain1@ti.com> wrote:
>
> To enable splash screen at SPL stage move video driver and splash screen
> framework at SPL, which will bring up image on display very quickly and
> thus have early display support in SPL.
>
> Change in V4
> - Add Reviewed-by tag in apprpriate patch
>
> Change in V3
> - Add separate video configs for SPL splash screen
> - Add rule to compile video driver in drivers/Makefile at SPL
> - Add rule to compile splash.c and splash_source.c
> - Squash drivers: video: video-uclass: Disable u-boot logo at SPL into
>   drivers: video: Use CONFIG_IS_ENABLED and CONFIG_VAL
> - Split cmd/bmp.c to separate bmp functions and commands.
> - Add CONFIG_BMP and CONFIG_SPL_BMP.
> - Add rule to compile necessary files required for video driver.
> - Add rule to compile common/bmp.c
>
> Change in V2
> - Removed artifacts from bad patch apply.
>
> Nikhil M Jain (15):
>   drivers: video: Kconfig: Add configs for enabling video at SPL
>   drivers: video: tidss: Kconfig: Configs to enable TIDSS at SPL
>   drivers: Makefile: Add rule to compile video driver
>   drivers: video: Makefile: Rule to compile necessary video driver
>     files.
>   drivers: video: tidss: Makefile: Add condition to compile TIDSS at SPL
>   common: Makefile: Add rule to compile splash and splash_source at SPL
>   common: Kconfig: Add BMP configs
>   cmd: bmp: Split bmp commands and functions
>   cmd: Makefile: Rule to compile bmp_cmd
>   common: Makefile: Rule to compile bmp.c
>   drivers: video: Enable necessary video functions at SPL
>   common: Enable splash functions at SPL
>   include: Enable video related global data variable and splash at SPL
>   common: splash: Replace CONFIG_CMD_BMP
>   board: ti: am62x: evm: OSPI support for splash screen
>
>  board/ti/am62x/evm.c              |   8 +-
>  cmd/Makefile                      |   3 +-
>  cmd/bmp_cmd.c                     |  98 +++++++++++++
>  common/Kconfig                    |  12 ++
>  common/Makefile                   |   3 +
>  {cmd => common}/bmp.c             | 114 +--------------
>  common/splash.c                   |  10 +-
>  drivers/Makefile                  |   2 +-
>  drivers/video/Kconfig             | 221 ++++++++++++++++++++++++++++++
>  drivers/video/Makefile            |  10 ++
>  drivers/video/console_normal.c    |   6 +-
>  drivers/video/tidss/Kconfig       |   6 +
>  drivers/video/tidss/Makefile      |   2 +-
>  drivers/video/vidconsole-uclass.c |   2 +-
>  drivers/video/video-uclass.c      |  14 +-
>  drivers/video/video_bmp.c         |   8 +-
>  include/asm-generic/global_data.h |   4 +-
>  include/splash.h                  |   6 +-
>  include/video.h                   |   7 +
>  19 files changed, 399 insertions(+), 137 deletions(-)
>  create mode 100644 cmd/bmp_cmd.c
>  rename {cmd => common}/bmp.c (58%)
>
> --
> 2.34.1
>

I wasn't able to apply this to -next due to conflicts. Could you
please check that?

Regards,
Simon

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH v4 04/15] drivers: video: Makefile: Rule to compile necessary video driver files.
  2023-03-29 12:01 ` [PATCH v4 04/15] drivers: video: Makefile: Rule to compile necessary video driver files Nikhil M Jain
@ 2023-03-30 20:14   ` Simon Glass
  2023-03-31  5:00     ` Nikhil M Jain
  0 siblings, 1 reply; 35+ messages in thread
From: Simon Glass @ 2023-03-30 20:14 UTC (permalink / raw)
  To: Nikhil M Jain; +Cc: u-boot, trini, devarsht, vigneshr, nsekhar

Hi Nikhil,

On Thu, 30 Mar 2023 at 01:01, Nikhil M Jain <n-jain1@ti.com> wrote:
>
> To enable video driver at SPL, need to compile video-uclass,
> vidconsole-uclass, backlight-uclass, panel-uclass, simple-panel, add
> rules to compile them at SPL only. To support splash_display at SPL,
> need to compile video-bmp, add rule to compile at SPL stage only.
>
> Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
> ---
> V4:
> - No change
>
> V3:
> - Rule to compile backlight, console and panel files
> - Not added Reiewed-by tag due to changes
>
> V2:
> - No change
>
>  drivers/video/Makefile | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/drivers/video/Makefile b/drivers/video/Makefile
> index cdb7d9a54d..2374b240c2 100644
> --- a/drivers/video/Makefile
> +++ b/drivers/video/Makefile
> @@ -68,3 +68,12 @@ obj-$(CONFIG_VIDEO_ZYNQMP_DPSUB) += zynqmp_dpsub.o
>
>  obj-y += bridge/
>  obj-y += sunxi/
> +
> +ifdef CONFIG_SPL_BUILD
> +obj-$(CONFIG_SPL_BACKLIGHT) += backlight-uclass.o
> +obj-$(CONFIG_SPL_PANEL) += panel-uclass.o
> +obj-$(CONFIG_SPL_SIMPLE_PANEL) += simple_panel.o
> +obj-$(CONFIG_SPL_CONSOLE_NORMAL) += console_normal.o
> +obj-$(CONFIG_SPL_VIDEO) += video-uclass.o vidconsole-uclass.o
> +obj-$(CONFIG_SPL_VIDEO) += video_bmp.o

Can you use

obj-$(CONFIG_$(SPL_TPL_)VIDEO) += video_bmp.o

instead?

If I ever get back to the split config thing we'll need that.

> +endif
> --
> 2.34.1
>

Regards,
Simon

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH v4 07/15] common: Kconfig: Add BMP config
  2023-03-29 12:01 ` [PATCH v4 07/15] common: Kconfig: Add BMP config Nikhil M Jain
@ 2023-03-30 20:14   ` Simon Glass
  0 siblings, 0 replies; 35+ messages in thread
From: Simon Glass @ 2023-03-30 20:14 UTC (permalink / raw)
  To: Nikhil M Jain; +Cc: u-boot, trini, devarsht, vigneshr, nsekhar

On Thu, 30 Mar 2023 at 01:02, Nikhil M Jain <n-jain1@ti.com> wrote:
>
> Add CONFIG_BMP and CONFIG_SPL_BMP which enable displaying bmp images at
> u-boot proper and SPL.
>
> Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
> ---
> V4:
> - No change
>
> V3 (patch introduced):
> - Add CONFIG BMP and SPL_BMP
>
>  common/Kconfig | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH v4 08/15] cmd: bmp: Split bmp commands and functions
  2023-03-29 12:01 ` [PATCH v4 08/15] cmd: bmp: Split bmp commands and functions Nikhil M Jain
@ 2023-03-30 20:14   ` Simon Glass
  2023-03-31  5:01     ` Nikhil M Jain
  0 siblings, 1 reply; 35+ messages in thread
From: Simon Glass @ 2023-03-30 20:14 UTC (permalink / raw)
  To: Nikhil M Jain; +Cc: u-boot, trini, devarsht, vigneshr, nsekhar

Hi Nikhil,

On Thu, 30 Mar 2023 at 01:02, Nikhil M Jain <n-jain1@ti.com> wrote:
>
> To enable splash screen at spl, need to compile cmd/bmp.c which also
> includes bmp commands, since SPL can't have commands split bmp.c into
> common/bmp.c which includes all bmp functions and cmd/bmp_cmd contains
> bmp commands.
>
> Add delclaration for bmp_info in video.h.
>
> Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
> ---
> V4:
> - No change
>
> V3 (patch introduced):
> - Split bmp functions and commands
>
>  cmd/bmp_cmd.c         |  98 +++++++++++++++++++++++++++++++++++++++

Please can you keep this as cmd/bmp.c ?

>  {cmd => common}/bmp.c | 104 +-----------------------------------------
>  include/video.h       |   7 +++
>  3 files changed, 106 insertions(+), 103 deletions(-)
>  create mode 100644 cmd/bmp_cmd.c
>  rename {cmd => common}/bmp.c (62%)
>

Otherwise looks good

[..]

Regards,
SImon

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH v4 00/15] Add splash screen support at u-boot SPL
  2023-03-30 20:14 ` [PATCH v4 00/15] Add splash screen support at u-boot SPL Simon Glass
@ 2023-03-31  4:58   ` Nikhil M Jain
  0 siblings, 0 replies; 35+ messages in thread
From: Nikhil M Jain @ 2023-03-31  4:58 UTC (permalink / raw)
  To: Simon Glass; +Cc: u-boot, trini, devarsht, vigneshr, nsekhar

Hi Simon

On 31/03/23 01:44, Simon Glass wrote:
> Hi Nikhil,
> 
> On Thu, 30 Mar 2023 at 01:01, Nikhil M Jain <n-jain1@ti.com> wrote:
>>
>> To enable splash screen at SPL stage move video driver and splash screen
>> framework at SPL, which will bring up image on display very quickly and
>> thus have early display support in SPL.
>>
>> Change in V4
>> - Add Reviewed-by tag in apprpriate patch
>>
>> Change in V3
>> - Add separate video configs for SPL splash screen
>> - Add rule to compile video driver in drivers/Makefile at SPL
>> - Add rule to compile splash.c and splash_source.c
>> - Squash drivers: video: video-uclass: Disable u-boot logo at SPL into
>>    drivers: video: Use CONFIG_IS_ENABLED and CONFIG_VAL
>> - Split cmd/bmp.c to separate bmp functions and commands.
>> - Add CONFIG_BMP and CONFIG_SPL_BMP.
>> - Add rule to compile necessary files required for video driver.
>> - Add rule to compile common/bmp.c
>>
>> Change in V2
>> - Removed artifacts from bad patch apply.
>>
>> Nikhil M Jain (15):
>>    drivers: video: Kconfig: Add configs for enabling video at SPL
>>    drivers: video: tidss: Kconfig: Configs to enable TIDSS at SPL
>>    drivers: Makefile: Add rule to compile video driver
>>    drivers: video: Makefile: Rule to compile necessary video driver
>>      files.
>>    drivers: video: tidss: Makefile: Add condition to compile TIDSS at SPL
>>    common: Makefile: Add rule to compile splash and splash_source at SPL
>>    common: Kconfig: Add BMP configs
>>    cmd: bmp: Split bmp commands and functions
>>    cmd: Makefile: Rule to compile bmp_cmd
>>    common: Makefile: Rule to compile bmp.c
>>    drivers: video: Enable necessary video functions at SPL
>>    common: Enable splash functions at SPL
>>    include: Enable video related global data variable and splash at SPL
>>    common: splash: Replace CONFIG_CMD_BMP
>>    board: ti: am62x: evm: OSPI support for splash screen
>>
>>   board/ti/am62x/evm.c              |   8 +-
>>   cmd/Makefile                      |   3 +-
>>   cmd/bmp_cmd.c                     |  98 +++++++++++++
>>   common/Kconfig                    |  12 ++
>>   common/Makefile                   |   3 +
>>   {cmd => common}/bmp.c             | 114 +--------------
>>   common/splash.c                   |  10 +-
>>   drivers/Makefile                  |   2 +-
>>   drivers/video/Kconfig             | 221 ++++++++++++++++++++++++++++++
>>   drivers/video/Makefile            |  10 ++
>>   drivers/video/console_normal.c    |   6 +-
>>   drivers/video/tidss/Kconfig       |   6 +
>>   drivers/video/tidss/Makefile      |   2 +-
>>   drivers/video/vidconsole-uclass.c |   2 +-
>>   drivers/video/video-uclass.c      |  14 +-
>>   drivers/video/video_bmp.c         |   8 +-
>>   include/asm-generic/global_data.h |   4 +-
>>   include/splash.h                  |   6 +-
>>   include/video.h                   |   7 +
>>   19 files changed, 399 insertions(+), 137 deletions(-)
>>   create mode 100644 cmd/bmp_cmd.c
>>   rename {cmd => common}/bmp.c (58%)
>>
>> --
>> 2.34.1
>>
> 
> I wasn't able to apply this to -next due to conflicts. Could you
> please check that?
> 
I will check and fix the issue.

> Regards,
> Simon

Thanks,
Nikhil

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH v4 04/15] drivers: video: Makefile: Rule to compile necessary video driver files.
  2023-03-30 20:14   ` Simon Glass
@ 2023-03-31  5:00     ` Nikhil M Jain
  0 siblings, 0 replies; 35+ messages in thread
From: Nikhil M Jain @ 2023-03-31  5:00 UTC (permalink / raw)
  To: Simon Glass; +Cc: u-boot, trini, devarsht, vigneshr, nsekhar

Hi Simon

On 31/03/23 01:44, Simon Glass wrote:
> Hi Nikhil,
> 
> On Thu, 30 Mar 2023 at 01:01, Nikhil M Jain <n-jain1@ti.com> wrote:
>>
>> To enable video driver at SPL, need to compile video-uclass,
>> vidconsole-uclass, backlight-uclass, panel-uclass, simple-panel, add
>> rules to compile them at SPL only. To support splash_display at SPL,
>> need to compile video-bmp, add rule to compile at SPL stage only.
>>
>> Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
>> ---
>> V4:
>> - No change
>>
>> V3:
>> - Rule to compile backlight, console and panel files
>> - Not added Reiewed-by tag due to changes
>>
>> V2:
>> - No change
>>
>>   drivers/video/Makefile | 9 +++++++++
>>   1 file changed, 9 insertions(+)
>>
>> diff --git a/drivers/video/Makefile b/drivers/video/Makefile
>> index cdb7d9a54d..2374b240c2 100644
>> --- a/drivers/video/Makefile
>> +++ b/drivers/video/Makefile
>> @@ -68,3 +68,12 @@ obj-$(CONFIG_VIDEO_ZYNQMP_DPSUB) += zynqmp_dpsub.o
>>
>>   obj-y += bridge/
>>   obj-y += sunxi/
>> +
>> +ifdef CONFIG_SPL_BUILD
>> +obj-$(CONFIG_SPL_BACKLIGHT) += backlight-uclass.o
>> +obj-$(CONFIG_SPL_PANEL) += panel-uclass.o
>> +obj-$(CONFIG_SPL_SIMPLE_PANEL) += simple_panel.o
>> +obj-$(CONFIG_SPL_CONSOLE_NORMAL) += console_normal.o
>> +obj-$(CONFIG_SPL_VIDEO) += video-uclass.o vidconsole-uclass.o
>> +obj-$(CONFIG_SPL_VIDEO) += video_bmp.o
> 
> Can you use
> 
> obj-$(CONFIG_$(SPL_TPL_)VIDEO) += video_bmp.o
> 
> instead?
> 
> If I ever get back to the split config thing we'll need that.
> 
I can use obj-$(CONFIG_$(SPL_TPL_)VIDEO) += video_bmp.o.

>> +endif
>> --
>> 2.34.1
>>
> 
> Regards,
> Simon

Thanks,
Nikhil

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH v4 08/15] cmd: bmp: Split bmp commands and functions
  2023-03-30 20:14   ` Simon Glass
@ 2023-03-31  5:01     ` Nikhil M Jain
  0 siblings, 0 replies; 35+ messages in thread
From: Nikhil M Jain @ 2023-03-31  5:01 UTC (permalink / raw)
  To: Simon Glass; +Cc: u-boot, trini, devarsht, vigneshr, nsekhar

Hi Simon,

On 31/03/23 01:44, Simon Glass wrote:
> Hi Nikhil,
> 
> On Thu, 30 Mar 2023 at 01:02, Nikhil M Jain <n-jain1@ti.com> wrote:
>>
>> To enable splash screen at spl, need to compile cmd/bmp.c which also
>> includes bmp commands, since SPL can't have commands split bmp.c into
>> common/bmp.c which includes all bmp functions and cmd/bmp_cmd contains
>> bmp commands.
>>
>> Add delclaration for bmp_info in video.h.
>>
>> Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
>> ---
>> V4:
>> - No change
>>
>> V3 (patch introduced):
>> - Split bmp functions and commands
>>
>>   cmd/bmp_cmd.c         |  98 +++++++++++++++++++++++++++++++++++++++
> 
> Please can you keep this as cmd/bmp.c ?

I will keep cmd/bmp.c
> 
>>   {cmd => common}/bmp.c | 104 +-----------------------------------------
>>   include/video.h       |   7 +++
>>   3 files changed, 106 insertions(+), 103 deletions(-)
>>   create mode 100644 cmd/bmp_cmd.c
>>   rename {cmd => common}/bmp.c (62%)
>>
> 
> Otherwise looks good
> 
> [..]
> 
> Regards,
> SImon

Thanks,
Nikhil

^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2023-03-31  5:01 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-29 12:01 [PATCH v4 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
2023-03-29 12:01 ` [PATCH v4 01/15] drivers: video: Kconfig: Add configs for enabling video at SPL Nikhil M Jain
2023-03-30  8:52   ` Devarsh Thakkar
2023-03-29 12:01 ` [PATCH v4 02/15] drivers: video: tidss: Kconfig: Configs to enable TIDSS " Nikhil M Jain
2023-03-29 12:01 ` [PATCH v4 03/15] drivers: Makefile: Add rule to compile video driver Nikhil M Jain
2023-03-30  9:30   ` Devarsh Thakkar
2023-03-29 12:01 ` [PATCH v4 04/15] drivers: video: Makefile: Rule to compile necessary video driver files Nikhil M Jain
2023-03-30 20:14   ` Simon Glass
2023-03-31  5:00     ` Nikhil M Jain
2023-03-29 12:01 ` [PATCH v4 05/15] drivers: video: tidss: Makefile: Add condition to compile TIDSS at SPL Nikhil M Jain
2023-03-29 12:01 ` [PATCH v4 06/15] common: Makefile: Add rule to compile splash and splash_source " Nikhil M Jain
2023-03-30  9:44   ` Devarsh Thakkar
2023-03-29 12:01 ` [PATCH v4 07/15] common: Kconfig: Add BMP config Nikhil M Jain
2023-03-30 20:14   ` Simon Glass
2023-03-29 12:01 ` [PATCH v4 08/15] cmd: bmp: Split bmp commands and functions Nikhil M Jain
2023-03-30 20:14   ` Simon Glass
2023-03-31  5:01     ` Nikhil M Jain
2023-03-29 12:01 ` [PATCH v4 09/15] cmd: Makefile: Rule to compile bmp_cmd Nikhil M Jain
2023-03-30 10:02   ` Devarsh Thakkar
2023-03-30 10:06   ` Devarsh Thakkar
2023-03-29 12:01 ` [PATCH v4 10/15] common: Makefile: Rule to compile bmp.c Nikhil M Jain
2023-03-30 10:05   ` Devarsh Thakkar
2023-03-29 12:01 ` [PATCH v4 11/15] drivers: video: Enable necessary video functions at SPL Nikhil M Jain
2023-03-30 10:14   ` Devarsh Thakkar
2023-03-29 12:01 ` [PATCH v4 12/15] common: Enable splash " Nikhil M Jain
2023-03-30 10:45   ` Devarsh Thakkar
2023-03-30 11:52     ` Nikhil M Jain
2023-03-29 12:01 ` [PATCH v4 13/15] include: Enable video related global data variable and splash " Nikhil M Jain
2023-03-30 10:46   ` Devarsh Thakkar
2023-03-29 12:01 ` [PATCH v4 14/15] common: splash: Replace CONFIG_CMD_BMP Nikhil M Jain
2023-03-30 10:50   ` Devarsh Thakkar
2023-03-29 12:01 ` [PATCH v4 15/15] board: ti: am62x: evm: OSPI support for splash screen Nikhil M Jain
2023-03-30 10:50   ` Devarsh Thakkar
2023-03-30 20:14 ` [PATCH v4 00/15] Add splash screen support at u-boot SPL Simon Glass
2023-03-31  4:58   ` Nikhil M Jain

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.