[coreboot] [PATCH] libpayload: serial output 8 bit clean

Ulf Jordan jordan at chalmers.se
Thu Sep 4 22:08:32 CEST 2008


The attached patch makes the serial output function serial_putchar() 8 bit 
clean. The motivation for this is that the low level driver should not 
modify the data in unexpected ways. Furthermore translate_special_chars() 
is removed, since that functionality is now provided by the ACS machinery 
in tinycurses.

Compile and runtime tested with coreinfo+libpayload+coreboot-v3 under 
QEMU.

/ulf
-------------- next part --------------
Make the serial output driver 8 bit clean. Remove translate_special_chars(),
since it has been superseeded by the ACS code in tinycurses.

Signed-off-by: Ulf Jordan <jordan at chalmers.se>

Index: libpayload/drivers/serial.c
===================================================================
--- libpayload/drivers/serial.c.orig	2008-09-03 22:38:45.000000000 +0200
+++ libpayload/drivers/serial.c	2008-09-03 22:39:02.000000000 +0200
@@ -37,25 +37,6 @@
 #define DIVISOR (115200 / CONFIG_SERIAL_BAUD_RATE)
 #endif
 
-/* This is a hack - we convert the drawing characters to ASCII */
-
-static unsigned char translate_special_chars(unsigned char c)
-{
-	switch(c) {
-	case 196:
-		return '-';
-	case 179:
-		return '|';
-	case 218:
-	case 191:
-	case 192:
-	case 217:
-		return '+';
-	default:
-		return ' ';
-	}
-}
-
 void serial_init(void)
 {
 #ifdef CONFIG_SERIAL_SET_SPEED
@@ -82,9 +63,6 @@
 
 void serial_putchar(unsigned char c)
 {
-	if (c > 127)
-		c = translate_special_chars(c);
-
 	while ((inb(IOBASE + 0x05) & 0x20) == 0) ;
 	outb(c, IOBASE);
 }


More information about the coreboot mailing list