sbconfig.h
上传用户:yuanda199
上传日期:2022-06-26
资源大小:412k
文件大小:9k
源码类别:

VxWorks

开发平台:

C/C++

  1. /*
  2.     Copyright 2001, Broadcom Corporation
  3.     All Rights Reserved.
  4.     
  5.     This is UNPUBLISHED PROPRIETARY SOURCE CODE of Broadcom Corporation;
  6.     the contents of this file may not be disclosed to third parties, copied or
  7.     duplicated in any form, in whole or in part, without the prior written
  8.     permission of Broadcom Corporation.
  9. */
  10. /*
  11.  * Broadcom SiliconBackplane hardware register definitions.
  12.  *
  13.  * Copyright(c) 2000 Broadcom Corporation
  14.  * $Id: sbconfig.h,v 1.1 Broadcom SDK $
  15.  */
  16. #ifndef _SBCONFIG_H
  17. #define _SBCONFIG_H
  18. /* cpp contortions to concatenate w/arg prescan */
  19. #ifndef PAD
  20. #define _PADLINE(line) pad ## line
  21. #define _XSTR(line) _PADLINE(line)
  22. #define PAD _XSTR(__LINE__)
  23. #endif
  24. /*
  25.  * SiliconBackplane Address Map.
  26.  * All regions may not exist on all chips.
  27.  */
  28. #define SB_SDRAM_BASE 0x00000000 /* Physical SDRAM */
  29. #define SB_PCI_MEM 0x08000000 /* Host Mode PCI memory access space (64 MB) */
  30. #define SB_PCI_CFG 0x0c000000 /* Host Mode PCI configuration space (64 MB) */
  31. #define SB_SDRAM_SWAPPED 0x10000000 /* Byteswapped Physical SDRAM */
  32. #define SB_ENUM_BASE    0x18000000 /* Enumeration space base */
  33. #define SB_ENUM_LIM 0x18010000 /* Enumeration space limit */
  34. #define SB_EXTIF_BASE 0x1f000000 /* External Interface region base address */
  35. #define SB_PCI_DMA 0x40000000 /* Client Mode PCI memory access space (1 GB) */
  36. #define SB_EUART (SB_EXTIF_BASE + 0x00800000)
  37. #define SB_LED (SB_EXTIF_BASE + 0x00900000)
  38. /* enumeration space related defs */
  39. #define SB_CORE_SIZE    0x1000 /* each core gets 4Kbytes for registers */
  40. #define SB_MAXCORES ((SB_ENUM_LIM - SB_ENUM_BASE)/SB_CORE_SIZE)
  41. #define SBCONFIGOFF 0xf00 /* core sbconfig regs are top 256bytes of regs */
  42. #define SBCONFIGSIZE 256 /* sizeof (sbconfig_t) */
  43. /* mips address */
  44. #define SB_EJTAG 0xff200000 /* MIPS EJTAG space (2M) */
  45. #ifndef _LANGUAGE_ASSEMBLY
  46. /*
  47.  * Sonics Configuration Space Registers.
  48.  */
  49. typedef volatile struct _sbconfig {
  50. uint32 PAD[2];
  51. uint32 sbipsflag; /* initiator port ocp slave flag */
  52. uint32 PAD[3];
  53. uint32 sbtpsflag; /* target port ocp slave flag */
  54. uint32 PAD[17];
  55. uint32 sbadmatch3; /* address match3 */
  56. uint32 PAD;
  57. uint32 sbadmatch2; /* address match2 */
  58. uint32 PAD;
  59. uint32 sbadmatch1; /* address match1 */
  60. uint32 PAD[7];
  61. uint32 sbimstate; /* initiator agent state */
  62. uint32 sbintvec; /* interrupt mask */
  63. uint32 sbtmstatelow; /* target state */
  64. uint32 sbtmstatehigh; /* target state */
  65. uint32 sbbwa0; /* bandwidth allocation table0 */
  66. uint32 PAD;
  67. uint32 sbimconfiglow; /* initiator configuration */
  68. uint32 sbimconfighigh; /* initiator configuration */
  69. uint32 sbadmatch0; /* address match0 */
  70. uint32 PAD;
  71. uint32 sbtmconfiglow; /* target configuration */
  72. uint32 sbtmconfighigh; /* target configuration */
  73. uint32 sbbconfig; /* broadcast configuration */
  74. uint32 PAD;
  75. uint32 sbbstate; /* broadcast state */
  76. uint32 PAD[3];
  77. uint32 sbactcnfg; /* activate configuration */
  78. uint32 PAD[3];
  79. uint32 sbflagst; /* current sbflags */
  80. uint32 PAD[3];
  81. uint32 sbidlow; /* identification */
  82. uint32 sbidhigh; /* identification */
  83. } sbconfig_t;
  84. #endif /* _LANGUAGE_ASSEMBLY */
  85. /* sbipsflag */
  86. #define SBIPSFLAG 0x08 /* offset */
  87. #define SBIPS_INT1_MASK 0x3f /* which sbflags get routed to mips interrupt 1 */
  88. #define SBIPS_INT1_SHIFT 0
  89. #define SBIPS_INT2_MASK 0x3f00 /* which sbflags get routed to mips interrupt 2 */
  90. #define SBIPS_INT2_SHIFT 8
  91. #define SBIPS_INT3_MASK 0x3f0000 /* which sbflags get routed to mips interrupt 3 */
  92. #define SBIPS_INT3_SHIFT 16
  93. #define SBIPS_INT4_MASK 0x3f000000 /* which sbflags get routed to mips interrupt 4 */
  94. #define SBIPS_INT4_SHIFT 24
  95. /* sbtpsflag */
  96. #define SBTPSFLAG 0x18 /* offset */
  97. #define SBTPS_NUM0_MASK 0x3f /* interrupt sbFlag # generated by this core */
  98. #define SBTPS_F0EN0 0x40 /* interrupt is always sent on the backplane */
  99. /* sbadmatch */
  100. #define SBADMATCH3 0x60 /* offset */
  101. #define SBADMATCH2 0x68 /* offset */
  102. #define SBADMATCH1 0x70 /* offset */
  103. /* sbimstate */
  104. #define SBIMSTATE 0x90 /* offset */
  105. #define SBIM_PC 0xf /* pipecount */
  106. #define SBIM_AP_MASK 0x30 /* arbitration policy */
  107. #define SBIM_AP_BOTH 0x00 /* use both timeslaces and token */
  108. #define SBIM_AP_TS 0x10 /* use timesliaces only */
  109. #define SBIM_AP_TK 0x20 /* use token only */
  110. #define SBIM_AP_RSV 0x30 /* reserved */
  111. #define SBIM_IBE 0x20000 /* inbanderror */
  112. #define SBIM_TO 0x40000 /* timeout */
  113. /* sbintvec */
  114. #define SBINTVEC 0x94 /* offset */
  115. /* sbtmstatelow */
  116. #define SBTMSTATELOW 0x98 /* offset */
  117. #define SBTML_RESET 0x1 /* reset */
  118. #define SBTML_REJ 0x2 /* reject */
  119. #define SBTML_CLK 0x10000 /* clock enable */
  120. #define SBTML_FGC 0x20000 /* force gated clocks on */
  121. #define SBTML_FL_MASK 0x3ffc0000 /* core-specific flags */
  122. #define SBTML_PE 0x40000000 /* pme enable */
  123. #define SBTML_BE 0x80000000 /* bist enable */
  124. /* sbtmstatehigh */
  125. #define SBTMSTATEHIGH 0x9C /* offset */
  126. #define SBTMH_SERR 0x1 /* serror */
  127. #define SBTMH_INT 0x2 /* interrupt */
  128. #define SBTMH_BUSY 0x4 /* busy */
  129. #define SBTMH_GCR 0x20000000 /* gated clock request */
  130. #define SBTMH_BISTF 0x40000000 /* bist failed */
  131. #define SBTMH_BISTD 0x80000000 /* bist done */
  132. /* sbbwa0 */
  133. #define SBBWA0 0xA0 /* offset */
  134. #define SBBWA_TAB0_MASK 0xffff /* lookup table 0 */
  135. #define SBBWA_TAB1_MASK 0xffff /* lookup table 1 */
  136. #define SBBWA_TAB1_SHIFT 16
  137. /* sbimconfiglow */
  138. #define SBIMCONFIGLOW 0xA8 /* offset */
  139. #define SBIMCL_STO_MASK 0x7 /* service timeout */
  140. #define SBIMCL_RTO_MASK 0x70 /* request timeout */
  141. #define SBIMCL_RTO_SHIFT 4
  142. #define SBIMCL_CID_MASK 0xff0000 /* connection id */
  143. #define SBIMCL_CID_SHIFT 16
  144. /* sbimconfighigh */
  145. #define SBIMCONFIGHIGH 0xAC /* offset */
  146. #define SBIMCH_IEM_MASK 0xc /* inband error mode */
  147. #define SBIMCH_TEM_MASK 0x30 /* timeout error mode */
  148. #define SBIMCH_TEM_SHIFT 4
  149. #define SBIMCH_BEM_MASK 0xc0 /* bus error mode */
  150. #define SBIMCH_BEM_SHIFT 6
  151. /* sbadmatch0 */
  152. #define SBADMATCH0 0xB0 /* offset */
  153. #define SBAM_TYPE_MASK 0x3 /* address type */
  154. #define SBAM_AD64 0x4 /* reserved */
  155. #define SBAM_ADINT0_MASK 0xf8 /* type0 size */
  156. #define SBAM_ADINT0_SHIFT 3
  157. #define SBAM_ADINT1_MASK 0x1f8 /* type1 size */
  158. #define SBAM_ADINT1_SHIFT 3
  159. #define SBAM_ADINT2_MASK 0x1f8 /* type2 size */
  160. #define SBAM_ADINT2_SHIFT 3
  161. #define SBAM_ADEN 0x400 /* enable */
  162. #define SBAM_ADNEG 0x800 /* negative decode */
  163. #define SBAM_BASE0_MASK 0xffffff00 /* type0 base address */
  164. #define SBAM_BASE0_SHIFT 8
  165. #define SBAM_BASE1_MASK 0xfffff000 /* type1 base address for the core */
  166. #define SBAM_BASE1_SHIFT 12
  167. #define SBAM_BASE2_MASK 0xffff0000 /* type2 base address for the core */
  168. #define SBAM_BASE2_SHIFT 16
  169. /* sbtmconfiglow */
  170. #define SBTMCONFIGLOW 0xB8 /* offset */
  171. #define SBTMCL_CD_MASK 0xff /* clock divide */
  172. #define SBTMCL_CO_MASK 0xf800 /* clock offset */
  173. #define SBTMCL_CO_SHIFT 11
  174. #define SBTMCL_IF_MASK 0xfc0000 /* interrupt flags */
  175. #define SBTMCL_IF_SHIFT 18
  176. #define SBTMCL_IM_MASK 0x3000000 /* interrupt mode */
  177. #define SBTMCL_IM_SHIFT 24
  178. /* sbtmconfighigh */
  179. #define SBTMCONFIGHIGH 0xBC /* offset */
  180. #define SBTMCH_BM_MASK 0x3 /* busy mode */
  181. #define SBTMCH_RM_MASK 0x3 /* retry mode */
  182. #define SBTMCH_RM_SHIFT 2
  183. #define SBTMCH_SM_MASK 0x30 /* stop mode */
  184. #define SBTMCH_SM_SHIFT 4
  185. #define SBTMCH_EM_MASK 0x300 /* sb error mode */
  186. #define SBTMCH_EM_SHIFT 8
  187. #define SBTMCH_IM_MASK 0xc00 /* int mode */
  188. #define SBTMCH_IM_SHIFT 10
  189. /* sbbconfig */
  190. #define SBBCONFIG 0xC0 /* offset */
  191. #define SBBC_LAT_MASK 0x3 /* sb latency */
  192. #define SBBC_MAX0_MASK 0xf0000 /* maxccntr0 */
  193. #define SBBC_MAX0_SHIFT 16
  194. #define SBBC_MAX1_MASK 0xf00000 /* maxccntr1 */
  195. #define SBBC_MAX1_SHIFT 20
  196. /* sbbstate */
  197. #define SBBSTATE 0xC8 /* offset */
  198. #define SBBS_SRD 0x1 /* st reg disable */
  199. #define SBBS_HRD 0x2 /* hold reg disable */
  200. /* sbactcnfg */
  201. #define SBACTCNFG 0xD8 /* offset */
  202. /* sbflagst */
  203. #define SBFLAGST 0xE8 /* offset */
  204. /* sbidlow */
  205. #define SBIDLOW 0xF8 /* offset */
  206. #define SBIDL_CS_MASK 0x3 /* config space */
  207. #define SBIDL_AR_MASK 0x38 /* # address ranges supported */
  208. #define SBIDL_AR_SHIFT 3
  209. #define SBIDL_SYNCH 0x40 /* sync */
  210. #define SBIDL_INIT 0x80 /* initiator */
  211. #define SBIDL_MINLAT_MASK 0xf00 /* minimum backplane latency */
  212. #define SBIDL_MINLAT_SHIFT 8
  213. #define SBIDL_MAXLAT 0xf000 /* maximum backplane latency */
  214. #define SBIDL_MAXLAT_SHIFT 12
  215. #define SBIDL_FIRST 0x10000 /* this initiator is first */
  216. #define SBIDL_CW_MASK 0xc0000 /* cycle counter width */
  217. #define SBIDL_CW_SHIFT 18
  218. #define SBIDL_TP_MASK 0xf00000 /* target ports */
  219. #define SBIDL_TP_SHIFT 20
  220. #define SBIDL_IP_MASK 0xf000000 /* initiator ports */
  221. #define SBIDL_IP_SHIFT 24
  222. /* sbidhigh */
  223. #define SBIDHIGH 0xFC /* offset */
  224. #define SBIDH_RC_MASK 0xf /* revision code*/
  225. #define SBIDH_CC_MASK 0xfff0 /* core code */
  226. #define SBIDH_CC_SHIFT 4
  227. #define SBIDH_VC_MASK 0xffff0000 /* vendor code */
  228. #define SBIDH_VC_SHIFT 16
  229. #define SB_COMMIT 0xfd8 /* update buffered registers value */
  230. /* vendor codes */
  231. #define SB_VEND_BCM 0x4243 /* Broadcom's SB vendor code */
  232. /* core codes */
  233. #define SB_CC 0x800 /* chipcommon core */
  234. #define SB_ILINE20 0x801 /* iline20 core */
  235. #define SB_SDRAM 0x803 /* sdram core */
  236. #define SB_PCI 0x804 /* pci core */
  237. #define SB_MIPS 0x805 /* mips core */
  238. #define SB_ENET 0x806 /* enet mac core */
  239. #define SB_CODEC 0x807 /* v90 codec core */
  240. #define SB_USB 0x808 /* usb core */
  241. #define SB_ILINE100 0x80a /* iline100 core */
  242. #define SB_IPSEC 0x80b /* ipsec core */
  243. #define SB_PCMCIA 0x80d /* pcmcia core */
  244. #define SB_MEMC 0x80f /* memc sdram core */
  245. #define SB_EXTIF 0x811 /* external interface core */
  246. #define SB_D11 0x812 /* 802.11 MAC core */
  247. #define SB_MIPS3302 0x816 /* mips3302 core */
  248. #endif /* _SBCONFIG_H */