ppc4xx.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:15k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  * BK Id: SCCS/s.ppc4xx.h 1.3 05/17/01 18:14:25 cort
  3.  */
  4. /*
  5.  *
  6.  *    Copyright (c) 1999 Grant Erickson <grant@lcse.umn.edu>
  7.  *
  8.  *    Module name: ppc4xx.h
  9.  *
  10.  *    Description:
  11.  * A generic include file which pulls in appropriate include files
  12.  *      for specific board types based on configuration settings.
  13.  *
  14.  */
  15. #ifdef __KERNEL__
  16. #ifndef __PPC4XX_H__
  17. #define __PPC4XX_H__
  18. #include <linux/config.h>
  19. #ifndef __ASSEMBLY__
  20. #if defined(CONFIG_OAK)
  21. #include <platforms/oak.h>
  22. #endif
  23. #if defined(CONFIG_WALNUT)
  24. #include <platforms/walnut.h>
  25. #endif
  26. /* IO_BASE is for PCI I/O.
  27.  * ISA not supported, just here to resolve copilation.
  28.  */
  29. #ifndef _IO_BASE
  30. #define _IO_BASE 0xe8000000 /* The PCI address window */
  31. #define _ISA_MEM_BASE 0
  32. #define PCI_DRAM_OFFSET 0
  33. #endif
  34. /*
  35.  * The "residual" board information structure the boot loader passes
  36.  * into the kernel.
  37.  */
  38. extern unsigned char __res[];
  39. /* I don't know if this is general to 4xx, or unique to a specific
  40.  * processor or board.  In any case it is easy to move.
  41.  */
  42. #define PPC4xx_PCI_IO_ADDR ((uint)0xe8000000)
  43. #define PPC4xx_PCI_IO_SIZE ((uint)64*1024)
  44. #define PPC4xx_PCI_CFG_ADDR ((uint)0xeec00000)
  45. #define PPC4xx_PCI_CFG_SIZE ((uint)4*1024)
  46. #define PPC4xx_PCI_LCFG_ADDR ((uint)0xef400000)
  47. #define PPC4xx_PCI_LCFG_SIZE ((uint)4*1024)
  48. #define PPC4xx_ONB_IO_ADDR ((uint)0xef600000)
  49. #define PPC4xx_ONB_IO_SIZE ((uint)4*1024)
  50. #endif /* __ASSEMBLY__ */
  51. /* Device Control Registers unique to 4xx */
  52. #define DCRN_BEAR 0x090 /* Bus Error Address Register */
  53. #define DCRN_BESR 0x091 /* Bus Error Syndrome Register */
  54. #define   BESR_DSES     0x80000000 /* Data-Side Error Status */
  55. #define   BESR_DMES 0x40000000 /* DMA Error Status */
  56. #define   BESR_RWS 0x20000000 /* Read/Write Status */
  57. #define   BESR_ETMASK 0x1C000000 /* Error Type */
  58. #define     ET_PROT 0
  59. #define     ET_PARITY 1
  60. #define     ET_NCFG 2
  61. #define     ET_BUSERR 4
  62. #define     ET_BUSTO 6
  63. #define DCRN_CHCR0 0x0B1 /* Chip Control Register 1                    */
  64. #define DCRN_CHCR1 0x0B2 /* Chip Control Register 2                    */
  65. #define DCRN_CHPSR 0x0B4 /* Chip Pin Strapping                         */
  66. #define DCRN_CPMER 0x0B9 /* CPM Enable                                 */
  67. #define DCRN_CPMFR 0x0BA /* CPM Force                                  */
  68. #define   CPM_IIC 0x80000000  /* IIC interface                          */
  69. #define   CPM_PCI 0x40000000  /* PCI bridge                             */
  70. #define   CPM_CPU 0x20000000  /* processor core                         */
  71. #define   CPM_DMA 0x10000000  /* DMA controller                         */
  72. #define   CPM_BRG 0x08000000  /* PLB to OPB bridge                      */
  73. #define   CPM_DCP 0x04000000  /* CodePack                               */
  74. #define   CPM_EBC 0x02000000  /* ROM/SRAM peripheral controller         */
  75. #define   CPM_SDRAM 0x01000000  /* SDRAM memory controller                */
  76. #define   CPM_PLB 0x00800000  /* PLB bus arbiter                        */
  77. #define   CPM_GPIO 0x00400000  /* General Purpose IO (??)                */
  78. #define   CPM_UART0 0x00200000  /* serial port 0                          */
  79. #define   CPM_UART1 0x00100000  /* serial port 1                          */
  80. #define   CPM_UIC 0x00080000  /* Universal Interrupt Controller         */
  81. #define   CPM_TMRCLK 0x00040000  /* CPU timers                             */
  82. #define   CPM_EMAC_MM 0x00020000  /* on-chip ethernet MM unit               */
  83. #define   CPM_EMAC_RM 0x00010000  /* on-chip ethernet RM unit               */
  84. #define   CPM_EMAC_TM 0x00008000  /* on-chip ethernet TM unit               */
  85. #define DCRN_CPMSR 0x0B8 /* CPM Status                                 */
  86. #define DCRN_DMACR0 0x100 /* DMA Channel Control Register 0             */
  87. #define DCRN_DMACT0 0x101 /* DMA Count Register 0                       */
  88. #define DCRN_DMADA0 0x102 /* DMA Destination Address Register 0         */
  89. #define DCRN_DMASA0 0x103 /* DMA Source Address Register 0              */
  90. #define DCRN_ASG0 0x104 /* DMA Scatter/Gather Descriptor Addr 0       */
  91. #define DCRN_DMACR1 0x108 /* DMA Channel Control Register 1             */
  92. #define DCRN_DMACT1 0x109 /* DMA Count Register 1                       */
  93. #define DCRN_DMADA1 0x10A /* DMA Destination Address Register 1         */
  94. #define DCRN_DMASA1 0x10B /* DMA Source Address Register 1              */
  95. #define DCRN_ASG1 0x10C /* DMA Scatter/Gather Descriptor Addr 1       */
  96. #define DCRN_DMACR2 0x110 /* DMA Channel Control Register 2             */
  97. #define DCRN_DMACT2 0x111 /* DMA Count Register 2                       */
  98. #define DCRN_DMADA2 0x112 /* DMA Destination Address Register 2         */
  99. #define DCRN_DMASA2 0x113 /* DMA Source Address Register 2              */
  100. #define DCRN_ASG2 0x114 /* DMA Scatter/Gather Descriptor Addr 2       */
  101. #define DCRN_DMACR3 0x118 /* DMA Channel Control Register 3             */
  102. #define DCRN_DMACT3 0x119 /* DMA Count Register 3                       */
  103. #define DCRN_DMADA3 0x11A /* DMA Destination Address Register 3         */
  104. #define DCRN_DMASA3 0x11B /* DMA Source Address Register 3              */
  105. #define DCRN_ASG3 0x11C /* DMA Scatter/Gather Descriptor Addr 3       */
  106. #define DCRN_DMASR 0x120 /* DMA Status Register                        */
  107. #define DCRN_ASGC 0x123 /* DMA Scatter/Gather Command                 */
  108. #define DCRN_ADR 0x124 /* DMA Address Decode                         */
  109. #define DCRN_SLP        0x125   /* DMA Sleep Register                         */
  110. #define DCRN_POL        0x126   /* DMA Polarity Register                      */
  111. #define DCRN_EBCCFGADR 0x012 /* Peripheral Controller Address              */
  112. #define DCRN_EBCCFGDATA 0x013 /* Peripheral Controller Data                 */
  113. #define DCRN_EXISR 0x040    /* External Interrupt Status Register */
  114. #define DCRN_EXIER 0x042    /* External Interrupt Enable Register */
  115. #define   EXIER_CIE 0x80000000 /* Critical Interrupt Enable */
  116. #define   EXIER_SRIE 0x08000000 /* Serial Port Rx Int. Enable */
  117. #define   EXIER_STIE 0x04000000 /* Serial Port Tx Int. Enable */
  118. #define   EXIER_JRIE 0x02000000 /* JTAG Serial Port Rx Int. Enable */
  119. #define   EXIER_JTIE 0x01000000 /* JTAG Serial Port Tx Int. Enable */
  120. #define   EXIER_D0IE 0x00800000 /* DMA Channel 0 Interrupt Enable */
  121. #define   EXIER_D1IE 0x00400000 /* DMA Channel 1 Interrupt Enable */
  122. #define   EXIER_D2IE 0x00200000 /* DMA Channel 2 Interrupt Enable */
  123. #define   EXIER_D3IE 0x00100000 /* DMA Channel 3 Interrupt Enable */
  124. #define   EXIER_E0IE 0x00000010 /* External Interrupt 0 Enable */
  125. #define   EXIER_E1IE 0x00000008 /* External Interrupt 1 Enable */
  126. #define   EXIER_E2IE 0x00000004 /* External Interrupt 2 Enable */
  127. #define   EXIER_E3IE 0x00000002 /* External Interrupt 3 Enable */
  128. #define   EXIER_E4IE 0x00000001 /* External Interrupt 4 Enable */
  129. #define DCRN_IOCR 0x0A0    /* Input/Output Configuration Register */
  130. #define   IOCR_E0TE 0x80000000
  131. #define   IOCR_E0LP 0x40000000
  132. #define   IOCR_E1TE 0x20000000
  133. #define   IOCR_E1LP 0x10000000
  134. #define   IOCR_E2TE 0x08000000
  135. #define   IOCR_E2LP 0x04000000
  136. #define   IOCR_E3TE 0x02000000
  137. #define   IOCR_E3LP 0x01000000
  138. #define   IOCR_E4TE 0x00800000
  139. #define   IOCR_E4LP 0x00400000
  140. #define   IOCR_EDT      0x00080000
  141. #define   IOCR_SOR      0x00040000
  142. #define   IOCR_EDO 0x00008000
  143. #define   IOCR_2XC 0x00004000
  144. #define   IOCR_ATC 0x00002000
  145. #define   IOCR_SPD 0x00001000
  146. #define   IOCR_BEM 0x00000800
  147. #define   IOCR_PTD 0x00000400
  148. #define   IOCR_ARE 0x00000080
  149. #define   IOCR_DRC 0x00000020
  150. #define   IOCR_RDM(x) (((x) & 0x3) << 3)
  151. #define   IOCR_TCS 0x00000004
  152. #define   IOCR_SCS 0x00000002
  153. #define   IOCR_SPC 0x00000001
  154. #define DCRN_KIAR 0x014 /* Decompression Controller Address           */
  155. #define DCRN_KIDR 0x015 /* Decompression Controller Data              */
  156. #define DCRN_MALCR 0x180 /* MAL Configuration                          */
  157. #define   MALCR_MMSR    0x80000000    /* MAL Software reset                   */
  158. #define   MALCR_PLBP_1  0x00400000    /* MAL reqest priority:                 */
  159. #define   MALCR_PLBP_2  0x00800000    /*   lowsest is 00                      */
  160. #define   MALCR_PLBP_3  0x00C00000    /*   highest                            */
  161. #define   MALCR_GA      0x00200000    /* Guarded Active Bit                   */
  162. #define   MALCR_OA      0x00100000    /* Ordered Active Bit                   */
  163. #define   MALCR_PLBLE   0x00080000    /* PLB Lock Error Bit                   */
  164. #define   MALCR_PLBLT_1 0x00040000    /* PLB Latency Timer                    */
  165. #define   MALCR_PLBLT_2 0x00020000
  166. #define   MALCR_PLBLT_3 0x00010000
  167. #define   MALCR_PLBLT_4 0x00008000
  168. #define   MALCR_PLBLT_DEFAULT 0x00078000 /* JSP: Is this a valid default??    */
  169. #define   MALCR_PLBB    0x00004000    /* PLB Burst Deactivation Bit           */
  170. #define   MALCR_OPBBL   0x00000080    /* OPB Lock Bit                         */
  171. #define   MALCR_EOPIE   0x00000004    /* End Of Packet Interrupt Enable       */
  172. #define   MALCR_LEA     0x00000002    /* Locked Error Active                  */
  173. #define   MALCR_MSD     0x00000001    /* MAL Scroll Descriptor Bit            */
  174. #define DCRN_MALDBR     0x183   /* Debug Register                             */
  175. #define DCRN_MALESR 0x181 /* Error Status                               */
  176. #define   MALESR_EVB    0x80000000    /* Error Valid Bit                      */
  177. #define   MALESR_CID    0x40000000    /* Channel ID Bit  for channel 0        */
  178. #define   MALESR_DE     0x00100000    /* Descriptor Error                     */
  179. #define   MALESR_OEN    0x00080000    /* OPB Non-Fullword Error               */
  180. #define   MALESR_OTE    0x00040000    /* OPB Timeout Error                    */
  181. #define   MALESR_OSE    0x00020000    /* OPB Slave Error                      */
  182. #define   MALESR_PEIN   0x00010000    /* PLB Bus Error Indication             */
  183. #define   MALESR_DEI    0x00000010    /* Descriptor Error Interrupt           */
  184. #define   MALESR_ONEI   0x00000008    /* OPB Non-Fullword Error Interrupt     */
  185. #define   MALESR_OTEI   0x00000004    /* OPB Timeout Error Interrupt          */
  186. #define   MALESR_OSEI   0x00000002    /* OPB Slace Error Interrupt            */
  187. #define   MALESR_PBEI   0x00000001    /* PLB Bus Error Interrupt              */
  188. #define DCRN_MALIER 0x182 /* Interrupt Enable                           */
  189. #define   MALIER_DE     0x00000010    /* Descriptor Error Interrupt Enable    */
  190. #define   MALIER_NE     0x00000008    /* OPB Non-word Transfer Int Enable     */
  191. #define   MALIER_TE     0x00000004    /* OPB Time Out Error Interrupt Enable  */
  192. #define   MALIER_OPBE   0x00000002    /* OPB Slave Error Interrupt Enable     */
  193. #define   MALIER_PLBE   0x00000001    /* PLB Error Interrupt Enable           */
  194. #define DCRN_MALTXCARR  0x185   /* TX Channed Active Reset Register           */
  195. #define DCRN_MALTXCASR  0x184   /* TX Channel Active Set Register             */
  196. #define DCRN_MALTXDEIR 0x187 /* Tx Descriptor Error Interrupt              */
  197. #define DCRN_MALTXEOBISR    0x186   /* Tx End of Buffer Interrupt Status      */
  198. #define   MALOBISR_CH0  0x80000000    /* EOB channel 1 bit                    */
  199. #define   MALOBISR_CH2  0x40000000    /* EOB channel 2 bit                    */
  200. #define DCRN_MALRXCARR  0x191   /* RX Channed Active Reset Register           */
  201. #define DCRN_MALRXCASR  0x190   /* RX Channel Active Set Register             */
  202. #define DCRN_MALRXDEIR 0x193 /* Rx Descriptor Error Interrupt              */
  203. #define DCRN_MALRXEOBISR    0x192   /* Rx End of Buffer Interrupt Status      */
  204. #define DCRN_MALRXCTP0R 0x1C0 /* Channel Rx 0 Channel Table Pointer         */
  205. #define DCRN_MALTXCTP0R 0x1A0 /* Channel Tx 0 Channel Table Pointer         */
  206. #define DCRN_MALTXCTP1R 0x1A1 /* Channel Tx 1 Channel Table Pointer         */
  207. #define DCRN_MALRCBS0 0x1E0 /* Channel Rx 0 Channel Buffer Size           */
  208. #define DCRN_MEMCFGADR 0x010 /* Memory Controller Address                  */
  209. #define DCRN_MEMCFGDATA 0x011 /* Memory Controller Data                     */
  210. #define DCRN_OCMISARC 0x018 /* OCM Instr Side Addr Range Compare          */
  211. #define DCRN_OCMISCR 0x019 /* OCM Instr Side Control                     */
  212. #define DCRN_OCMDSARC 0x01A /* OCM Data Side Addr Range Compare           */
  213. #define DCRN_OCMDSCR 0x01B /* OCM Data Side Control                      */
  214. #define DCRN_PLB0_ACR 0x087 /* PLB Arbiter Control                        */
  215. #define DCRN_PLB0_BEAR 0x086 /* PLB Error Address                          */
  216. #define DCRN_PLB0_BESR 0x084 /* PLB Error Status                           */
  217. #define DCRN_PLLMR 0x0B0 /* PLL Mode                                   */
  218. #define DCRN_POB0_BEAR 0x0A2 /* PLB to OPB Error Address                   */
  219. #define DCRN_POB0_BESR0 0x0A0 /* PLB to OPB Error Status Register 1         */
  220. #define DCRN_POB0_BESR1 0x0A4 /* PLB to OPB Error Status Register 1         */
  221. #define DCRN_UICCR 0x0C3 /* UIC Critical                               */
  222. #define DCRN_UICER 0x0C2 /* UIC Enable                                 */
  223. #define DCRN_UICPR 0x0C4 /* UIC Polarity                               */
  224. #define DCRN_UICSR 0x0C0 /* UIC Status                                 */
  225. #define DCRN_UICTR 0x0C5 /* UIC Triggering                             */
  226. #define DCRN_UICMSR 0x0C6 /* UIC Masked Status                          */
  227. #define DCRN_UICVR 0x0C7 /* UIC Vector                                 */
  228. #define DCRN_UICVCR 0x0C8 /* UIC Vector Configuration                   */
  229. #define   UIC_U0 0x80000000  /* UART0                                  */
  230. #define   UIC_U1 0x40000000  /* UART1                                  */
  231. #define   UIC_IIC 0x20000000  /* IIC                                    */
  232. #define   UIC_EM 0x10000000  /* External Master                        */
  233. #define   UIC_PCI 0x08000000  /* PCI                                    */
  234. #define   UIC_D0 0x04000000  /* DMA Channel 0                          */
  235. #define   UIC_D1 0x02000000  /* DMA Channel 1                          */
  236. #define   UIC_D2 0x01000000  /* DMA Channel 2                          */
  237. #define   UIC_D3 0x00800000  /* DMA Channel 3                          */
  238. #define   UIC_EW 0x00400000  /* Ethernet Wake-up                       */
  239. #define   UIC_MS 0x00200000  /* MAL SERR                               */
  240. #define   UIC_MTE 0x00100000  /* MAL TX EOB                             */
  241. #define   UIC_MRE 0x00080000  /* MAL RX EOB                             */
  242. #define   UIC_MTD 0x00040000  /* MAL TX DE                              */
  243. #define   UIC_MRD 0x00020000  /* MAL RX DE                              */
  244. #define   UIC_E 0x00010000  /* Ethernet                               */
  245. #define   UIC_EPS 0x00008000  /* External PCI SERR                      */
  246. #define   UIC_EC 0x00004000  /* ECC Correctable Error                  */
  247. #define   UIC_PPM 0x00002000  /* PCI Power Management                   */
  248. /*
  249. ** 0x00001000  reserved
  250. ** 0x00000800  reserved
  251. ** 0x00000400  reserved
  252. ** 0x00000200  reserved
  253. ** 0x00000100  reserved
  254. ** 0x00000080  reserved
  255. */
  256. #define   UIC_EIR0 0x00000040  /* External IRQ 0                         */
  257. #define   UIC_EIR1 0x00000020  /* External IRQ 0                         */
  258. #define   UIC_EIR2 0x00000010  /* External IRQ 0                         */
  259. #define   UIC_EIR3 0x00000008  /* External IRQ 0                         */
  260. #define   UIC_EIR4 0x00000004  /* External IRQ 0                         */
  261. #define   UIC_EIR5 0x00000002  /* External IRQ 0                         */
  262. #define   UIC_EIR6 0x00000001  /* External IRQ 0                         */
  263. #endif /* __PPC4XX_H__ */
  264. #endif /* __KERNEL__ */