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

VxWorks

开发平台:

C/C++

  1. /* m5204.h - Motorola MCF5204 CPU control registers */
  2. /* Copyright 1994-1996 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01b,15apr98,mem  minor cleanups.
  7. 01a,09dec96,mem  written.
  8. */
  9. /*
  10. This file contains I/O addresses and related constants for the MCF5204
  11. */
  12. #ifndef __INCm5204h
  13. #define __INCm5204h
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. /*
  18. Need to use a distinct cast macro in order to not conflict with other
  19. include files.
  20. */
  21. #ifdef _ASMLANGUAGE
  22. #define CAST_M5204(x)
  23. #else /* _ASMLANGUAGE */
  24. #define CAST_M5204(x) (x)
  25. #endif /* _ASMLANGUAGE */
  26. /* Size of internal SRAM */
  27. #define M5204_SRAM_SIZE 512 /* size of internal SRAM */
  28. /* System Integration Module register addresses */
  29. #define M5204_SIM_SIMR(base) (CAST_M5204(volatile UINT8  *)((base) + 0x003))
  30. #define M5204_SIM_ICR_E0(base) (CAST_M5204(volatile UINT8  *)((base) + 0x014))
  31. #define M5204_SIM_ICR_E1(base) (CAST_M5204(volatile UINT8  *)((base) + 0x015))
  32. #define M5204_SIM_ICR_E2(base) (CAST_M5204(volatile UINT8  *)((base) + 0x016))
  33. #define M5204_SIM_ICR_E3(base) (CAST_M5204(volatile UINT8  *)((base) + 0x017))
  34. #define M5204_SIM_ICR_SW(base) (CAST_M5204(volatile UINT8  *)((base) + 0x01b))
  35. #define M5204_SIM_ICR_T1(base) (CAST_M5204(volatile UINT8  *)((base) + 0x01c))
  36. #define M5204_SIM_ICR_T2(base) (CAST_M5204(volatile UINT8  *)((base) + 0x01d))
  37. #define M5204_SIM_ICR_U1(base) (CAST_M5204(volatile UINT8  *)((base) + 0x01f))
  38. #define M5204_SIM_IMR(base) (CAST_M5204(volatile UINT32 *)((base) + 0x034))
  39. #define M5204_SIM_IPR(base) (CAST_M5204(volatile UINT32 *)((base) + 0x038))
  40. #define M5204_SIM_RSR(base) (CAST_M5204(volatile UINT8  *)((base) + 0x040))
  41. #define M5204_SIM_SYPCR(base) (CAST_M5204(volatile UINT8  *)((base) + 0x041))
  42. #define M5204_SIM_SWIVR(base) (CAST_M5204(volatile UINT8  *)((base) + 0x042))
  43. #define M5204_SIM_SWSR(base) (CAST_M5204(volatile UINT8  *)((base) + 0x043))
  44. /* chip select registers */
  45. #define M5204_SIM_CSAR0(base) (CAST_M5204(volatile UINT32 *)((base) + 0x064))
  46. #define M5204_SIM_CSMR0(base) (CAST_M5204(volatile UINT32 *)((base) + 0x068))
  47. #define M5204_SIM_CSCR0(base) (CAST_M5204(volatile UINT32 *)((base) + 0x06c))
  48. #define M5204_SIM_CSAR1(base) (CAST_M5204(volatile UINT32 *)((base) + 0x070))
  49. #define M5204_SIM_CSMR1(base) (CAST_M5204(volatile UINT32 *)((base) + 0x074))
  50. #define M5204_SIM_CSCR1(base) (CAST_M5204(volatile UINT32 *)((base) + 0x078))
  51. #define M5204_SIM_CSAR2(base) (CAST_M5204(volatile UINT32 *)((base) + 0x07c))
  52. #define M5204_SIM_CSMR2(base) (CAST_M5204(volatile UINT32 *)((base) + 0x080))
  53. #define M5204_SIM_CSCR2(base) (CAST_M5204(volatile UINT32 *)((base) + 0x084))
  54. #define M5204_SIM_CSAR3(base) (CAST_M5204(volatile UINT32 *)((base) + 0x088))
  55. #define M5204_SIM_CSMR3(base) (CAST_M5204(volatile UINT32 *)((base) + 0x08c))
  56. #define M5204_SIM_CSCR3(base) (CAST_M5204(volatile UINT32 *)((base) + 0x090))
  57. #define M5204_SIM_CSAR4(base) (CAST_M5204(volatile UINT32 *)((base) + 0x094))
  58. #define M5204_SIM_CSMR4(base) (CAST_M5204(volatile UINT32 *)((base) + 0x098))
  59. #define M5204_SIM_CSCR4(base) (CAST_M5204(volatile UINT32 *)((base) + 0x09c))
  60. #define M5204_SIM_CSAR5(base) (CAST_M5204(volatile UINT32 *)((base) + 0x0a0))
  61. #define M5204_SIM_CSMR5(base) (CAST_M5204(volatile UINT32 *)((base) + 0x0a4))
  62. #define M5204_SIM_CSCR5(base) (CAST_M5204(volatile UINT32 *)((base) + 0x0a8))
  63. /* parallel port registers */
  64. #define M5204_SIM_PAR(base) (CAST_M5204(volatile UINT8  *)((base) + 0x0cb))
  65. #define M5204_SIM_PADDR(base) (CAST_M5204(volatile UINT8  *)((base) + 0x1c5))
  66. #define M5204_SIM_PADAT(base) (CAST_M5204(volatile UINT8  *)((base) + 0x1c9))
  67. /* Timers 1 and 2. */
  68. #define M5204_TIMER_REG(base, offset, timer)
  69. ((base) + (((timer) - 1) * 0x20) + (offset))
  70. #define M5204_TIMER_TMR(base, n)
  71. (CAST_M5204(volatile UINT16 *) M5204_TIMER_REG(base, 0x100, n))
  72. #define M5204_TIMER_TRR(base, n)
  73. (CAST_M5204(volatile UINT16 *) M5204_TIMER_REG(base, 0x104, n))
  74. #define M5204_TIMER_TCR(base, n)
  75. (CAST_M5204(volatile UINT16 *) M5204_TIMER_REG(base, 0x108, n))
  76. #define M5204_TIMER_TCN(base, n)
  77. (CAST_M5204(volatile UINT16 *) M5204_TIMER_REG(base, 0x10c, n))
  78. #define M5204_TIMER_TER(base, n)
  79. (CAST_M5204(volatile UINT8  *) M5204_TIMER_REG(base, 0x111, n))
  80. /* UART */
  81. #define M5204_UART_MR(base) (CAST_M5204(volatile UINT8  *)((base) + 0x140))
  82. #define M5204_UART_SR(base) (CAST_M5204(volatile UINT8  *)((base) + 0x144))
  83. #define M5204_UART_CSR(base) (CAST_M5204(volatile UINT8  *)((base) + 0x144))
  84. #define M5204_UART_CR(base) (CAST_M5204(volatile UINT8  *)((base) + 0x148))
  85. #define M5204_UART_RB(base) (CAST_M5204(volatile UINT8  *)((base) + 0x14c))
  86. #define M5204_UART_TB(base) (CAST_M5204(volatile UINT8  *)((base) + 0x14c))
  87. #define M5204_UART_IPCR(base) (CAST_M5204(volatile UINT8  *)((base) + 0x150))
  88. #define M5204_UART_ACR(base) (CAST_M5204(volatile UINT8  *)((base) + 0x150))
  89. #define M5204_UART_ISR(base) (CAST_M5204(volatile UINT8  *)((base) + 0x154))
  90. #define M5204_UART_IMR(base) (CAST_M5204(volatile UINT8  *)((base) + 0x154))
  91. #define M5204_UART_BG1(base) (CAST_M5204(volatile UINT8  *)((base) + 0x158))
  92. #define M5204_UART_BG2(base) (CAST_M5204(volatile UINT8  *)((base) + 0x15c))
  93. #define M5204_UART_IVR(base) (CAST_M5204(volatile UINT8  *)((base) + 0x170))
  94. #define M5204_UART_IP(base) (CAST_M5204(volatile UINT8  *)((base) + 0x174))
  95. #define M5204_UART_OP1(base) (CAST_M5204(volatile UINT8  *)((base) + 0x178))
  96. #define M5204_UART_OP2(base) (CAST_M5204(volatile UINT8  *)((base) + 0x17c))
  97. /* SIM Module Configuration Register definitions */
  98. /* SIM Configuration register (SIMR) */
  99. #define M5204_SIMR_FRZ0 (1 << 6) /* bus monitor runs */
  100. #define M5204_SIMR_FRZ1 (1 << 7) /* watchdog timer runs */
  101. /* ICR - encode bits for ICR_xx registers */
  102. #define M5204_SIM_ICR_BITS(auto, level, priority)
  103.   ((((auto) & 0x01) << 7)
  104.    | (((level) & 0x07) << 2)
  105.    | ((priority) & 0x03))
  106. /* IMR - Interrupt Mask Register bit definitions */
  107. #define M5204_IMR_IRQ0 (1 << 1)
  108. #define M5204_IMR_IRQ1 (1 << 2)
  109. #define M5204_IMR_IRQ2 (1 << 3)
  110. #define M5204_IMR_IRQ3 (1 << 4)
  111. #define M5204_IMR_SWT (1 << 8)
  112. #define M5204_IMR_TIMER1 (1 << 9)
  113. #define M5204_IMR_TIMER2 (1 << 10)
  114. #define M5204_IMR_UART (1 << 12)
  115. /* chip select mask registers */
  116. #define M5204_CS_CSMR_MASK_512b 0x00000000
  117. #define M5204_CS_CSMR_MASK_1k 0x00000200
  118. #define M5204_CS_CSMR_MASK_2k 0x00000600
  119. #define M5204_CS_CSMR_MASK_4k 0x00000e00
  120. #define M5204_CS_CSMR_MASK_8k 0x00001e00
  121. #define M5204_CS_CSMR_MASK_16k 0x00003e00
  122. #define M5204_CS_CSMR_MASK_32k 0x00007e00
  123. #define M5204_CS_CSMR_MASK_64k 0x0000fe00
  124. #define M5204_CS_CSMR_MASK_128k 0x0001fe00
  125. #define M5204_CS_CSMR_MASK_256k 0x0003fe00
  126. #define M5204_CS_CSMR_MASK_512k 0x0007fe00
  127. #define M5204_CS_CSMR_MASK_1M 0x000ffe00
  128. #define M5204_CS_CSMR_MASK_2M 0x001ffe00
  129. #define M5204_CS_CSMR_MASK_4M 0x003ffe00
  130. #define M5204_CS_CSMR_MASK_8M 0x007ffe00
  131. #define M5204_CS_CSMR_MASK_16M 0x00fffe00
  132. #define M5204_CS_CSMR_MASK_32M 0x01fffe00
  133. #define M5204_CS_CSMR_MASK_64M 0x03fffe00
  134. #define M5204_CS_CSMR_MASK_128M 0x07fffe00
  135. #define M5204_CS_CSMR_MASK_256M 0x0ffffe00
  136. #define M5204_CS_CSMR_MASK_512M 0x1ffffe00
  137. #define M5204_CS_CSMR_MASK_1G 0x3ffffe00
  138. #define M5204_CS_CSMR_MASK_2G 0x7ffffe00
  139. #define M5204_CS_CSMR_MASK_4G 0xfffffe00
  140. #define M5204_CS_CSMR_WP (1 << 8)
  141. #define M5204_CS_CSMR_CI (1 << 5)
  142. #define M5204_CS_CSMR_SC (1 << 4)
  143. #define M5204_CS_CSMR_SD (1 << 3)
  144. #define M5204_CS_CSMR_UC (1 << 2)
  145. #define M5204_CS_CSMR_UD (1 << 1)
  146. /* chip select control registers */
  147. #define M5204_CS_CSCR_WS(n) ((n) << 10)
  148. #define M5204_CS_CSCR_WS_7 M5204_CS_CSCR_WS(7)
  149. #define M5204_CS_CSCR_WS_6 M5204_CS_CSCR_WS(6)
  150. #define M5204_CS_CSCR_WS_5 M5204_CS_CSCR_WS(5)
  151. #define M5204_CS_CSCR_WS_4 M5204_CS_CSCR_WS(4)
  152. #define M5204_CS_CSCR_WS_3 M5204_CS_CSCR_WS(3)
  153. #define M5204_CS_CSCR_WS_2 M5204_CS_CSCR_WS(2)
  154. #define M5204_CS_CSCR_WS_1 M5204_CS_CSCR_WS(1)
  155. #define M5204_CS_CSCR_WS_0 M5204_CS_CSCR_WS(0)
  156. #define M5204_CS_CSCR_BRST (1 << 9)
  157. #define M5204_CS_CSCR_AA (1 << 8)
  158. #define M5204_CS_CSCR_PS_16 (0 << 6)
  159. #define M5204_CS_CSCR_PS_8 (1 << 6)
  160. #define M5204_CS_CSCR_BEM (1 << 5)
  161. #define M5204_CS_CSCR_V (1 << 0)
  162. #ifdef __cplusplus
  163. }
  164. #endif
  165. #endif /* __INCm5204h */