[U-Boot] [PATCH RESEND] Added support for splash screen positioning
Matthias Weisser
matthias.weisser at graf-syteco.de
Wed Jul 1 17:01:11 CEST 2009
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));
}
}
--
1.5.6.3
More information about the U-Boot
mailing list