summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorWolfgang Denk <wd@denx.de>2008-07-31 17:50:37 +0200
committerWolfgang Denk <wd@denx.de>2008-07-31 17:50:37 +0200
commit2bb6a1044f49614f4c68dba7ca2352c44d3f1f82 (patch)
treee53bba1c03fa01387b335f193be75f2f62f2b3fb /common
parentc37207d7f51e19c17f859966f314e27cc1231801 (diff)
parenta48311557db6e7e9473a6163b44bb1e6c6ed64c4 (diff)
Merge branch 'master' of ssh://10.10.0.7/home/wd/git/u-boot/master
Diffstat (limited to 'common')
-rw-r--r--common/cmd_bootm.c5
-rw-r--r--common/lcd.c13
2 files changed, 15 insertions, 3 deletions
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index 18682fe5a2..18d71008da 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -251,10 +251,9 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
memmove_wd ((void *)load_start,
(void *)os_data, os_len, CHUNKSZ);
-
- load_end = load_start + os_len;
- puts("OK\n");
}
+ load_end = load_start + os_len;
+ puts("OK\n");
break;
case IH_COMP_GZIP:
printf (" Uncompressing %s ... ", type_name);
diff --git a/common/lcd.c b/common/lcd.c
index eec1f53b0a..3bbc7bafaf 100644
--- a/common/lcd.c
+++ b/common/lcd.c
@@ -740,6 +740,9 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
}
#endif
+#ifdef CONFIG_VIDEO_BMP_GZIP
+extern bmp_image_t *gunzip_bmp(unsigned long addr, unsigned long *lenp);
+#endif
static void *lcd_logo (void)
{
@@ -761,6 +764,16 @@ static void *lcd_logo (void)
addr = simple_strtoul(s, NULL, 16);
do_splash = 0;
+#ifdef CONFIG_VIDEO_BMP_GZIP
+ bmp_image_t *bmp = (bmp_image_t *)addr;
+ unsigned long len;
+
+ if (!((bmp->header.signature[0]=='B') &&
+ (bmp->header.signature[1]=='M'))) {
+ addr = (ulong)gunzip_bmp(addr, &len);
+ }
+#endif
+
if (lcd_display_bitmap (addr, 0, 0) == 0) {
return ((void *)lcd_base);
}