- pre3:
[davej-history.git] / include / asm-arm / arch-nexuspci / uncompress.h
blob54cdda0532e2da0a885c2b574d8055e926ae80c0
1 /*
2 * linux/include/asm-arm/arch-nexuspci/uncompress.h
4 * Copyright (C) 1998, 1999, 2000 Philip Blundell
5 */
7 #include <asm/hardware.h>
8 #include <asm/io.h>
11 * Write a character to the UART
13 void _ll_write_char(char c)
15 while (!(__raw_readb(DUART_START + 0x4) & 0x4))
17 __raw_writeb(c, DUART_START + 0xc);
21 * This does not append a newline
23 static void puts(const char *s)
25 while (*s) {
26 if (*s == '\n')
27 _ll_write_char('\r');
28 _ll_write_char(*(s++));
33 * Set up for decompression
35 static void arch_decomp_setup(void)
37 /* LED off */
38 __raw_writel(INTCONT_LED, INTCONT_START);
40 /* Set up SCC */
41 __raw_writeb(42, DUART_START + 8);
42 __raw_writeb(48, DUART_START + 8);
43 __raw_writeb(16, DUART_START + 8);
44 __raw_writeb(0x93, DUART_START);
45 __raw_writeb(0x17, DUART_START);
46 __raw_writeb(0xbb, DUART_START + 4);
47 __raw_writeb(0x78, DUART_START + 16);
48 __raw_writeb(0xa0, DUART_START + 8);
49 __raw_writeb(5, DUART_START + 8);
53 * Stroke the watchdog so we don't get reset during decompression.
55 static inline void arch_decomp_wdog(void)
57 __raw_writel(INTCONT_WATCHDOG, INTCONT_START);
58 __raw_writel(INTCONT_WATCHDOG | 1, INTCONT_START);