diff options
author | Jimmy Rubin <ejimrub@steludxu031.lud.stericsson.com> | 2010-06-08 16:28:18 +0200 |
---|---|---|
committer | Jonas ABERG <jonas.aberg@stericsson.com> | 2010-06-10 16:58:53 +0200 |
commit | e5e6dd7fe444b873d9113e2f4d716f63faf9ca70 (patch) | |
tree | 9e55121cdd05d2b48ef8d505d5cd3f530f97be1f /board/st/u8500/u8500.c | |
parent | d46a7e3528b5f86610ee388a18a9698a3d26e6fb (diff) |
Adding support for startup graphics
This patch does the following:
* Startup graphics only support for HREF+.
* Displays a logo last in the u-boot sequence before the kernel is booted.
* Informs the kernel not to display penguins.
* Added pmem values to bootargs.
ST Ericsson Change-ID: WP236570
Change-Id: Ib176c17a795ddd002e94344eb9c67739b1e2269e
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/1048
Reviewed-by: Par-Olof HAKANSSON <par-olof.hakansson@stericsson.com>
Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
Tested-by: Jonas ABERG <jonas.aberg@stericsson.com>
Diffstat (limited to 'board/st/u8500/u8500.c')
-rw-r--r-- | board/st/u8500/u8500.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/board/st/u8500/u8500.c b/board/st/u8500/u8500.c index a38e9b91b..5bd11a4dc 100644 --- a/board/st/u8500/u8500.c +++ b/board/st/u8500/u8500.c @@ -13,9 +13,13 @@ #include <asm/arch/clock.h> #include <asm/arch/hardware.h> #include <asm/arch/ab8500.h> +#include <tc35892.h> #include "gpio.h" #include "common.h" +#ifdef CONFIG_VIDEO_LOGO +#include "mcde_display.h" +#endif #define NOMADIK_PER4_BASE (0x80150000) #define NOMADIK_BACKUPRAM0_BASE (NOMADIK_PER4_BASE + 0x00000) #define NOMADIK_BACKUPRAM1_BASE (NOMADIK_PER4_BASE + 0x01000) @@ -171,6 +175,52 @@ int dram_init(void) return 0; } +#ifdef CONFIG_VIDEO_LOGO +int dss_init(void) +{ + int ret = 0; + uchar byte; + puts("MCDE: "); + if (!cpu_is_u8500v11()) { + printf("Only HREF+ is supported \n"); + goto mcde_error; + } + (void) i2c_set_bus_num(0); + (void) i2c_read(CONFIG_SYS_I2C_GPIOE_ADDR, 0x80, 1, &byte, 1); + if (byte == 0x01) + board_id = 0; + else + board_id = 1; + + if (board_id != 0) { + ret = mcde_startup(); + if (ret) { + printf("startup failed\n"); + goto mcde_error; + } + ret = mcde_display_image(); + if (ret) { + printf("display_image failed\n"); + goto mcde_error; + } + + printf("ready \n"); + setenv("startup_graphics", "1"); + setenv("logo", "nologo"); + goto mcde_ok; + } else { + ret = 1; + printf("MOP500 is not supported \n"); + } +mcde_error: + setenv("startup_graphics", "0"); + setenv("logo", "0"); +mcde_ok: + return ret; + +} +#endif + unsigned int addr_vall_arr[] = { 0x8011F000, 0x0000FFFF, // Clocks for HSI TODO Enable reqd only 0x8011F008, 0x00001CFF, // Clocks for HSI TODO Enable reqd only @@ -305,6 +355,9 @@ int board_late_init(void) &byte_array[0], 2); } #endif /* CONFIG_MMC */ +#ifdef CONFIG_VIDEO_LOGO + dss_init(); +#endif return (0); } #endif /* BOARD_LATE_INIT */ |