On Fri, Nov 19, 2021 at 12:28 PM Simon Glass <s...@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 <s...@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 via email to