X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fm32r%2Fboot%2Fcompressed%2Fm32r_sio.c;h=bdfd1c28396648e51d63afad77fdef85f52202ec;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=469c4dce57945264e0ab62be6039cbe04bb58523;hpb=a2c21200f1c81b08cb55e417b68150bba439b646;p=linux-2.6.git diff --git a/arch/m32r/boot/compressed/m32r_sio.c b/arch/m32r/boot/compressed/m32r_sio.c index 469c4dce5..bdfd1c283 100644 --- a/arch/m32r/boot/compressed/m32r_sio.c +++ b/arch/m32r/boot/compressed/m32r_sio.c @@ -6,12 +6,10 @@ */ #include -#include -#include -void putc(char c); +static void putc(char c); -int puts(const char *s) +static int puts(const char *s) { char c; while ((c = *s++)) putc(c); @@ -19,6 +17,9 @@ int puts(const char *s) } #if defined(CONFIG_PLAT_M32700UT_Alpha) || defined(CONFIG_PLAT_M32700UT) +#include +#include + #define USE_FPGA_MAP 0 #if USE_FPGA_MAP @@ -35,7 +36,7 @@ int puts(const char *s) #define BOOT_SIO0TXB PLD_ESIO0TXB #endif -void putc(char c) +static void putc(char c) { while ((*BOOT_SIO0STS & 0x3) != 0x3) ; @@ -46,8 +47,17 @@ void putc(char c) *BOOT_SIO0TXB = c; } #else -void putc(char c) +#define SIO0STS (volatile unsigned short *)(0xa0efd000 + 14) +#define SIO0TXB (volatile unsigned short *)(0xa0efd000 + 30) + +static void putc(char c) { - /* do nothing */ + + while ((*SIO0STS & 0x1) == 0) ; + if (c == '\n') { + *SIO0TXB = '\r'; + while ((*SIO0STS & 0x1) == 0) ; + } + *SIO0TXB = c; } #endif