Dear Paul Burton,

> Displaying a message on the LCD screen is a simple yet effective way to
> show the user that the board has booted successfully.
> 
> Signed-off-by: Paul Burton <[email protected]>
> ---
> Changes in v3:
>   - rebase atop master
> 
> Changes in v2:
>   - rebased after malta moved to board/imgtec/malta
> ---
>  arch/mips/include/asm/malta.h | 10 ++++++++++
>  board/imgtec/malta/malta.c    | 19 +++++++++++++++++++
>  2 files changed, 29 insertions(+)
> 
> diff --git a/arch/mips/include/asm/malta.h b/arch/mips/include/asm/malta.h
> index 0b50a66..d8ec57c 100644
> --- a/arch/mips/include/asm/malta.h
> +++ b/arch/mips/include/asm/malta.h
> @@ -32,6 +32,16 @@
>  #define MALTA_MSC01_PCIIO_MAP                0x00000000
>  #define MALTA_MSC01_UART0_BASE               (MALTA_MSC01_PCIIO_BASE + 0x3f8)
> 
> +#define MALTA_ASCIIWORD                      0x1f000410
> +#define MALTA_ASCIIPOS0                      0x1f000418
> +#define MALTA_ASCIIPOS1                      0x1f000420
> +#define MALTA_ASCIIPOS2                      0x1f000428
> +#define MALTA_ASCIIPOS3                      0x1f000430
> +#define MALTA_ASCIIPOS4                      0x1f000438
> +#define MALTA_ASCIIPOS5                      0x1f000440
> +#define MALTA_ASCIIPOS6                      0x1f000448
> +#define MALTA_ASCIIPOS7                      0x1f000450
> +
>  #define MALTA_RESET_BASE             0x1f000500
>  #define GORESET                              0x42
> 
> diff --git a/board/imgtec/malta/malta.c b/board/imgtec/malta/malta.c
> index 2af0067..119546a 100644
> --- a/board/imgtec/malta/malta.c
> +++ b/board/imgtec/malta/malta.c
> @@ -29,6 +29,24 @@ enum sys_con {
>       SYSCON_MSC01,
>  };
> 
> +static void malta_lcd_puts(const char *str)
> +{
> +     int i;
> +     void *reg = (void *)CKSEG1ADDR(MALTA_ASCIIPOS0);
> +
> +     /* print up to 8 characters of the string */
> +     for (i = 0; i < min(strlen(str), 8); i++) {
> +             __raw_writel(str[i], reg);
> +             reg += MALTA_ASCIIPOS1 - MALTA_ASCIIPOS0;
> +     }
> +
> +     /* fill the rest of the display with spaces */
> +     for (; i < 8; i++) {
> +             __raw_writel(' ', reg);
> +             reg += MALTA_ASCIIPOS1 - MALTA_ASCIIPOS0;
> +     }
> +}
> +
>  static enum core_card malta_core_card(void)
>  {
>       u32 corid, rev;
> @@ -71,6 +89,7 @@ int checkboard(void)
>  {
>       enum core_card core;
> 
> +     malta_lcd_puts("U-boot");
>       puts("Board: MIPS Malta");
> 
>       core = malta_core_card();

Can this not be implemented as a regular framebuffer console maybe?

Best regards,
Marek Vasut
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to