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

VxWorks

开发平台:

C/C++

  1. /* ppc860Siu.h - Motorola System Interface Unit header file */
  2. /* Copyright 1984-2001 Wind River Systems, Inc. */
  3. /* Copyright 1997,1998 Motorola, Inc., All Rights Reserved */
  4. /*
  5. modification history
  6. --------------------
  7. 01h,18sep01,pmr  fixed typo in definition of SIUMCR_MLRC_SPKROUT (SPR 64301).
  8. 01g,01dec98,cn   fixed SPR# 8614.
  9. 01f,23jun98,cn   added MPC860_REGB_OFFSET and MPC860_DPR_SCC1 macros.
  10. 01e,26mar98,map  added more LCD definitions.
  11. 01d,09dec96,tpr  added LCD register definition, corrected typo.
  12. 01c,11nov96,tam  added extra macros for power management (PLPRCR register).
  13. 01b,06nov96,tpr  added new macros.
  14. 01a,11apr96,tpr  created.
  15. */
  16. /*
  17. This file contains constants of the System Interface Unit (SIU) for the
  18. Motorola MPC860 and MPC821 PowerPC microcontroller
  19. */
  20. #ifndef __INCppc860Siuh
  21. #define __INCppc860Siuh
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif
  25. #ifdef _ASMLANGUAGE
  26. #define CAST(x)
  27. #else /* _ASMLANGUAGE */
  28. typedef volatile UCHAR VCHAR;   /* shorthand for volatile UCHAR */
  29. typedef volatile INT32 VINT32; /* volatile unsigned word */
  30. typedef volatile INT16 VINT16; /* volatile unsigned halfword */
  31. typedef volatile INT8 VINT8;   /* volatile unsigned byte */
  32. typedef volatile UINT32 VUINT32; /* volatile unsigned word */
  33. typedef volatile UINT16 VUINT16; /* volatile unsigned halfword */
  34. typedef volatile UINT8 VUINT8;   /* volatile unsigned byte */
  35. #define CAST(x) (x)
  36. #endif /* _ASMLANGUAGE */
  37. /* 
  38.  * MPC860/MPC821 internal register/memory map (section 17 of prelim. spec)
  39.  * note that these are offsets from the value stored in the IMMR 
  40.  * register, which is in the PowerPC special register address space
  41.  * at register number 638
  42.  */
  43. /* General SIU registers */
  44. #define SIUMCR(base) (CAST(VUINT32 *)((base) + 0x0000)) /* SIU Module Conf*/
  45. #define SYPCR(base) (CAST(VUINT32 *)((base) + 0x0004)) /* Protection Ctrl */
  46. #define SWT(base) (CAST(VUINT32 *)((base) + 0x0008)) /* SW watch dog */
  47. #define SWSR(base) (CAST(VUINT16 *)((base) + 0x000E)) /* SW Service Reg */
  48. #define SIPEND(base) (CAST(VUINT32 *)((base) + 0x0010)) /* Intr Pending reg*/
  49. #define SIMASK(base) (CAST(VUINT32 *)((base) + 0x0014)) /* Intr Mask reg */
  50. #define SIEL(base) (CAST(VUINT32 *)((base) + 0x0018)) /* Intr Edge Lvl */
  51. #define SIVEC(base) (CAST(VUINT32 *)((base) + 0x001C)) /* Intr Vector reg */
  52. #define TESR(base) (CAST(VUINT32 *)((base) + 0x0020)) /* Tx Error Status */
  53. #define SDCR(base) (CAST(VUINT32 *)((base) + 0x0030)) /* SDMA Config Reg */
  54. /* PCMCIA registers */
  55. #define PBR0(base) (CAST(VUINT32 *)((base) + 0x0080)) /* PCMCIA base 0 */
  56. #define POR0(base) (CAST(VUINT32 *)((base) + 0x0084)) /* PCMCIA option 0 */
  57. #define PBR1(base) (CAST(VUINT32 *)((base) + 0x0088)) /* PCMCIA base 1 */
  58. #define POR1(base) (CAST(VUINT32 *)((base) + 0x008C)) /* PCMCIA option 1 */
  59. #define PBR2(base) (CAST(VUINT32 *)((base) + 0x0090)) /* PCMCIA base 2 */
  60. #define POR2(base) (CAST(VUINT32 *)((base) + 0x0094)) /* PCMCIA option 2 */
  61. #define PBR3(base) (CAST(VUINT32 *)((base) + 0x0098)) /* PCMCIA base 3 */
  62. #define POR3(base) (CAST(VUINT32 *)((base) + 0x009C)) /* PCMCIA option 3 */
  63. #define PBR4(base) (CAST(VUINT32 *)((base) + 0x00A0)) /* PCMCIA base 4 */
  64. #define POR4(base) (CAST(VUINT32 *)((base) + 0x00A4)) /* PCMCIA option 4 */
  65. #define PBR5(base) (CAST(VUINT32 *)((base) + 0x00A8)) /* PCMCIA base 5 */
  66. #define POR5(base) (CAST(VUINT32 *)((base) + 0x00AC)) /* PCMCIA option 5 */
  67. #define PBR6(base) (CAST(VUINT32 *)((base) + 0x00B0)) /* PCMCIA base 6 */
  68. #define POR6(base) (CAST(VUINT32 *)((base) + 0x00B4)) /* PCMCIA option 6 */
  69. #define PBR7(base) (CAST(VUINT32 *)((base) + 0x00B8)) /* PCMCIA base 7 */
  70. #define POR7(base) (CAST(VUINT32 *)((base) + 0x00BC)) /* PCMCIA option 7 */
  71. #define PGCRA(base) (CAST(VUINT32 *)((base) + 0x00E0)) /* slot A ctrl */
  72. #define PGCRB(base) (CAST(VUINT32 *)((base) + 0x00E4)) /* slot B ctrl */
  73. #define PSCR(base) (CAST(VUINT32 *)((base) + 0x00E8)) /* PCMCIA Status */
  74. #define PIPR(base) (CAST(VUINT32 *)((base) + 0x00F0)) /* pins value */
  75. #define PER(base) (CAST(VUINT32 *)((base) + 0x00f8)) /* PCMCIA Enable */
  76. /* MEMC registers */
  77. #define BR0(base) (CAST(VUINT32 *)((base) + 0x0100)) /* Base Reg bank 0 */
  78. #define OR0(base) (CAST(VUINT32 *)((base) + 0x0104)) /* Opt Reg bank 0*/
  79. #define BR1(base) (CAST(VUINT32 *)((base) + 0x0108)) /* Base Reg bank 1 */
  80. #define OR1(base) (CAST(VUINT32 *)((base) + 0x010C)) /* Opt Reg bank 1*/
  81. #define BR2(base) (CAST(VUINT32 *)((base) + 0x0110)) /* Base Reg bank 2 */
  82. #define OR2(base) (CAST(VUINT32 *)((base) + 0x0114)) /* Opt Reg bank 2*/
  83. #define BR3(base) (CAST(VUINT32 *)((base) + 0x0118)) /* Base Reg bank 3 */
  84. #define OR3(base) (CAST(VUINT32 *)((base) + 0x011C)) /* Opt Reg bank 3*/
  85. #define BR4(base) (CAST(VUINT32 *)((base) + 0x0120)) /* Base Reg bank 4 */
  86. #define OR4(base) (CAST(VUINT32 *)((base) + 0x0124)) /* Opt Reg bank 4*/
  87. #define BR5(base) (CAST(VUINT32 *)((base) + 0x0128)) /* Base Reg bank 5 */
  88. #define OR5(base) (CAST(VUINT32 *)((base) + 0x012C)) /* Opt Reg bank 5*/
  89. #define BR6(base) (CAST(VUINT32 *)((base) + 0x0130)) /* Base Reg bank 6 */
  90. #define OR6(base) (CAST(VUINT32 *)((base) + 0x0134)) /* Opt Reg bank 6*/
  91. #define BR7(base) (CAST(VUINT32 *)((base) + 0x0138)) /* Base Reg bank 7 */
  92. #define OR7(base) (CAST(VUINT32 *)((base) + 0x013C)) /* Opt Reg bank 7*/
  93. #define MAR(base) (CAST(VUINT32 *)((base) + 0x0164)) /* Memory Address */
  94. #define MCR(base) (CAST(VUINT32 *)((base) + 0x0168)) /* Memory Command */
  95. #define MAMR(base) (CAST(VUINT32 *)((base) + 0x0170)) /* Machine A Mode */
  96. #define MBMR(base) (CAST(VUINT32 *)((base) + 0x0174)) /* Machine B Mode */
  97. #define MSTAT(base) (CAST(VUINT16 *)((base) + 0x0178)) /* Memory Status */
  98. #define MPTPR(base) (CAST(VUINT16 *)((base) + 0x017A)) /* Mem Timer Presc*/
  99. #define MDR(base) (CAST(VUINT32 *)((base) + 0x017C)) /* Memory Data */
  100. /* System Integration Timers */
  101. #define TBSCR(base) (CAST(VUINT16 *)((base) + 0x0200)) /* T.B. Status Ctrl*/
  102. #define TBREFF0(base) (CAST(VUINT32 *)((base) + 0x0204)) /* Time Base Ref 0 */
  103. #define TBREFF1(base) (CAST(VUINT32 *)((base) + 0x0208)) /* Time Base Ref 1 */
  104. #define RTCSC(base) (CAST(VUINT16 *)((base) + 0x0220)) /* Clock Stat Ctrl*/
  105. #define RTC(base) (CAST(VUINT32 *)((base) + 0x0224)) /* RT Clock */
  106. #define RTSEC(base) (CAST(VUINT32 *)((base) + 0x0228)) /* RT Alarm Seconds*/
  107. #define RTCAL(base) (CAST(VUINT32 *)((base) + 0x022C)) /* Real Time Alarm */
  108. #define PISCR(base) (CAST(VUINT16 *)((base) + 0x0240)) /* PIT Status Ctrl */
  109. #define PITC(base) (CAST(VUINT32 *)((base) + 0x0244)) /* PIT Count */
  110. #define PITR(base) (CAST(VUINT32 *)((base) + 0x0248)) /* PIT */
  111. /* Clock and Reset */
  112. #define SCCR(base) (CAST(VUINT32 *)((base) + 0x0280)) /* Sys Clock Ctrl*/
  113. #define PLPRCR(base) (CAST(VUINT32 *)((base) + 0x0284)) /* PLL LPower Reset*/
  114. #define RSR(base) (CAST(VUINT32 *)((base) + 0x0288)) /* Reset Status Reg*/
  115. /* System Integration Timers Keys */
  116. #define TBSCRK(base) (CAST(VUINT32 *)((base) + 0x0300)) /* TB Stat Ctrl key*/
  117. #define TBREFF0K(base) (CAST(VUINT32 *)((base) + 0x0304)) /* TB Ref 0 Key */
  118. #define TBREFF1K(base) (CAST(VUINT32 *)((base) + 0x0308)) /* TB Ref 1 Key */
  119. #define TBK(base) (CAST(VUINT32 *)((base) + 0x030C)) /* TB & Dec Key */
  120. #define RTCSCK(base) (CAST(VUINT32 *)((base) + 0x0320)) /* RT Stat Ctrl Key*/
  121. #define RTCK(base) (CAST(VUINT32 *)((base) + 0x0324)) /* RT Clock Key */
  122. #define RTSECK(base) (CAST(VUINT32 *)((base) + 0x0328)) /* RT Alarm Second */
  123. #define RTCALK(base) (CAST(VUINT32 *)((base) + 0x032C)) /* R T Alarm Key */
  124. #define PISCRK(base) (CAST(VUINT32 *)((base) + 0x0340)) /* PIT Stat Ctrl Key*/
  125. #define PITCK(base) (CAST(VUINT32 *)((base) + 0x0344)) /* PIT Count Key */
  126. /* Clock and Reset Keys */
  127. #define SCCRK(base) (CAST(VUINT32 *)((base) + 0x0380)) /* System Clk Ctrl */
  128. #define PLPRCRK(base) (CAST(VUINT32 *)((base) + 0x0384)) /* Pll, LP&R Ctrl */
  129. #define RSRK(base) (CAST(VUINT32 *)((base) + 0x0388)) /* Reset Status Key*/
  130. /* LCD */
  131. #define LCOLR(base) (CAST(VUINT16 *)((base) + 0x0E00)) /* Color Ram */
  132. #define LCCR(base) (CAST(VUINT32 *)((base) + 0x0840)) /* Config reg */
  133. #define LCHCR(base) (CAST(VUINT32 *)((base) + 0x0844)) /* Horizontal */
  134. #define LCVCR(base) (CAST(VUINT32 *)((base) + 0x0848)) /* Vertical */
  135. #define LCFAA(base) (CAST(VUINT32 *)((base) + 0x0850)) /* Frame A buf */
  136. #define LCFBA(base) (CAST(VUINT32 *)((base) + 0x0854)) /* Frame B buf */
  137. #define LCSR(base) (CAST(VUINT8 *) ((base) + 0x0858)) /* Status reg */
  138. /* I2C */
  139. #define I2MOD(base) (CAST(VUINT8 *)((base) + 0x0860)) /* I2C Mode register*/
  140. #define I2ADD(base) (CAST(VUINT8 *)((base) + 0x0864)) /* I2C Address reg */
  141. #define I2BRG(base) (CAST(VUINT8 *)((base) + 0x0868)) /* I2C BRG register */
  142. #define I2COM(base) (CAST(VUINT8 *)((base) + 0x086C)) /* I2C Command reg */
  143. #define I2CER(base) (CAST(VUINT8 *)((base) + 0x0870)) /* I2C Event Reg */
  144. #define I2CMR(base) (CAST(VUINT8 *)((base) + 0x0874)) /* I2C Mask Reg */
  145. /* DMA */
  146. #define SDAR(base) (CAST(VUINT32 *)((base) + 0x0904)) /* SDMA Address Reg*/
  147. #define SDSR(base) (CAST(VUINT8 *)((base) + 0x0908)) /* SDMA Status Reg */
  148. #define SDMR(base) (CAST(VUINT8 *)((base) + 0x090C)) /* SDMA Mask Reg */
  149. #define IDSR1(base) (CAST(VUINT8 *)((base) + 0x0910)) /* IDMA 1 Status Reg*/
  150. #define IDMR1(base) (CAST(VUINT8 *)((base) + 0x0914)) /* IDMA 1 Mask Reg */
  151. #define IDSR2(base) (CAST(VUINT8 *)((base) + 0x0918)) /* IDMA 2 Status Reg*/
  152. #define IDMR2(base) (CAST(VUINT8 *)((base) + 0x091C)) /* IDMA 2 Mask Reg */
  153. /* CPM Interrupt Control registers */
  154. #define CIVR(base) (CAST(VUINT16 *)((base) + 0x0930)) /* CP Int vector */
  155. #define CICR(base) (CAST(VUINT32 *)((base) + 0x0940)) /* CP Int config */
  156. #define CIPR(base) (CAST(VUINT32 *)((base) + 0x0944)) /* CP Int pending */
  157. #define CIMR(base) (CAST(VUINT32 *)((base) + 0x0948)) /* CP Int mask reg */
  158. #define CISR(base) (CAST(VUINT32 *)((base) + 0x094C)) /* CP Int in-serv*/
  159. /* Input/Output Port register */
  160. #define PADIR(base) (CAST(VUINT16 *)((base) + 0x0950)) /* PA data dir*/
  161. #define PAPAR(base) (CAST(VUINT16 *)((base) + 0x0952)) /* PA pin assign*/
  162. #define PAODR(base) (CAST(VUINT16 *)((base) + 0x0954)) /* PA open drain*/
  163. #define PADAT(base) (CAST(VUINT16 *)((base) + 0x0956)) /* PA data reg */
  164. #define PCDIR(base) (CAST(VUINT16 *)((base) + 0x0960)) /* PC data dir */
  165. #define PCPAR(base) (CAST(VUINT16 *)((base) + 0x0962)) /* PC pin assign*/
  166. #define PCSO(base) (CAST(VUINT16 *)((base) + 0x0964)) /* PC options */
  167. #define PCDAT(base) (CAST(VUINT16 *)((base) + 0x0966)) /* PC data reg */
  168. #define PCINT(base) (CAST(VUINT16 *)((base) + 0x0968)) /* PC intr ctrl */
  169. #define PDDIR(base) (CAST(VUINT16 *)((base) + 0x0970)) /* PD data dir */
  170. #define PDPAR(base) (CAST(VUINT16 *)((base) + 0x0972)) /* PD pin assign*/
  171. #define PDDAT(base) (CAST(VUINT16 *)((base) + 0x0976)) /* PD data reg */
  172. /* CPM timer register set */
  173. #define TGCR(base) (CAST(VUINT16 *)((base) + 0x0980)) /* Tmr Global Cfg */
  174. #define TMR1(base) (CAST(VUINT16 *)((base) + 0x0990)) /* Tmr 1 Mode Reg */
  175. #define TMR2(base) (CAST(VUINT16 *)((base) + 0x0992)) /* Tmr 2 Mode Reg */
  176. #define TRR1(base) (CAST(VUINT16 *)((base) + 0x0994)) /* Tmr 1 Ref Reg */
  177. #define TRR2(base) (CAST(VUINT16 *)((base) + 0x0996)) /* Tmr 2 Ref Reg */
  178. #define TCR1(base) (CAST(VUINT16 *)((base) + 0x0998)) /* Tmr 1 Capture */
  179. #define TCR2(base) (CAST(VUINT16 *)((base) + 0x099A)) /* Tmr 2 Capture */
  180. #define TCN1(base) (CAST(VUINT16 *)((base) + 0x099C)) /* Tmr 1 Counter */
  181. #define TCN2(base) (CAST(VUINT16 *)((base) + 0x099E)) /* Tmr 2 Counter */
  182. #define TMR3(base) (CAST(VUINT16 *)((base) + 0x09A0)) /* Tmr 3 Mode Reg */
  183. #define TMR4(base) (CAST(VUINT16 *)((base) + 0x09A2)) /* Tmr 4 Mode Reg */
  184. #define TRR3(base) (CAST(VUINT16 *)((base) + 0x09A4)) /* Tmr 3 Reference*/
  185. #define TRR4(base) (CAST(VUINT16 *)((base) + 0x09A6)) /* Tmr 4 Reference*/
  186. #define TCR3(base) (CAST(VUINT16 *)((base) + 0x09A8)) /* Tmr 3 Capture */
  187. #define TCR4(base) (CAST(VUINT16 *)((base) + 0x09AA)) /* Tmr 4 Capture */
  188. #define TCN3(base) (CAST(VUINT16 *)((base) + 0x09AC)) /* Tmr 3 Counter */
  189. #define TCN4(base) (CAST(VUINT16 *)((base) + 0x09AE)) /* Tmr 4 Counter */
  190. #define TER1(base) (CAST(VUINT16 *)((base) + 0x09B0)) /* Tmr 1 Event */
  191. #define TER2(base) (CAST(VUINT16 *)((base) + 0x09B2)) /* Tmr 2 Event */
  192. #define TER3(base) (CAST(VUINT16 *)((base) + 0x09B4)) /* Tmr 3 Event */
  193. #define TER4(base) (CAST(VUINT16 *)((base) + 0x09B6)) /* Tmr 4 Event */
  194. /* Communication Processor register set */
  195. #define CPCR(base) (CAST(VUINT16 *)((base) + 0x09C0)) /* Com Proc Cmd*/
  196. #define RCCR(base) (CAST(VUINT16 *)((base) + 0x09C4)) /* RISC Config Reg */
  197. #define RMDS(base) (CAST(VUINT8 *) ((base) + 0x09C7)) /* RISC Dev Sup stat*/
  198. #define RMDR(base) (CAST(VUINT32 *)((base) + 0x09C8)) /* Mcode Dev ctrl */
  199. #define RCTR1(base) (CAST(VUINT16 *)((base) + 0x09CC)) /* RISC Ctrl Trap 1*/
  200. #define RCTR2(base) (CAST(VUINT16 *)((base) + 0x09CE)) /* RISC Ctrl Trap 2*/
  201. #define RCTR3(base) (CAST(VUINT16 *)((base) + 0x09D0)) /* RISC Ctrl Trap 3*/
  202. #define RCTR4(base) (CAST(VUINT16 *)((base) + 0x09D2)) /* RISC Ctrl Trap 4*/
  203. #define RTER(base) (CAST(VUINT16 *)((base) + 0x09D6)) /* RISC Tmr Event*/
  204. #define RTMR(base) (CAST(VUINT16 *)((base) + 0x09DA)) /* RISC Tmr Mask */
  205. /* Baud Rate Generation Register set */
  206. #define BRGC1(base) (CAST(VUINT32 *)((base) + 0x09F0)) /* BRG1 Config Reg */
  207. #define BRGC2(base) (CAST(VUINT32 *)((base) + 0x09F4)) /* BRG2 Config Reg */
  208. #define BRGC3(base) (CAST(VUINT32 *)((base) + 0x09F8)) /* BRG3 Config Reg */
  209. #define BRGC4(base) (CAST(VUINT32 *)((base) + 0x09FC)) /* BRG4 Config Reg */
  210. /* SCC 1 register set */
  211. #define GSMR_L1(base) (CAST(VUINT32 *)((base) + 0x0A00)) /* SCC1 Gen Mode*/
  212. #define GSMR_H1(base) (CAST(VUINT32 *)((base) + 0x0A04)) /* SCC1 Gen Mode*/
  213. #define PSMR1(base) (CAST(VUINT16 *)((base) + 0x0A08)) /* SCC1 Proto Spec */
  214. #define TODR1(base) (CAST(VUINT16 *)((base) + 0x0A0C)) /* SCC1 Tx Demand*/
  215. #define DSR1(base) (CAST(VUINT16 *)((base) + 0x0A0E)) /* SCC1 Data Sync */
  216. #define SCCE1(base) (CAST(VUINT16 *)((base) + 0x0A10)) /* SCC1 Event Reg */
  217. #define SCCM1(base) (CAST(VUINT16 *)((base) + 0x0A14)) /* SCC1 Mask Reg */
  218. #define SCCS1(base) (CAST(VUINT8 *) ((base) + 0x0A17)) /* SCC1 Status Reg */
  219. /* SCC 2 register set */
  220. #define GSMR_L2(base) (CAST(VUINT32 *)((base) + 0x0A20)) /* SCC2 Gen Mode*/
  221. #define GSMR_H2(base) (CAST(VUINT32 *)((base) + 0x0A24)) /* SCC2 Gen Mode*/
  222. #define PSMR2(base) (CAST(VUINT16 *)((base) + 0x0A28)) /* SCC2 Proto Spec */
  223. #define TODR2(base) (CAST(VUINT16 *)((base) + 0x0A2C)) /* SCC2 Tx Demand*/
  224. #define DSR2(base) (CAST(VUINT16 *)((base) + 0x0A2E)) /* SCC2 Data Sync */
  225. #define SCCE2(base) (CAST(VUINT16 *)((base) + 0x0A30)) /* SCC2 Event Reg */
  226. #define SCCM2(base) (CAST(VUINT16 *)((base) + 0x0A34)) /* SCC2 Mask Reg */
  227. #define SCCS2(base) (CAST(VUINT8 *) ((base) + 0x0A37)) /* SCC2 Status Reg */
  228. /* SCC 3 register set */
  229. #define GSMR_L3(base) (CAST(VUINT32 *)((base) + 0x0A40)) /* SCC3 Gen Mode*/
  230. #define GSMR_H3(base) (CAST(VUINT32 *)((base) + 0x0A44)) /* SCC3 Gen Mode*/
  231. #define PSMR3(base) (CAST(VUINT16 *)((base) + 0x0A48)) /* SCC3 Proto Spec */
  232. #define TODR3(base) (CAST(VUINT16 *)((base) + 0x0A4C)) /* SCC3 Tx Demand*/
  233. #define DSR3(base) (CAST(VUINT16 *)((base) + 0x0A4E)) /* SCC3 Data Sync */
  234. #define SCCE3(base) (CAST(VUINT16 *)((base) + 0x0A50)) /* SCC3 Event Reg */
  235. #define SCCM3(base) (CAST(VUINT16 *)((base) + 0x0A54)) /* SCC3 Mask Reg */
  236. #define SCCS3(base) (CAST(VUINT8 *) ((base) + 0x0A57)) /* SCC3 Status Reg */
  237. /* SCC 4 register set */
  238. #define GSMR_L4(base) (CAST(VUINT32 *)((base) + 0x0A60)) /* SCC4 Gen Mode*/
  239. #define GSMR_H4(base) (CAST(VUINT32 *)((base) + 0x0A64)) /* SCC4 Gen Mode*/
  240. #define PSMR4(base) (CAST(VUINT16 *)((base) + 0x0A68)) /* SCC4 Proto Spec */
  241. #define TODR4(base) (CAST(VUINT16 *)((base) + 0x0A6C)) /* SCC4 Tx Demand*/
  242. #define DSR4(base) (CAST(VUINT16 *)((base) + 0x0A6E)) /* SCC4 Data Sync */
  243. #define SCCE4(base) (CAST(VUINT16 *)((base) + 0x0A70)) /* SCC4 Event Reg */
  244. #define SCCM4(base) (CAST(VUINT16 *)((base) + 0x0A74)) /* SCC2 Mask Reg */
  245. #define SCCS4(base) (CAST(VUINT8 *) ((base) + 0x0A77)) /* SCC4 Status Reg */
  246. /* SMC 1 register set */
  247. #define SMCMR1(base) (CAST(VUINT16 *)((base) + 0x0A82)) /* SMC1 Mode Reg */
  248. #define SMCE1(base) (CAST(VUINT8 *) ((base) + 0x0A86)) /* SMC1 Event Reg */
  249. #define SMCM1(base) (CAST(VUINT8 *) ((base) + 0x0A8A)) /* SMC1 Mask Reg */
  250. /* SMC 2 register set */
  251. #define SMCMR2(base) (CAST(VUINT16 *)((base) + 0x0A92)) /* SMC2 Mode Reg */
  252. #define SMCE2(base) (CAST(VUINT8 *) ((base) + 0x0A96)) /* SMC2/PIP Event*/
  253. #define SMCM2(base) (CAST(VUINT8 *) ((base) + 0x0A9A)) /* SMC2 Mask Reg */
  254. /* SPI regiter set */
  255. #define SPMODE(base) (CAST(VUINT16 *)((base) + 0x0AA0)) /* SPI Mode Reg */
  256. #define SPIE(base) (CAST(VUINT8 *) ((base) + 0x0AA6)) /* SPI Event Reg */
  257. #define SPIM(base) (CAST(VUINT8 *) ((base) + 0x0AAA)) /* SPI Mask Reg */
  258. #define SPCOM(base) (CAST(VUINT8 *) ((base) + 0x0AAD)) /* SPI Command Reg */
  259. /* PIP register set */
  260. #define PIPC(base) (CAST(VUINT16 *)((base) + 0x0AB2)) /* PIP Config Reg */
  261. #define PTPR(base) (CAST(VUINT16 *)((base) + 0x0AB6)) /* PIP Timing parms*/
  262. #define PBDIR(base) (CAST(VUINT32 *)((base) + 0x0AB8)) /* PB data dir */
  263. #define PBPAR(base) (CAST(VUINT32 *)((base) + 0x0ABC)) /* PB pin ass*/
  264. #define PBODR(base) (CAST(VUINT16 *)((base) + 0x0AC2)) /* PB open drain*/
  265. #define PBDAT(base) (CAST(VUINT32 *)((base) + 0x0AC4)) /* PB Data Reg*/
  266. /* SI register set */
  267. #define SIMODE(base) (CAST(VUINT32 *)((base) + 0x0AE0)) /* SI Mode Reg */
  268. #define SIGMR(base) (CAST(VUINT8 *) ((base) + 0x0AE4)) /* SI Global Mode */
  269. #define SISTR(base) (CAST(VUINT8 *) ((base) + 0x0AE6)) /* SI Status Reg */
  270. #define SICMR(base) (CAST(VUINT8 *) ((base) + 0x0AE7)) /* SI Command Reg */
  271. #define SICR(base) (CAST(VUINT32 *)((base) + 0x0AEC)) /* SI Clock route */
  272. #define SIRP(base) (CAST(VUINT32 *) ((base) + 0x0AF0)) /* SI RAM pointers*/
  273. #define SIRAM(base) (CAST(VUINT32 *)((base) + 0x0C00)) /* SI Routing RAM */
  274. #define MPC860_REGB_OFFSET      0x2000  /* offset to internal registers */
  275.  
  276. /* Data Param RAM */
  277. #define       DPRAM(base)     (CAST(VUINT32 *) ((base) + MPC860_REGB_OFFSET))
  278. /* MPC860 Dual Ported Ram addresses */
  279.  
  280. #define MPC860_DPR_SCC1(base)  (CAST(VUINT32 *) ((base) + MPC860_REGB_OFFSET 
  281.                                                  + 0x1c00))
  282. /* SIU Module Configuration register bit definition (SIUMCR - 0x00) */
  283. #define SIUMCR_EARB 0x80000000 /* External Abritation */
  284. #define SIUMCR_EARP 0x70000000 /* Extern Abri. Request prior.*/
  285. #define SIUMCR_DSHW 0x00800000 /* Data Showcycles */
  286. #define SIUMCR_DBGC 0x00600000 /* Debug pins configuration */
  287. #define SIUMCR_DBPC 0x00180000 /* Debug Port pins Config. */
  288. #define SIUMCR_FRC 0x00020000 /* FRZ pin Configuration */
  289. #define SIUMCR_DLK 0x00010000 /* Debug Register Lock */
  290. #define SIUMCR_PNCS 0x00008000 /* Parity Non-mem Crtl reg */
  291. #define SIUMCR_OPAR 0x00004000 /* Odd Parity */
  292. #define SIUMCR_DPC 0x00002000 /* Data Parity pins Config. */
  293. #define SIUMCR_MPRE 0x00001000 /* Multi CPU Reserva. Enable */
  294. #define SIUMCR_MLRC_IRQ4 0x00000000 /* Multi Level Reserva. Ctrl */
  295. #define SIUMCR_MLRC_3STATES 0x00000400 /* Multi Level Reserva. Ctrl */
  296. #define SIUMCR_MLRC_KR 0x00000800 /* Multi Level Reserva. Ctrl */
  297. #define SIUMCR_MLRC_SPKROUT 0x00000c00 /* Multi Level Reserva. Ctrl */
  298. #define SIUMCR_AEME 0x00000200 /* Asynchro External Master */
  299. #define SIUMCR_SEME 0x00000100 /* Synchro External Master */
  300. #define SIUMCR_BSC 0x00000080 /* Byte Select Configuration */
  301. #define SIUMCR_GB5E 0x00000040 /* GPL_B(5) Enable */
  302. #define SIUMCR_B2DD 0x00000020 /* Bank 2 Double Drive */
  303. #define SIUMCR_B3DD 0x00000010 /* Bank 3 Double Drive */
  304. /* System Portection Control register bit definition (SYPCR - 0x04) */
  305. #define SYPCR_SWTC 0xffff0000 /* Software Watchdog Timer Count */
  306. #define SYPCR_BMT 0x0000ff00 /* Bus Monitor Timing */
  307. #define SYPCR_BME 0x00000080 /* Bus Monitor Enable */
  308. #define SYPCR_SWF 0x00000008 /* Software Watchdog Freeze */
  309. #define SYPCR_SWE 0x00000004 /* Software Watchdog Enable */
  310. #define SYPCR_SWRI 0x00000002 /* Software Watchdog Reset/Int Select */
  311. #define SYPCR_SWP 0x00000001 /* Software Watchdog Prescale */
  312. /* System Interrupt PENDing register bit definition (SIPEND - 0x10) */
  313. #define SIPEND_IRQ0 0x80000000 /* Interrupt IRQ0 pending */
  314. #define SIPEND_LVL0 0x40000000 /* Interrupt LEVEL 0 pending */
  315. #define SIPEND_IRQ1 0x20000000 /* Interrupt IRQ1 pending */
  316. #define SIPEND_LVL1 0x10000000 /* Interrupt LEVEL 1 pending */
  317. #define SIPEND_IRQ2 0x08000000 /* Interrupt IRQ2 pending */
  318. #define SIPEND_LVL2 0x04000000 /* Interrupt LEVEL 2 pending */
  319. #define SIPEND_IRQ3 0x02000000 /* Interrupt IRQ3 pending */
  320. #define SIPEND_LVL3 0x01000000 /* Interrupt LEVEL 3 pending */
  321. #define SIPEND_IRQ4 0x00800000 /* Interrupt IRQ4 pending */
  322. #define SIPEND_LVL4 0x00400000 /* Interrupt LEVEL 4 pending */
  323. #define SIPEND_IRQ5 0x00200000 /* Interrupt IRQ5 pending */
  324. #define SIPEND_LVL5 0x00100000 /* Interrupt LEVEL 5 pending */
  325. #define SIPEND_IRQ6 0x00080000 /* Interrupt IRQ6 pending */
  326. #define SIPEND_LVL6 0x00040000 /* Interrupt LEVEL 6 pending */
  327. #define SIPEND_IRQ7 0x00020000 /* Interrupt IRQ7 pending */
  328. #define SIPEND_LVL7 0x00010000 /* Interrupt LEVEL 7 pending */
  329. /* System Interrupt MASK register bit definition (SIMARK - 0x14) */
  330. #define SIMASK_IRM0 0x80000000 /* Interrupt IRQ0 mask */
  331. #define SIMASK_LVM0 0x40000000 /* Interrupt LEVEL 0 mask */
  332. #define SIMASK_IRM1 0x20000000 /* Interrupt IRQ1 mask */
  333. #define SIMASK_LVM1 0x10000000 /* Interrupt LEVEL 1 mask */
  334. #define SIMASK_IRM2 0x08000000 /* Interrupt IRQ2 mask */
  335. #define SIMASK_LVM2 0x04000000 /* Interrupt LEVEL 2 mask */
  336. #define SIMASK_IRM3 0x02000000 /* Interrupt IRQ3 mask */
  337. #define SIMASK_LVM3 0x01000000 /* Interrupt LEVEL 3 mask */
  338. #define SIMASK_IRM4 0x00800000 /* Interrupt IRQ4 mask */
  339. #define SIMASK_LVM4 0x00400000 /* Interrupt LEVEL 4 mask */
  340. #define SIMASK_IRM5 0x00200000 /* Interrupt IRQ5 mask */
  341. #define SIMASK_LVM5 0x00100000 /* Interrupt LEVEL 5 mask */
  342. #define SIMASK_IRM6 0x00080000 /* Interrupt IRQ6 mask */
  343. #define SIMASK_LVM6 0x00040000 /* Interrupt LEVEL 6 mask */
  344. #define SIMASK_IRM7 0x00020000 /* Interrupt IRQ7 mask */
  345. #define SIMASK_LVM7 0x00010000 /* Interrupt LEVEL 7 mask */
  346. #define SIMASK_ALL 0xffff0000 /* All interrupt mask */
  347. /* System Interrupt Edge Level mask register bit definition (SIEL - 0x1C) */
  348. #define SIEL_ED0 0x80000000 /* Interrupt IRQ0 on falling Edge */
  349. #define SIEL_WM0 0x40000000 /* Interrupt IRQ0 Wake up Mask */
  350. #define SIEL_ED1 0x20000000 /* Interrupt IRQ1 on falling Edge */
  351. #define SIEL_WM1 0x10000000 /* Interrupt IRQ1 Wake up Mask */
  352. #define SIEL_ED2 0x08000000 /* Interrupt IRQ2 on falling Edge */
  353. #define SIEL_WM2 0x04000000 /* Interrupt IRQ2 Wake up Mask */
  354. #define SIEL_ED3 0x02000000 /* Interrupt IRQ3 on falling Edge */
  355. #define SIEL_WM3 0x01000000 /* Interrupt IRQ3 Wake up Mask */
  356. #define SIEL_ED4 0x00800000 /* Interrupt IRQ4 on falling Edge */
  357. #define SIEL_WM4 0x00400000 /* Interrupt IRQ4 Wake up Mask */
  358. #define SIEL_ED5 0x00200000 /* Interrupt IRQ5 on falling Edge */
  359. #define SIEL_WM5 0x00100000 /* Interrupt IRQ5 Wake up Mask */
  360. #define SIEL_ED6 0x00080000 /* Interrupt IRQ6 on falling Edge */
  361. #define SIEL_WM6 0x00040000 /* Interrupt IRQ6 Wake up Mask */
  362. #define SIEL_ED7 0x00020000 /* Interrupt IRQ7 on falling Edge */
  363. #define SIEL_WM7 0x00010000 /* Interrupt IRQ7 Wake up Mask */
  364. /* Transfert Error Status register bit definition (TESR - 0x20) */
  365. #define TESR_IEXT 0x00002000 /* Instr. External Transfer Error Ack */
  366. #define TESR_IBM 0x00001000 /* Instr. transfer Monitor Time-Out */
  367. #define TESR_IPB 0x00000f00 /* Instr. Parity Error on Byte */
  368. #define TESR_DEXT 0x00000020 /* Data External Transfer Error Ack */
  369. #define TESR_DBM 0x00000010 /* Data transfer Monitor Time-Out */
  370. #define TESR_DPB 0x0000000f /* Data Parity Error on Byte */
  371. /* Memory STATus register bit definition (MSTAT - 0x178) */
  372. #define MSTAT_PER0 0x8000 /* Parity Error bank 0 */
  373. #define MSTAT_PER1 0x4000 /* Parity Error bank 1 */
  374. #define MSTAT_PER2 0x2000 /* Parity Error bank 2 */
  375. #define MSTAT_PER3 0x1000 /* Parity Error bank 3 */
  376. #define MSTAT_PER4 0x0800 /* Parity Error bank 4 */
  377. #define MSTAT_PER5 0x0400 /* Parity Error bank 5 */
  378. #define MSTAT_PER6 0x0200 /* Parity Error bank 6 */
  379. #define MSTAT_PER7 0x0100 /* Parity Error bank 7 */
  380. #define MSTAT_WPER 0x0080 /* Write Protection Error */
  381. /* Memory Periodic Timer Prescaler Register bit definition (MPTPR - 0x17A) */
  382. #define MPTPR_PTP_MSK 0xff00 /* Periodic Timers Prescaler Mask */
  383. #define MPTPR_PTP_DIV2 0x2000 /* BRGCLK divided by 2 */
  384. #define MPTPR_PTP_DIV4 0x1000 /* BRGCLK divided by 4 */
  385. #define MPTPR_PTP_DIV8 0x0800 /* BRGCLK divided by 8 */
  386. #define MPTPR_PTP_DIV16 0x0400 /* BRGCLK divided by 16 */
  387. #define MPTPR_PTP_DIV32 0x0200 /* BRGCLK divided by 32 */
  388. #define MPTPR_PTP_DIV64 0x0100 /* BRGCLK divided by 64 */
  389. /* Base Register bit definition (BRx - 0x100) */
  390. #define BR_BA_MSK 0xffff8000 /* Base Address Mask */
  391. #define BR_AT_MSK 0x00007000 /* Address Type Mask */
  392. #define BR_PS_MSK 0x00000c00 /* Port Size Mask */
  393. #define BR_PARE 0x00000200 /* Parity Enable */
  394. #define BR_WP 0x00000100 /* Write Protect */
  395. #define BR_MS_MSK 0x000000c0 /* Machine Select Mask */
  396. #define BR_MS_GPCM 0x00000000 /* G.P.C.M. Machine Select */
  397. #define BR_MS_UPMA 0x00000080 /* U.P.M.A Machine Select */
  398. #define BR_MS_UPMB 0x000000c0 /* U.P.M.B Machine Select */
  399. #define BR_V 0x00000001 /* Bank Valid */
  400. #define BR_PS_8 0x00000400 /* 8 bit port size */
  401. #define BR_PS_16 0x00000800 /* 16 bit port size */
  402. #define BR_PS_32 0x00000000 /* 32 bit port size */
  403. /* Option Register bit definition (ORx - 0x104) */
  404. #define OR_AM_MSK 0xffff8000 /* Address Mask Mask */
  405. #define OR_ATM_MSK 0x00007000 /* Address Type Mask Mask */
  406. #define OR_CSNT_SAM 0x00000800 /* Chip Select Negation Time/ Start */
  407. /* Address Multiplex */
  408. #define OR_ACS_MSK 0x00000600 /* Address to Chip Select Setup mask */
  409. #define OR_ACS_DIV1 0x00000000 /* CS is output at the same time */
  410. #define OR_ACS_DIV4 0x00000400 /* CS is output 1/4 a clock later */
  411. #define OR_ACS_DIV2 0x00000600 /* CS is output 1/2 a clock later */
  412. #define OR_BI 0x00000100 /* Burst inhibit */
  413. #define OR_SCY_MSK 0x000000f0 /* Cycle Lenght in Clocks */
  414. #define OR_SCY_0_CLK 0x00000000 /* 0 clock cycles wait states */
  415. #define OR_SCY_1_CLK 0x00000010 /* 1 clock cycles wait states */
  416. #define OR_SCY_2_CLK 0x00000020 /* 2 clock cycles wait states */
  417. #define OR_SCY_3_CLK 0x00000030 /* 3 clock cycles wait states */
  418. #define OR_SCY_4_CLK 0x00000040 /* 4 clock cycles wait states */
  419. #define OR_SCY_5_CLK 0x00000050 /* 5 clock cycles wait states */
  420. #define OR_SCY_6_CLK 0x00000060 /* 6 clock cycles wait states */
  421. #define OR_SCY_7_CLK 0x00000070 /* 7 clock cycles wait states */
  422. #define OR_SCY_8_CLK 0x00000080 /* 8 clock cycles wait states */
  423. #define OR_SCY_9_CLK 0x00000090 /* 9 clock cycles wait states */
  424. #define OR_SCY_10_CLK 0x000000a0 /* 10 clock cycles wait states */
  425. #define OR_SCY_11_CLK 0x000000b0 /* 11 clock cycles wait states */
  426. #define OR_SCY_12_CLK 0x000000c0 /* 12 clock cycles wait states */
  427. #define OR_SCY_13_CLK 0x000000d0 /* 13 clock cycles wait states */
  428. #define OR_SCY_14_CLK 0x000000e0 /* 14 clock cycles wait states */
  429. #define OR_SCY_15_CLK 0x000000f0 /* 15 clock cycles wait states */
  430. #define OR_SETA 0x00000008 /* External Transfer Acknowledge */
  431. #define OR_TRLX 0x00000004 /* Timing Relaxed */
  432. /* Memory Command Register bit definition (MCR - 0x168) */
  433. #define MCR_OP_WRITE 0x00000000 /* Command Opcode: Write */
  434. #define MCR_OP_READ 0x40000000 /* Command Opcode: Read */
  435. #define MCR_OP_RUN 0x80000000 /* Command Opcode: Run */
  436. #define MCR_UM_MSK 0x00800000 /* User Machine mask */
  437. #define MCR_UM_UPMA 0x00000000 /* User Machine = UPMA */
  438. #define MCR_UM_UPMB 0x00800000 /* User Machine = UPMB */
  439. #define MCR_MB_MSK 0x0000e000 /* Memory Bank mask */
  440. #define MCR_MB_CS0 0x00000000 /* CS0 enabled */
  441. #define MCR_MB_CS1 0x00002000 /* CS1 enabled */
  442. #define MCR_MB_CS2 0x00004000 /* CS3 enabled */
  443. #define MCR_MB_CS3 0x00006000 /* CS3 enabled */
  444. #define MCR_MB_CS4 0x00008000 /* CS4 enabled */
  445. #define MCR_MB_CS5 0x0000a000 /* CS5 enabled */
  446. #define MCR_MB_CS6 0x0000c000 /* CS6 enabled */
  447. #define MCR_MB_CS7 0x0000e000 /* CS7 enabled */
  448. #define MCR_MCLF_MSK 0x00000f00 /* Memory Command Loop Field mask */
  449. #define MCR_MCLF_1X 0x00000100 /* The Cmd Loop is executed 1 time */
  450. #define MCR_MCLF_2X 0x00000200 /* The Cmd Loop is executed 2 times */
  451. #define MCR_MCLF_3X 0x00000300 /* The Cmd Loop is executed 3 times */
  452. #define MCR_MCLF_4X 0x00000400 /* The Cmd Loop is executed 4 times */
  453. #define MCR_MCLF_5X 0x00000500 /* The Cmd Loop is executed 5 times */
  454. #define MCR_MCLF_6X 0x00000600 /* The Cmd Loop is executed 6 times */
  455. #define MCR_MCLF_7X 0x00000700 /* The Cmd Loop is executed 7 times */
  456. #define MCR_MCLF_8X 0x00000800 /* The Cmd Loop is executed 8 times */
  457. #define MCR_MCLF_9X 0x00000900 /* The Cmd Loop is executed 9 times */
  458. #define MCR_MCLF_10X 0x00000a00 /* The Cmd Loop is executed 10 times */
  459. #define MCR_MCLF_11X 0x00000b00 /* The Cmd Loop is executed 11 times */
  460. #define MCR_MCLF_12X 0x00000c00 /* The Cmd Loop is executed 12 times */
  461. #define MCR_MCLF_13X 0x00000d00 /* The Cmd Loop is executed 13 times */
  462. #define MCR_MCLF_14X 0x00000e00 /* The Cmd Loop is executed 14 times */
  463. #define MCR_MCLF_15X 0x00000f00 /* The Cmd Loop is executed 15 times */
  464. #define MCR_MCLF_16X 0x00000000 /* The Cmd Loop is executed 16 times */
  465. #define MCR_MAD_MSK 0x0000003f /* Machine Address mask */
  466. /* Machine A Mode Register bit definition (MAMR - 0x170) */
  467. #define MAMR_PTA_MSK 0xff000000 /* Periodic Timer A period mask */
  468. #define MAMR_PTA_SHIFT 0x00000018 /* Periodic Timer A period shift */
  469. #define MAMR_PTAE 0x00800000 /* Periodic Timer A Enable */
  470. #define MAMR_AMA_MSK 0x00700000 /* Addess Multiplexing size A */
  471. #define MAMR_AMA_TYPE_0 0x00000000 /* Addess Multiplexing Type 0 */
  472. #define MAMR_AMA_TYPE_1 0x00100000 /* Addess Multiplexing Type 1 */
  473. #define MAMR_AMA_TYPE_2 0x00200000 /* Addess Multiplexing Type 2 */
  474. #define MAMR_AMA_TYPE_3 0x00300000 /* Addess Multiplexing Type 3 */
  475. #define MAMR_AMA_TYPE_4 0x00400000 /* Addess Multiplexing Type 4 */
  476. #define MAMR_AMA_TYPE_5 0x00500000 /* Addess Multiplexing Type 5 */
  477. #define MAMR_DSA_MSK 0x00060000 /* Disable Timer period mask */
  478. #define MAMR_DSA_1_CYCL 0x00000000 /* 1 cycle Disable Period */
  479. #define MAMR_DSA_2_CYCL 0x00020000 /* 2 cycle Disable Period */
  480. #define MAMR_DSA_3_CYCL 0x00040000 /* 3 cycle Disable Period */
  481. #define MAMR_DSA_4_CYCL 0x00060000 /* 4 cycle Disable Period */
  482. #define MAMR_G0CLA_MSK 0x0000e000 /* General Line 0 Control A */
  483. #define MAMR_G0CLA_A12 0x00000000 /* General Line 0 : A12 */
  484. #define MAMR_G0CLA_A11 0x00002000 /* General Line 0 : A11 */
  485. #define MAMR_G0CLA_A10 0x00004000 /* General Line 0 : A10 */
  486. #define MAMR_G0CLA_A9 0x00006000 /* General Line 0 : A9 */
  487. #define MAMR_G0CLA_A8 0x00008000 /* General Line 0 : A8 */
  488. #define MAMR_G0CLA_A7 0x0000a000 /* General Line 0 : A7 */
  489. #define MAMR_G0CLA_A6 0x0000b000 /* General Line 0 : A6 */
  490. #define MAMR_G0CLA_A5 0x0000e000 /* General Line 0 : A5 */
  491. #define MAMR_GPL_A4DIS 0x00001000 /* GPL_A4 ouput line Disable */
  492. #define MAMR_RLFA_MSK 0x00000f00 /* Read Loop Field A mask */
  493. #define MAMR_RLFA_1X 0x00000100 /* The Read Loop is executed 1 time */
  494. #define MAMR_RLFA_2X 0x00000200 /* The Read Loop is executed 2 times */
  495. #define MAMR_RLFA_3X 0x00000300 /* The Read Loop is executed 3 times */
  496. #define MAMR_RLFA_4X 0x00000400 /* The Read Loop is executed 4 times */
  497. #define MAMR_RLFA_5X 0x00000500 /* The Read Loop is executed 5 times */
  498. #define MAMR_RLFA_6X 0x00000600 /* The Read Loop is executed 6 times */
  499. #define MAMR_RLFA_7X 0x00000700 /* The Read Loop is executed 7 times */
  500. #define MAMR_RLFA_8X 0x00000800 /* The Read Loop is executed 8 times */
  501. #define MAMR_RLFA_9X 0x00000900 /* The Read Loop is executed 9 times */
  502. #define MAMR_RLFA_10X 0x00000a00 /* The Read Loop is executed 10 times */
  503. #define MAMR_RLFA_11X 0x00000b00 /* The Read Loop is executed 11 times */
  504. #define MAMR_RLFA_12X 0x00000c00 /* The Read Loop is executed 12 times */
  505. #define MAMR_RLFA_13X 0x00000d00 /* The Read Loop is executed 13 times */
  506. #define MAMR_RLFA_14X 0x00000e00 /* The Read Loop is executed 14 times */
  507. #define MAMR_RLFA_15X 0x00000f00 /* The Read Loop is executed 15 times */
  508. #define MAMR_RLFA_16X 0x00000000 /* The Read Loop is executed 16 times */
  509. #define MAMR_WLFA_MSK 0x000000f0 /* Write Loop Field A mask */
  510. #define MAMR_WLFA_1X 0x00000010 /* The Write Loop is executed 1 time */
  511. #define MAMR_WLFA_2X 0x00000020 /* The Write Loop is executed 2 times */
  512. #define MAMR_WLFA_3X 0x00000030 /* The Write Loop is executed 3 times */
  513. #define MAMR_WLFA_4X 0x00000040 /* The Write Loop is executed 4 times */
  514. #define MAMR_WLFA_5X 0x00000050 /* The Write Loop is executed 5 times */
  515. #define MAMR_WLFA_6X 0x00000060 /* The Write Loop is executed 6 times */
  516. #define MAMR_WLFA_7X 0x00000070 /* The Write Loop is executed 7 times */
  517. #define MAMR_WLFA_8X 0x00000080 /* The Write Loop is executed 8 times */
  518. #define MAMR_WLFA_9X 0x00000090 /* The Write Loop is executed 9 times */
  519. #define MAMR_WLFA_10X 0x000000a0 /* The Write Loop is executed 10 times*/
  520. #define MAMR_WLFA_11X 0x000000b0 /* The Write Loop is executed 11 times*/
  521. #define MAMR_WLFA_12X 0x000000c0 /* The Write Loop is executed 12 times*/
  522. #define MAMR_WLFA_13X 0x000000d0 /* The Write Loop is executed 13 times*/
  523. #define MAMR_WLFA_14X 0x000000e0 /* The Write Loop is executed 14 times*/
  524. #define MAMR_WLFA_15X 0x000000f0 /* The Write Loop is executed 15 times*/
  525. #define MAMR_WLFA_16X 0x00000000 /* The Write Loop is executed 16 times*/
  526. #define MAMR_TLFA_MSK 0x0000000f /* Timer Loop Field A mask */
  527. #define MAMR_TLFA_1X 0x00000001 /* The Timer Loop is executed 1 time */
  528. #define MAMR_TLFA_2X 0x00000002 /* The Timer Loop is executed 2 times */
  529. #define MAMR_TLFA_3X 0x00000003 /* The Timer Loop is executed 3 times */
  530. #define MAMR_TLFA_4X 0x00000004 /* The Timer Loop is executed 4 times */
  531. #define MAMR_TLFA_5X 0x00000005 /* The Timer Loop is executed 5 times */
  532. #define MAMR_TLFA_6X 0x00000006 /* The Timer Loop is executed 6 times */
  533. #define MAMR_TLFA_7X 0x00000007 /* The Timer Loop is executed 7 times */
  534. #define MAMR_TLFA_8X 0x00000008 /* The Timer Loop is executed 8 times */
  535. #define MAMR_TLFA_9X 0x00000009 /* The Timer Loop is executed 9 times */
  536. #define MAMR_TLFA_10X 0x0000000a /* The Timer Loop is executed 10 times*/
  537. #define MAMR_TLFA_11X 0x0000000b /* The Timer Loop is executed 11 times*/
  538. #define MAMR_TLFA_12X 0x0000000c /* The Timer Loop is executed 12 times*/
  539. #define MAMR_TLFA_13X 0x0000000d /* The Timer Loop is executed 13 times*/
  540. #define MAMR_TLFA_14X 0x0000000e /* The Timer Loop is executed 14 times*/
  541. #define MAMR_TLFA_15X 0x0000000f /* The Timer Loop is executed 15 times*/
  542. #define MAMR_TLFA_16X 0x00000000 /* The Timer Loop is executed 16 times*/
  543. /* Machine B Mode Register bit definition (MBMR - 0x174) */
  544. #define MAMR_PTB_MSK 0xff000000 /* Periodic Timer B period mask */
  545. #define MAMR_PTBE 0x00800000 /* Periodic Timer B Enable */
  546. #define MAMR_AMB_MSK 0x00700000 /* Addess Multiplex size B */
  547. #define MAMR_DSB_MSK 0x00060000 /* Disable Timer period mask */
  548. #define MAMR_DSB_1_CYCL 0x00000000 /* 1 cycle Disable Period */
  549. #define MAMR_DSB_2_CYCL 0x00020000 /* 2 cycle Disable Period */
  550. #define MAMR_DSB_3_CYCL 0x00040000 /* 3 cycle Disable Period */
  551. #define MAMR_DSB_4_CYCL 0x00060000 /* 4 cycle Disable Period */
  552. #define MAMR_G0CLB_MSK 0x0000e000 /* General Line 0 Control B */
  553. #define MAMR_G0CLB_A12 0x00000000 /* General Line 0 : A12 */
  554. #define MAMR_G0CLB_A11 0x00002000 /* General Line 0 : A11 */
  555. #define MAMR_G0CLB_A10 0x00004000 /* General Line 0 : A10 */
  556. #define MAMR_G0CLB_A9 0x00006000 /* General Line 0 : A9 */
  557. #define MAMR_G0CLB_A8 0x00008000 /* General Line 0 : A8 */
  558. #define MAMR_G0CLB_A7 0x0000a000 /* General Line 0 : A7 */
  559. #define MAMR_G0CLB_A6 0x0000b000 /* General Line 0 : A6 */
  560. #define MAMR_G0CLB_A5 0x0000e000 /* General Line 0 : A5 */
  561. #define MAMR_GPL_B4DIS 0x00001000 /* GPL_B4 ouput line Disable */
  562. #define MAMR_RLFB_MSK 0x00000f00 /* Read Loop Field B mask */
  563. #define MAMR_RLFB_1X 0x00000100 /* The Read Loop is executed 1 time */
  564. #define MAMR_RLFB_2X 0x00000200 /* The Read Loop is executed 2 times */
  565. #define MAMR_RLFB_3X 0x00000300 /* The Read Loop is executed 3 times */
  566. #define MAMR_RLFB_4X 0x00000400 /* The Read Loop is executed 4 times */
  567. #define MAMR_RLFB_5X 0x00000500 /* The Read Loop is executed 5 times */
  568. #define MAMR_RLFB_6X 0x00000600 /* The Read Loop is executed 6 times */
  569. #define MAMR_RLFB_7X 0x00000700 /* The Read Loop is executed 7 times */
  570. #define MAMR_RLFB_8X 0x00000800 /* The Read Loop is executed 8 times */
  571. #define MAMR_RLFB_9X 0x00000900 /* The Read Loop is executed 9 times */
  572. #define MAMR_RLFB_10X 0x00000a00 /* The Read Loop is executed 10 times */
  573. #define MAMR_RLFB_11X 0x00000b00 /* The Read Loop is executed 11 times */
  574. #define MAMR_RLFB_12X 0x00000c00 /* The Read Loop is executed 12 times */
  575. #define MAMR_RLFB_13X 0x00000d00 /* The Read Loop is executed 13 times */
  576. #define MAMR_RLFB_14X 0x00000e00 /* The Read Loop is executed 14 times */
  577. #define MAMR_RLFB_15X 0x00000f00 /* The Read Loop is executed 15 times */
  578. #define MAMR_RLFB_16X 0x00000000 /* The Read Loop is executed 16 times */
  579. #define MAMR_WLFB_MSK 0x000000f0 /* Write Loop Field B mask */
  580. #define MAMR_WLFB_1X 0x00000010 /* The Write Loop is executed 1 time */
  581. #define MAMR_WLFB_2X 0x00000020 /* The Write Loop is executed 2 times */
  582. #define MAMR_WLFB_3X 0x00000030 /* The Write Loop is executed 3 times */
  583. #define MAMR_WLFB_4X 0x00000040 /* The Write Loop is executed 4 times */
  584. #define MAMR_WLFB_5X 0x00000050 /* The Write Loop is executed 5 times */
  585. #define MAMR_WLFB_6X 0x00000060 /* The Write Loop is executed 6 times */
  586. #define MAMR_WLFB_7X 0x00000070 /* The Write Loop is executed 7 times */
  587. #define MAMR_WLFB_8X 0x00000080 /* The Write Loop is executed 8 times */
  588. #define MAMR_WLFB_9X 0x00000090 /* The Write Loop is executed 9 times */
  589. #define MAMR_WLFB_10X 0x000000a0 /* The Write Loop is executed 10 times*/
  590. #define MAMR_WLFB_11X 0x000000b0 /* The Write Loop is executed 11 times*/
  591. #define MAMR_WLFB_12X 0x000000c0 /* The Write Loop is executed 12 times*/
  592. #define MAMR_WLFB_13X 0x000000d0 /* The Write Loop is executed 13 times*/
  593. #define MAMR_WLFB_14X 0x000000e0 /* The Write Loop is executed 14 times*/
  594. #define MAMR_WLFB_15X 0x000000f0 /* The Write Loop is executed 15 times*/
  595. #define MAMR_WLFB_16X 0x00000000 /* The Write Loop is executed 16 times*/
  596. #define MAMR_TLFB_MSK 0x0000000f /* Timer Loop Field B mask */
  597. #define MAMR_TLFB_1X 0x00000001 /* The Timer Loop is executed 1 time */
  598. #define MAMR_TLFB_2X 0x00000002 /* The Timer Loop is executed 2 times */
  599. #define MAMR_TLFB_3X 0x00000003 /* The Timer Loop is executed 3 times */
  600. #define MAMR_TLFB_4X 0x00000004 /* The Timer Loop is executed 4 times */
  601. #define MAMR_TLFB_5X 0x00000005 /* The Timer Loop is executed 5 times */
  602. #define MAMR_TLFB_6X 0x00000006 /* The Timer Loop is executed 6 times */
  603. #define MAMR_TLFB_7X 0x00000007 /* The Timer Loop is executed 7 times */
  604. #define MAMR_TLFB_8X 0x00000008 /* The Timer Loop is executed 8 times */
  605. #define MAMR_TLFB_9X 0x00000009 /* The Timer Loop is executed 9 times */
  606. #define MAMR_TLFB_10X 0x0000000a /* The Timer Loop is executed 10 times*/
  607. #define MAMR_TLFB_11X 0x0000000b /* The Timer Loop is executed 11 times*/
  608. #define MAMR_TLFB_12X 0x0000000c /* The Timer Loop is executed 12 times*/
  609. #define MAMR_TLFB_13X 0x0000000d /* The Timer Loop is executed 13 times*/
  610. #define MAMR_TLFB_14X 0x0000000e /* The Timer Loop is executed 14 times*/
  611. #define MAMR_TLFB_15X 0x0000000f /* The Timer Loop is executed 15 times*/
  612. #define MAMR_TLFB_16X 0x00000000 /* The Timer Loop is executed 16 times*/
  613. /* Time Base Status and Contol register bit definition (TBSCR - 0x200) */
  614. #if FALSE /* XXX TPR TO verify */
  615. #define TBSCR_TBIRQ0 0x0100 /* Time Base Interrupt Request 0 */
  616. #define TBSCR_TBIRQ1 0x0200 /* Time Base Interrupt Request 1 */
  617. #define TBSCR_TBIRQ2 0x0400 /* Time Base Interrupt Request 2 */
  618. #define TBSCR_TBIRQ3 0x0800 /* Time Base Interrupt Request 3 */
  619. #define TBSCR_TBIRQ4 0x1000 /* Time Base Interrupt Request 4 */
  620. #define TBSCR_TBIRQ5 0x2000 /* Time Base Interrupt Request 5 */
  621. #define TBSCR_TBIRQ6 0x4000 /* Time Base Interrupt Request 6 */
  622. #define TBSCR_TBIRQ7 0x8000 /* Time Base Interrupt Request 7 */
  623. #endif
  624. #define TBSCR_REFA 0x0080 /* Reference Interrupt Status A */
  625. #define TBSCR_REFB 0x0040 /* Reference Interrupt Status B */
  626. #define TBSCR_REFAE 0x0008 /* Second Interrupt Enable A */
  627. #define TBSCR_REFBE 0x0004 /* Second Interrupt Enable B */
  628. #define TBSCR_TBF 0x0002 /* Time Base Freeze */
  629. #define TBSCR_TBE 0x0001 /* Time Base Enable */
  630. /* Real Time Clock Status and Control register bit definition (RTCSC - 0x220) */
  631. #define RTCSC_RTCIRQ
  632. #define RTCSC_SEC 0x0080 /* Once per Second interrupt */
  633. #define RTCSC_ALR 0x0040 /* Alarm interrupt */
  634. #define RTCSC_38K 0x0010 /* Real Time Clock at 38.4 KHz */
  635. #define RTCSC_SIE 0x0008 /* Second Interrupt Enable */
  636. #define RTCSC_ALE 0x0004 /* Alarm Interrupt Enable */
  637. #define RTCSC_RTF 0x0002 /* Real Time Clock Freeze */
  638. #define RTCSC_RTE 0x0001 /* Real Time Clock Enable */
  639. /* PIT Status and Control Register bit definition (PISCR - 0x0240) */
  640. #define PISCR_PIRQ
  641. #define PISCR_PS 0x0080 /* Periodic interrupt Status */
  642. #define PISCR_PIE 0x0004 /* Periodic Interrupt Enable */
  643. #define PISCR_PITF 0x0002 /* Periodic Interrupt Timer Freeze */
  644. #define PISCR_PTE 0x0001 /* Periodic Timer Enable */
  645. /* System Clock Control Register bit definition (SCCR - 0x280) */
  646. #define SCCR_COM_MSK 0x60000000 /* Clock Output Mode Mask */
  647. #define SCCR_TBS 0x02000000 /* Time Base Source */
  648. #define SCCR_RTDIV 0x01000000 /* RTC Clock Dive */
  649. #define SCCR_RTSEL 0x00800000 /* RTC circuit input source select */
  650. #define SCCR_CRQEN 0x00400000 /* CPM Request Enable */
  651. #define SCCR_PRQEN 0x00200000 /* Power Management Request Enable */
  652. #define SCCR_DFSYNC_MSK 0x00006000 /* Division Factor of SyncCLK Mask */
  653. #define SCCR_DFBRG_MSK 0x00001800 /* Division Factor of BRGCLK Mask */
  654. #define SCCR_DFBRG_SHIFT    0x000c /* Division Factor of BRGCLK shift */
  655. #define SCCR_DFNL_MSK 0x00000700 /* Division Factor Low Frequency Mask */
  656. #define SCCR_DFNH_MSK 0x000000e0 /* Division Factor High Frequency Mask*/
  657. #define SCCR_DFLCD_MSK 0x0000001c /* Division Factor of LCD Clock Mask */
  658. #define SCCR_DFALCD_MSK 0x00000002 /* Add. Division Factor of LCD Clock */
  659. /* Pll, Low Power and Reset Control Register bit definition (PLPRCR - 284) */
  660. #define PLPRCR_MF_MSK 0xfff00000 /* Multiplication factor bits */
  661. #define PLPRCR_MF_SHIFT 0x00000014 /* Multiplication factor shift value */
  662. #define PLPRCR_SPLSS 0x00008000 /* SPLL Lock Status Sticky bit */
  663. #define PLPRCR_TEXPS 0x00004000 /* TEXP Status */
  664. #define PLPRCR_TMIST 0x00001000 /* Timers Interrupt Status */
  665. #define PLPRCR_CSRC 0x00000400 /* Clock Source */
  666. #define PLPRCR_LPM_MSK 0x00000300 /* Low Power Mode mask */
  667. #define PLPRCR_LPM_NORMAL 0x00000000 /* normal power management mode */
  668. #define PLPRCR_LPM_DOZE   0x00000100 /* doze power management mode */
  669. #define PLPRCR_LPM_SLEEP  0x00000200 /* sleep power management mode */
  670. #define PLPRCR_LPM_DEEP_SLEEP 0x00000300 /* deep sleep power mgt mode */
  671. #define PLPRCR_LPM_DOWN   0x00000300 /* down power management mode */
  672. #define PLPRCR_CSR 0x00000080 /* CheskStop Reset value */
  673. #define PLPRCR_LOLRE 0x00000040 /* Loss Of Lock Reset Enable */
  674. #define PLPRCR_FIOPD 0x00000020 /* Force I/O Pull Down */
  675. /* LCD register bit definitions */
  676. #define LCD_ENABLE 0x0010
  677. /* LCD Panel Configuration Register (LCCR) 0x0840 */
  678. #define LCD_IEN 0x00008000 /* LCD interrupt enable */
  679. #define LCD_CLKP 0x00000800 /* LCD Clock Polarity */
  680. #define LCD_OEP 0x00000400 /* LCD Output Enable Polarity */
  681. #define LCD_HSP 0x00000200 /* LCD horizontal sync polarity */
  682. #define LCD_VSP 0x00000100 /* LCD vertical sync polarity */
  683. #define LCD_DP 0x00000080 /* LCD data polarity */
  684. #define LCD_BPIX 0x00000060 /* LCD bits per pixel mask */
  685. #define LCD_BPIX_8 0x00000060 /* eight bits per pixel setting */
  686. #define LCD_BPIX_4 0x00000040 /* four bits per pixel setting */
  687. #define LCD_BPIX_2 0x00000020 /* two bits per pixel setting */
  688. #define LCD_BPIX_1 0x00000000 /* one bit per pixel setting */
  689. #define LCD_LBW 0x00000010 /* LCD Bus width */
  690. #define LCD_LBW_8 0x00000010 /* LCD Bus width 8 */
  691. #define LCD_LBW_4 0x00000000 /* LCD Bus width 4 */
  692. #define LCD_SPLT 0x00000008 /* LCD split display mode */
  693. #define LCD_CLOR 0x00000004 /* LCD color display */
  694. #define LCD_TFT 0x00000002 /* LCD TFT display */
  695. #define LCD_PON 0x00000001 /* Panel On/Off control bit */
  696. #ifdef  __cplusplus
  697. }
  698. #endif
  699. #endif /* __INCppc860Siuh */