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

VxWorks

开发平台:

C/C++

  1. /* m5206.h - Motorola MCF5206 CPU control registers */
  2. /* Copyright 1994-1997 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01a,21jan97,kab  created from m5204.h
  7. */
  8. /*
  9. This file contains I/O addresses and related constants for the MCF5206
  10. */
  11. #ifndef __INCm5206h
  12. #define __INCm5206h
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. /*
  17. Need to use a distinct cast macro in order to not conflict with other
  18. include files.
  19. */
  20. #ifdef _ASMLANGUAGE
  21. #define CAST_M5206(x)
  22. #else /* _ASMLANGUAGE */
  23. #define CAST_M5206(x) (x)
  24. #endif /* _ASMLANGUAGE */
  25. /* Size of internal SRAM */
  26. #define M5206_SRAM_SIZE 512 /* size of internal SRAM */
  27. /* System Integration Module register addresses */
  28. #define M5206_SIM_SIMR(base) (CAST_M5206(volatile UINT8  *)((base) + 0x003))
  29. /* External IP1-7 */
  30. #define M5206_SIM_ICR1(base) (CAST_M5206(volatile UINT8  *)((base) + 0x014))
  31. #define M5206_SIM_ICR2(base) (CAST_M5206(volatile UINT8  *)((base) + 0x015))
  32. #define M5206_SIM_ICR3(base) (CAST_M5206(volatile UINT8  *)((base) + 0x016))
  33. #define M5206_SIM_ICR4(base) (CAST_M5206(volatile UINT8  *)((base) + 0x017))
  34. #define M5206_SIM_ICR5(base) (CAST_M5206(volatile UINT8  *)((base) + 0x018))
  35. #define M5206_SIM_ICR6(base) (CAST_M5206(volatile UINT8  *)((base) + 0x019))
  36. #define M5206_SIM_ICR7(base) (CAST_M5206(volatile UINT8  *)((base) + 0x01a))
  37. /* SWT */
  38. #define M5206_SIM_ICR8(base) (CAST_M5206(volatile UINT8  *)((base) + 0x01b))
  39. /* Timer 1 INT */
  40. #define M5206_SIM_ICR9(base) (CAST_M5206(volatile UINT8  *)((base) + 0x01c))
  41. /* Timer 2 INT */
  42. #define M5206_SIM_ICR10(base) (CAST_M5206(volatile UINT8  *)((base) + 0x01d))
  43. /* MBUS interrupt */
  44. #define M5206_SIM_ICR11(base) (CAST_M5206(volatile UINT8  *)((base) + 0x01e))
  45. /* UART 1 INT */
  46. #define M5206_SIM_ICR12(base) (CAST_M5206(volatile UINT8  *)((base) + 0x01f))
  47. /* UART 2 INT */
  48. #define M5206_SIM_ICR13(base) (CAST_M5206(volatile UINT8  *)((base) + 0x020))
  49. #define M5206_SIM_IMR(base) (CAST_M5206(volatile UINT16 *)((base) + 0x036))
  50. #define M5206_SIM_IPR(base) (CAST_M5206(volatile UINT16 *)((base) + 0x03a))
  51. #define M5206_SIM_RSR(base) (CAST_M5206(volatile UINT8  *)((base) + 0x040))
  52. #define M5206_SIM_SYPCR(base) (CAST_M5206(volatile UINT8  *)((base) + 0x041))
  53. #define M5206_SIM_SWIVR(base) (CAST_M5206(volatile UINT8  *)((base) + 0x042))
  54. #define M5206_SIM_SWSR(base) (CAST_M5206(volatile UINT8  *)((base) + 0x043))
  55. /* DRAM */
  56. #define M5206_DCRR(base) (CAST_M5206(volatile UINT16 *)((base) + 0x046))
  57. #define M5206_DCTR(base) (CAST_M5206(volatile UINT16 *)((base) + 0x04a))
  58. #define M5206_DCAR0(base) (CAST_M5206(volatile UINT16 *)((base) + 0x04c))
  59. #define M5206_DCMR0(base) (CAST_M5206(volatile UINT32 *)((base) + 0x050))
  60. #define M5206_DCCR0(base) (CAST_M5206(volatile UINT8  *)((base) + 0x057))
  61. #define M5206_DCAR1(base) (CAST_M5206(volatile UINT16 *)((base) + 0x058))
  62. #define M5206_DCMR1(base) (CAST_M5206(volatile UINT32 *)((base) + 0x05c))
  63. #define M5206_DCCR1(base) (CAST_M5206(volatile UINT8  *)((base) + 0x063))
  64. #define M5206_SIM_CSAR0(base) (CAST_M5206(volatile UINT16 *)((base) + 0x064))
  65. #define M5206_SIM_CSMR0(base) (CAST_M5206(volatile UINT32 *)((base) + 0x068))
  66. #define M5206_SIM_CSCR0(base) (CAST_M5206(volatile UINT16 *)((base) + 0x06e))
  67. #define M5206_SIM_CSAR1(base) (CAST_M5206(volatile UINT16 *)((base) + 0x070))
  68. #define M5206_SIM_CSMR1(base) (CAST_M5206(volatile UINT32 *)((base) + 0x074))
  69. #define M5206_SIM_CSCR1(base) (CAST_M5206(volatile UINT16 *)((base) + 0x07a))
  70. #define M5206_SIM_CSAR2(base) (CAST_M5206(volatile UINT16 *)((base) + 0x07c))
  71. #define M5206_SIM_CSMR2(base) (CAST_M5206(volatile UINT32 *)((base) + 0x080))
  72. #define M5206_SIM_CSCR2(base) (CAST_M5206(volatile UINT16 *)((base) + 0x086))
  73. #define M5206_SIM_CSAR3(base) (CAST_M5206(volatile UINT16 *)((base) + 0x088))
  74. #define M5206_SIM_CSMR3(base) (CAST_M5206(volatile UINT32 *)((base) + 0x08c))
  75. #define M5206_SIM_CSCR3(base) (CAST_M5206(volatile UINT16 *)((base) + 0x092))
  76. #define M5206_SIM_CSAR4(base) (CAST_M5206(volatile UINT16 *)((base) + 0x094))
  77. #define M5206_SIM_CSMR4(base) (CAST_M5206(volatile UINT32 *)((base) + 0x098))
  78. #define M5206_SIM_CSCR4(base) (CAST_M5206(volatile UINT16 *)((base) + 0x09e))
  79. #define M5206_SIM_CSAR5(base) (CAST_M5206(volatile UINT16 *)((base) + 0x0a0))
  80. #define M5206_SIM_CSMR5(base) (CAST_M5206(volatile UINT32 *)((base) + 0x0a4))
  81. #define M5206_SIM_CSCR5(base) (CAST_M5206(volatile UINT16 *)((base) + 0x0aa))
  82. #define M5206_SIM_CSAR6(base) (CAST_M5206(volatile UINT16 *)((base) + 0x0ac))
  83. #define M5206_SIM_CSMR6(base) (CAST_M5206(volatile UINT32 *)((base) + 0x0b0))
  84. #define M5206_SIM_CSCR6(base) (CAST_M5206(volatile UINT16 *)((base) + 0x0b6))
  85. #define M5206_SIM_CSAR7(base) (CAST_M5206(volatile UINT16 *)((base) + 0x0b8))
  86. #define M5206_SIM_CSMR7(base) (CAST_M5206(volatile UINT32 *)((base) + 0x0bc))
  87. #define M5206_SIM_CSCR7(base) (CAST_M5206(volatile UINT16 *)((base) + 0x0c2))
  88. #define M5206_SIM_DMCR(base) (CAST_M5206(volatile UINT16 *)((base) + 0x0c6))
  89. #define M5206_SIM_PAR(base) (CAST_M5206(volatile UINT8  *)((base) + 0x0cb))
  90. #define M5206_SIM_PADDR(base) (CAST_M5206(volatile UINT8  *)((base) + 0x1c5))
  91. #define M5206_SIM_PADAT(base) (CAST_M5206(volatile UINT8  *)((base) + 0x1c9))
  92. /* Timers 1 and 2. */
  93. #define M5206_TIMER_REG(base, offset, timer)
  94. ((base) + (((timer) - 1) * 0x20) + (offset))
  95. #define M5206_TIMER_TMR(base, n)
  96. (CAST_M5206(volatile UINT16 *) M5206_TIMER_REG(base, 0x100, n))
  97. #define M5206_TIMER_TRR(base, n)
  98. (CAST_M5206(volatile UINT16 *) M5206_TIMER_REG(base, 0x104, n))
  99. #define M5206_TIMER_TCR(base, n)
  100. (CAST_M5206(volatile UINT16 *) M5206_TIMER_REG(base, 0x108, n))
  101. #define M5206_TIMER_TCN(base, n)
  102. (CAST_M5206(volatile UINT16 *) M5206_TIMER_REG(base, 0x10c, n))
  103. #define M5206_TIMER_TER(base, n)
  104. (CAST_M5206(volatile UINT8  *) M5206_TIMER_REG(base, 0x111, n))
  105. /* UART 1 & 2 */
  106. #define M5206_UART_REG(base, offset, chan)
  107. ((base) + (offset) + (((chan) - 1) * 0x40))
  108. #define M5206_UART_MR(base, n)
  109. (CAST_M5206(volatile UINT8 *) M5206_UART_REG((base), 0x140, n))
  110. #define M5206_UART_SR(base, n)
  111. (CAST_M5206(volatile UINT8 *) M5206_UART_REG((base), 0x144, n))
  112. #define M5206_UART_CSR(base, n)
  113. (CAST_M5206(volatile UINT8 *) M5206_UART_REG((base), 0x144, n))
  114. #define M5206_UART_CR(base, n)
  115. (CAST_M5206(volatile UINT8 *) M5206_UART_REG((base), 0x148, n))
  116. #define M5206_UART_RB(base, n)
  117. (CAST_M5206(volatile UINT8 *) M5206_UART_REG((base), 0x14c, n))
  118. #define M5206_UART_TB(base, n)
  119. (CAST_M5206(volatile UINT8 *) M5206_UART_REG((base), 0x14c, n))
  120. #define M5206_UART_IPCR(base, n)
  121. (CAST_M5206(volatile UINT8 *) M5206_UART_REG((base), 0x150, n))
  122. #define M5206_UART_ACR(base, n)
  123. (CAST_M5206(volatile UINT8 *) M5206_UART_REG((base), 0x150, n))
  124. #define M5206_UART_ISR(base, n)
  125. (CAST_M5206(volatile UINT8 *) M5206_UART_REG((base), 0x154, n))
  126. #define M5206_UART_IMR(base, n)
  127. (CAST_M5206(volatile UINT8 *) M5206_UART_REG((base), 0x154, n))
  128. #define M5206_UART_BG1(base, n)
  129. (CAST_M5206(volatile UINT8 *) M5206_UART_REG((base), 0x158, n))
  130. #define M5206_UART_BG2(base, n)
  131. (CAST_M5206(volatile UINT8 *) M5206_UART_REG((base), 0x15c, n))
  132. #define M5206_UART_IVR(base, n)
  133. (CAST_M5206(volatile UINT8 *) M5206_UART_REG((base), 0x170, n))
  134. #define M5206_UART_IP(base, n)
  135. (CAST_M5206(volatile UINT8 *) M5206_UART_REG((base), 0x174, n))
  136. #define M5206_UART_OP1(base, n)
  137. (CAST_M5206(volatile UINT8 *) M5206_UART_REG((base), 0x178, n))
  138. #define M5206_UART_OP2(base, n)
  139. (CAST_M5206(volatile UINT8 *) M5206_UART_REG((base), 0x17c, n))
  140. /* MBUS regs */
  141. #define M5206_MADR(base) (CAST_M5206(volatile UINT8  *)((base) + 0x1e0))
  142. #define M5206_MFDR(base) (CAST_M5206(volatile UINT8  *)((base) + 0x1e4))
  143. #define M5206_MBCR(base) (CAST_M5206(volatile UINT8  *)((base) + 0x1e8))
  144. #define M5206_MBSR(base) (CAST_M5206(volatile UINT8  *)((base) + 0x1ec))
  145. #define M5206_MBDR(base) (CAST_M5206(volatile UINT8  *)((base) + 0x1f0))
  146. /* SIM Module Configuration Register definitions */
  147. /* ICR - encode bits for ICR_xx registers */
  148. #define M5206_SIM_ICR_BITS(auto, level, priority)
  149.   ((((auto) & 0x01) << 7)
  150.    | (((level) & 0x07) << 2)
  151.    | ((priority) & 0x03))
  152. /* IMR - Interrupt Mask Register bit definitions */
  153. #define M5206_IMR_IRQ1 (1 << 1)
  154. #define M5206_IMR_IRQ2 (1 << 2)
  155. #define M5206_IMR_IRQ3 (1 << 3)
  156. #define M5206_IMR_IRQ4 (1 << 4)
  157. #define M5206_IMR_IRQ5 (1 << 5)
  158. #define M5206_IMR_IRQ6 (1 << 6)
  159. #define M5206_IMR_IRQ7 (1 << 7)
  160. #define M5206_IMR_SWT (1 << 8)
  161. #define M5206_IMR_TIMER1 (1 << 9)
  162. #define M5206_IMR_TIMER2 (1 << 10)
  163. #define M5206_IMR_MBUS (1 << 11)
  164. #define M5206_IMR_UART1 (1 << 12)
  165. #define M5206_IMR_UART2 (1 << 13)
  166. /* chip select mask registers */
  167. #define M5206_CS_CSMR_MASK_64k 0x00000000
  168. #define M5206_CS_CSMR_MASK_128k 0x00010000
  169. #define M5206_CS_CSMR_MASK_256k 0x00030000
  170. #define M5206_CS_CSMR_MASK_512k 0x00070000
  171. #define M5206_CS_CSMR_MASK_1M 0x000f0000
  172. #define M5206_CS_CSMR_MASK_2M 0x001f0000
  173. #define M5206_CS_CSMR_MASK_4M 0x003f0000
  174. #define M5206_CS_CSMR_MASK_8M 0x007f0000
  175. #define M5206_CS_CSMR_MASK_16M 0x00ff0000
  176. #define M5206_CS_CSMR_MASK_32M 0x01ff0000
  177. #define M5206_CS_CSMR_MASK_64M 0x03ff0000
  178. #define M5206_CS_CSMR_MASK_128M 0x07ff0000
  179. #define M5206_CS_CSMR_MASK_256M 0x0fff0000
  180. #define M5206_CS_CSMR_MASK_512M 0x1fff0000
  181. #define M5206_CS_CSMR_MASK_1G 0x3fff0000
  182. #define M5206_CS_CSMR_MASK_2G 0x7fff0000
  183. #define M5206_CS_CSMR_MASK_4G 0xffff0000
  184. #define M5206_CS_CSMR_CI (1 << 5) /* /CS1 only */
  185. #define M5206_CS_CSMR_SC (1 << 4)
  186. #define M5206_CS_CSMR_SD (1 << 3)
  187. #define M5206_CS_CSMR_UC (1 << 2)
  188. #define M5206_CS_CSMR_UD (1 << 1)
  189. /* chip select control regs (CSCR) & default mem control reg (DMCR) */
  190. #define M5206_CS_CSCR_WS(n) ((n) << 10) /* wait-states */
  191. #define M5206_CS_CSCR_WS_15 M5206_CS_CSCR_WS(15)
  192. #define M5206_CS_CSCR_WS_14 M5206_CS_CSCR_WS(14)
  193. #define M5206_CS_CSCR_WS_13 M5206_CS_CSCR_WS(13)
  194. #define M5206_CS_CSCR_WS_12 M5206_CS_CSCR_WS(12)
  195. #define M5206_CS_CSCR_WS_11 M5206_CS_CSCR_WS(11)
  196. #define M5206_CS_CSCR_WS_10 M5206_CS_CSCR_WS(10)
  197. #define M5206_CS_CSCR_WS_9 M5206_CS_CSCR_WS(9)
  198. #define M5206_CS_CSCR_WS_8 M5206_CS_CSCR_WS(8)
  199. #define M5206_CS_CSCR_WS_7 M5206_CS_CSCR_WS(7)
  200. #define M5206_CS_CSCR_WS_6 M5206_CS_CSCR_WS(6)
  201. #define M5206_CS_CSCR_WS_5 M5206_CS_CSCR_WS(5)
  202. #define M5206_CS_CSCR_WS_4 M5206_CS_CSCR_WS(4)
  203. #define M5206_CS_CSCR_WS_3 M5206_CS_CSCR_WS(3)
  204. #define M5206_CS_CSCR_WS_2 M5206_CS_CSCR_WS(2)
  205. #define M5206_CS_CSCR_WS_1 M5206_CS_CSCR_WS(1)
  206. #define M5206_CS_CSCR_WS_0 M5206_CS_CSCR_WS(0)
  207. #define M5206_CS_CSCR_BRST (1 << 9) /* allow burst access */
  208. #define M5206_CS_CSCR_AA (1 << 8) /* auto-acknowledge */
  209. #define M5206_CS_CSCR_PS_32 (0 << 6) /* 32-bit port size */
  210. #define M5206_CS_CSCR_PS_8 (1 << 6) /* 8-bit port size */
  211. #define M5206_CS_CSCR_PS_16 (2 << 6) /* 16-bit port size */
  212. #define M5206_CS_CSCR_EMAA (1 << 5) /* alternate master auto-ack */
  213. #define M5206_CS_CSCR_ASET (1 << 4) /* address setup enable */
  214. #define M5206_CS_CSCR_WRAH (1 << 3) /* write address hold enable */
  215. #define M5206_CS_CSCR_RDAH (1 << 2) /* read address hold enable */
  216. #define M5206_CS_CSCR_WR (1 << 1) /* write enable */
  217. #define M5206_CS_CSCR_RD (1 << 0) /* read enable */
  218. /* DRAM Controller Timing Register (DCTR) */
  219. #define M5206_DCTR_DAEM (1 << 15) /* drive multiplexed addr */
  220. #define M5206_DCTR_EDO (1 << 14) /* EDO enable */
  221. #define M5206_DCTR_RCD (1 << 12) /* RAS-to-CAS delay */
  222. #define M5206_DCTR_RSH1 (1 << 10) /* RAS hold time */
  223. #define M5206_DCTR_RSH0 (1 << 9) /* RAS hold time */
  224. #define M5206_DCTR_RP1 (1 << 6) /* RAS precharge time */
  225. #define M5206_DCTR_RP0 (1 << 5) /* RAS prechange time */
  226. #define M5206_DCTR_CAS (1 << 3) /* CAS time */
  227. #define M5206_DCTR_CP (1 << 1) /* CAS precharge time */
  228. #define M5206_DCTR_CSR (1 << 0) /* CAS setup time */
  229. /* dram controller mask registers */
  230. #define M5206_DCMR_MASK_128k 0x00000000
  231. #define M5206_DCMR_MASK_256k 0x00020000
  232. #define M5206_DCMR_MASK_512k 0x00060000
  233. #define M5206_DCMR_MASK_1M 0x000e0000
  234. #define M5206_DCMR_MASK_2M 0x001e0000
  235. #define M5206_DCMR_MASK_4M 0x003e0000
  236. #define M5206_DCMR_MASK_8M 0x007e0000
  237. #define M5206_DCMR_MASK_16M 0x00fe0000
  238. #define M5206_DCMR_MASK_32M 0x01fe0000
  239. #define M5206_DCMR_MASK_64M 0x03fe0000
  240. #define M5206_DCMR_MASK_128M 0x07fe0000
  241. #define M5206_DCMR_MASK_256M 0x0ffe0000
  242. #define M5206_DCMR_MASK_512M 0x1ffe0000
  243. #define M5206_DCMR_MASK_1G 0x3ffe0000
  244. #define M5206_DCMR_MASK_2G 0x7ffe0000
  245. #define M5206_DCMR_MASK_4G 0xfffe0000
  246. #define M5206_DCMR_SC (1 << 4)
  247. #define M5206_DCMR_SD (1 << 3)
  248. #define M5206_DCMR_UC (1 << 2)
  249. #define M5206_DCMR_UD (1 << 1)
  250. /* DRAM Controller Control Register */
  251. #define M5206_DCCR_PS_32 (0 << 6) /* 32-bit port size */
  252. #define M5206_DCCR_PS_8 (1 << 6) /* 8-bit port size */
  253. #define M5206_DCCR_PS_16 (3 << 6) /* 16-bit port size */
  254. #define M5206_DCCR_BPS_512B (0 << 4) /* 512byte bank page size */
  255. #define M5206_DCCR_BPS_1K (1 << 4) /* 1Kb bank page size */
  256. #define M5206_DCCR_BPS_2K (2 << 4) /* 2Kb bank page size */
  257. #define M5206_DCCR_MODE_NORMAL (0 << 2) /* normal page mode */
  258. #define M5206_DCCR_MODE_BURST (1 << 2) /* burst page mode */
  259. #define M5206_DCCR_MODE_FAST (3 << 2) /* fast page mode */
  260. #define M5206_DCCR_WR (1 << 1) /* Signal on write xfer */
  261. #define M5206_DCCR_RD (1 << 0) /* Signal on read xfer */
  262. #ifdef __cplusplus
  263. }
  264. #endif
  265. #endif /* __INCm5206h */