
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@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"
allows for a "silent" boot where a splash screen is loaded very quickly after power-on.The console is redirected to the "nulldev", too. This
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));