uncompress.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  * linux/include/asm-arm/arch-s3c2400/uncompress.h
  3.  *
  4.  * Copyright (C) 2001 MIZI Research, Inc.
  5.  *
  6.  * This program is free software; you can redistribute it and/or modify
  7.  * it under the terms of the GNU General Public License as published by
  8.  * the Free Software Foundation; either version 2 of the License, or
  9.  * (at your option) any later version.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program; if not, write to the Free Software
  18.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  19.  */
  20. /*
  21.  * Author : Nandy Lyu <nandy@mizi.com>
  22.  *   Date : 13 December 2001
  23.  */
  24. /*
  25.  * The following code assumes the serial port has already been
  26.  * initialized by the bootloader. We use only UART1 on S3C24xx
  27.  */
  28. #include <linux/config.h>
  29. #ifdef CONFIG_MIZI
  30. #define ULCON 0x0
  31. #define UTRSTAT 0x10
  32. #define UTXH 0x20
  33. #define UTRSTAT_TX_EMPTY (1 << 2)
  34. #define UART0 0x50000000
  35. #define UART1 0x50004000
  36. #define UART2 0x50008000
  37. #define UART(x) (*(volatile unsigned long *)(serial_port + (x)))
  38. static void puts(const char *s)
  39. {
  40. unsigned long serial_port;
  41.  /* 橇肺技辑 府悸摹 ULCON蔼篮 0x0捞绊, vivi俊辑绰 0x3栏肺
  42.     技泼 窃. */
  43. do {
  44. serial_port = UART0;
  45. if (UART(ULCON) == 0x3) break;
  46. serial_port = UART1;
  47. if (UART(ULCON) == 0x3) break;
  48. serial_port = UART2;
  49. if (UART(ULCON) == 0x3) break;
  50. } while (0);
  51. for (; *s; s++) {
  52. /* wait */
  53. while (!(UART(UTRSTAT) & UTRSTAT_TX_EMPTY));
  54. /* send the character out. */
  55. UART(UTXH) = *s;
  56. /* if a LF, also do CR... */
  57. if (*s == 10) {
  58. while (!(UART(UTRSTAT) & UTRSTAT_TX_EMPTY));
  59. UART(UTXH) = 13;
  60. }
  61. }
  62. }
  63. #else
  64. #define UART_UTRSTAT (*(volatile unsigned long *)0x50000010)
  65. #define UART_UTXH (*(volatile unsigned long *)0x50000020) /* littel endian */
  66. #define UTRSTAT_TX_EMPTY (1 << 2)
  67. static void puts(const char *s)
  68. {
  69. while (*s) {
  70. while (!(UART_UTRSTAT & UTRSTAT_TX_EMPTY));
  71. UART_UTXH = *s;
  72. if (*s == 'n') {
  73. while (!(UART_UTRSTAT & UTRSTAT_TX_EMPTY));
  74. UART_UTXH = 'r';
  75. }
  76. s++;
  77. }
  78. while (!(UART_UTRSTAT & UTRSTAT_TX_EMPTY));
  79. }
  80. #endif
  81. /*
  82.  * Nothing to do for these
  83.  */
  84. #define arch_decomp_setup()
  85. #define arch_decomp_wdog()