1/* 2 * linux/include/asm-arm/arch-omap/uncompress.h 3 * 4 * Serial port stubs for kernel decompress status messages 5 * 6 * Initially based on: 7 * linux-2.4.15-rmk1-dsplinux1.6/include/asm-arm/arch-omap1510/uncompress.h 8 * Copyright (C) 2000 RidgeRun, Inc. 9 * Author: Greg Lonnon <glonnon@ridgerun.com> 10 * 11 * Rewritten by: 12 * Author: <source@mvista.com> 13 * 2004 (c) MontaVista Software, Inc. 14 * 15 * This file is licensed under the terms of the GNU General Public License 16 * version 2. This program is licensed "as is" without any warranty of any 17 * kind, whether express or implied. 18 */ 19 20#include <linux/types.h> 21#include <linux/serial_reg.h> 22#include <asm/arch/serial.h> 23 24unsigned int system_rev; 25 26#define UART_OMAP_MDR1 0x08 /* mode definition register */ 27#define OMAP_ID_730 0x355F 28#define ID_MASK 0x7fff 29#define check_port(base, shift) ((base[UART_OMAP_MDR1 << shift] & 7) == 0) 30#define omap_get_id() ((*(volatile unsigned int *)(0xfffed404)) >> 12) & ID_MASK 31 32static void putc(int c) 33{ 34 volatile u8 * uart = 0; 35 int shift = 2; 36 37#ifdef CONFIG_MACH_OMAP_PALMTE 38 return; 39#endif 40 41#ifdef CONFIG_ARCH_OMAP 42#ifdef CONFIG_OMAP_LL_DEBUG_UART3 43 uart = (volatile u8 *)(OMAP_UART3_BASE); 44#elif defined(CONFIG_OMAP_LL_DEBUG_UART2) 45 uart = (volatile u8 *)(OMAP_UART2_BASE); 46#else 47 uart = (volatile u8 *)(OMAP_UART1_BASE); 48#endif 49 50#ifdef CONFIG_ARCH_OMAP1 51 /* Determine which serial port to use */ 52 do { 53 /* MMU is not on, so cpu_is_omapXXXX() won't work here */ 54 unsigned int omap_id = omap_get_id(); 55 56 if (omap_id == OMAP_ID_730) 57 shift = 0; 58 59 if (check_port(uart, shift)) 60 break; 61 /* Silent boot if no serial ports are enabled. */ 62 return; 63 } while (0); 64#endif /* CONFIG_ARCH_OMAP1 */ 65#endif 66 67 /* 68 * Now, xmit each character 69 */ 70 while (!(uart[UART_LSR << shift] & UART_LSR_THRE)) 71 barrier(); 72 uart[UART_TX << shift] = c; 73} 74 75static inline void flush(void) 76{ 77} 78 79/* 80 * nothing to do 81 */ 82#define arch_decomp_setup() 83#define arch_decomp_wdog() 84