Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* |
| 2 | * linux/include/asm-arm/arch-l7200/uncompress.h |
| 3 | * |
| 4 | * Copyright (C) 2000 Steve Hill (sjhill@cotw.com) |
| 5 | * |
| 6 | * Changelog: |
| 7 | * 05-01-2000 SJH Created |
| 8 | * 05-13-2000 SJH Filled in function bodies |
| 9 | * 07-26-2000 SJH Removed hard coded buad rate |
| 10 | */ |
| 11 | |
| 12 | #include <asm/hardware.h> |
| 13 | |
| 14 | #define IO_UART IO_START + 0x00044000 |
| 15 | |
| 16 | #define __raw_writeb(v,p) (*(volatile unsigned char *)(p) = (v)) |
| 17 | #define __raw_readb(p) (*(volatile unsigned char *)(p)) |
| 18 | |
| 19 | static __inline__ void putc(char c) |
| 20 | { |
| 21 | while(__raw_readb(IO_UART + 0x18) & 0x20 || |
| 22 | __raw_readb(IO_UART + 0x18) & 0x08); |
| 23 | __raw_writeb(c, IO_UART + 0x00); |
| 24 | } |
| 25 | |
| 26 | static void putstr(const char *s) |
| 27 | { |
| 28 | while (*s) { |
| 29 | if (*s == 10) { /* If a LF, add CR */ |
| 30 | putc(10); |
| 31 | putc(13); |
| 32 | } |
| 33 | putc(*(s++)); |
| 34 | } |
| 35 | } |
| 36 | |
| 37 | static __inline__ void arch_decomp_setup(void) |
| 38 | { |
| 39 | __raw_writeb(0x00, IO_UART + 0x08); /* Set HSB */ |
| 40 | __raw_writeb(0x00, IO_UART + 0x20); /* Disable IRQs */ |
| 41 | __raw_writeb(0x01, IO_UART + 0x14); /* Enable UART */ |
| 42 | } |
| 43 | |
| 44 | #define arch_decomp_wdog() |