| /* |
| * linux/include/asm-arm/arch-cl7500/uncompress.h |
| * |
| * Copyright (C) 1999, 2000 Nexus Electronics Ltd. |
| */ |
| |
| #define BASE 0x03010000 |
| #define SERBASE (BASE + (0x2f8 << 2)) |
| |
| static __inline__ void putc(char c) |
| { |
| while (!(*((volatile unsigned int *)(SERBASE + 0x14)) & 0x20)); |
| *((volatile unsigned int *)(SERBASE)) = c; |
| } |
| |
| /* |
| * This does not append a newline |
| */ |
| static void putstr(const char *s) |
| { |
| while (*s) { |
| putc(*s); |
| if (*s == '\n') |
| putc('\r'); |
| s++; |
| } |
| } |
| |
| static __inline__ void arch_decomp_setup(void) |
| { |
| int baud = 3686400 / (9600 * 32); |
| |
| *((volatile unsigned int *)(SERBASE + 0xC)) = 0x80; |
| *((volatile unsigned int *)(SERBASE + 0x0)) = baud & 0xff; |
| *((volatile unsigned int *)(SERBASE + 0x4)) = (baud & 0xff00) >> 8; |
| *((volatile unsigned int *)(SERBASE + 0xC)) = 3; /* 8 bits */ |
| *((volatile unsigned int *)(SERBASE + 0x10)) = 3; /* DTR, RTS */ |
| } |
| |
| /* |
| * nothing to do |
| */ |
| #define arch_decomp_wdog() |