On Sun, Mar 27, 2022 at 11:36 PM Simon Glass <s...@chromium.org> wrote: > > Hi Tim, > > On Tue, 15 Mar 2022 at 10:14, Tim Harvey <thar...@gateworks.com> wrote: > > > > 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. > > I just mean in the Kconfig: > > config VIDEO_LOGO > bool "Show the U-Boot logo on the display" > depends on DM_VIDEO > default y if !SPLASH_SCREEN > ^^^^^ > > So if you enable both of them, you will get both, but by default > VIDEO_LOGO should be enabled only if SPLASH_SCREEN is not enabled. > > The splash code needs a rework too, I think. I just didn't get that far. > > Regards, > Simon
Simon, Ok, sorry, I missed the 'default y if !SPLASH_SCREEN' as that was from a different patch. Currently if I disable VIDEO_LOGO and leave only SPASH_SCREEN enabled I get no display. Similarly if I enable VIDEO_LOGO and not SPLASH_SCREEN I get no display. If I go back to prior to this series (3a8b919932fd) splash works just fine so I'm trying to understand why now I loose video completely if I disable VIDEO_LOGO (which I wish wasn't enabled by default anyway when using my existing gwventana defconfigs). Fabio, do you have any imx6 boards that have defconfigs that enable SPLASH_SCREEN you can see if the same behavior occurs on? The behavior is that VIDEO_LOGO got enabled by default so you see the custom splash along with the U-Boot logo and if you disable VIDEO_LOGO you also loose the custom splash. Best Regards, Tim