44 lines
924 B
C
44 lines
924 B
C
|
/*
|
||
|
* 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()
|