[U-Boot] [PATCH RESEND] Added support for splash screen positioning

Matthias Fuchs matthias.fuchs at esd.eu
Mon Jul 6 11:23:07 CEST 2009


Hi,

I posted a similiar patch a long time ago:

http://lists.denx.de/pipermail/u-boot/2007-July/022741.html

It's also a little bit more powerful because is supports alignment
on top/center/bottom and right/center/left on the screen.

I couldn't find the answer posting on my patch. But I think it
was rejected because of some planned changes in the video subsystem.

If we can use a powerful splashimage variable, I would vote for my patch
and check it on top of git.

I can understand Wolfgang's objection but please keep the amount of
variables for positioning on a reasonable level. Just one for the stuff
behind the address (see my proposed format) would be ok for me.

Matthias

On Wednesday 01 July 2009 17:01, Matthias Weisser wrote:
> This patch adds support splash image positioning by
> optinally adding x and y coordinates to the splashimage
> environment variable.
> 
> Signed-off-by: Matthias Weisser <matthias.weisser at graf-syteco.de>
> ---
>  README                      |    8 ++++++--
>  common/lcd.c                |   11 +++++++++--
>  drivers/video/cfb_console.c |    9 ++++++++-
>  3 files changed, 23 insertions(+), 5 deletions(-)
>  mode change 100644 => 100755 README
>  mode change 100644 => 100755 common/lcd.c
>  mode change 100644 => 100755 drivers/video/cfb_console.c
> 
> diff --git a/README b/README
> old mode 100644
> new mode 100755
> index 561c100..dd47a83
> --- a/README
> +++ b/README
> @@ -1069,8 +1069,12 @@ The following options need to be configured:
>  		a variable "splashimage". If found, the usual display
>  		of logo, copyright and system information on the LCD
>  		is suppressed and the BMP image at the address
> -		specified in "splashimage" is loaded instead. The
> -		console is redirected to the "nulldev", too. This
> +		specified in "splashimage" is loaded instead.
> +		The logo can be positioned on any position by
> +		(optionally) adding the x and y coordinates after the
> +		address in the environment variable "splashimage"
> +		sperated by a space. "splashimage=0x10060000 160 120"
> +		The console is redirected to the "nulldev", too. This
>  		allows for a "silent" boot where a splash screen is
>  		loaded very quickly after power-on.
>  
> diff --git a/common/lcd.c b/common/lcd.c
> old mode 100644
> new mode 100755
> index 74a5c77..160f08a
> --- a/common/lcd.c
> +++ b/common/lcd.c
> @@ -809,9 +809,16 @@ static void *lcd_logo (void)
>  	static int do_splash = 1;
>  
>  	if (do_splash && (s = getenv("splashimage")) != NULL) {
> -		addr = simple_strtoul(s, NULL, 16);
> +		int x = 0, y = 0;
>  		do_splash = 0;
>  
> +		addr = simple_strtoul (s, NULL, 16);
> +		if ((s = strchr (s, ' ')) != NULL) {
> +				x = simple_strtoul (s + 1, NULL, 0);
> +			if ((s = strchr (s + 1, ' ')) != NULL)
> +				y = simple_strtoul (s + 1, NULL, 0);
> +		}
> +
>  #ifdef CONFIG_VIDEO_BMP_GZIP
>  		bmp_image_t *bmp = (bmp_image_t *)addr;
>  		unsigned long len;
> @@ -822,7 +829,7 @@ static void *lcd_logo (void)
>  		}
>  #endif
>  
> -		if (lcd_display_bitmap (addr, 0, 0) == 0) {
> +		if (lcd_display_bitmap (addr, x, y) == 0) {
>  			return ((void *)lcd_base);
>  		}
>  	}
> diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c
> old mode 100644
> new mode 100755
> index bcafb27..528349a
> --- a/drivers/video/cfb_console.c
> +++ b/drivers/video/cfb_console.c
> @@ -1188,9 +1188,16 @@ static void *video_logo (void)
>  	ulong addr;
>  
>  	if ((s = getenv ("splashimage")) != NULL) {
> +		int x = 0, y = 0;
> +
>  		addr = simple_strtoul (s, NULL, 16);
> +		if ((s = strchr (s, ' ')) != NULL) {
> +			x = simple_strtoul (s + 1, NULL, 0);
> +			if ((s = strchr (s + 1, ' ')) != NULL)
> +				y = simple_strtoul (s + 1, NULL, 0);
> +		}
>  
> -		if (video_display_bitmap (addr, 0, 0) == 0) {
> +		if (video_display_bitmap (addr, x, y) == 0) {
>  			return ((void *) (video_fb_address));
>  		}
>  	}

-- 
-------------------------------------------------------------------------
Dipl.-Ing. Matthias Fuchs
Head of System Design

esd electronic system design gmbh
Vahrenwalder Str. 207 - 30165 Hannover - GERMANY
Phone: +49-511-37298-0 - Fax: +49-511-37298-68
Please visit our homepage http://www.esd.eu
Quality Products - Made in Germany
-------------------------------------------------------------------------
Geschäftsführer: Klaus Detering, Dr. Werner Schulze
Amtsgericht Hannover HRB 51373 - VAT-ID DE 115672832
-------------------------------------------------------------------------


More information about the U-Boot mailing list