All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/15] Add splash screen support at u-boot SPL
@ 2023-03-29 10:30 Nikhil M Jain
  2023-03-29 10:30 ` [PATCH v3 01/15] drivers: video: Kconfig: Add configs for enabling video at SPL Nikhil M Jain
                   ` (15 more replies)
  0 siblings, 16 replies; 18+ messages in thread
From: Nikhil M Jain @ 2023-03-29 10:30 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.

changes 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 CONFI_SPL_BMP.
- Add rule to compile necessary files required for video driver.

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] 18+ messages in thread

* [PATCH v3 01/15] drivers: video: Kconfig: Add configs for enabling video at SPL
  2023-03-29 10:30 [PATCH v3 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
@ 2023-03-29 10:30 ` Nikhil M Jain
  2023-03-29 10:30 ` [PATCH v3 02/15] drivers: video: tidss: Kconfig: Configs to enable TIDSS " Nikhil M Jain
                   ` (14 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Nikhil M Jain @ 2023-03-29 10:30 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>
---
 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] 18+ messages in thread

* [PATCH v3 02/15] drivers: video: tidss: Kconfig: Configs to enable TIDSS at SPL
  2023-03-29 10:30 [PATCH v3 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
  2023-03-29 10:30 ` [PATCH v3 01/15] drivers: video: Kconfig: Add configs for enabling video at SPL Nikhil M Jain
@ 2023-03-29 10:30 ` Nikhil M Jain
  2023-03-29 10:30 ` [PATCH v3 03/15] drivers: Makefile: Add rule to compile video driver Nikhil M Jain
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Nikhil M Jain @ 2023-03-29 10:30 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>
---
 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] 18+ messages in thread

* [PATCH v3 03/15] drivers: Makefile: Add rule to compile video driver
  2023-03-29 10:30 [PATCH v3 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
  2023-03-29 10:30 ` [PATCH v3 01/15] drivers: video: Kconfig: Add configs for enabling video at SPL Nikhil M Jain
  2023-03-29 10:30 ` [PATCH v3 02/15] drivers: video: tidss: Kconfig: Configs to enable TIDSS " Nikhil M Jain
@ 2023-03-29 10:30 ` Nikhil M Jain
  2023-03-29 10:30 ` [PATCH v3 04/15] drivers: video: Makefile: Rule to compile necessary video driver files Nikhil M Jain
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Nikhil M Jain @ 2023-03-29 10:30 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>
---
 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] 18+ messages in thread

* [PATCH v3 04/15] drivers: video: Makefile: Rule to compile necessary video driver files.
  2023-03-29 10:30 [PATCH v3 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (2 preceding siblings ...)
  2023-03-29 10:30 ` [PATCH v3 03/15] drivers: Makefile: Add rule to compile video driver Nikhil M Jain
@ 2023-03-29 10:30 ` Nikhil M Jain
  2023-03-29 10:30 ` [PATCH v3 05/15] drivers: video: tidss: Makefile: Add condition to compile TIDSS at SPL Nikhil M Jain
                   ` (11 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Nikhil M Jain @ 2023-03-29 10:30 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>
---
 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] 18+ messages in thread

* [PATCH v3 05/15] drivers: video: tidss: Makefile: Add condition to compile TIDSS at SPL
  2023-03-29 10:30 [PATCH v3 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (3 preceding siblings ...)
  2023-03-29 10:30 ` [PATCH v3 04/15] drivers: video: Makefile: Rule to compile necessary video driver files Nikhil M Jain
@ 2023-03-29 10:30 ` Nikhil M Jain
  2023-03-29 10:30 ` [PATCH v3 06/15] common: Makefile: Add rule to compile splash and splash_source " Nikhil M Jain
                   ` (10 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Nikhil M Jain @ 2023-03-29 10:30 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>
---
 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] 18+ messages in thread

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

To enable splash screen and loading bmp from boot media mmc, sf 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>
---
 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] 18+ messages in thread

* [PATCH v3 07/15] common: Kconfig: Add BMP config
  2023-03-29 10:30 [PATCH v3 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (5 preceding siblings ...)
  2023-03-29 10:30 ` [PATCH v3 06/15] common: Makefile: Add rule to compile splash and splash_source " Nikhil M Jain
@ 2023-03-29 10:30 ` Nikhil M Jain
  2023-03-29 10:30 ` [PATCH v3 08/15] cmd: bmp: Split bmp commands and functions Nikhil M Jain
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Nikhil M Jain @ 2023-03-29 10:30 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>
---
 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] 18+ messages in thread

* [PATCH v3 08/15] cmd: bmp: Split bmp commands and functions
  2023-03-29 10:30 [PATCH v3 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (6 preceding siblings ...)
  2023-03-29 10:30 ` [PATCH v3 07/15] common: Kconfig: Add BMP config Nikhil M Jain
@ 2023-03-29 10:30 ` Nikhil M Jain
  2023-03-29 10:30 ` [PATCH v3 09/15] cmd: Makefile: Rule to compile bmp_cmd Nikhil M Jain
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Nikhil M Jain @ 2023-03-29 10:30 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>
---
 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] 18+ messages in thread

* [PATCH v3 09/15] cmd: Makefile: Rule to compile bmp_cmd
  2023-03-29 10:30 [PATCH v3 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (7 preceding siblings ...)
  2023-03-29 10:30 ` [PATCH v3 08/15] cmd: bmp: Split bmp commands and functions Nikhil M Jain
@ 2023-03-29 10:30 ` Nikhil M Jain
  2023-03-29 10:30 ` [PATCH v3 10/15] common: Makefile: Rule to compile bmp.c Nikhil M Jain
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Nikhil M Jain @ 2023-03-29 10:30 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>
---
 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] 18+ messages in thread

* [PATCH v3 10/15] common: Makefile: Rule to compile bmp.c
  2023-03-29 10:30 [PATCH v3 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (8 preceding siblings ...)
  2023-03-29 10:30 ` [PATCH v3 09/15] cmd: Makefile: Rule to compile bmp_cmd Nikhil M Jain
@ 2023-03-29 10:30 ` Nikhil M Jain
  2023-03-29 10:30 ` [PATCH v3 11/15] drivers: video: Enable necessary video functions at SPL Nikhil M Jain
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Nikhil M Jain @ 2023-03-29 10:30 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>
---
 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] 18+ messages in thread

* [PATCH v3 11/15] drivers: video: Enable necessary video functions at SPL
  2023-03-29 10:30 [PATCH v3 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (9 preceding siblings ...)
  2023-03-29 10:30 ` [PATCH v3 10/15] common: Makefile: Rule to compile bmp.c Nikhil M Jain
@ 2023-03-29 10:30 ` Nikhil M Jain
  2023-03-29 10:30 ` [PATCH v3 12/15] common: Enable splash " Nikhil M Jain
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Nikhil M Jain @ 2023-03-29 10:30 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>
---
 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] 18+ messages in thread

* [PATCH v3 12/15] common: Enable splash functions at SPL
  2023-03-29 10:30 [PATCH v3 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (10 preceding siblings ...)
  2023-03-29 10:30 ` [PATCH v3 11/15] drivers: video: Enable necessary video functions at SPL Nikhil M Jain
@ 2023-03-29 10:30 ` Nikhil M Jain
  2023-03-29 10:30 ` [PATCH v3 13/15] include: Enable video related global data variable and splash " Nikhil M Jain
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Nikhil M Jain @ 2023-03-29 10:30 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>
---
 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] 18+ messages in thread

* [PATCH v3 13/15] include: Enable video related global data variable and splash at SPL
  2023-03-29 10:30 [PATCH v3 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (11 preceding siblings ...)
  2023-03-29 10:30 ` [PATCH v3 12/15] common: Enable splash " Nikhil M Jain
@ 2023-03-29 10:30 ` Nikhil M Jain
  2023-03-29 10:30 ` [PATCH v3 14/15] common: splash: Replace CONFIG_CMD_BMP Nikhil M Jain
                   ` (2 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Nikhil M Jain @ 2023-03-29 10:30 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 to check for stage specific configs.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
---
 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] 18+ messages in thread

* [PATCH v3 14/15] common: splash: Replace CONFIG_CMD_BMP
  2023-03-29 10:30 [PATCH v3 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (12 preceding siblings ...)
  2023-03-29 10:30 ` [PATCH v3 13/15] include: Enable video related global data variable and splash " Nikhil M Jain
@ 2023-03-29 10:30 ` Nikhil M Jain
  2023-03-29 10:30 ` [PATCH v3 15/15] board: ti: am62x: evm: OSPI support for splash screen Nikhil M Jain
  2023-03-29 10:39 ` [PATCH v3 00/15] Add splash screen support at u-boot SPL Devarsh Thakkar
  15 siblings, 0 replies; 18+ messages in thread
From: Nikhil M Jain @ 2023-03-29 10:30 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>
---
 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] 18+ messages in thread

* [PATCH v3 15/15] board: ti: am62x: evm: OSPI support for splash screen
  2023-03-29 10:30 [PATCH v3 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (13 preceding siblings ...)
  2023-03-29 10:30 ` [PATCH v3 14/15] common: splash: Replace CONFIG_CMD_BMP Nikhil M Jain
@ 2023-03-29 10:30 ` Nikhil M Jain
  2023-03-29 10:39 ` [PATCH v3 00/15] Add splash screen support at u-boot SPL Devarsh Thakkar
  15 siblings, 0 replies; 18+ messages in thread
From: Nikhil M Jain @ 2023-03-29 10:30 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>
---
 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] 18+ messages in thread

* Re: [PATCH v3 00/15] Add splash screen support at u-boot SPL
  2023-03-29 10:30 [PATCH v3 00/15] Add splash screen support at u-boot SPL Nikhil M Jain
                   ` (14 preceding siblings ...)
  2023-03-29 10:30 ` [PATCH v3 15/15] board: ti: am62x: evm: OSPI support for splash screen Nikhil M Jain
@ 2023-03-29 10:39 ` Devarsh Thakkar
  2023-03-29 20:02   ` Simon Glass
  15 siblings, 1 reply; 18+ messages in thread
From: Devarsh Thakkar @ 2023-03-29 10:39 UTC (permalink / raw)
  To: Nikhil M Jain, u-boot, sjg; +Cc: trini, vigneshr, nsekhar

Hi Nikhil,

Thanks for the series.
On 29/03/23 16:00, Nikhil M Jain 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.
> 
> changes 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 CONFI_SPL_BMP.
> - Add rule to compile necessary files required for video driver.
> 
Changelog also needs to be on each patchset.
Also mention why Simon's Reviewed-By, Tested-By removed in particular
patchsets and add wherever it is still applicable.

Regards
Devarsh

> 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%)
> 

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

* Re: [PATCH v3 00/15] Add splash screen support at u-boot SPL
  2023-03-29 10:39 ` [PATCH v3 00/15] Add splash screen support at u-boot SPL Devarsh Thakkar
@ 2023-03-29 20:02   ` Simon Glass
  0 siblings, 0 replies; 18+ messages in thread
From: Simon Glass @ 2023-03-29 20:02 UTC (permalink / raw)
  To: Devarsh Thakkar; +Cc: Nikhil M Jain, u-boot, trini, vigneshr, nsekhar

Hi,

On Wed, 29 Mar 2023 at 23:40, Devarsh Thakkar <devarsht@ti.com> wrote:
>
> Hi Nikhil,
>
> Thanks for the series.
> On 29/03/23 16:00, Nikhil M Jain 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.
> >
> > changes 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 CONFI_SPL_BMP.
> > - Add rule to compile necessary files required for video driver.
> >
> Changelog also needs to be on each patchset.
> Also mention why Simon's Reviewed-By, Tested-By removed in particular
> patchsets and add wherever it is still applicable.

If you are not using patman, please consider it. It does this
automatically and saves everyone a lot of effort.

Regards,
Simon

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

end of thread, other threads:[~2023-03-29 20:03 UTC | newest]

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

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.