mot85xxPci.h
上传用户:dqzhongke1
上传日期:2022-06-26
资源大小:667k
文件大小:10k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* mot85xxPci.h - Wind River SBC8548 PCI Bridge setup header file */
  2. /*
  3.  * Copyright (c) 2005-2006 Wind River Systems, Inc.
  4.  *
  5.  * The right to copy, distribute, modify or otherwise make use
  6.  * of this software may be licensed only pursuant to the terms
  7.  * of an applicable Wind River license agreement.
  8.  */
  9. /*
  10. modification history
  11. --------------------
  12. 01b,27jan06,dtr  Tidyup.
  13. 01a,04jul02,dtr  File created from cds85xx/01d.
  14. */
  15. #ifndef _INCmot85xxPcih
  16. #define _INCmot85xxPcih
  17. #ifdef __cplusplus
  18.     extern "C" {
  19. #endif /* __cplusplus */
  20. #define COMMAND_REGISTER_OFFSET         0x4
  21. #define COMMAND_REGISTER_WIDTH          0x2
  22. #define BRIDGE_BAR0_OFFSET              0x10
  23. #define BRIDGE_BAR0_WIDTH               0x4
  24. /* PCI 1 configuration space reg and int ack */
  25. #define PCI_CFG_ADR_REG        (CCSBAR + 0x8000)
  26. #define PCI_CFG_DATA_REG       (CCSBAR + 0x8004)
  27. #define PCI_INT_ACK            (CCSBAR + 0x8008)
  28. /* PCI 2 configuration space reg and int ack */
  29. #define PCI2_CFG_ADR_REG        (CCSBAR + 0x9000)
  30. #define PCI2_CFG_DATA_REG       (CCSBAR + 0x9004)
  31. #define PCI2_INT_ACK            (CCSBAR + 0x9008)
  32. /* PCI Express configuration space reg and int ack */
  33. #define PCIEX_CFG_ADR_REG        (CCSBAR + 0xA000)
  34. #define PCIEX_CFG_DATA_REG       (CCSBAR + 0xA004)
  35. /* PCI 1 Outbound translation registers */
  36. #undef CVPUINT32
  37. #define CVPUINT32(base,addr)  (CAST(VUINT32 *)((base) + (addr)))
  38. #define PCI_OUTBOUND_TRANS_ADRS_REG0(base)  CVPUINT32(base, 0x8c00)
  39. #define PCI_OUTBOUND_TRANS_ADRS_REG1(base)  CVPUINT32(base, 0x8c20)
  40. #define PCI_OUTBOUND_TRANS_ADRS_REG2(base)  CVPUINT32(base, 0x8c40)
  41. #define PCI_OUTBOUND_TRANS_ADRS_REG3(base)  CVPUINT32(base, 0x8c60)
  42. #define PCI_OUTBOUND_TRANS_ADRS_REG4(base)  CVPUINT32(base, 0x8c80)
  43. #define PCI_OUTBOUND_TRANS_EXT_ADRS_REG0(base) CVPUINT32(base, 0x8c04)
  44. #define PCI_OUTBOUND_TRANS_EXT_ADRS_REG1(base) CVPUINT32(base, 0x8c24)
  45. #define PCI_OUTBOUND_TRANS_EXT_ADRS_REG2(base) CVPUINT32(base, 0x8c44)
  46. #define PCI_OUTBOUND_TRANS_EXT_ADRS_REG3(base) CVPUINT32(base, 0x8c64)
  47. #define PCI_OUTBOUND_TRANS_EXT_ADRS_REG4(base) CVPUINT32(base, 0x8c84)
  48. #define PCI_OUTBOUND_BASE_ADRS_REG0(base) CVPUINT32(base, 0x8c08)
  49. #define PCI_OUTBOUND_BASE_ADRS_REG1(base) CVPUINT32(base, 0x8c28)
  50. #define PCI_OUTBOUND_BASE_ADRS_REG2(base) CVPUINT32(base, 0x8c48)
  51. #define PCI_OUTBOUND_BASE_ADRS_REG3(base) CVPUINT32(base, 0x8c68)
  52. #define PCI_OUTBOUND_BASE_ADRS_REG4(base) CVPUINT32(base, 0x8c88)
  53. /* Outbound attributes register definitions */
  54. #define PCI_OUTBOUND_ATTR_REG0(base)     CVPUINT32(base, 0x8c10)
  55. #define PCI_OUTBOUND_ATTR_REG1(base)     CVPUINT32(base, 0x8c30)
  56. #define PCI_OUTBOUND_ATTR_REG2(base)     CVPUINT32(base, 0x8c50)
  57. #define PCI_OUTBOUND_ATTR_REG3(base)     CVPUINT32(base, 0x8c70)
  58. #define PCI_OUTBOUND_ATTR_REG4(base)     CVPUINT32(base, 0x8c90)
  59. /* PCI 2 Outbound translation registers */
  60. #define PCI2_OUTBOUND_TRANS_ADRS_REG0(base)  CVPUINT32(base, 0x9c00)
  61. #define PCI2_OUTBOUND_TRANS_ADRS_REG1(base)  CVPUINT32(base, 0x9c20)
  62. #define PCI2_OUTBOUND_TRANS_ADRS_REG2(base)  CVPUINT32(base, 0x9c40)
  63. #define PCI2_OUTBOUND_TRANS_ADRS_REG3(base) CVPUINT32(base, 0x9c60)
  64. #define PCI2_OUTBOUND_TRANS_ADRS_REG4(base)  CVPUINT32(base, 0x9c80)
  65. #define PCI2_OUTBOUND_TRANS_EXT_ADRS_REG0(base) CVPUINT32(base, 0x9c04)
  66. #define PCI2_OUTBOUND_TRANS_EXT_ADRS_REG1(base) CVPUINT32(base, 0x9c24)
  67. #define PCI2_OUTBOUND_TRANS_EXT_ADRS_REG2(base) CVPUINT32(base, 0x9c44)
  68. #define PCI2_OUTBOUND_TRANS_EXT_ADRS_REG3(base) CVPUINT32(base, 0x9c64)
  69. #define PCI2_OUTBOUND_TRANS_EXT_ADRS_REG4(base) CVPUINT32(base, 0x9c84)
  70. #define PCI2_OUTBOUND_BASE_ADRS_REG0(base) CVPUINT32(base, 0x9c08)
  71. #define PCI2_OUTBOUND_BASE_ADRS_REG1(base) CVPUINT32(base, 0x9c28)
  72. #define PCI2_OUTBOUND_BASE_ADRS_REG2(base) CVPUINT32(base, 0x9c48)
  73. #define PCI2_OUTBOUND_BASE_ADRS_REG3(base) CVPUINT32(base, 0x9c68)
  74. #define PCI2_OUTBOUND_BASE_ADRS_REG4(base) CVPUINT32(base, 0x9c88)
  75. /* Outbound attributes register definitions */
  76. #define PCI2_OUTBOUND_ATTR_REG0(base) CVPUINT32(base, 0x9c10)
  77. #define PCI2_OUTBOUND_ATTR_REG1(base) CVPUINT32(base, 0x9c30)
  78. #define PCI2_OUTBOUND_ATTR_REG2(base) CVPUINT32(base, 0x9c50)
  79. #define PCI2_OUTBOUND_ATTR_REG3(base) CVPUINT32(base, 0x9c70)
  80. #define PCI2_OUTBOUND_ATTR_REG4(base) CVPUINT32(base, 0x9c90)
  81. /* PCI Express Outbound translation registers */
  82. #define PCIEX_OUTBOUND_TRANS_ADRS_REG0(base)     CVPUINT32(base, 0xac00)
  83. #define PCIEX_OUTBOUND_TRANS_ADRS_REG1(base)     CVPUINT32(base, 0xac20)
  84. #define PCIEX_OUTBOUND_TRANS_ADRS_REG2(base)     CVPUINT32(base, 0xac40)
  85. #define PCIEX_OUTBOUND_TRANS_ADRS_REG3(base)     CVPUINT32(base, 0xac60)
  86. #define PCIEX_OUTBOUND_TRANS_ADRS_REG4(base)     CVPUINT32(base, 0xac80)
  87. #define PCIEX_OUTBOUND_TRANS_EXT_ADRS_REG0(base)     CVPUINT32(base, 0xac04)
  88. #define PCIEX_OUTBOUND_TRANS_EXT_ADRS_REG1(base)     CVPUINT32(base, 0xac24)
  89. #define PCIEX_OUTBOUND_TRANS_EXT_ADRS_REG2(base)     CVPUINT32(base, 0xac44)
  90. #define PCIEX_OUTBOUND_TRANS_EXT_ADRS_REG3(base)     CVPUINT32(base, 0xac64)
  91. #define PCIEX_OUTBOUND_TRANS_EXT_ADRS_REG4(base)     CVPUINT32(base, 0xac84)
  92. #define PCIEX_OUTBOUND_BASE_ADRS_REG0(base)     CVPUINT32(base, 0xac08)
  93. #define PCIEX_OUTBOUND_BASE_ADRS_REG1(base)     CVPUINT32(base, 0xac28)
  94. #define PCIEX_OUTBOUND_BASE_ADRS_REG2(base)     CVPUINT32(base, 0xac48)
  95. #define PCIEX_OUTBOUND_BASE_ADRS_REG3(base)     CVPUINT32(base, 0xac68)
  96. #define PCIEX_OUTBOUND_BASE_ADRS_REG4(base)     CVPUINT32(base, 0xac88)
  97. /* Outbound attributes register definitions */
  98. #define PCIEX_OUTBOUND_ATTR_REG0(base)     CVPUINT32(base, 0xac10)
  99. #define PCIEX_OUTBOUND_ATTR_REG1(base)     CVPUINT32(base, 0xac30)
  100. #define PCIEX_OUTBOUND_ATTR_REG2(base)     CVPUINT32(base, 0xac50)
  101. #define PCIEX_OUTBOUND_ATTR_REG3(base)     CVPUINT32(base, 0xac70)
  102. #define PCIEX_OUTBOUND_ATTR_REG4(base)     CVPUINT32(base, 0xac90)
  103. /* Outbound/Inbound Comparison mask register defines */
  104. #define PCI_WINDOW_ENABLE_BIT 0x80000000
  105. #define PCI_ATTR_BS_BIT       0x40000000
  106. #define PCI_OUT_ATTR_RTT_MEM      0x00040000
  107. #define PCI_OUT_ATTR_RTT_IO       0x00080000
  108. #define PCI_OUT_ATTR_WTT_MEM      0x00004000
  109. #define PCI_OUT_ATTR_WTT_IO       0x00008000
  110. #define PCI_ATTR_WS_4K       0x0000000B
  111. #define PCI_ATTR_WS_8K       0x0000000c
  112. #define PCI_ATTR_WS_16K      0x0000000D
  113. #define PCI_ATTR_WS_32K      0x0000000E
  114. #define PCI_ATTR_WS_64K      0x0000000F
  115. #define PCI_ATTR_WS_128K     0x00000010
  116. #define PCI_ATTR_WS_256K     0x00000011
  117. #define PCI_ATTR_WS_512K     0x00000012
  118. #define PCI_ATTR_WS_1M       0x00000013
  119. #define PCI_ATTR_WS_2M       0x00000014
  120. #define PCI_ATTR_WS_4M       0x00000015
  121. #define PCI_ATTR_WS_8M       0x00000016
  122. #define PCI_ATTR_WS_16M      0x00000017
  123. #define PCI_ATTR_WS_32M      0x00000018
  124. #define PCI_ATTR_WS_64M      0x00000019
  125. #define PCI_ATTR_WS_128M     0x0000001a
  126. #define PCI_ATTR_WS_256M     0x0000001b
  127. #define PCI_ATTR_WS_512M     0x0000001c
  128. #define PCI_ATTR_WS_1G       0x0000001d
  129. #define PCI_ATTR_WS_2G       0x0000001e
  130. #define PCI_ATTR_WS_4G       0x0000001f
  131. #define PCI_IN_ATTR_TGI_LM   0x00f00000
  132. #define PCI_IN_ATTR_TGI_RIO  0x00c00000
  133. #define PCI_IN_ATTR_RTT_RIO_READ 0x00040000
  134. #define PCI_IN_ATTR_RTT_LM_READ_NO_SNOOP 0x00040000
  135. #define PCI_IN_ATTR_RTT_LM_READ_SNOOP 0x00050000
  136. #define PCI_IN_ATTR_RTT_LM_READ_UNLOCK_L2_CACHE_LINE 0x00070000
  137. #define PCI_IN_ATTR_RTT_LM_WRITE_NO_SNOOP 0x00004000
  138. #define PCI_IN_ATTR_RTT_LM_WRITE_SNOOP 0x00005000
  139. #define PCI_IN_ATTR_RTT_LM_WRITE_ALLOC_L2_CACHE_LINE 0x00006000
  140. #define PCI_IN_ATTR_RTT_LM_WRITE_ALLOC_LOCK_L2_CACHE_LINE 0x00007000
  141. #define PCI_SNOOP_ENABLE        0x40000000
  142. #define PCI_PREFETCHABLE        0x20000000
  143. /* PCI 1 Inbound translation registers */
  144. #define PCI_INBOUND_TRANS_ADRS_REG3(base)     CVPUINT32(base, 0x8DA0)
  145. #define PCI_INBOUND_TRANS_EXT_ADRS_REG3(base) CVPUINT32(base, 0x8DA4)
  146. #define PCI_INBOUND_BASE_ADRS_REG3(base)      CVPUINT32(base, 0x8DA8)
  147. #define PCI_INBOUND_ATTR_REG3(base)           CVPUINT32(base, 0x8DB0)
  148. #define PCI_INBOUND_TRANS_ADRS_REG2(base)     CVPUINT32(base, 0x8DC0)
  149. #define PCI_INBOUND_BASE_ADRS_REG2(base)      CVPUINT32(base, 0x8DC8)
  150. #define PCI_INBOUND_ATTR_REG2(base)           CVPUINT32(base, 0x8DD0)
  151. #define PCI_INBOUND_TRANS_ADRS_REG1(base)     CVPUINT32(base, 0x8DE0)
  152. #define PCI_INBOUND_BASE_ADRS_REG1(base)      CVPUINT32(base, 0x8DE8)
  153. #define PCI_INBOUND_ATTR_REG1(base)           CVPUINT32(base, 0x8DF0)
  154. /* PCI 2 Inbound translation registers */
  155. #define PCI2_INBOUND_TRANS_ADRS_REG3(base)     CVPUINT32(base, 0x9DA0)
  156. #define PCI2_INBOUND_TRANS_EXT_ADRS_REG3(base) CVPUINT32(base, 0x9DA4)
  157. #define PCI2_INBOUND_BASE_ADRS_REG3(base)      CVPUINT32(base, 0x9DA8)
  158. #define PCI2_INBOUND_ATTR_REG3(base)           CVPUINT32(base, 0x9DB0)
  159. #define PCI2_INBOUND_TRANS_ADRS_REG2(base)     CVPUINT32(base, 0x9DC0)
  160. #define PCI2_INBOUND_BASE_ADRS_REG2(base)      CVPUINT32(base, 0x9DC8)
  161. #define PCI2_INBOUND_ATTR_REG2(base)           CVPUINT32(base, 0x9DD0)
  162. #define PCI2_INBOUND_TRANS_ADRS_REG1(base)     CVPUINT32(base, 0x9DE0)
  163. #define PCI2_INBOUND_BASE_ADRS_REG1(base)      CVPUINT32(base, 0x9DE8)
  164. #define PCI2_INBOUND_ATTR_REG1(base)           CVPUINT32(base, 0x9DF0)
  165. /* PCI Express Inbound translation registers */
  166. #define PCIEX_INBOUND_TRANS_ADRS_REG3(base)     CVPUINT32(base, 0xaDA0)
  167. #define PCIEX_INBOUND_TRANS_EXT_ADRS_REG3(base) CVPUINT32(base, 0xaDA4)
  168. #define PCIEX_INBOUND_BASE_ADRS_REG3(base)      CVPUINT32(base, 0xaDA8)
  169. #define PCIEX_INBOUND_ATTR_REG3(base)           CVPUINT32(base, 0xaDB0)
  170. #define PCIEX_INBOUND_TRANS_ADRS_REG2(base)     CVPUINT32(base, 0xaDC0)
  171. #define PCIEX_INBOUND_BASE_ADRS_REG2(base)      CVPUINT32(base, 0xaDC8)
  172. #define PCIEX_INBOUND_ATTR_REG2(base)           CVPUINT32(base, 0xaDD0)
  173. #define PCIEX_INBOUND_TRANS_ADRS_REG1(base)     CVPUINT32(base, 0xaDE0)
  174. #define PCIEX_INBOUND_BASE_ADRS_REG1(base)      CVPUINT32(base, 0xaDE8)
  175. #define PCIEX_INBOUND_ATTR_REG1(base)           CVPUINT32(base, 0xaDF0)
  176. /* PCI 1 error Registers */
  177. #define PCI_ERROR_DETECT_REG             0x8e00
  178. #define PCI_ERROR_CAPTURE_DISABLE_REG    0x8e04
  179. #define PCI_ERROR_ENABLE_REG             0x8e08
  180. #define PCI_ERROR_ATTR_CAPTURE_REG       0x8e0c
  181. #define PCI_ERROR_ADRS_CAPTURE_REG       0x8e10
  182. #define PCI_ERROR_EXT_ADRS_CAPTURE_REG   0x8e14
  183. #define PCI_ERROR_DATA_LOW_CAPTURE_REG   0x8e18
  184. #define PCI_ERROR_DATA_HIGH_CAPTURE_REG  0x8e1c
  185. #define PCI_ERROR_GASKET_TIMER_REG       0x8e20
  186. /* Command status register defines */
  187. #define BUS_MASTER_ENABLE_BIT   0x4
  188. #define MEMORY_SPACE_ACCESS_ENABLE_BIT 0x2
  189. #ifdef __cplusplus
  190.     }
  191. #endif /* __cplusplus */
  192. #endif /* _INCmot85xxPcih */