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

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*  *********************************************************************
  2.     *  SB1250 Board Support Package
  3.     *
  4.     *  DMA definitions File: sb1250_dma.h
  5.     *
  6.     *  This module contains constants and macros useful for
  7.     *  programming the SB1250's DMA controllers, both the data mover
  8.     *  and the Ethernet DMA.
  9.     *
  10.     *  SB1250 specification level:  User's manual 1/02/02
  11.     *
  12.     *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
  13.     *
  14.     *********************************************************************
  15.     *
  16.     *  Copyright 2000,2001
  17.     *  Broadcom Corporation. All rights reserved.
  18.     *
  19.     *  This program is free software; you can redistribute it and/or
  20.     *  modify it under the terms of the GNU General Public License as
  21.     *  published by the Free Software Foundation; either version 2 of
  22.     *  the License, or (at your option) any later version.
  23.     *
  24.     *  This program is distributed in the hope that it will be useful,
  25.     *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  26.     *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  27.     *  GNU General Public License for more details.
  28.     *
  29.     *  You should have received a copy of the GNU General Public License
  30.     *  along with this program; if not, write to the Free Software
  31.     *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  32.     *  MA 02111-1307 USA
  33.     ********************************************************************* */
  34. #ifndef _SB1250_DMA_H
  35. #define _SB1250_DMA_H
  36. #include "sb1250_defs.h"
  37. /*  *********************************************************************
  38.     *  DMA Registers
  39.     ********************************************************************* */
  40. /*
  41.  * Ethernet and Serial DMA Configuration Register 0  (Table 7-4)
  42.  * Registers: DMA_CONFIG0_MAC_x_RX_CH_0
  43.  * Registers: DMA_CONFIG0_MAC_x_TX_CH_0
  44.  * Registers: DMA_CONFIG0_SER_x_RX
  45.  * Registers: DMA_CONFIG0_SER_x_TX
  46.  */
  47. #define M_DMA_DROP                  _SB_MAKEMASK1(0)
  48. #define M_DMA_CHAIN_SEL             _SB_MAKEMASK1(1)
  49. #define M_DMA_RESERVED1             _SB_MAKEMASK1(2)
  50. #define M_DMA_EOP_INT_EN            _SB_MAKEMASK1(3)
  51. #define M_DMA_HWM_INT_EN            _SB_MAKEMASK1(4)
  52. #define M_DMA_LWM_INT_EN            _SB_MAKEMASK1(5)
  53. #define M_DMA_TBX_EN                _SB_MAKEMASK1(6)
  54. #define M_DMA_TDX_EN                _SB_MAKEMASK1(7)
  55. #define S_DMA_INT_PKTCNT            _SB_MAKE64(8)
  56. #define M_DMA_INT_PKTCNT            _SB_MAKEMASK(8,S_DMA_INT_PKTCNT)
  57. #define V_DMA_INT_PKTCNT(x)         _SB_MAKEVALUE(x,S_DMA_INT_PKTCNT)
  58. #define G_DMA_INT_PKTCNT(x)         _SB_GETVALUE(x,S_DMA_INT_PKTCNT,M_DMA_INT_PKTCNT)
  59. #define S_DMA_RINGSZ                _SB_MAKE64(16)
  60. #define M_DMA_RINGSZ                _SB_MAKEMASK(16,S_DMA_RINGSZ)
  61. #define V_DMA_RINGSZ(x)             _SB_MAKEVALUE(x,S_DMA_RINGSZ)
  62. #define G_DMA_RINGSZ(x)             _SB_GETVALUE(x,S_DMA_RINGSZ,M_DMA_RINGSZ)
  63. #define S_DMA_HIGH_WATERMARK        _SB_MAKE64(32)
  64. #define M_DMA_HIGH_WATERMARK        _SB_MAKEMASK(16,S_DMA_HIGH_WATERMARK)
  65. #define V_DMA_HIGH_WATERMARK(x)     _SB_MAKEVALUE(x,S_DMA_HIGH_WATERMARK)
  66. #define G_DMA_HIGH_WATERMARK(x)     _SB_GETVALUE(x,S_DMA_HIGH_WATERMARK,M_DMA_HIGH_WATERMARK)
  67. #define S_DMA_LOW_WATERMARK         _SB_MAKE64(48)
  68. #define M_DMA_LOW_WATERMARK         _SB_MAKEMASK(16,S_DMA_LOW_WATERMARK)
  69. #define V_DMA_LOW_WATERMARK(x)      _SB_MAKEVALUE(x,S_DMA_LOW_WATERMARK)
  70. #define G_DMA_LOW_WATERMARK(x)      _SB_GETVALUE(x,S_DMA_LOW_WATERMARK,M_DMA_LOW_WATERMARK)
  71. /*
  72.  * Ethernet and Serial DMA Configuration Register 2 (Table 7-5)
  73.  * Registers: DMA_CONFIG1_MAC_x_RX_CH_0
  74.  * Registers: DMA_CONFIG1_DMA_x_TX_CH_0
  75.  * Registers: DMA_CONFIG1_SER_x_RX
  76.  * Registers: DMA_CONFIG1_SER_x_TX
  77.  */
  78. #define M_DMA_HDR_CF_EN             _SB_MAKEMASK1(0)
  79. #define M_DMA_ASIC_XFR_EN           _SB_MAKEMASK1(1)
  80. #define M_DMA_PRE_ADDR_EN           _SB_MAKEMASK1(2)
  81. #define M_DMA_FLOW_CTL_EN           _SB_MAKEMASK1(3)
  82. #define M_DMA_NO_DSCR_UPDT          _SB_MAKEMASK1(4)
  83. #define M_DMA_L2CA     _SB_MAKEMASK1(5)
  84. #define M_DMA_MBZ1                  _SB_MAKEMASK(6,15)
  85. #define S_DMA_HDR_SIZE              _SB_MAKE64(21)
  86. #define M_DMA_HDR_SIZE              _SB_MAKEMASK(9,S_DMA_HDR_SIZE)
  87. #define V_DMA_HDR_SIZE(x)           _SB_MAKEVALUE(x,S_DMA_HDR_SIZE)
  88. #define G_DMA_HDR_SIZE(x)           _SB_GETVALUE(x,S_DMA_HDR_SIZE,M_DMA_HDR_SIZE)
  89. #define M_DMA_MBZ2                  _SB_MAKEMASK(5,32)
  90. #define S_DMA_ASICXFR_SIZE          _SB_MAKE64(37)
  91. #define M_DMA_ASICXFR_SIZE          _SB_MAKEMASK(9,S_DMA_ASICXFR_SIZE)
  92. #define V_DMA_ASICXFR_SIZE(x)       _SB_MAKEVALUE(x,S_DMA_ASICXFR_SIZE)
  93. #define G_DMA_ASICXFR_SIZE(x)       _SB_GETVALUE(x,S_DMA_ASICXFR_SIZE,M_DMA_ASICXFR_SIZE)
  94. #define S_DMA_INT_TIMEOUT           _SB_MAKE64(48)
  95. #define M_DMA_INT_TIMEOUT           _SB_MAKEMASK(16,S_DMA_INT_TIMEOUT)
  96. #define V_DMA_INT_TIMEOUT(x)        _SB_MAKEVALUE(x,S_DMA_INT_TIMEOUT)
  97. #define G_DMA_INT_TIMEOUT(x)        _SB_GETVALUE(x,S_DMA_INT_TIMEOUT,M_DMA_INT_TIMEOUT)
  98. /*
  99.  * Ethernet and Serial DMA Descriptor base address (Table 7-6)
  100.  */
  101. #define M_DMA_DSCRBASE_MBZ          _SB_MAKEMASK(4,0)
  102. /*
  103.  * ASIC Mode Base Address (Table 7-7)
  104.  */
  105. #define M_DMA_ASIC_BASE_MBZ         _SB_MAKEMASK(20,0)
  106. /*
  107.  * DMA Descriptor Count Registers (Table 7-8)
  108.  */
  109. /* No bitfields */
  110. /*
  111.  * Current Descriptor Address Register (Table 7-11)
  112.  */
  113. #define S_DMA_CURDSCR_ADDR          _SB_MAKE64(0)
  114. #define M_DMA_CURDSCR_ADDR          _SB_MAKEMASK(40,S_DMA_CURDSCR_ADDR)
  115. #define S_DMA_CURDSCR_COUNT         _SB_MAKE64(48)
  116. #define M_DMA_CURDSCR_COUNT         _SB_MAKEMASK(16,S_DMA_CURDSCR_COUNT)
  117. /*  *********************************************************************
  118.     *  DMA Descriptors
  119.     ********************************************************************* */
  120. /*
  121.  * Descriptor doubleword "A"  (Table 7-12)
  122.  */
  123. #define S_DMA_DSCRA_OFFSET          _SB_MAKE64(0)
  124. #define M_DMA_DSCRA_OFFSET          _SB_MAKEMASK(5,S_DMA_DSCRA_OFFSET)
  125. /* Note: Don't shift the address over, just mask it with the mask below */
  126. #define S_DMA_DSCRA_A_ADDR          _SB_MAKE64(5)
  127. #define M_DMA_DSCRA_A_ADDR          _SB_MAKEMASK(35,S_DMA_DSCRA_A_ADDR)
  128. #define M_DMA_DSCRA_A_ADDR_OFFSET   (M_DMA_DSCRA_OFFSET | M_DMA_DSCRA_A_ADDR)
  129. #define S_DMA_DSCRA_A_SIZE          _SB_MAKE64(40)
  130. #define M_DMA_DSCRA_A_SIZE          _SB_MAKEMASK(9,S_DMA_DSCRA_A_SIZE)
  131. #define V_DMA_DSCRA_A_SIZE(x)       _SB_MAKEVALUE(x,S_DMA_DSCRA_A_SIZE)
  132. #define G_DMA_DSCRA_A_SIZE(x)       _SB_GETVALUE(x,S_DMA_DSCRA_A_SIZE,M_DMA_DSCRA_A_SIZE)
  133. #define M_DMA_DSCRA_INTERRUPT       _SB_MAKEMASK1(49)
  134. #define M_DMA_DSCRA_OFFSETB     _SB_MAKEMASK1(50)
  135. #define S_DMA_DSCRA_STATUS          _SB_MAKE64(51)
  136. #define M_DMA_DSCRA_STATUS          _SB_MAKEMASK(13,S_DMA_DSCRA_STATUS)
  137. #define V_DMA_DSCRA_STATUS(x)       _SB_MAKEVALUE(x,S_DMA_DSCRA_STATUS)
  138. #define G_DMA_DSCRA_STATUS(x)       _SB_GETVALUE(x,S_DMA_DSCRA_STATUS,M_DMA_DSCRA_STATUS)
  139. /*
  140.  * Descriptor doubleword "B"  (Table 7-13)
  141.  */
  142. #define S_DMA_DSCRB_OPTIONS         _SB_MAKE64(0)
  143. #define M_DMA_DSCRB_OPTIONS         _SB_MAKEMASK(4,S_DMA_DSCRB_OPTIONS)
  144. #define V_DMA_DSCRB_OPTIONS(x)      _SB_MAKEVALUE(x,S_DMA_DSCRB_OPTIONS)
  145. #define G_DMA_DSCRB_OPTIONS(x)      _SB_GETVALUE(x,S_DMA_DSCRB_OPTIONS,M_DMA_DSCRB_OPTIONS)
  146. #define R_DMA_DSCRB_ADDR            _SB_MAKE64(0x10)
  147. /* Note: Don't shift the address over, just mask it with the mask below */
  148. #define S_DMA_DSCRB_B_ADDR          _SB_MAKE64(5)
  149. #define M_DMA_DSCRB_B_ADDR          _SB_MAKEMASK(35,S_DMA_DSCRB_B_ADDR)
  150. #define S_DMA_DSCRB_B_SIZE          _SB_MAKE64(40)
  151. #define M_DMA_DSCRB_B_SIZE          _SB_MAKEMASK(9,S_DMA_DSCRB_B_SIZE)
  152. #define V_DMA_DSCRB_B_SIZE(x)       _SB_MAKEVALUE(x,S_DMA_DSCRB_B_SIZE)
  153. #define G_DMA_DSCRB_B_SIZE(x)       _SB_GETVALUE(x,S_DMA_DSCRB_B_SIZE,M_DMA_DSCRB_B_SIZE)
  154. #define M_DMA_DSCRB_B_VALID         _SB_MAKEMASK1(49)
  155. #define S_DMA_DSCRB_PKT_SIZE        _SB_MAKE64(50)
  156. #define M_DMA_DSCRB_PKT_SIZE        _SB_MAKEMASK(14,S_DMA_DSCRB_PKT_SIZE)
  157. #define V_DMA_DSCRB_PKT_SIZE(x)     _SB_MAKEVALUE(x,S_DMA_DSCRB_PKT_SIZE)
  158. #define G_DMA_DSCRB_PKT_SIZE(x)     _SB_GETVALUE(x,S_DMA_DSCRB_PKT_SIZE,M_DMA_DSCRB_PKT_SIZE)
  159. /*
  160.  * Ethernet Descriptor Status Bits (Table 7-15)
  161.  */
  162. #define M_DMA_ETHRX_BADIP4CS        _SB_MAKEMASK1(51)
  163. #define M_DMA_ETHRX_DSCRERR     _SB_MAKEMASK1(52)
  164. /* Note: BADTCPCS is actually in DSCR_A */
  165. #define M_DMA_ETHRX_BADTCPCS _SB_MAKEMASK1(0) /* PASS2 */
  166. #define S_DMA_ETHRX_RXCH            53
  167. #define M_DMA_ETHRX_RXCH            _SB_MAKEMASK(2,S_DMA_ETHRX_RXCH)
  168. #define V_DMA_ETHRX_RXCH(x)         _SB_MAKEVALUE(x,S_DMA_ETHRX_RXCH)
  169. #define G_DMA_ETHRX_RXCH(x)         _SB_GETVALUE(x,S_DMA_ETHRX_RXCH,M_DMA_ETHRX_RXCH)
  170. #define S_DMA_ETHRX_PKTTYPE         55
  171. #define M_DMA_ETHRX_PKTTYPE         _SB_MAKEMASK(3,S_DMA_ETHRX_PKTTYPE)
  172. #define V_DMA_ETHRX_PKTTYPE(x)      _SB_MAKEVALUE(x,S_DMA_ETHRX_PKTTYPE)
  173. #define G_DMA_ETHRX_PKTTYPE(x)      _SB_GETVALUE(x,S_DMA_ETHRX_PKTTYPE,M_DMA_ETHRX_PKTTYPE)
  174. #define K_DMA_ETHRX_PKTTYPE_IPV4    0
  175. #define K_DMA_ETHRX_PKTTYPE_ARPV4   1
  176. #define K_DMA_ETHRX_PKTTYPE_802     2
  177. #define K_DMA_ETHRX_PKTTYPE_OTHER   3
  178. #define K_DMA_ETHRX_PKTTYPE_USER0   4
  179. #define K_DMA_ETHRX_PKTTYPE_USER1   5
  180. #define K_DMA_ETHRX_PKTTYPE_USER2   6
  181. #define K_DMA_ETHRX_PKTTYPE_USER3   7
  182. #define M_DMA_ETHRX_MATCH_EXACT     _SB_MAKEMASK1(58)
  183. #define M_DMA_ETHRX_MATCH_HASH      _SB_MAKEMASK1(59)
  184. #define M_DMA_ETHRX_BCAST           _SB_MAKEMASK1(60)
  185. #define M_DMA_ETHRX_MCAST           _SB_MAKEMASK1(61)
  186. #define M_DMA_ETHRX_BAD             _SB_MAKEMASK1(62)
  187. #define M_DMA_ETHRX_SOP             _SB_MAKEMASK1(63)
  188. /*
  189.  * Ethernet Transmit Status Bits (Table 7-16)
  190.  */
  191. #define M_DMA_ETHTX_SOP          _SB_MAKEMASK1(63)
  192. /*
  193.  * Ethernet Transmit Options (Table 7-17)
  194.  */
  195. #define K_DMA_ETHTX_NOTSOP          _SB_MAKE64(0x00)
  196. #define K_DMA_ETHTX_APPENDCRC       _SB_MAKE64(0x01)
  197. #define K_DMA_ETHTX_REPLACECRC      _SB_MAKE64(0x02)
  198. #define K_DMA_ETHTX_APPENDCRC_APPENDPAD _SB_MAKE64(0x03)
  199. #define K_DMA_ETHTX_APPENDVLAN_REPLACECRC _SB_MAKE64(0x04)
  200. #define K_DMA_ETHTX_REMOVEVLAN_REPLACECRC _SB_MAKE64(0x05)
  201. #define K_DMA_ETHTX_REPLACEVLAN_REPLACECRC _SB_MAKE64(0x6)
  202. #define K_DMA_ETHTX_NOMODS          _SB_MAKE64(0x07)
  203. #define K_DMA_ETHTX_RESERVED1       _SB_MAKE64(0x08)
  204. #define K_DMA_ETHTX_REPLACESADDR_APPENDCRC _SB_MAKE64(0x09)
  205. #define K_DMA_ETHTX_REPLACESADDR_REPLACECRC _SB_MAKE64(0x0A)
  206. #define K_DMA_ETHTX_REPLACESADDR_APPENDCRC_APPENDPAD _SB_MAKE64(0x0B)
  207. #define K_DMA_ETHTX_REPLACESADDR_APPENDVLAN_REPLACECRC _SB_MAKE64(0x0C)
  208. #define K_DMA_ETHTX_REPLACESADDR_REMOVEVLAN_REPLACECRC _SB_MAKE64(0x0D)
  209. #define K_DMA_ETHTX_REPLACESADDR_REPLACEVLAN_REPLACECRC _SB_MAKE64(0x0E)
  210. #define K_DMA_ETHTX_RESERVED2       _SB_MAKE64(0x0F)
  211. /*
  212.  * Serial Receive Options (Table 7-18)
  213.  */
  214. #define M_DMA_SERRX_CRC_ERROR       _SB_MAKEMASK1(56)
  215. #define M_DMA_SERRX_ABORT           _SB_MAKEMASK1(57)
  216. #define M_DMA_SERRX_OCTET_ERROR     _SB_MAKEMASK1(58)
  217. #define M_DMA_SERRX_LONGFRAME_ERROR _SB_MAKEMASK1(59)
  218. #define M_DMA_SERRX_SHORTFRAME_ERROR _SB_MAKEMASK1(60)
  219. #define M_DMA_SERRX_OVERRUN_ERROR   _SB_MAKEMASK1(61)
  220. #define M_DMA_SERRX_GOOD            _SB_MAKEMASK1(62)
  221. #define M_DMA_SERRX_SOP             _SB_MAKEMASK1(63)
  222. /*
  223.  * Serial Transmit Status Bits (Table 7-20)
  224.  */
  225. #define M_DMA_SERTX_FLAG     _SB_MAKEMASK1(63)
  226. /*
  227.  * Serial Transmit Options (Table 7-21)
  228.  */
  229. #define K_DMA_SERTX_RESERVED        _SB_MAKEMASK1(0)
  230. #define K_DMA_SERTX_APPENDCRC       _SB_MAKEMASK1(1)
  231. #define K_DMA_SERTX_APPENDPAD       _SB_MAKEMASK1(2)
  232. #define K_DMA_SERTX_ABORT           _SB_MAKEMASK1(3)
  233. /*  *********************************************************************
  234.     *  Data Mover Registers
  235.     ********************************************************************* */
  236. /*
  237.  * Data Mover Descriptor Base Address Register (Table 7-22)
  238.  * Register: DM_DSCR_BASE_0
  239.  * Register: DM_DSCR_BASE_1
  240.  * Register: DM_DSCR_BASE_2
  241.  * Register: DM_DSCR_BASE_3
  242.  */
  243. #define M_DM_DSCR_BASE_MBZ          _SB_MAKEMASK(4,0)
  244. /*  Note: Just mask the base address and then OR it in. */
  245. #define S_DM_DSCR_BASE_ADDR         _SB_MAKE64(4)
  246. #define M_DM_DSCR_BASE_ADDR         _SB_MAKEMASK(36,S_DM_DSCR_BASE_ADDR)
  247. #define S_DM_DSCR_BASE_RINGSZ       _SB_MAKE64(40)
  248. #define M_DM_DSCR_BASE_RINGSZ       _SB_MAKEMASK(16,S_DM_DSCR_BASE_RINGSZ)
  249. #define V_DM_DSCR_BASE_RINGSZ(x)    _SB_MAKEVALUE(x,S_DM_DSCR_BASE_RINGSZ)
  250. #define G_DM_DSCR_BASE_RINGSZ(x)    _SB_GETVALUE(x,S_DM_DSCR_BASE_RINGSZ,M_DM_DSCR_BASE_RINGSZ)
  251. #define S_DM_DSCR_BASE_PRIORITY     _SB_MAKE64(56)
  252. #define M_DM_DSCR_BASE_PRIORITY     _SB_MAKEMASK(3,S_DM_DSCR_BASE_PRIORITY)
  253. #define V_DM_DSCR_BASE_PRIORITY(x)  _SB_MAKEVALUE(x,S_DM_DSCR_BASE_PRIORITY)
  254. #define G_DM_DSCR_BASE_PRIORITY(x)  _SB_GETVALUE(x,S_DM_DSCR_BASE_PRIORITY,M_DM_DSCR_BASE_PRIORITY)
  255. #define K_DM_DSCR_BASE_PRIORITY_1   0
  256. #define K_DM_DSCR_BASE_PRIORITY_2   1
  257. #define K_DM_DSCR_BASE_PRIORITY_4   2
  258. #define K_DM_DSCR_BASE_PRIORITY_8   3
  259. #define K_DM_DSCR_BASE_PRIORITY_16  4
  260. #define M_DM_DSCR_BASE_ACTIVE       _SB_MAKEMASK1(59)
  261. #define M_DM_DSCR_BASE_INTERRUPT    _SB_MAKEMASK1(60)
  262. #define M_DM_DSCR_BASE_RESET        _SB_MAKEMASK1(61) /* write register */
  263. #define M_DM_DSCR_BASE_ERROR        _SB_MAKEMASK1(61) /* read register */
  264. #define M_DM_DSCR_BASE_ABORT        _SB_MAKEMASK1(62)
  265. #define M_DM_DSCR_BASE_ENABL        _SB_MAKEMASK1(63)
  266. /*
  267.  * Data Mover Descriptor Count Register (Table 7-25)
  268.  */
  269. /* no bitfields */
  270. /*
  271.  * Data Mover Current Descriptor Address (Table 7-24)
  272.  * Register: DM_CUR_DSCR_ADDR_0
  273.  * Register: DM_CUR_DSCR_ADDR_1
  274.  * Register: DM_CUR_DSCR_ADDR_2
  275.  * Register: DM_CUR_DSCR_ADDR_3
  276.  */
  277. #define S_DM_CUR_DSCR_DSCR_ADDR     _SB_MAKE64(0)
  278. #define M_DM_CUR_DSCR_DSCR_ADDR     _SB_MAKEMASK(40,S_DM_CUR_DSCR_DSCR_ADDR)
  279. #define S_DM_CUR_DSCR_DSCR_COUNT    _SB_MAKE64(48)
  280. #define M_DM_CUR_DSCR_DSCR_COUNT    _SB_MAKEMASK(16,S_DM_CUR_DSCR_DSCR_COUNT)
  281. #define V_DM_CUR_DSCR_DSCR_COUNT(r) _SB_MAKEVALUE(r,S_DM_CUR_DSCR_DSCR_COUNT)
  282. #define G_DM_CUR_DSCR_DSCR_COUNT(r) _SB_GETVALUE(r,S_DM_CUR_DSCR_DSCR_COUNT,
  283.                                      M_DM_CUR_DSCR_DSCR_COUNT)
  284. /*
  285.  * Data Mover Descriptor Doubleword "A"  (Table 7-26)
  286.  */
  287. #define S_DM_DSCRA_DST_ADDR         _SB_MAKE64(0)
  288. #define M_DM_DSCRA_DST_ADDR         _SB_MAKEMASK(40,S_DM_DSCRA_DST_ADDR)
  289. #define M_DM_DSCRA_UN_DEST          _SB_MAKEMASK1(40)
  290. #define M_DM_DSCRA_UN_SRC           _SB_MAKEMASK1(41)
  291. #define M_DM_DSCRA_INTERRUPT        _SB_MAKEMASK1(42)
  292. /*#define M_DM_DSCRA_THROTTLE         _SB_MAKEMASK1(43) */ /* REMOVED PASS2 */
  293. #define M_DM_DSCRA_RD_BKOFF     _SB_MAKEMASK1(52) /* PASS2 */
  294. #define M_DM_DSCRA_WR_BKOFF     _SB_MAKEMASK1(53) /* PASS2 */
  295. #define S_DM_DSCRA_DIR_DEST         _SB_MAKE64(44)
  296. #define M_DM_DSCRA_DIR_DEST         _SB_MAKEMASK(2,S_DM_DSCRA_DIR_DEST)
  297. #define V_DM_DSCRA_DIR_DEST(x)      _SB_MAKEVALUE(x,S_DM_DSCRA_DIR_DEST)
  298. #define G_DM_DSCRA_DIR_DEST(x)      _SB_GETVALUE(x,S_DM_DSCRA_DIR_DEST,M_DM_DSCRA_DIR_DEST)
  299. #define K_DM_DSCRA_DIR_DEST_INCR    0
  300. #define K_DM_DSCRA_DIR_DEST_DECR    1
  301. #define K_DM_DSCRA_DIR_DEST_CONST   2
  302. #define V_DM_DSCRA_DIR_DEST_INCR    _SB_MAKEVALUE(K_DM_DSCRA_DIR_DEST_INCR,S_DM_DSCRA_DIR_DEST)
  303. #define V_DM_DSCRA_DIR_DEST_DECR    _SB_MAKEVALUE(K_DM_DSCRA_DIR_DEST_DECR,S_DM_DSCRA_DIR_DEST)
  304. #define V_DM_DSCRA_DIR_DEST_CONST   _SB_MAKEVALUE(K_DM_DSCRA_DIR_DEST_CONST,S_DM_DSCRA_DIR_DEST)
  305. #define S_DM_DSCRA_DIR_SRC          _SB_MAKE64(46)
  306. #define M_DM_DSCRA_DIR_SRC          _SB_MAKEMASK(2,S_DM_DSCRA_DIR_SRC)
  307. #define V_DM_DSCRA_DIR_SRC(x)       _SB_MAKEVALUE(x,S_DM_DSCRA_DIR_SRC)
  308. #define G_DM_DSCRA_DIR_SRC(x)       _SB_GETVALUE(x,S_DM_DSCRA_DIR_SRC,M_DM_DSCRA_DIR_SRC)
  309. #define K_DM_DSCRA_DIR_SRC_INCR     0
  310. #define K_DM_DSCRA_DIR_SRC_DECR     1
  311. #define K_DM_DSCRA_DIR_SRC_CONST    2
  312. #define V_DM_DSCRA_DIR_SRC_INCR     _SB_MAKEVALUE(K_DM_DSCRA_DIR_SRC_INCR,S_DM_DSCRA_DIR_SRC)
  313. #define V_DM_DSCRA_DIR_SRC_DECR     _SB_MAKEVALUE(K_DM_DSCRA_DIR_SRC_DECR,S_DM_DSCRA_DIR_SRC)
  314. #define V_DM_DSCRA_DIR_SRC_CONST    _SB_MAKEVALUE(K_DM_DSCRA_DIR_SRC_CONST,S_DM_DSCRA_DIR_SRC)
  315. #define M_DM_DSCRA_ZERO_MEM         _SB_MAKEMASK1(48)
  316. #define M_DM_DSCRA_PREFETCH         _SB_MAKEMASK1(49)
  317. #define M_DM_DSCRA_L2C_DEST         _SB_MAKEMASK1(50)
  318. #define M_DM_DSCRA_L2C_SRC          _SB_MAKEMASK1(51)
  319. #define M_DM_DSCRA_RESERVED2        _SB_MAKEMASK(10,54)
  320. /*
  321.  * Data Mover Descriptor Doubleword "B"  (Table 7-25)
  322.  */
  323. #define S_DM_DSCRB_SRC_ADDR         _SB_MAKE64(0)
  324. #define M_DM_DSCRB_SRC_ADDR         _SB_MAKEMASK(40,S_DM_DSCRB_SRC_ADDR)
  325. #define S_DM_DSCRB_SRC_LENGTH       _SB_MAKE64(40)
  326. #define M_DM_DSCRB_SRC_LENGTH       _SB_MAKEMASK(20,S_DM_DSCRB_SRC_LENGTH)
  327. #define V_DM_DSCRB_SRC_LENGTH(x)    _SB_MAKEVALUE(x,S_DM_DSCRB_SRC_LENGTH)
  328. #define G_DM_DSCRB_SRC_LENGTH(x)    _SB_GETVALUE(x,S_DM_DSCRB_SRC_LENGTH,M_DM_DSCRB_SRC_LENGTH)
  329. #endif