From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 34F94C433EF for ; Tue, 15 Mar 2022 16:14:27 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 4965183BF7; Tue, 15 Mar 2022 17:14:24 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=gateworks.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gateworks-com.20210112.gappssmtp.com header.i=@gateworks-com.20210112.gappssmtp.com header.b="LU6g1E7M"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id A77DD83C0C; Tue, 15 Mar 2022 17:14:21 +0100 (CET) Received: from mail-pf1-x430.google.com (mail-pf1-x430.google.com [IPv6:2607:f8b0:4864:20::430]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 2273783BFE for ; Tue, 15 Mar 2022 17:14:14 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=gateworks.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=tharvey@gateworks.com Received: by mail-pf1-x430.google.com with SMTP id l8so9990527pfu.1 for ; Tue, 15 Mar 2022 09:14:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gateworks-com.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=Nat3ULR21Et1UN+mc5PwJdg8FRYioyEW7Np+PKsfXH4=; b=LU6g1E7MWI22m0jaEBMwsZ4W9HqWzxbzQr3lrbNPTbtPFZbS+tcPSIub7PZkkNv/VF x1xqXdjiIAycZgqo0zqUfZoskU3p+TvVKhlTuJOcfn6RZwt87ynG5XHx+KbN2v+S5i+D 3Wqgq0zlqatMrWjWInYAKhm3uEsfSZXcUqv0OENYd4+Egstg2oDO+yE3E/P9vUc3kxgO wgbFWzbNbijX0xDTWSiQ5eEC47YEADwOT5AYeQQ4TSnwgyUPayhgl29l79cznP7uwRlM nLfifTotaXymG1v9cm9c2bD9YugNBcphPuvbNtbxs6yAcqCitmdTxVXueKABUCU+Ue33 ZFCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=Nat3ULR21Et1UN+mc5PwJdg8FRYioyEW7Np+PKsfXH4=; b=og0XQl9GjfTLyYFzhvaoOmecbARpcjbFW2/SiZlJ8pOIzDqORU13qWUVZLfTp/2GQd 7HZqgZchieyzeYXAS1vTgsb6lRKJsrJP5/sQ5eBPfDpFq8jrcGW0z3Y0XeUzBhDlUccW 817ZmJ9dbCawjk9QsMpyzym17rwu5nCBgTE40JfILXjQggm3eRo6jdiPiUkpDCbnpCrB IXcjgCTqarYujv+t9hd9ehbuYtF5TEFGbVt/o61uRoJXw3XRDkeXzlA0HBnwaZUpzK26 Xa3DgRPChFdNxc+jDNZYVKIfMEORGFlGE5Dn9vYEOqtWf+uT9ylH6MRiqPGFYkQAFbHh 7ANA== X-Gm-Message-State: AOAM531NadrwI/fLyc0ZW2A4OjBl8Udy1wDCAtj3VifgQxMeEB+bLmZo q4wV/Axqqc/+Wa4svKNkq89RqimK68yHV3WUQJX6Fg== X-Google-Smtp-Source: ABdhPJygRwYpXXmzuyrBXeEpYBtAt9nNbFcy4G8HOS+Cyatbp+/P5VkX/k+mPxgc6iIZQ5/hgg3mdQOmy3JO1xGn+OM= X-Received: by 2002:a63:c16:0:b0:381:47b5:12a with SMTP id b22-20020a630c16000000b0038147b5012amr7409197pgl.115.1647360852032; Tue, 15 Mar 2022 09:14:12 -0700 (PDT) MIME-Version: 1.0 References: <20211119202408.1815506-1-sjg@chromium.org> <20211119202408.1815506-20-sjg@chromium.org> In-Reply-To: <20211119202408.1815506-20-sjg@chromium.org> From: Tim Harvey Date: Tue, 15 Mar 2022 09:13:59 -0700 Message-ID: Subject: Re: [PATCH 19/23] video: Support showing the U-Boot logo To: Simon Glass Cc: U-Boot Mailing List , Anatolij Gustschin , Tom Rini , Alistair Delva , Heinrich Schuchardt , =?UTF-8?B?TWFyZWsgQmVow7pu?= , Roger Pau Monne Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.5 at phobos.denx.de X-Virus-Status: Clean On Fri, Nov 19, 2021 at 12:28 PM Simon Glass 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 > --- > > 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 vide= o > 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) +=3D video_bmp.o > obj-$(CONFIG_PANEL) +=3D panel-uclass.o > obj-$(CONFIG_DM_PANEL_HX8238D) +=3D hx8238d.o > obj-$(CONFIG_SIMPLE_PANEL) +=3D simple_panel.o > + > +obj-$(CONFIG_VIDEO_LOGO) +=3D u_boot_logo.o > + > endif > > obj-${CONFIG_EXYNOS_FB} +=3D 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_l= og2_bpp l2bpp) > > int sandbox_sdl_set_bpp(struct udevice *dev, enum video_log2_bpp l2bpp) > { > + struct video_uc_plat *uc_plat =3D dev_get_uclass_plat(dev); > int ret; > > if (device_active(dev)) > return -EINVAL; > sandbox_sdl_remove_display(); > > + uc_plat->hide_logo =3D true; > set_bpp(dev, l2bpp); > > ret =3D device_probe(dev); > diff --git a/drivers/video/u_boot_logo.bmp b/drivers/video/u_boot_logo.bm= p > new file mode 100644 > index 0000000000000000000000000000000000000000..47f1e9b99789584d2f6dd71e9= 54b51927b35d783 > 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 =3D SPLASH_START(u_boot_logo); > + int ret; > + > + ret =3D 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 =3D 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=3D = \ > $(obj)/%.S: $(src)/%.ttf > $(call cmd,S_ttf) > > +# Splash logos > +# ----------------------------------------------------------------------= ----- > + > +# Generate an assembly file to wrap the splash data > +quiet_cmd_S_splash=3D TTF $@ > +# Modified for U-Boot > +cmd_S_splash=3D \ > +( \ > + 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 =3D dev_get_uclass_plat(dev); > + uc_plat->hide_logo =3D true; > + > + /* now probe it */ > + ut_assertok(uclass_first_device_err(UCLASS_VIDEO, &dev)); > + ut_assertnonnull(dev); > + *devp =3D 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 =3D "Well\b\b\b\bxhe is\r \n\ta very \amo= dest \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_s= tate *uts, int rot, > plat =3D dev_get_plat(dev); > plat->rot =3D 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_st= ate *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_st= ate *uts) > struct udevice *dev, *con; > const char *test_string =3D "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 enterpri= se 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 =3D dev_get_plat(dev); > plat->font_size =3D 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 =3D dev_get_plat(dev); > plat->font_size =3D 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=3Dy CONFIG_SPLASH_SCREEN=3Dy CONFIG_SPLASH_SCREEN_ALIGN=3Dy 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