X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-arm%2Farch-iop3xx%2Funcompress.h;h=82b88762c3cc049655b92180bd0c2e8ed788e078;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=fd7e72b7d113058f71888b500b4adce8fedd3818;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/include/asm-arm/arch-iop3xx/uncompress.h b/include/asm-arm/arch-iop3xx/uncompress.h index fd7e72b7d..82b88762c 100644 --- a/include/asm-arm/arch-iop3xx/uncompress.h +++ b/include/asm-arm/arch-iop3xx/uncompress.h @@ -1,26 +1,34 @@ /* - * linux/include/asm-arm/arch-iop80310/uncompress.h + * linux/include/asm-arm/arch-iop3xx/uncompress.h */ #include +#include +#include #include #include -#ifdef CONFIG_ARCH_IQ80310 -#define UART2_BASE ((volatile unsigned char *)IQ80310_UART2) -#elif defined(CONFIG_ARCH_IQ80321) -#define UART2_BASE ((volatile unsigned char *)IQ80321_UART1) +#ifdef CONFIG_ARCH_IOP321 +#define UTYPE unsigned char * +#elif defined(CONFIG_ARCH_IOP331) +#define UTYPE u32 * +#else +#error "Missing IOP3xx arch type def" #endif +static volatile UTYPE uart_base; + +#define TX_DONE (UART_LSR_TEMT|UART_LSR_THRE) + static __inline__ void putc(char c) { - while ((UART2_BASE[5] & 0x60) != 0x60); - UART2_BASE[0] = c; + while ((uart_base[UART_LSR] & TX_DONE) != TX_DONE); + *uart_base = c; } /* * This does not append a newline */ -static void puts(const char *s) +static void putstr(const char *s) { while (*s) { putc(*s); @@ -30,8 +38,20 @@ static void puts(const char *s) } } +static __inline__ void __arch_decomp_setup(unsigned long arch_id) +{ + if(machine_is_iq80321()) + uart_base = (volatile UTYPE)IQ80321_UART; + else if(machine_is_iq31244()) + uart_base = (volatile UTYPE)IQ31244_UART; + else if(machine_is_iq80331() || machine_is_iq80332()) + uart_base = (volatile UTYPE)IOP331_UART0_PHYS; + else + uart_base = (volatile UTYPE)0xfe800000; +} + /* * nothing to do */ -#define arch_decomp_setup() +#define arch_decomp_setup() __arch_decomp_setup(arch_id) #define arch_decomp_wdog()