diff options
| -rw-r--r-- | arch/mips/include/asm/malta.h | 10 | ||||
| -rw-r--r-- | board/imgtec/malta/malta.c | 19 | 
2 files changed, 29 insertions, 0 deletions
| diff --git a/arch/mips/include/asm/malta.h b/arch/mips/include/asm/malta.h index 0b50a66e0..d8ec57cf4 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 2af00672d..119546ae1 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(); |