All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tim Harvey <tharvey@gateworks.com>
To: Simon Glass <sjg@chromium.org>
Cc: "U-Boot Mailing List" <u-boot@lists.denx.de>,
	"Anatolij Gustschin" <agust@denx.de>,
	"Tom Rini" <trini@konsulko.com>,
	"Alistair Delva" <adelva@google.com>,
	"Heinrich Schuchardt" <xypron.glpk@gmx.de>,
	"Marek Behún" <marek.behun@nic.cz>,
	"Roger Pau Monne" <royger@freebsd.org>
Subject: Re: [PATCH 19/23] video: Support showing the U-Boot logo
Date: Tue, 15 Mar 2022 09:13:59 -0700	[thread overview]
Message-ID: <CAJ+vNU2cdET+oOkH8dqF+1yYO2NhCU66q9nybvyZvLOTbHZQfQ@mail.gmail.com> (raw)
In-Reply-To: <20211119202408.1815506-20-sjg@chromium.org>

On Fri, Nov 19, 2021 at 12:28 PM Simon Glass <sjg@chromium.org> wrote:
>
> Show the U-Boot logo by default. This is only 7KB in size so seems like
> a useful default for boards that enable a display.
>
> If SPLASH_SCREEN is enabled, it is not enabled by default, so as not to
> conflict with that feature.
>
> Also disable it for tests, since we don't want to complicate the output.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
>
>  drivers/video/Kconfig         |   1 +
>  drivers/video/Makefile        |   3 +++
>  drivers/video/sandbox_sdl.c   |   2 ++
>  drivers/video/u_boot_logo.bmp | Bin 0 -> 6932 bytes
>  drivers/video/video-uclass.c  |  26 ++++++++++++++++++++
>  include/video.h               |   2 ++
>  scripts/Makefile.lib          |  21 +++++++++++++++++
>  test/dm/video.c               |  43 +++++++++++++++++++++++++++-------
>  8 files changed, 89 insertions(+), 9 deletions(-)
>  create mode 100644 drivers/video/u_boot_logo.bmp
>
> diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
> index 7a73ecc1f40..e601b47806b 100644
> --- a/drivers/video/Kconfig
> +++ b/drivers/video/Kconfig
> @@ -17,6 +17,7 @@ config DM_VIDEO
>  config VIDEO_LOGO
>         bool "Show the U-Boot logo on the display"
>         depends on DM_VIDEO
> +       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
> diff --git a/drivers/video/Makefile b/drivers/video/Makefile
> index 8956b5f9b00..4038395b128 100644
> --- a/drivers/video/Makefile
> +++ b/drivers/video/Makefile
> @@ -17,6 +17,9 @@ obj-$(CONFIG_DM_VIDEO) += video_bmp.o
>  obj-$(CONFIG_PANEL) += panel-uclass.o
>  obj-$(CONFIG_DM_PANEL_HX8238D) += hx8238d.o
>  obj-$(CONFIG_SIMPLE_PANEL) += simple_panel.o
> +
> +obj-$(CONFIG_VIDEO_LOGO) += u_boot_logo.o
> +
>  endif
>
>  obj-${CONFIG_EXYNOS_FB} += exynos/
> diff --git a/drivers/video/sandbox_sdl.c b/drivers/video/sandbox_sdl.c
> index 2afe66fab1a..9081c7da62e 100644
> --- a/drivers/video/sandbox_sdl.c
> +++ b/drivers/video/sandbox_sdl.c
> @@ -82,12 +82,14 @@ static void set_bpp(struct udevice *dev, enum video_log2_bpp l2bpp)
>
>  int sandbox_sdl_set_bpp(struct udevice *dev, enum video_log2_bpp l2bpp)
>  {
> +       struct video_uc_plat *uc_plat = dev_get_uclass_plat(dev);
>         int ret;
>
>         if (device_active(dev))
>                 return -EINVAL;
>         sandbox_sdl_remove_display();
>
> +       uc_plat->hide_logo = true;
>         set_bpp(dev, l2bpp);
>
>         ret = device_probe(dev);
> diff --git a/drivers/video/u_boot_logo.bmp b/drivers/video/u_boot_logo.bmp
> new file mode 100644
> index 0000000000000000000000000000000000000000..47f1e9b99789584d2f6dd71e954b51927b35d783
> GIT binary patch
> literal 6932
> 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
>
> literal 0
> HcmV?d00001
>
> diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
> index fafd05e373f..feed9c9a949 100644
> --- a/drivers/video/video-uclass.c
> +++ b/drivers/video/video-uclass.c
> @@ -305,6 +305,24 @@ int video_sync_copy_all(struct udevice *dev)
>
>  #endif
>
> +#define SPLASH_DECL(_name) \
> +       extern u8 __splash_ ## _name ## _begin[]; \
> +       extern u8 __splash_ ## _name ## _end[]
> +
> +#define SPLASH_START(_name)    __splash_ ## _name ## _begin
> +
> +SPLASH_DECL(u_boot_logo);
> +
> +static int show_splash(struct udevice *dev)
> +{
> +       u8 *data = SPLASH_START(u_boot_logo);
> +       int ret;
> +
> +       ret = video_bmp_display(dev, map_to_sysmem(data), -4, 4, true);
> +
> +       return 0;
> +}
> +
>  /* Set up the display ready for use */
>  static int video_post_probe(struct udevice *dev)
>  {
> @@ -370,6 +388,14 @@ static int video_post_probe(struct udevice *dev)
>                 return ret;
>         }
>
> +       if (IS_ENABLED(CONFIG_VIDEO_LOGO) && !plat->hide_logo) {
> +               ret = show_splash(dev);
> +               if (ret) {
> +                       log_debug("Cannot show splash screen\n");
> +                       return ret;
> +               }
> +       }
> +
>         return 0;
>  };
>
> diff --git a/include/video.h b/include/video.h
> index 6948cdf5796..59c9d9c18ca 100644
> --- a/include/video.h
> +++ b/include/video.h
> @@ -30,12 +30,14 @@ struct udevice;
>   * @base: Base address of frame buffer, 0 if not yet known
>   * @copy_base: Base address of a hardware copy of the frame buffer. See
>   *     CONFIG_VIDEO_COPY.
> + * @hide_logo: Hide the logo (used for testing)
>   */
>  struct video_uc_plat {
>         uint align;
>         uint size;
>         ulong base;
>         ulong copy_base;
> +       bool hide_logo;
>  };
>
>  enum video_polarity {
> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> index 39f03398ed8..06cc2d938db 100644
> --- a/scripts/Makefile.lib
> +++ b/scripts/Makefile.lib
> @@ -372,6 +372,27 @@ cmd_S_ttf=                                         \
>  $(obj)/%.S: $(src)/%.ttf
>         $(call cmd,S_ttf)
>
> +# Splash logos
> +# ---------------------------------------------------------------------------
> +
> +# Generate an assembly file to wrap the splash data
> +quiet_cmd_S_splash= TTF     $@
> +# Modified for U-Boot
> +cmd_S_splash=                                          \
> +(                                                      \
> +       echo '.section .rodata.splash.init,"a"';                \
> +       echo '.balign 16';                              \
> +       echo '.global __splash_$(*F)_begin';            \
> +       echo '__splash_$(*F)_begin:';                   \
> +       echo '.incbin "$<" ';                           \
> +       echo '__splash_$(*F)_end:';                     \
> +       echo '.global __splash_$(*F)_end';                      \
> +       echo '.balign 16';                              \
> +) > $@
> +
> +$(obj)/%.S: $(src)/%.bmp
> +       $(call cmd,S_splash)
> +
>  # EFI applications
>  # A Makefile target *.efi is built as EFI application.
>  # A Makefile target *_efi.S wraps *.efi as built-in EFI application.
> diff --git a/test/dm/video.c b/test/dm/video.c
> index 4e76574a913..d4a3c9c6c17 100644
> --- a/test/dm/video.c
> +++ b/test/dm/video.c
> @@ -115,6 +115,31 @@ static int select_vidconsole(struct unit_test_state *uts, const char *drv_name)
>         return 0;
>  }
>
> +/**
> + * video_get_nologo() - Disable the logo on the video device and return it
> + *
> + * @uts: Test state
> + * @devp: Returns video device
> + * @return 0 if OK, -ve on error
> + */
> +static int video_get_nologo(struct unit_test_state *uts, struct udevice **devp)
> +{
> +       struct video_uc_plat *uc_plat;
> +       struct udevice *dev;
> +
> +       ut_assertok(uclass_find_first_device(UCLASS_VIDEO, &dev));
> +       ut_assertnonnull(dev);
> +       uc_plat = dev_get_uclass_plat(dev);
> +       uc_plat->hide_logo = true;
> +
> +       /* now probe it */
> +       ut_assertok(uclass_first_device_err(UCLASS_VIDEO, &dev));
> +       ut_assertnonnull(dev);
> +       *devp = dev;
> +
> +       return 0;
> +}
> +
>  /* Test text output works on the video console */
>  static int dm_test_video_text(struct unit_test_state *uts)
>  {
> @@ -125,7 +150,7 @@ static int dm_test_video_text(struct unit_test_state *uts)
>  #define SCROLL_LINES   100
>
>         ut_assertok(select_vidconsole(uts, "vidconsole0"));
> -       ut_assertok(uclass_get_device(UCLASS_VIDEO, 0, &dev));
> +       ut_assertok(video_get_nologo(uts, &dev));
>         ut_asserteq(46, compress_frame_buffer(uts, dev));
>
>         ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
> @@ -157,7 +182,7 @@ static int dm_test_video_chars(struct unit_test_state *uts)
>         const char *test_string = "Well\b\b\b\bxhe is\r \n\ta very \amodest  \bman\n\t\tand Has much to\b\bto be modest about.";
>
>         ut_assertok(select_vidconsole(uts, "vidconsole0"));
> -       ut_assertok(uclass_get_device(UCLASS_VIDEO, 0, &dev));
> +       ut_assertok(video_get_nologo(uts, &dev));
>         ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
>         vidconsole_put_string(con, test_string);
>         ut_asserteq(466, compress_frame_buffer(uts, dev));
> @@ -174,7 +199,7 @@ static int dm_test_video_ansi(struct unit_test_state *uts)
>         struct udevice *dev, *con;
>
>         ut_assertok(select_vidconsole(uts, "vidconsole0"));
> -       ut_assertok(uclass_get_device(UCLASS_VIDEO, 0, &dev));
> +       ut_assertok(video_get_nologo(uts, &dev));
>         ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
>
>         /* reference clear: */
> @@ -222,7 +247,7 @@ static int check_vidconsole_output(struct unit_test_state *uts, int rot,
>         plat = dev_get_plat(dev);
>         plat->rot = rot;
>
> -       ut_assertok(uclass_get_device(UCLASS_VIDEO, 0, &dev));
> +       ut_assertok(video_get_nologo(uts, &dev));
>         ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
>         ut_asserteq(46, compress_frame_buffer(uts, dev));
>
> @@ -311,7 +336,7 @@ static int dm_test_video_bmp(struct unit_test_state *uts)
>         struct udevice *dev;
>         ulong addr;
>
> -       ut_assertok(uclass_get_device(UCLASS_VIDEO, 0, &dev));
> +       ut_assertok(video_get_nologo(uts, &dev));
>         ut_assertok(read_file(uts, "tools/logos/denx.bmp", &addr));
>
>         ut_assertok(video_bmp_display(dev, addr, 0, 0, false));
> @@ -433,7 +458,7 @@ static int dm_test_video_bmp_comp(struct unit_test_state *uts)
>         struct udevice *dev;
>         ulong addr;
>
> -       ut_assertok(uclass_get_device(UCLASS_VIDEO, 0, &dev));
> +       ut_assertok(video_get_nologo(uts, &dev));
>         ut_assertok(read_file(uts, "tools/logos/denx-comp.bmp", &addr));
>
>         ut_assertok(video_bmp_display(dev, addr, 0, 0, false));
> @@ -487,7 +512,7 @@ static int dm_test_video_truetype(struct unit_test_state *uts)
>         struct udevice *dev, *con;
>         const char *test_string = "Criticism may not be agreeable, but it is necessary. It fulfils the same function as pain in the human body. It calls attention to an unhealthy state of things. Some see private enterprise as a predatory target to be shot, others as a cow to be milked, but few are those who see it as a sturdy horse pulling the wagon. The \aprice OF\b\bof greatness\n\tis responsibility.\n\nBye";
>
> -       ut_assertok(uclass_get_device(UCLASS_VIDEO, 0, &dev));
> +       ut_assertok(video_get_nologo(uts, &dev));
>         ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
>         vidconsole_put_string(con, test_string);
>         ut_asserteq(12237, compress_frame_buffer(uts, dev));
> @@ -508,7 +533,7 @@ static int dm_test_video_truetype_scroll(struct unit_test_state *uts)
>         plat = dev_get_plat(dev);
>         plat->font_size = 100;
>
> -       ut_assertok(uclass_get_device(UCLASS_VIDEO, 0, &dev));
> +       ut_assertok(video_get_nologo(uts, &dev));
>         ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
>         vidconsole_put_string(con, test_string);
>         ut_asserteq(35030, compress_frame_buffer(uts, dev));
> @@ -529,7 +554,7 @@ static int dm_test_video_truetype_bs(struct unit_test_state *uts)
>         plat = dev_get_plat(dev);
>         plat->font_size = 100;
>
> -       ut_assertok(uclass_get_device(UCLASS_VIDEO, 0, &dev));
> +       ut_assertok(video_get_nologo(uts, &dev));
>         ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
>         vidconsole_put_string(con, test_string);
>         ut_asserteq(29018, compress_frame_buffer(uts, dev));
> --
> 2.34.0.rc2.393.gf8c9666880-goog
>

Simon,

I find that this patch enables the default U-Boot Logo in the
top-right corner for gwventana_*_defconfig even though I have a custom
splash-screen (so I see both).

I have the following in my defconfig:
$ grep -e "SPLASH\|LOGO" configs/gwventana_nand_defconfig
CONFIG_VIDEO_LOGO=y
CONFIG_SPLASH_SCREEN=y
CONFIG_SPLASH_SCREEN_ALIGN=y

If I disable VIDEO_LOGO I don't see either the U-Boot logo or my
SPLASH_SCREEN. The commit log says "If SPLASH_SCREEN is enabled, it is
not enabled by default, so as not to conflict with that feature." but
I don't see where you do anything in this patch with SPLASH_SCREEN.

Ideas?

Best Regards,

Tim

  reply	other threads:[~2022-03-15 16:14 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-19 20:23 [PATCH 00/23] video: Support a U-Boot logo more easily Simon Glass
2021-11-19 20:23 ` [PATCH 01/23] sandbox: video: Support 8bpp depth Simon Glass
2021-11-19 20:23 ` [PATCH 02/23] video: sandbox: Avoid duplicate display windows Simon Glass
2021-11-19 20:23 ` [PATCH 03/23] console: Avoid serial output before the console is running Simon Glass
2021-11-19 20:23 ` [PATCH 04/23] video: sandbox: Set a maximum frame-buffer size Simon Glass
2021-11-19 20:23 ` [PATCH 05/23] sandbox: video: Correct the address of the copy base Simon Glass
2021-11-19 20:23 ` [PATCH 06/23] sandbox: video: Add BMP tests for 32bpp and 8bpp modes Simon Glass
2021-11-19 20:23 ` [PATCH 07/23] video: Expand video debugging buffer size Simon Glass
2021-11-19 20:23 ` [PATCH 08/23] sandbox: Enable support for the gzip command Simon Glass
2021-11-19 20:23 ` [PATCH 09/23] video: Drop fb_put_byte() el at Simon Glass
2021-11-19 20:23 ` [PATCH 10/23] video: Move BMP pixel-writing into a function Simon Glass
2021-11-19 20:23 ` [PATCH 11/23] video: bmp: Update RLE8 support to use the write function Simon Glass
2021-11-19 20:23 ` [PATCH 12/23] video: Drop the uclass colour map Simon Glass
2021-11-19 20:23 ` [PATCH 13/23] video: Tidy up 24/32 BMP blitting Simon Glass
2021-11-19 20:23 ` [PATCH 14/23] video: Add a test for 16bpp BMP files Simon Glass
2021-11-19 20:23 ` [PATCH 15/23] video: theadorable: Use RGB565 for BMP blitting Simon Glass
2021-11-19 20:24 ` [PATCH 16/23] video: Drop #ifdefs from video_bmp Simon Glass
2021-11-19 20:24 ` [PATCH 17/23] video: Convert CONFIG_VIDEO_LOGO to Kconfig Simon Glass
2022-01-22 13:26   ` Pali Rohár
2022-01-22 15:29     ` Tom Rini
2022-01-22 15:41       ` Pali Rohár
2022-01-22 18:41         ` Tom Rini
2022-01-23 14:48           ` Pali Rohár
2022-01-23 14:54             ` Tom Rini
2022-01-23 15:11               ` Pali Rohár
2022-01-23 16:14                 ` Tom Rini
2022-01-24  9:39                 ` Merlijn Wajer
2022-01-24 14:42                   ` Tom Rini
2022-01-22 17:17     ` Simon Glass
2021-11-19 20:24 ` [PATCH 18/23] video: Drop VIDEO_LOGO from cfb_console Simon Glass
2021-11-19 20:24 ` [PATCH 19/23] video: Support showing the U-Boot logo Simon Glass
2022-03-15 16:13   ` Tim Harvey [this message]
2022-03-28  6:35     ` Simon Glass
2022-03-28 18:50       ` Tim Harvey
2022-03-28 19:00         ` Fabio Estevam
2021-11-19 20:24 ` [PATCH 20/23] video: Show the U-Boot logo by default Simon Glass
2021-11-19 20:24 ` [PATCH 21/23] video: Support virtio devices with the splash screen Simon Glass
2021-11-23  2:08   ` Jaehoon Chung
2021-11-23  3:02     ` Peng Fan (OSS)
2021-11-19 20:24 ` [PATCH 22/23] x86: coreboot: Support getting a logo from virtio Simon Glass
2021-11-19 20:24 ` [PATCH 23/23] x86: coreboot: Add a sample script to build a qemu image Simon Glass

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAJ+vNU2cdET+oOkH8dqF+1yYO2NhCU66q9nybvyZvLOTbHZQfQ@mail.gmail.com \
    --to=tharvey@gateworks.com \
    --cc=adelva@google.com \
    --cc=agust@denx.de \
    --cc=marek.behun@nic.cz \
    --cc=royger@freebsd.org \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    --cc=xypron.glpk@gmx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is 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.