linux/include/asm-arm/arch-mxc/uncompress.h
<<
>>
Prefs
   1/*
   2 *  include/asm-arm/arch-mxc/uncompress.h
   3 *
   4 *
   5 *
   6 *  Copyright (C) 1999 ARM Limited
   7 *  Copyright (C) Shane Nay (shane@minirl.com)
   8 *
   9 * This program is free software; you can redistribute it and/or modify
  10 * it under the terms of the GNU General Public License as published by
  11 * the Free Software Foundation; either version 2 of the License, or
  12 * (at your option) any later version.
  13 *
  14 * This program is distributed in the hope that it will be useful,
  15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17 * GNU General Public License for more details.
  18 *
  19 * You should have received a copy of the GNU General Public License
  20 * along with this program; if not, write to the Free Software
  21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  22 */
  23#ifndef __ASM_ARCH_MXC_UNCOMPRESS_H__
  24#define __ASM_ARCH_MXC_UNCOMPRESS_H__
  25
  26#define __MXC_BOOT_UNCOMPRESS
  27
  28#include <asm/hardware.h>
  29
  30#define UART(x) (*(volatile unsigned long *)(serial_port + (x)))
  31
  32#define USR2 0x98
  33#define USR2_TXFE (1<<14)
  34#define TXR  0x40
  35#define UCR1 0x80
  36#define UCR1_UARTEN 1
  37
  38/*
  39 * The following code assumes the serial port has already been
  40 * initialized by the bootloader.  We search for the first enabled
  41 * port in the most probable order.  If you didn't setup a port in
  42 * your bootloader then nothing will appear (which might be desired).
  43 *
  44 * This does not append a newline
  45 */
  46
  47static void putc(int ch)
  48{
  49        static unsigned long serial_port = 0;
  50
  51        if (unlikely(serial_port == 0)) {
  52                do {
  53                        serial_port = UART1_BASE_ADDR;
  54                        if (UART(UCR1) & UCR1_UARTEN)
  55                                break;
  56                        serial_port = UART2_BASE_ADDR;
  57                        if (UART(UCR1) & UCR1_UARTEN)
  58                                break;
  59                        return;
  60                } while (0);
  61        }
  62
  63        while (!(UART(USR2) & USR2_TXFE))
  64                barrier();
  65
  66        UART(TXR) = ch;
  67}
  68
  69#define flush() do { } while (0)
  70
  71/*
  72 * nothing to do
  73 */
  74#define arch_decomp_setup()
  75
  76#define arch_decomp_wdog()
  77
  78#endif                          /* __ASM_ARCH_MXC_UNCOMPRESS_H__ */
  79