Selaa lähdekoodia

malta: display "U-boot" on the LCD screen

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 <paul.burton@imgtec.com>
Paul Burton 11 vuotta sitten
vanhempi
commit
e0ada6319b
2 muutettua tiedostoa jossa 29 lisäystä ja 0 poistoa
  1. 10 0
      arch/mips/include/asm/malta.h
  2. 19 0
      board/imgtec/malta/malta.c

+ 10 - 0
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
 

+ 19 - 0
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();