2005-04-17 02:20:36 +04:00
/*
2008-08-05 19:14:15 +04:00
* arch / arm / mach - ixp4xx / include / mach / uncompress . h
2005-04-17 02:20:36 +04:00
*
* Copyright ( C ) 2002 Intel Corporation .
* Copyright ( C ) 2003 - 2004 MontaVista Software , Inc .
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*
*/
# ifndef _ARCH_UNCOMPRESS_H_
# define _ARCH_UNCOMPRESS_H_
2007-12-18 05:53:27 +03:00
# include "ixp4xx-regs.h"
2005-04-17 02:20:36 +04:00
# include <asm/mach-types.h>
# include <linux/serial_reg.h>
# define TX_DONE (UART_LSR_TEMT|UART_LSR_THRE)
2011-04-29 01:00:17 +04:00
volatile u32 * uart_base ;
2005-04-17 02:20:36 +04:00
2006-03-28 13:24:33 +04:00
static inline void putc ( int c )
2005-04-17 02:20:36 +04:00
{
/* Check THRE and TEMT bits before we transmit the character.
*/
2006-03-28 13:24:33 +04:00
while ( ( uart_base [ UART_LSR ] & TX_DONE ) ! = TX_DONE )
barrier ( ) ;
2005-04-17 02:20:36 +04:00
* uart_base = c ;
}
2006-03-28 13:24:33 +04:00
static void flush ( void )
2005-04-17 02:20:36 +04:00
{
}
static __inline__ void __arch_decomp_setup ( unsigned long arch_id )
{
/*
2007-06-02 18:44:08 +04:00
* Some boards are using UART2 as console
2005-04-17 02:20:36 +04:00
*/
2007-06-02 18:44:08 +04:00
if ( machine_is_adi_coyote ( ) | | machine_is_gtwx5715 ( ) | |
2007-06-02 18:47:51 +04:00
machine_is_gateway7001 ( ) | | machine_is_wg302v2 ( ) )
2005-04-17 02:20:36 +04:00
uart_base = ( volatile u32 * ) IXP4XX_UART2_BASE_PHYS ;
else
uart_base = ( volatile u32 * ) IXP4XX_UART1_BASE_PHYS ;
}
/*
* arch_id is a variable in decompress_kernel ( )
*/
# define arch_decomp_setup() __arch_decomp_setup(arch_id)
# define arch_decomp_wdog()
# endif