m8260Scc.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:10k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* m8260Scc.h - Motorola MPC8260 Serial Communications Controller header file */
  2. /* Copyright 1984-1999 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01a,12sep99,ms_  created from m8260Cpm.h, 01d.
  7. */
  8. /*
  9.  * This file contains constants for the Serial Communications Controllers
  10.  * (SCCs) in the Motorola MPC8260 PowerQUICC II integrated Communications 
  11.  * Processor
  12.  */
  13. #ifndef __INCm8260Scch
  14. #define __INCm8260Scch
  15. #ifdef __cplusplus
  16. extern "C" {
  17. #endif
  18.     
  19. #ifndef M8260ABBREVIATIONS
  20. #define M8260ABBREVIATIONS
  21.    
  22. #ifdef  _ASMLANGUAGE
  23. #define CAST(x)
  24. #else /* _ASMLANGUAGE */
  25. typedef volatile UCHAR VCHAR;   /* shorthand for volatile UCHAR */
  26. typedef volatile INT32 VINT32; /* volatile unsigned word */
  27. typedef volatile INT16 VINT16; /* volatile unsigned halfword */
  28. typedef volatile INT8 VINT8;   /* volatile unsigned byte */
  29. typedef volatile UINT32 VUINT32; /* volatile unsigned word */
  30. typedef volatile UINT16 VUINT16; /* volatile unsigned halfword */
  31. typedef volatile UINT8 VUINT8;   /* volatile unsigned byte */
  32. #define CAST(x) (x)
  33. #endif  /* _ASMLANGUAGE */
  34. #endif /* M8260ABBREVIATIONS */
  35. /*
  36.  * MPC8260 internal register/memory map (section 17 of prelim. spec)
  37.  * note that these are offsets from the value stored in the IMMR
  38.  * register. Also note that in the MPC8260, the IMMR is not a special
  39.  * purpose register, but it is memory mapped.
  40.  */
  41.  
  42. /* SCC Parameter Ram */
  43. #define M8260_SCC_PRAM_BASE 0x00008000
  44. #define M8260_SCC_PRAM_OFFSET_NEXT_PRAM 0x00000100
  45. #define M8260_SCC_PRAM_RBASE 0x00000000
  46. #define M8260_SCC_PRAM_TBASE 0x00000002
  47. #define M8260_SCC_PRAM_RFCR 0x00000004
  48. #define M8260_SCC_PRAM_TFCR 0x00000005
  49. #define M8260_SCC_PRAM_MRBLR 0x00000006
  50. #define M8260_SCC_UART_PRAM_PAREC 0x0000003E
  51. #define M8260_SCC_UART_PRAM_FRMEC 0x00000040
  52. #define M8260_SCC_UART_PRAM_NOSEC 0x00000042
  53. #define M8260_SCC_UART_PRAM_BRKEC 0x00000044
  54. /* SCC - Serial Communication Controller */
  55. #define M8260_SCC_BASE   0x00011A00
  56. #define M8260_SCC_OFFSET_NEXT_SCC   0x00000020
  57. #define M8260_GSMR_L_OFFSET 0x00000000
  58. #define M8260_GSMR_H_OFFSET 0x00000004
  59. #define M8260_PSMR_OFFSET 0x00000008
  60. #define M8260_TODR_OFFSET 0x0000000C
  61. #define M8260_DSR_OFFSET 0x0000000E
  62. #define M8260_SCCE_OFFSET 0x00000010
  63. #define M8260_SCCM_OFFSET 0x00000014
  64. #define M8260_SCCS_OFFSET 0x00000017
  65. /* General SCC Mode Register definitions  */
  66. #define M8260_SCC_GSMRL_HDLC 0x00000000 /* HDLC mode */
  67. /* AppleTalk mode (LocalTalk) */
  68. #define M8260_SCC_GSMRL_APPLETALK 0x00000002
  69. /* SS7 mode (microcode) */
  70. #define M8260_SCC_GSMRL_SS7 0x00000003
  71. #define M8260_SCC_GSMRL_UART 0x00000004 /* UART mode */
  72. /* Profi-Bus mode (microcode) */
  73. #define M8260_SCC_GSMRL_PROFI_BUS 0x00000005
  74. /* async HDLC mode (microcode)*/
  75. #define M8260_SCC_GSMRL_ASYNC_HDLC 0x00000006
  76. #define M8260_SCC_GSMRL_V14 0x00000007 /* V.14 mode */
  77. #define M8260_SCC_GSMRL_BISYNC 0x00000008 /* BISYNC mode */
  78. /* DDCMP mode (microcode) */
  79. #define M8260_SCC_GSMRL_DDCMP 0x00000009
  80. /* enable bits for transmit and receive */
  81. #define M8260_SCC_GSMRL_ENT 0x00000010 /* enable transmitter */
  82. #define M8260_SCC_GSMRL_ENR 0x00000020 /* enable receiver */
  83. /* local loopback mode */
  84. #define M8260_SCC_GSMRL_LOOPBACK 0x00000040
  85. /* automatic echo mode */
  86. #define M8260_SCC_GSMRL_ECHO 0x00000080
  87. /* transmitter encoding method*/
  88. #define M8260_SCC_GSMRL_TENC 0x00000700
  89. /* receiver encoding method */
  90. #define M8260_SCC_GSMRL_RENC 0x00003800
  91. /* receive DPLL clock x8 */
  92. #define M8260_SCC_GSMRL_RDCR_X8 0x00004000
  93. /* receive DPLL clock x16 */
  94. #define M8260_SCC_GSMRL_RDCR_X16 0x00008000
  95. /* receive DPLL clock x32 */
  96. #define M8260_SCC_GSMRL_RDCR_X32 0x0000c000
  97. /* transmit DPLL clock x8 */
  98. #define M8260_SCC_GSMRL_TDCR_X8 0x00010000
  99. /* transmit DPLL clock x16 */
  100. #define M8260_SCC_GSMRL_TDCR_X16 0x00020000
  101. /* transmit DPLL clock x32 */
  102. #define M8260_SCC_GSMRL_TDCR_X32 0x00030000
  103. #define M8260_SCC_GSMRL_TEND 0x00040000 /* transmitter frame ending */
  104. #define M8260_SCC_GSMRL_TPP_00 0x00180000 /* Tx preamble pattern = 00 */
  105. #define M8260_SCC_GSMRL_TPP_10 0x00080000 /* Tx preamble pattern = 10 */
  106. #define M8260_SCC_GSMRL_TPP_01 0x00100000 /* Tx preamble pattern = 01 */
  107. #define M8260_SCC_GSMRL_TPP_11 0x00180000 /* Tx preamble pattern = 11 */
  108. /* no Tx preamble (default) */
  109. #define M8260_SCC_GSMRL_TPL_NONE 0x00000000
  110. /* Tx preamble = 1 byte */
  111. #define M8260_SCC_GSMRL_TPL_8 0x00200000
  112. #define M8260_SCC_GSMRL_TPL_16 0x00400000 /* Tx preamble = 2 bytes */
  113. #define M8260_SCC_GSMRL_TPL_32 0x00600000 /* Tx preamble = 4 bytes */
  114. #define M8260_SCC_GSMRL_TPL_48 0x00800000 /* Tx preamble = 6 bytes */
  115. #define M8260_SCC_GSMRL_TPL_64 0x00a00000 /* Tx preamble = 8 bytes */
  116. #define M8260_SCC_GSMRL_TPL_128 0x00c00000 /* Tx preamble = 16 bytes */
  117. #define M8260_SCC_GSMRL_TINV 0x01000000 /* DPLL transmit input invert */
  118. #define M8260_SCC_GSMRL_RINV 0x02000000 /* DPLL receive input invert */
  119. #define M8260_SCC_GSMRL_TSNC 0x0c000000 /* transmit sense */
  120. #define M8260_SCC_GSMRL_TCI 0x10000000 /* transmit clock invert */
  121. #define M8260_SCC_GSMRL_EDGE 0x60000000 /* adjustment edge +/- */
  122. #define M8260_SCC_GSMRH_RSYN 0x00000001 /* receive sync timing*/
  123. #define M8260_SCC_GSMRH_RTSM 0x00000002 /* RTS* mode */
  124. #define M8260_SCC_GSMRH_SYNL 0x0000000c /* sync length */
  125. #define M8260_SCC_GSMRH_TXSY 0x00000010 /* transmitter/receiver sync */
  126. #define M8260_SCC_GSMRH_RFW 0x00000020 /* Rx FIFO width */
  127. #define M8260_SCC_GSMRH_TFL 0x00000040 /* transmit FIFO length */
  128. #define M8260_SCC_GSMRH_CTSS 0x00000080 /* CTS* sampling */
  129. #define M8260_SCC_GSMRH_CDS 0x00000100 /* CD* sampling */
  130. #define M8260_SCC_GSMRH_CTSP 0x00000200 /* CTS* pulse */
  131. #define M8260_SCC_GSMRH_CDP 0x00000400 /* CD* pulse */
  132. #define M8260_SCC_GSMRH_TTX 0x00000800 /* transparent transmitter */
  133. #define M8260_SCC_GSMRH_TRX 0x00001000 /* transparent receiver */
  134. #define M8260_SCC_GSMRH_REVD 0x00002000 /* reverse data */
  135. #define M8260_SCC_GSMRH_TCRC 0x0000c000 /* transparent CRC */
  136. #define M8260_SCC_GSMRH_GDE 0x00010000 /* glitch detect enable */
  137. /* SCC UART Protocol Specific Mode Register definitions */
  138. #define M8260_SCC_UART_PSMR_TPM_ODD 0x0000 /* odd parity mode (Tx) */
  139. #define M8260_SCC_UART_PSMR_TPM_LOW 0x0001 /* low parity mode (Tx) */
  140. #define M8260_SCC_UART_PSMR_TPM_EVEN 0x0002 /* even parity mode (Tx) */
  141. #define M8260_SCC_UART_PSMR_TPM_HIGH 0x0003 /* high parity mode (Tx) */
  142. #define M8260_SCC_UART_PSMR_RPM_ODD 0x0000 /* odd parity mode (Rx) */
  143. #define M8260_SCC_UART_PSMR_RPM_LOW 0x0004 /* low parity mode (Rx) */
  144. #define M8260_SCC_UART_PSMR_RPM_EVEN 0x0008 /* even parity mode (Rx) */
  145. #define M8260_SCC_UART_PSMR_RPM_HIGH 0x000c /* high parity mode (Rx) */
  146. #define M8260_SCC_UART_PSMR_PEN 0x0010 /* parity enable */
  147. #define M8260_SCC_UART_PSMR_DRT 0x0040 /* disable Rx while Tx */
  148. #define M8260_SCC_UART_PSMR_SYN 0x0080 /* synchronous mode */
  149. #define M8260_SCC_UART_PSMR_RZS 0x0100 /* receive zero stop bits */
  150. #define M8260_SCC_UART_PSMR_FRZ 0x0200 /* freeze transmission */
  151. #define M8260_SCC_UART_PSMR_UM_NML 0x0000 /* noraml UART operation */
  152. #define M8260_SCC_UART_PSMR_UM_MULT_M 0x0400 /* multidrop non-auto mode */
  153. #define M8260_SCC_UART_PSMR_UM_MULT_A 0x0c00 /* multidrop automatic mode */
  154. #define M8260_SCC_UART_PSMR_CL_5BIT 0x0000 /* 5 bit character length */
  155. #define M8260_SCC_UART_PSMR_CL_6BIT 0x1000 /* 6 bit character length */
  156. #define M8260_SCC_UART_PSMR_CL_7BIT 0x2000 /* 7 bit character length */
  157. #define M8260_SCC_UART_PSMR_CL_8BIT 0x3000 /* 8 bit character length */
  158. #define M8260_SCC_UART_PSMR_SL 0x4000 /* 1 or 2 bit stop length */
  159. #define M8260_SCC_UART_PSMR_FLC 0x8000 /* flow control */
  160. /* SCC UART Event and Mask Register definitions */
  161. #define M8260_SCC_UART_SCCX_RX  0x0001 /* buffer received */
  162. #define M8260_SCC_UART_SCCX_TX  0x0002 /* buffer transmitted */
  163. #define M8260_SCC_UART_SCCX_BSY  0x0004 /* busy condition */
  164. #define M8260_SCC_UART_SCCX_CCR  0x0008 /* control character received */
  165. #define M8260_SCC_UART_SCCX_BRK_S  0x0020  /* break start */
  166. #define M8260_SCC_UART_SCCX_BRK_E  0x0040 /* break end */
  167. #define M8260_SCC_UART_SCCX_GRA  0x0080 /* graceful stop complete */
  168. #define M8260_SCC_UART_SCCX_IDL 0x0100 /* idle sequence stat changed */
  169. #define M8260_SCC_UART_SCCX_AB   0x0200 /* autobaud lock */
  170. #define M8260_SCC_UART_SCCX_GL_T  0x0800 /* glitch on Tx */
  171. #define M8260_SCC_UART_SCCX_GL_R  0x1000 /* glitch on Rx */
  172. #define M8260_SCC_UART_SCCX_ALL_EVENTS  0xFFFF /* all events */
  173. /* SCC UART Receive Buffer Descriptor definitions */
  174. #define M8260_SCC_UART_RX_BD_CD 0x0001 /* carrier detect loss */
  175. #define M8260_SCC_UART_RX_BD_OV 0x0002 /* receiver overrun */
  176. #define M8260_SCC_UART_RX_BD_PR 0x0008 /* parity error */
  177. #define M8260_SCC_UART_RX_BD_FR 0x0010 /* framing error */
  178. #define M8260_SCC_UART_RX_BD_BR 0x0020 /* break received */
  179. #define M8260_SCC_UART_RX_BD_AM 0x0080 /* address match */
  180. #define M8260_SCC_UART_RX_BD_ID 0x0100 /* buf closed on IDLES */
  181. #define M8260_SCC_UART_RX_BD_CM 0x0200 /* continous mode */
  182. #define M8260_SCC_UART_RX_BD_ADDR 0x0400 /* buffer contains address */
  183. #define M8260_SCC_UART_RX_BD_CNT 0x0800 /* control character */
  184. #define M8260_SCC_UART_RX_BD_INT 0x1000 /* interrupt generated */
  185. #define M8260_SCC_UART_RX_BD_WRAP 0x2000 /* wrap back to first BD */
  186. #define M8260_SCC_UART_RX_BD_EMPTY 0x8000 /* buffer is empty */
  187. /* SCC UART Transmit Buffer Descriptor definitions */
  188. #define M8260_SCC_UART_TX_BD_CT 0x0001 /* cts was lost during tx */
  189. #define M8260_SCC_UART_TX_BD_NS 0x0080 /* no stop bit transmitted */
  190. #define M8260_SCC_UART_TX_BD_PREAMBLE 0x0100 /* enable preamble */
  191. #define M8260_SCC_UART_TX_BD_CM 0x0200 /* continous mode */
  192. #define M8260_SCC_UART_TX_BD_ADDR 0x0400 /* buffer contains address */
  193. #define M8260_SCC_UART_TX_BD_CTSR 0x0800 /* normal cts error reporting */
  194. #define M8260_SCC_UART_TX_BD_INT 0x1000 /* interrupt generated */
  195. #define M8260_SCC_UART_TX_BD_WRAP 0x2000 /* wrap back to first BD */
  196. #define M8260_SCC_UART_TX_BD_READY 0x8000 /* buffer is being sent */
  197. /* Miscellaneous SCC UART definitions */
  198. #define M8260_SCC_POLL_OUT_DELAY 10000 /* polled mode delay */
  199. #ifdef __cplusplus
  200. }
  201. #endif
  202. #endif /* __INCm8260Scch */