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

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*  *********************************************************************
  2.     *  SB1250 Board Support Package
  3.     *
  4.     *  SCD Constants and Macros File: sb1250_scd.h
  5.     *
  6.     *  This module contains constants and macros useful for
  7.     *  manipulating the System Control and Debug module on the 1250.
  8.     *
  9.     *  SB1250 specification level:  User's manual 1/02/02
  10.     *
  11.     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
  12.     *
  13.     *********************************************************************
  14.     *
  15.     *  Copyright 2000,2001
  16.     *  Broadcom Corporation. All rights reserved.
  17.     *
  18.     *  This program is free software; you can redistribute it and/or
  19.     *  modify it under the terms of the GNU General Public License as
  20.     *  published by the Free Software Foundation; either version 2 of
  21.     *  the License, or (at your option) any later version.
  22.     *
  23.     *  This program is distributed in the hope that it will be useful,
  24.     *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  25.     *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  26.     *  GNU General Public License for more details.
  27.     *
  28.     *  You should have received a copy of the GNU General Public License
  29.     *  along with this program; if not, write to the Free Software
  30.     *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  31.     *  MA 02111-1307 USA
  32.     ********************************************************************* */
  33. #ifndef _SB1250_SCD_H
  34. #define _SB1250_SCD_H
  35. #include "sb1250_defs.h"
  36. /*  *********************************************************************
  37.     *  System control/debug registers
  38.     ********************************************************************* */
  39. /*
  40.  * System Revision Register (Table 4-1)
  41.  */
  42. #define M_SYS_RESERVED     _SB_MAKEMASK(8,0)
  43. #define S_SYS_REVISION              _SB_MAKE64(8)
  44. #define M_SYS_REVISION              _SB_MAKEMASK(8,S_SYS_REVISION)
  45. #define V_SYS_REVISION(x)           _SB_MAKEVALUE(x,S_SYS_REVISION)
  46. #define G_SYS_REVISION(x)           _SB_GETVALUE(x,S_SYS_REVISION,M_SYS_REVISION)
  47. #define K_SYS_REVISION_PASS1     1
  48. #define K_SYS_REVISION_PASS2     3
  49. #define K_SYS_REVISION_PASS2_2     16
  50. #define K_SYS_REVISION_PASS3     32
  51. #define S_SYS_PART                  _SB_MAKE64(16)
  52. #define M_SYS_PART                  _SB_MAKEMASK(16,S_SYS_PART)
  53. #define V_SYS_PART(x)               _SB_MAKEVALUE(x,S_SYS_PART)
  54. #define G_SYS_PART(x)               _SB_GETVALUE(x,S_SYS_PART,M_SYS_PART)
  55. #define K_SYS_PART_SB1250           0x1250
  56. #define K_SYS_PART_SB1125           0x1125
  57. #define S_SYS_WID                   _SB_MAKE64(32)
  58. #define M_SYS_WID                   _SB_MAKEMASK(32,S_SYS_WID)
  59. #define V_SYS_WID(x)                _SB_MAKEVALUE(x,S_SYS_WID)
  60. #define G_SYS_WID(x)                _SB_GETVALUE(x,S_SYS_WID,M_SYS_WID)
  61. /*
  62.  * System Config Register (Table 4-2)
  63.  * Register: SCD_SYSTEM_CFG
  64.  */
  65. #define M_SYS_LDT_PLL_BYP           _SB_MAKEMASK1(3)
  66. #define M_SYS_PCI_SYNC_TEST_MODE    _SB_MAKEMASK1(4)
  67. #define M_SYS_IOB0_DIV              _SB_MAKEMASK1(5)
  68. #define M_SYS_IOB1_DIV              _SB_MAKEMASK1(6)
  69. #define S_SYS_PLL_DIV               _SB_MAKE64(7)
  70. #define M_SYS_PLL_DIV               _SB_MAKEMASK(5,S_SYS_PLL_DIV)
  71. #define V_SYS_PLL_DIV(x)            _SB_MAKEVALUE(x,S_SYS_PLL_DIV)
  72. #define G_SYS_PLL_DIV(x)            _SB_GETVALUE(x,S_SYS_PLL_DIV,M_SYS_PLL_DIV)
  73. #define M_SYS_SER0_ENABLE           _SB_MAKEMASK1(12)
  74. #define M_SYS_SER0_RSTB_EN          _SB_MAKEMASK1(13)
  75. #define M_SYS_SER1_ENABLE           _SB_MAKEMASK1(14)
  76. #define M_SYS_SER1_RSTB_EN          _SB_MAKEMASK1(15)
  77. #define M_SYS_PCMCIA_ENABLE         _SB_MAKEMASK1(16)
  78. #define S_SYS_BOOT_MODE             _SB_MAKE64(17)
  79. #define M_SYS_BOOT_MODE             _SB_MAKEMASK(2,S_SYS_BOOT_MODE)
  80. #define V_SYS_BOOT_MODE(x)          _SB_MAKEVALUE(x,S_SYS_BOOT_MODE)
  81. #define G_SYS_BOOT_MODE(x)          _SB_GETVALUE(x,S_SYS_BOOT_MODE,M_SYS_BOOT_MODE)
  82. #define K_SYS_BOOT_MODE_ROM32       0
  83. #define K_SYS_BOOT_MODE_ROM8        1
  84. #define K_SYS_BOOT_MODE_SMBUS_SMALL 2
  85. #define K_SYS_BOOT_MODE_SMBUS_BIG   3
  86. #define M_SYS_PCI_HOST              _SB_MAKEMASK1(19)
  87. #define M_SYS_PCI_ARBITER           _SB_MAKEMASK1(20)
  88. #define M_SYS_SOUTH_ON_LDT          _SB_MAKEMASK1(21)
  89. #define M_SYS_BIG_ENDIAN            _SB_MAKEMASK1(22)
  90. #define M_SYS_GENCLK_EN             _SB_MAKEMASK1(23)
  91. #define M_SYS_LDT_TEST_EN           _SB_MAKEMASK1(24)
  92. #define M_SYS_GEN_PARITY_EN         _SB_MAKEMASK1(25)
  93. #define S_SYS_CONFIG                26
  94. #define M_SYS_CONFIG                _SB_MAKEMASK(6,S_SYS_CONFIG)
  95. #define V_SYS_CONFIG(x)             _SB_MAKEVALUE(x,S_SYS_CONFIG)
  96. #define G_SYS_CONFIG(x)             _SB_GETVALUE(x,S_SYS_CONFIG,M_SYS_CONFIG)
  97. /* The following bits are writeable by JTAG only. */
  98. #define M_SYS_CLKSTOP               _SB_MAKEMASK1(32)
  99. #define M_SYS_CLKSTEP               _SB_MAKEMASK1(33)
  100. #define S_SYS_CLKCOUNT              34
  101. #define M_SYS_CLKCOUNT              _SB_MAKEMASK(8,S_SYS_CLKCOUNT)
  102. #define V_SYS_CLKCOUNT(x)           _SB_MAKEVALUE(x,S_SYS_CLKCOUNT)
  103. #define G_SYS_CLKCOUNT(x)           _SB_GETVALUE(x,S_SYS_CLKCOUNT,M_SYS_CLKCOUNT)
  104. #define M_SYS_PLL_BYPASS            _SB_MAKEMASK1(42)
  105. #define S_SYS_PLL_IREF     43
  106. #define M_SYS_PLL_IREF     _SB_MAKEMASK(2,S_SYS_PLL_IREF)
  107. #define S_SYS_PLL_VCO     45
  108. #define M_SYS_PLL_VCO     _SB_MAKEMASK(2,S_SYS_PLL_VCO)
  109. #define S_SYS_PLL_VREG     47
  110. #define M_SYS_PLL_VREG     _SB_MAKEMASK(2,S_SYS_PLL_VREG)
  111. #define M_SYS_MEM_RESET             _SB_MAKEMASK1(49)
  112. #define M_SYS_L2C_RESET             _SB_MAKEMASK1(50)
  113. #define M_SYS_IO_RESET_0            _SB_MAKEMASK1(51)
  114. #define M_SYS_IO_RESET_1            _SB_MAKEMASK1(52)
  115. #define M_SYS_SCD_RESET             _SB_MAKEMASK1(53)
  116. /* End of bits writable by JTAG only. */
  117. #define M_SYS_CPU_RESET_0           _SB_MAKEMASK1(54)
  118. #define M_SYS_CPU_RESET_1           _SB_MAKEMASK1(55)
  119. #define M_SYS_UNICPU0               _SB_MAKEMASK1(56)
  120. #define M_SYS_UNICPU1               _SB_MAKEMASK1(57)
  121. #define M_SYS_SB_SOFTRES            _SB_MAKEMASK1(58)
  122. #define M_SYS_EXT_RESET             _SB_MAKEMASK1(59)
  123. #define M_SYS_SYSTEM_RESET          _SB_MAKEMASK1(60)
  124. #define M_SYS_MISR_MODE             _SB_MAKEMASK1(61)
  125. #define M_SYS_MISR_RESET            _SB_MAKEMASK1(62)
  126. #define M_SYS_SW_FLAG     _SB_MAKEMASK1(63) /* PASS2 */
  127. /*
  128.  * Mailbox Registers (Table 4-3)
  129.  * Registers: SCD_MBOX_CPU_x
  130.  */
  131. #define S_MBOX_INT_3                0
  132. #define M_MBOX_INT_3                _SB_MAKEMASK(16,S_MBOX_INT_3)
  133. #define S_MBOX_INT_2                16
  134. #define M_MBOX_INT_2                _SB_MAKEMASK(16,S_MBOX_INT_2)
  135. #define S_MBOX_INT_1                32
  136. #define M_MBOX_INT_1                _SB_MAKEMASK(16,S_MBOX_INT_1)
  137. #define S_MBOX_INT_0                48
  138. #define M_MBOX_INT_0                _SB_MAKEMASK(16,S_MBOX_INT_0)
  139. /*
  140.  * Watchdog Registers (Table 4-8) (Table 4-9) (Table 4-10)
  141.  * Registers: SCD_WDOG_INIT_CNT_x
  142.  */
  143. #define V_SCD_WDOG_FREQ             1000000
  144. #define S_SCD_WDOG_INIT             0
  145. #define M_SCD_WDOG_INIT             _SB_MAKEMASK(13,S_SCD_WDOG_INIT)
  146. #define S_SCD_WDOG_CNT              0
  147. #define M_SCD_WDOG_CNT              _SB_MAKEMASK(13,S_SCD_WDOG_CNT)
  148. #define M_SCD_WDOG_ENABLE           _SB_MAKEMASK1(0)
  149. /*
  150.  * Timer Registers (Table 4-11) (Table 4-12) (Table 4-13)
  151.  */
  152. #define V_SCD_TIMER_FREQ            1000000
  153. #define S_SCD_TIMER_INIT            0
  154. #define M_SCD_TIMER_INIT            _SB_MAKEMASK(20,S_SCD_TIMER_INIT)
  155. #define V_SCD_TIMER_INIT(x)         _SB_MAKEVALUE(x,S_SCD_TIMER_INIT)
  156. #define G_SCD_TIMER_INIT(x)         _SB_GETVALUE(x,S_SCD_TIMER_INIT,M_SCD_TIMER_INIT)
  157. #define S_SCD_TIMER_CNT             0
  158. #define M_SCD_TIMER_CNT             _SB_MAKEMASK(20,S_SCD_TIMER_CNT)
  159. #define V_SCD_TIMER_CNT(x)         _SB_MAKEVALUE(x,S_SCD_TIMER_CNT)
  160. #define G_SCD_TIMER_CNT(x)         _SB_GETVALUE(x,S_SCD_TIMER_CNT,M_SCD_TIMER_CNT)
  161. #define M_SCD_TIMER_ENABLE          _SB_MAKEMASK1(0)
  162. #define M_SCD_TIMER_MODE            _SB_MAKEMASK1(1)
  163. #define M_SCD_TIMER_MODE_CONTINUOUS M_SCD_TIMER_MODE
  164. /*
  165.  * System Performance Counters
  166.  */
  167. #define S_SPC_CFG_SRC0            0
  168. #define M_SPC_CFG_SRC0            _SB_MAKEMASK(8,S_SPC_CFG_SRC0)
  169. #define V_SPC_CFG_SRC0(x)         _SB_MAKEVALUE(x,S_SPC_CFG_SRC0)
  170. #define G_SPC_CFG_SRC0(x)         _SB_GETVALUE(x,S_SPC_CFG_SRC0,M_SPC_CFG_SRC0)
  171. #define S_SPC_CFG_SRC1            8
  172. #define M_SPC_CFG_SRC1            _SB_MAKEMASK(8,S_SPC_CFG_SRC1)
  173. #define V_SPC_CFG_SRC1(x)         _SB_MAKEVALUE(x,S_SPC_CFG_SRC1)
  174. #define G_SPC_CFG_SRC1(x)         _SB_GETVALUE(x,S_SPC_CFG_SRC1,M_SPC_CFG_SRC1)
  175. #define S_SPC_CFG_SRC2            16
  176. #define M_SPC_CFG_SRC2            _SB_MAKEMASK(8,S_SPC_CFG_SRC2)
  177. #define V_SPC_CFG_SRC2(x)         _SB_MAKEVALUE(x,S_SPC_CFG_SRC2)
  178. #define G_SPC_CFG_SRC2(x)         _SB_GETVALUE(x,S_SPC_CFG_SRC2,M_SPC_CFG_SRC2)
  179. #define S_SPC_CFG_SRC3            24
  180. #define M_SPC_CFG_SRC3            _SB_MAKEMASK(8,S_SPC_CFG_SRC3)
  181. #define V_SPC_CFG_SRC3(x)         _SB_MAKEVALUE(x,S_SPC_CFG_SRC3)
  182. #define G_SPC_CFG_SRC3(x)         _SB_GETVALUE(x,S_SPC_CFG_SRC3,M_SPC_CFG_SRC3)
  183. #define M_SPC_CFG_CLEAR _SB_MAKEMASK1(32)
  184. #define M_SPC_CFG_ENABLE _SB_MAKEMASK1(33)
  185. /*
  186.  * Bus Watcher
  187.  */
  188. #define S_SCD_BERR_TID            8
  189. #define M_SCD_BERR_TID            _SB_MAKEMASK(10,S_SCD_BERR_TID)
  190. #define V_SCD_BERR_TID(x)         _SB_MAKEVALUE(x,S_SCD_BERR_TID)
  191. #define G_SCD_BERR_TID(x)         _SB_GETVALUE(x,S_SCD_BERR_TID,M_SCD_BERR_TID)
  192. #define S_SCD_BERR_RID            18
  193. #define M_SCD_BERR_RID            _SB_MAKEMASK(4,S_SCD_BERR_RID)
  194. #define V_SCD_BERR_RID(x)         _SB_MAKEVALUE(x,S_SCD_BERR_RID)
  195. #define G_SCD_BERR_RID(x)         _SB_GETVALUE(x,S_SCD_BERR_RID,M_SCD_BERR_RID)
  196. #define S_SCD_BERR_DCODE            22
  197. #define M_SCD_BERR_DCODE            _SB_MAKEMASK(3,S_SCD_BERR_DCODE)
  198. #define V_SCD_BERR_DCODE(x)         _SB_MAKEVALUE(x,S_SCD_BERR_DCODE)
  199. #define G_SCD_BERR_DCODE(x)         _SB_GETVALUE(x,S_SCD_BERR_DCODE,M_SCD_BERR_DCODE)
  200. #define M_SCD_BERR_MULTERRS _SB_MAKEMASK1(30)
  201. #define S_SCD_L2ECC_CORR_D            0
  202. #define M_SCD_L2ECC_CORR_D            _SB_MAKEMASK(8,S_SCD_L2ECC_CORR_D)
  203. #define V_SCD_L2ECC_CORR_D(x)         _SB_MAKEVALUE(x,S_SCD_L2ECC_CORR_D)
  204. #define G_SCD_L2ECC_CORR_D(x)         _SB_GETVALUE(x,S_SCD_L2ECC_CORR_D,M_SCD_L2ECC_CORR_D)
  205. #define S_SCD_L2ECC_BAD_D            8
  206. #define M_SCD_L2ECC_BAD_D            _SB_MAKEMASK(8,S_SCD_L2ECC_BAD_D)
  207. #define V_SCD_L2ECC_BAD_D(x)         _SB_MAKEVALUE(x,S_SCD_L2ECC_BAD_D)
  208. #define G_SCD_L2ECC_BAD_D(x)         _SB_GETVALUE(x,S_SCD_L2ECC_BAD_D,M_SCD_L2ECC_BAD_D)
  209. #define S_SCD_L2ECC_CORR_T            16
  210. #define M_SCD_L2ECC_CORR_T            _SB_MAKEMASK(8,S_SCD_L2ECC_CORR_T)
  211. #define V_SCD_L2ECC_CORR_T(x)         _SB_MAKEVALUE(x,S_SCD_L2ECC_CORR_T)
  212. #define G_SCD_L2ECC_CORR_T(x)         _SB_GETVALUE(x,S_SCD_L2ECC_CORR_T,M_SCD_L2ECC_CORR_T)
  213. #define S_SCD_L2ECC_BAD_T            24
  214. #define M_SCD_L2ECC_BAD_T            _SB_MAKEMASK(8,S_SCD_L2ECC_BAD_T)
  215. #define V_SCD_L2ECC_BAD_T(x)         _SB_MAKEVALUE(x,S_SCD_L2ECC_BAD_T)
  216. #define G_SCD_L2ECC_BAD_T(x)         _SB_GETVALUE(x,S_SCD_L2ECC_BAD_T,M_SCD_L2ECC_BAD_T)
  217. #define S_SCD_MEM_ECC_CORR            0
  218. #define M_SCD_MEM_ECC_CORR            _SB_MAKEMASK(8,S_SCD_MEM_ECC_CORR)
  219. #define V_SCD_MEM_ECC_CORR(x)         _SB_MAKEVALUE(x,S_SCD_MEM_ECC_CORR)
  220. #define G_SCD_MEM_ECC_CORR(x)         _SB_GETVALUE(x,S_SCD_MEM_ECC_CORR,M_SCD_MEM_ECC_CORR)
  221. #define S_SCD_MEM_ECC_BAD            16
  222. #define M_SCD_MEM_ECC_BAD            _SB_MAKEMASK(8,S_SCD_MEM_ECC_BAD)
  223. #define V_SCD_MEM_ECC_BAD(x)         _SB_MAKEVALUE(x,S_SCD_MEM_ECC_BAD)
  224. #define G_SCD_MEM_ECC_BAD(x)         _SB_GETVALUE(x,S_SCD_MEM_ECC_BAD,M_SCD_MEM_ECC_BAD)
  225. #define S_SCD_MEM_BUSERR            24
  226. #define M_SCD_MEM_BUSERR            _SB_MAKEMASK(8,S_SCD_MEM_BUSERR)
  227. #define V_SCD_MEM_BUSERR(x)         _SB_MAKEVALUE(x,S_SCD_MEM_BUSERR)
  228. #define G_SCD_MEM_BUSERR(x)         _SB_GETVALUE(x,S_SCD_MEM_BUSERR,M_SCD_MEM_BUSERR)
  229. /*
  230.  * Address Trap Registers
  231.  */
  232. #define M_ATRAP_INDEX   _SB_MAKEMASK(4,0)
  233. #define M_ATRAP_ADDRESS   _SB_MAKEMASK(40,0)
  234. #define S_ATRAP_CFG_CNT            0
  235. #define M_ATRAP_CFG_CNT            _SB_MAKEMASK(3,S_ATRAP_CFG_CNT)
  236. #define V_ATRAP_CFG_CNT(x)         _SB_MAKEVALUE(x,S_ATRAP_CFG_CNT)
  237. #define G_ATRAP_CFG_CNT(x)         _SB_GETVALUE(x,S_ATRAP_CFG_CNT,M_ATRAP_CFG_CNT)
  238. #define M_ATRAP_CFG_WRITE    _SB_MAKEMASK1(3)
  239. #define M_ATRAP_CFG_ALL       _SB_MAKEMASK1(4)
  240. #define M_ATRAP_CFG_INV        _SB_MAKEMASK1(5)
  241. #define M_ATRAP_CFG_USESRC    _SB_MAKEMASK1(6)
  242. #define M_ATRAP_CFG_SRCINV    _SB_MAKEMASK1(7)
  243. #define S_ATRAP_CFG_AGENTID     8
  244. #define M_ATRAP_CFG_AGENTID     _SB_MAKEMASK(4,S_ATRAP_CFG_AGENTID)
  245. #define V_ATRAP_CFG_AGENTID(x)  _SB_MAKEVALUE(x,S_ATRAP_CFG_AGENTID)
  246. #define G_ATRAP_CFG_AGENTID(x)  _SB_GETVALUE(x,S_ATRAP_CFG_AGENTID,M_ATRAP_CFG_AGENTID)
  247. #define K_BUS_AGENT_CPU0 0
  248. #define K_BUS_AGENT_CPU1 1
  249. #define K_BUS_AGENT_IOB0 2
  250. #define K_BUS_AGENT_IOB1 3
  251. #define K_BUS_AGENT_SCD 4
  252. #define K_BUS_AGENT_RESERVED 5
  253. #define K_BUS_AGENT_L2C 6
  254. #define K_BUS_AGENT_MC 7
  255. #define S_ATRAP_CFG_CATTR     12
  256. #define M_ATRAP_CFG_CATTR     _SB_MAKEMASK(3,S_ATRAP_CFG_CATTR)
  257. #define V_ATRAP_CFG_CATTR(x)  _SB_MAKEVALUE(x,S_ATRAP_CFG_CATTR)
  258. #define G_ATRAP_CFG_CATTR(x)  _SB_GETVALUE(x,S_ATRAP_CFG_CATTR,M_ATRAP_CFG_CATTR)
  259. #define K_ATRAP_CFG_CATTR_IGNORE 0
  260. #define K_ATRAP_CFG_CATTR_UNC     1
  261. #define K_ATRAP_CFG_CATTR_CACHEABLE 2
  262. #define K_ATRAP_CFG_CATTR_NONCOH   3
  263. #define K_ATRAP_CFG_CATTR_COHERENT 4
  264. #define K_ATRAP_CFG_CATTR_NOTUNC 5
  265. #define K_ATRAP_CFG_CATTR_NOTNONCOH 6
  266. #define K_ATRAP_CFG_CATTR_NOTCOHERENT   7
  267. /*
  268.  * Trace Buffer Config register
  269.  */
  270. #define M_SCD_TRACE_CFG_RESET           _SB_MAKEMASK1(0)
  271. #define M_SCD_TRACE_CFG_START_READ      _SB_MAKEMASK1(1)
  272. #define M_SCD_TRACE_CFG_START           _SB_MAKEMASK1(2)
  273. #define M_SCD_TRACE_CFG_STOP            _SB_MAKEMASK1(3)
  274. #define M_SCD_TRACE_CFG_FREEZE          _SB_MAKEMASK1(4)
  275. #define M_SCD_TRACE_CFG_FREEZE_FULL     _SB_MAKEMASK1(5)
  276. #define M_SCD_TRACE_CFG_DEBUG_FULL      _SB_MAKEMASK1(6)
  277. #define M_SCD_TRACE_CFG_FULL            _SB_MAKEMASK1(7)
  278. #define M_SCD_TRACE_CFG_FORCECNT        _SB_MAKEMASK1(8) /* PASS2 */
  279. #define S_SCD_TRACE_CFG_CUR_ADDR        10
  280. #define M_SCD_TRACE_CFG_CUR_ADDR        _SB_MAKEMASK(8,S_SCD_TRACE_CFG_CUR_ADDR)
  281. #define V_SCD_TRACE_CFG_CUR_ADDR(x)     _SB_MAKEVALUE(x,S_SCD_TRACE_CFG_CUR_ADDR)
  282. #define G_SCD_TRACE_CFG_CUR_ADDR(x)     _SB_GETVALUE(x,S_SCD_TRACE_CFG_CUR_ADDR,M_SCD_TRACE_CFG_CUR_ADDR)
  283. /*
  284.  * Trace Event registers
  285.  */
  286. #define S_SCD_TREVT_ADDR_MATCH          0
  287. #define M_SCD_TREVT_ADDR_MATCH          _SB_MAKEMASK(4,S_SCD_TREVT_ADDR_MATCH)
  288. #define V_SCD_TREVT_ADDR_MATCH(x)       _SB_MAKEVALUE(x,S_SCD_TREVT_ADDR_MATCH)
  289. #define G_SCD_TREVT_ADDR_MATCH(x)       _SB_GETVALUE(x,S_SCD_TREVT_ADDR_MATCH,M_SCD_TREVT_ADDR_MATCH)
  290. #define M_SCD_TREVT_REQID_MATCH         _SB_MAKEMASK1(4)
  291. #define M_SCD_TREVT_DATAID_MATCH        _SB_MAKEMASK1(5)
  292. #define M_SCD_TREVT_RESPID_MATCH        _SB_MAKEMASK1(6)
  293. #define M_SCD_TREVT_INTERRUPT           _SB_MAKEMASK1(7)
  294. #define M_SCD_TREVT_DEBUG_PIN           _SB_MAKEMASK1(9)
  295. #define M_SCD_TREVT_WRITE               _SB_MAKEMASK1(10)
  296. #define M_SCD_TREVT_READ                _SB_MAKEMASK1(11)
  297. #define S_SCD_TREVT_REQID               12
  298. #define M_SCD_TREVT_REQID               _SB_MAKEMASK(4,S_SCD_TREVT_REQID)
  299. #define V_SCD_TREVT_REQID(x)            _SB_MAKEVALUE(x,S_SCD_TREVT_REQID)
  300. #define G_SCD_TREVT_REQID(x)            _SB_GETVALUE(x,S_SCD_TREVT_REQID,M_SCD_TREVT_REQID)
  301. #define S_SCD_TREVT_RESPID              16
  302. #define M_SCD_TREVT_RESPID              _SB_MAKEMASK(4,S_SCD_TREVT_RESPID)
  303. #define V_SCD_TREVT_RESPID(x)           _SB_MAKEVALUE(x,S_SCD_TREVT_RESPID)
  304. #define G_SCD_TREVT_RESPID(x)           _SB_GETVALUE(x,S_SCD_TREVT_RESPID,M_SCD_TREVT_RESPID)
  305. #define S_SCD_TREVT_DATAID              20
  306. #define M_SCD_TREVT_DATAID              _SB_MAKEMASK(4,S_SCD_TREVT_DATAID)
  307. #define V_SCD_TREVT_DATAID(x)           _SB_MAKEVALUE(x,S_SCD_TREVT_DATAID)
  308. #define G_SCD_TREVT_DATAID(x)           _SB_GETVALUE(x,S_SCD_TREVT_DATAID,M_SCD_TREVT_DATID)
  309. #define S_SCD_TREVT_COUNT               24
  310. #define M_SCD_TREVT_COUNT               _SB_MAKEMASK(8,S_SCD_TREVT_COUNT)
  311. #define V_SCD_TREVT_COUNT(x)            _SB_MAKEVALUE(x,S_SCD_TREVT_COUNT)
  312. #define G_SCD_TREVT_COUNT(x)            _SB_GETVALUE(x,S_SCD_TREVT_COUNT,M_SCD_TREVT_COUNT)
  313. /*
  314.  * Trace Sequence registers
  315.  */
  316. #define S_SCD_TRSEQ_EVENT4              0
  317. #define M_SCD_TRSEQ_EVENT4              _SB_MAKEMASK(4,S_SCD_TRSEQ_EVENT4)
  318. #define V_SCD_TRSEQ_EVENT4(x)           _SB_MAKEVALUE(x,S_SCD_TRSEQ_EVENT4)
  319. #define G_SCD_TRSEQ_EVENT4(x)           _SB_GETVALUE(x,S_SCD_TRSEQ_EVENT4,M_SCD_TRSEQ_EVENT4)
  320. #define S_SCD_TRSEQ_EVENT3              4
  321. #define M_SCD_TRSEQ_EVENT3              _SB_MAKEMASK(4,S_SCD_TRSEQ_EVENT3)
  322. #define V_SCD_TRSEQ_EVENT3(x)           _SB_MAKEVALUE(x,S_SCD_TRSEQ_EVENT3)
  323. #define G_SCD_TRSEQ_EVENT3(x)           _SB_GETVALUE(x,S_SCD_TRSEQ_EVENT3,M_SCD_TRSEQ_EVENT3)
  324. #define S_SCD_TRSEQ_EVENT2              8
  325. #define M_SCD_TRSEQ_EVENT2              _SB_MAKEMASK(4,S_SCD_TRSEQ_EVENT2)
  326. #define V_SCD_TRSEQ_EVENT2(x)           _SB_MAKEVALUE(x,S_SCD_TRSEQ_EVENT2)
  327. #define G_SCD_TRSEQ_EVENT2(x)           _SB_GETVALUE(x,S_SCD_TRSEQ_EVENT2,M_SCD_TRSEQ_EVENT2)
  328. #define S_SCD_TRSEQ_EVENT1              12
  329. #define M_SCD_TRSEQ_EVENT1              _SB_MAKEMASK(4,S_SCD_TRSEQ_EVENT1)
  330. #define V_SCD_TRSEQ_EVENT1(x)           _SB_MAKEVALUE(x,S_SCD_TRSEQ_EVENT1)
  331. #define G_SCD_TRSEQ_EVENT1(x)           _SB_GETVALUE(x,S_SCD_TRSEQ_EVENT1,M_SCD_TRSEQ_EVENT1)
  332. #define K_SCD_TRSEQ_E0                  0
  333. #define K_SCD_TRSEQ_E1                  1
  334. #define K_SCD_TRSEQ_E2                  2
  335. #define K_SCD_TRSEQ_E3                  3
  336. #define K_SCD_TRSEQ_E0_E1               4
  337. #define K_SCD_TRSEQ_E1_E2               5
  338. #define K_SCD_TRSEQ_E2_E3               6
  339. #define K_SCD_TRSEQ_E0_E1_E2            7
  340. #define K_SCD_TRSEQ_E0_E1_E2_E3         8
  341. #define K_SCD_TRSEQ_E0E1                9
  342. #define K_SCD_TRSEQ_E0E1E2              10
  343. #define K_SCD_TRSEQ_E0E1E2E3            11
  344. #define K_SCD_TRSEQ_E0E1_E2             12
  345. #define K_SCD_TRSEQ_E0E1_E2E3           13
  346. #define K_SCD_TRSEQ_E0E1_E2_E3          14
  347. #define K_SCD_TRSEQ_IGNORED             15
  348. #define K_SCD_TRSEQ_TRIGGER_ALL         (V_SCD_TRSEQ_EVENT1(K_SCD_TRSEQ_IGNORED) | 
  349.                                          V_SCD_TRSEQ_EVENT2(K_SCD_TRSEQ_IGNORED) | 
  350.                                          V_SCD_TRSEQ_EVENT3(K_SCD_TRSEQ_IGNORED) | 
  351.                                          V_SCD_TRSEQ_EVENT4(K_SCD_TRSEQ_IGNORED))
  352. #define S_SCD_TRSEQ_FUNCTION            16
  353. #define M_SCD_TRSEQ_FUNCTION            _SB_MAKEMASK(4,S_SCD_TRSEQ_FUNCTION)
  354. #define V_SCD_TRSEQ_FUNCTION(x)         _SB_MAKEVALUE(x,S_SCD_TRSEQ_FUNCTION)
  355. #define G_SCD_TRSEQ_FUNCTION(x)         _SB_GETVALUE(x,S_SCD_TRSEQ_FUNCTION,M_SCD_TRSEQ_FUNCTION)
  356. #define K_SCD_TRSEQ_FUNC_NOP            0
  357. #define K_SCD_TRSEQ_FUNC_START          1
  358. #define K_SCD_TRSEQ_FUNC_STOP           2
  359. #define K_SCD_TRSEQ_FUNC_FREEZE         3
  360. #define V_SCD_TRSEQ_FUNC_NOP            V_SCD_TRSEQ_FUNCTION(K_SCD_TRSEQ_FUNC_NOP)
  361. #define V_SCD_TRSEQ_FUNC_START          V_SCD_TRSEQ_FUNCTION(K_SCD_TRSEQ_FUNC_START)
  362. #define V_SCD_TRSEQ_FUNC_STOP           V_SCD_TRSEQ_FUNCTION(K_SCD_TRSEQ_FUNC_STOP)
  363. #define V_SCD_TRSEQ_FUNC_FREEZE         V_SCD_TRSEQ_FUNCTION(K_SCD_TRSEQ_FUNC_FREEZE)
  364. #define M_SCD_TRSEQ_ASAMPLE             _SB_MAKEMASK1(18)
  365. #define M_SCD_TRSEQ_DSAMPLE             _SB_MAKEMASK1(19)
  366. #define M_SCD_TRSEQ_DEBUGPIN            _SB_MAKEMASK1(20)
  367. #define M_SCD_TRSEQ_DEBUGCPU            _SB_MAKEMASK1(21)
  368. #define M_SCD_TRSEQ_CLEARUSE            _SB_MAKEMASK1(22)
  369. #endif