18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
28c2ecf20Sopenharmony_ci/*  *********************************************************************
38c2ecf20Sopenharmony_ci    *  SB1250 Board Support Package
48c2ecf20Sopenharmony_ci    *
58c2ecf20Sopenharmony_ci    *  DMA definitions				File: sb1250_dma.h
68c2ecf20Sopenharmony_ci    *
78c2ecf20Sopenharmony_ci    *  This module contains constants and macros useful for
88c2ecf20Sopenharmony_ci    *  programming the SB1250's DMA controllers, both the data mover
98c2ecf20Sopenharmony_ci    *  and the Ethernet DMA.
108c2ecf20Sopenharmony_ci    *
118c2ecf20Sopenharmony_ci    *  SB1250 specification level:  User's manual 10/21/02
128c2ecf20Sopenharmony_ci    *  BCM1280 specification level: User's manual 11/24/03
138c2ecf20Sopenharmony_ci    *
148c2ecf20Sopenharmony_ci    *********************************************************************
158c2ecf20Sopenharmony_ci    *
168c2ecf20Sopenharmony_ci    *  Copyright 2000,2001,2002,2003
178c2ecf20Sopenharmony_ci    *  Broadcom Corporation. All rights reserved.
188c2ecf20Sopenharmony_ci    *
198c2ecf20Sopenharmony_ci    ********************************************************************* */
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci#ifndef _SB1250_DMA_H
238c2ecf20Sopenharmony_ci#define _SB1250_DMA_H
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci#include <asm/sibyte/sb1250_defs.h>
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci/*  *********************************************************************
298c2ecf20Sopenharmony_ci    *  DMA Registers
308c2ecf20Sopenharmony_ci    ********************************************************************* */
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci/*
338c2ecf20Sopenharmony_ci * Ethernet and Serial DMA Configuration Register 0  (Table 7-4)
348c2ecf20Sopenharmony_ci * Registers: DMA_CONFIG0_MAC_x_RX_CH_0
358c2ecf20Sopenharmony_ci * Registers: DMA_CONFIG0_MAC_x_TX_CH_0
368c2ecf20Sopenharmony_ci * Registers: DMA_CONFIG0_SER_x_RX
378c2ecf20Sopenharmony_ci * Registers: DMA_CONFIG0_SER_x_TX
388c2ecf20Sopenharmony_ci */
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci#define M_DMA_DROP		    _SB_MAKEMASK1(0)
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci#define M_DMA_CHAIN_SEL		    _SB_MAKEMASK1(1)
448c2ecf20Sopenharmony_ci#define M_DMA_RESERVED1		    _SB_MAKEMASK1(2)
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci#define S_DMA_DESC_TYPE		    _SB_MAKE64(1)
478c2ecf20Sopenharmony_ci#define M_DMA_DESC_TYPE		    _SB_MAKEMASK(2, S_DMA_DESC_TYPE)
488c2ecf20Sopenharmony_ci#define V_DMA_DESC_TYPE(x)	    _SB_MAKEVALUE(x, S_DMA_DESC_TYPE)
498c2ecf20Sopenharmony_ci#define G_DMA_DESC_TYPE(x)	    _SB_GETVALUE(x, S_DMA_DESC_TYPE, M_DMA_DESC_TYPE)
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci#define K_DMA_DESC_TYPE_RING_AL		0
528c2ecf20Sopenharmony_ci#define K_DMA_DESC_TYPE_CHAIN_AL	1
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci#if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
558c2ecf20Sopenharmony_ci#define K_DMA_DESC_TYPE_RING_UAL_WI	2
568c2ecf20Sopenharmony_ci#define K_DMA_DESC_TYPE_RING_UAL_RMW	3
578c2ecf20Sopenharmony_ci#endif /* 1250 PASS3 || 112x PASS1 || 1480 */
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci#define M_DMA_EOP_INT_EN	    _SB_MAKEMASK1(3)
608c2ecf20Sopenharmony_ci#define M_DMA_HWM_INT_EN	    _SB_MAKEMASK1(4)
618c2ecf20Sopenharmony_ci#define M_DMA_LWM_INT_EN	    _SB_MAKEMASK1(5)
628c2ecf20Sopenharmony_ci#define M_DMA_TBX_EN		    _SB_MAKEMASK1(6)
638c2ecf20Sopenharmony_ci#define M_DMA_TDX_EN		    _SB_MAKEMASK1(7)
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ci#define S_DMA_INT_PKTCNT	    _SB_MAKE64(8)
668c2ecf20Sopenharmony_ci#define M_DMA_INT_PKTCNT	    _SB_MAKEMASK(8, S_DMA_INT_PKTCNT)
678c2ecf20Sopenharmony_ci#define V_DMA_INT_PKTCNT(x)	    _SB_MAKEVALUE(x, S_DMA_INT_PKTCNT)
688c2ecf20Sopenharmony_ci#define G_DMA_INT_PKTCNT(x)	    _SB_GETVALUE(x, S_DMA_INT_PKTCNT, M_DMA_INT_PKTCNT)
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ci#define S_DMA_RINGSZ		    _SB_MAKE64(16)
718c2ecf20Sopenharmony_ci#define M_DMA_RINGSZ		    _SB_MAKEMASK(16, S_DMA_RINGSZ)
728c2ecf20Sopenharmony_ci#define V_DMA_RINGSZ(x)		    _SB_MAKEVALUE(x, S_DMA_RINGSZ)
738c2ecf20Sopenharmony_ci#define G_DMA_RINGSZ(x)		    _SB_GETVALUE(x, S_DMA_RINGSZ, M_DMA_RINGSZ)
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci#define S_DMA_HIGH_WATERMARK	    _SB_MAKE64(32)
768c2ecf20Sopenharmony_ci#define M_DMA_HIGH_WATERMARK	    _SB_MAKEMASK(16, S_DMA_HIGH_WATERMARK)
778c2ecf20Sopenharmony_ci#define V_DMA_HIGH_WATERMARK(x)	    _SB_MAKEVALUE(x, S_DMA_HIGH_WATERMARK)
788c2ecf20Sopenharmony_ci#define G_DMA_HIGH_WATERMARK(x)	    _SB_GETVALUE(x, S_DMA_HIGH_WATERMARK, M_DMA_HIGH_WATERMARK)
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ci#define S_DMA_LOW_WATERMARK	    _SB_MAKE64(48)
818c2ecf20Sopenharmony_ci#define M_DMA_LOW_WATERMARK	    _SB_MAKEMASK(16, S_DMA_LOW_WATERMARK)
828c2ecf20Sopenharmony_ci#define V_DMA_LOW_WATERMARK(x)	    _SB_MAKEVALUE(x, S_DMA_LOW_WATERMARK)
838c2ecf20Sopenharmony_ci#define G_DMA_LOW_WATERMARK(x)	    _SB_GETVALUE(x, S_DMA_LOW_WATERMARK, M_DMA_LOW_WATERMARK)
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci/*
868c2ecf20Sopenharmony_ci * Ethernet and Serial DMA Configuration Register 1 (Table 7-5)
878c2ecf20Sopenharmony_ci * Registers: DMA_CONFIG1_MAC_x_RX_CH_0
888c2ecf20Sopenharmony_ci * Registers: DMA_CONFIG1_DMA_x_TX_CH_0
898c2ecf20Sopenharmony_ci * Registers: DMA_CONFIG1_SER_x_RX
908c2ecf20Sopenharmony_ci * Registers: DMA_CONFIG1_SER_x_TX
918c2ecf20Sopenharmony_ci */
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_ci#define M_DMA_HDR_CF_EN		    _SB_MAKEMASK1(0)
948c2ecf20Sopenharmony_ci#define M_DMA_ASIC_XFR_EN	    _SB_MAKEMASK1(1)
958c2ecf20Sopenharmony_ci#define M_DMA_PRE_ADDR_EN	    _SB_MAKEMASK1(2)
968c2ecf20Sopenharmony_ci#define M_DMA_FLOW_CTL_EN	    _SB_MAKEMASK1(3)
978c2ecf20Sopenharmony_ci#define M_DMA_NO_DSCR_UPDT	    _SB_MAKEMASK1(4)
988c2ecf20Sopenharmony_ci#define M_DMA_L2CA		    _SB_MAKEMASK1(5)
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ci#if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
1018c2ecf20Sopenharmony_ci#define M_DMA_RX_XTRA_STATUS	    _SB_MAKEMASK1(6)
1028c2ecf20Sopenharmony_ci#define M_DMA_TX_CPU_PAUSE	    _SB_MAKEMASK1(6)
1038c2ecf20Sopenharmony_ci#define M_DMA_TX_FC_PAUSE_EN	    _SB_MAKEMASK1(7)
1048c2ecf20Sopenharmony_ci#endif /* 1250 PASS3 || 112x PASS1 || 1480 */
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ci#define M_DMA_MBZ1		    _SB_MAKEMASK(6, 15)
1078c2ecf20Sopenharmony_ci
1088c2ecf20Sopenharmony_ci#define S_DMA_HDR_SIZE		    _SB_MAKE64(21)
1098c2ecf20Sopenharmony_ci#define M_DMA_HDR_SIZE		    _SB_MAKEMASK(9, S_DMA_HDR_SIZE)
1108c2ecf20Sopenharmony_ci#define V_DMA_HDR_SIZE(x)	    _SB_MAKEVALUE(x, S_DMA_HDR_SIZE)
1118c2ecf20Sopenharmony_ci#define G_DMA_HDR_SIZE(x)	    _SB_GETVALUE(x, S_DMA_HDR_SIZE, M_DMA_HDR_SIZE)
1128c2ecf20Sopenharmony_ci
1138c2ecf20Sopenharmony_ci#define M_DMA_MBZ2		    _SB_MAKEMASK(5, 32)
1148c2ecf20Sopenharmony_ci
1158c2ecf20Sopenharmony_ci#define S_DMA_ASICXFR_SIZE	    _SB_MAKE64(37)
1168c2ecf20Sopenharmony_ci#define M_DMA_ASICXFR_SIZE	    _SB_MAKEMASK(9, S_DMA_ASICXFR_SIZE)
1178c2ecf20Sopenharmony_ci#define V_DMA_ASICXFR_SIZE(x)	    _SB_MAKEVALUE(x, S_DMA_ASICXFR_SIZE)
1188c2ecf20Sopenharmony_ci#define G_DMA_ASICXFR_SIZE(x)	    _SB_GETVALUE(x, S_DMA_ASICXFR_SIZE, M_DMA_ASICXFR_SIZE)
1198c2ecf20Sopenharmony_ci
1208c2ecf20Sopenharmony_ci#define S_DMA_INT_TIMEOUT	    _SB_MAKE64(48)
1218c2ecf20Sopenharmony_ci#define M_DMA_INT_TIMEOUT	    _SB_MAKEMASK(16, S_DMA_INT_TIMEOUT)
1228c2ecf20Sopenharmony_ci#define V_DMA_INT_TIMEOUT(x)	    _SB_MAKEVALUE(x, S_DMA_INT_TIMEOUT)
1238c2ecf20Sopenharmony_ci#define G_DMA_INT_TIMEOUT(x)	    _SB_GETVALUE(x, S_DMA_INT_TIMEOUT, M_DMA_INT_TIMEOUT)
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ci/*
1268c2ecf20Sopenharmony_ci * Ethernet and Serial DMA Descriptor base address (Table 7-6)
1278c2ecf20Sopenharmony_ci */
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_ci#define M_DMA_DSCRBASE_MBZ	    _SB_MAKEMASK(4, 0)
1308c2ecf20Sopenharmony_ci
1318c2ecf20Sopenharmony_ci
1328c2ecf20Sopenharmony_ci/*
1338c2ecf20Sopenharmony_ci * ASIC Mode Base Address (Table 7-7)
1348c2ecf20Sopenharmony_ci */
1358c2ecf20Sopenharmony_ci
1368c2ecf20Sopenharmony_ci#define M_DMA_ASIC_BASE_MBZ	    _SB_MAKEMASK(20, 0)
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ci/*
1398c2ecf20Sopenharmony_ci * DMA Descriptor Count Registers (Table 7-8)
1408c2ecf20Sopenharmony_ci */
1418c2ecf20Sopenharmony_ci
1428c2ecf20Sopenharmony_ci/* No bitfields */
1438c2ecf20Sopenharmony_ci
1448c2ecf20Sopenharmony_ci
1458c2ecf20Sopenharmony_ci/*
1468c2ecf20Sopenharmony_ci * Current Descriptor Address Register (Table 7-11)
1478c2ecf20Sopenharmony_ci */
1488c2ecf20Sopenharmony_ci
1498c2ecf20Sopenharmony_ci#define S_DMA_CURDSCR_ADDR	    _SB_MAKE64(0)
1508c2ecf20Sopenharmony_ci#define M_DMA_CURDSCR_ADDR	    _SB_MAKEMASK(40, S_DMA_CURDSCR_ADDR)
1518c2ecf20Sopenharmony_ci#define S_DMA_CURDSCR_COUNT	    _SB_MAKE64(40)
1528c2ecf20Sopenharmony_ci#define M_DMA_CURDSCR_COUNT	    _SB_MAKEMASK(16, S_DMA_CURDSCR_COUNT)
1538c2ecf20Sopenharmony_ci
1548c2ecf20Sopenharmony_ci#if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
1558c2ecf20Sopenharmony_ci#define M_DMA_TX_CH_PAUSE_ON	    _SB_MAKEMASK1(56)
1568c2ecf20Sopenharmony_ci#endif /* 1250 PASS3 || 112x PASS1 || 1480 */
1578c2ecf20Sopenharmony_ci
1588c2ecf20Sopenharmony_ci/*
1598c2ecf20Sopenharmony_ci * Receive Packet Drop Registers
1608c2ecf20Sopenharmony_ci */
1618c2ecf20Sopenharmony_ci#if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
1628c2ecf20Sopenharmony_ci#define S_DMA_OODLOST_RX	   _SB_MAKE64(0)
1638c2ecf20Sopenharmony_ci#define M_DMA_OODLOST_RX	   _SB_MAKEMASK(16, S_DMA_OODLOST_RX)
1648c2ecf20Sopenharmony_ci#define G_DMA_OODLOST_RX(x)	   _SB_GETVALUE(x, S_DMA_OODLOST_RX, M_DMA_OODLOST_RX)
1658c2ecf20Sopenharmony_ci
1668c2ecf20Sopenharmony_ci#define S_DMA_EOP_COUNT_RX	   _SB_MAKE64(16)
1678c2ecf20Sopenharmony_ci#define M_DMA_EOP_COUNT_RX	   _SB_MAKEMASK(8, S_DMA_EOP_COUNT_RX)
1688c2ecf20Sopenharmony_ci#define G_DMA_EOP_COUNT_RX(x)	   _SB_GETVALUE(x, S_DMA_EOP_COUNT_RX, M_DMA_EOP_COUNT_RX)
1698c2ecf20Sopenharmony_ci#endif /* 1250 PASS3 || 112x PASS1 || 1480 */
1708c2ecf20Sopenharmony_ci
1718c2ecf20Sopenharmony_ci/*  *********************************************************************
1728c2ecf20Sopenharmony_ci    *  DMA Descriptors
1738c2ecf20Sopenharmony_ci    ********************************************************************* */
1748c2ecf20Sopenharmony_ci
1758c2ecf20Sopenharmony_ci/*
1768c2ecf20Sopenharmony_ci * Descriptor doubleword "A"  (Table 7-12)
1778c2ecf20Sopenharmony_ci */
1788c2ecf20Sopenharmony_ci
1798c2ecf20Sopenharmony_ci#define S_DMA_DSCRA_OFFSET	    _SB_MAKE64(0)
1808c2ecf20Sopenharmony_ci#define M_DMA_DSCRA_OFFSET	    _SB_MAKEMASK(5, S_DMA_DSCRA_OFFSET)
1818c2ecf20Sopenharmony_ci#define V_DMA_DSCRA_OFFSET(x)	    _SB_MAKEVALUE(x, S_DMA_DSCRA_OFFSET)
1828c2ecf20Sopenharmony_ci#define G_DMA_DSCRA_OFFSET(x)	    _SB_GETVALUE(x, S_DMA_DSCRA_OFFSET, M_DMA_DSCRA_OFFSET)
1838c2ecf20Sopenharmony_ci
1848c2ecf20Sopenharmony_ci/* Note: Don't shift the address over, just mask it with the mask below */
1858c2ecf20Sopenharmony_ci#define S_DMA_DSCRA_A_ADDR	    _SB_MAKE64(5)
1868c2ecf20Sopenharmony_ci#define M_DMA_DSCRA_A_ADDR	    _SB_MAKEMASK(35, S_DMA_DSCRA_A_ADDR)
1878c2ecf20Sopenharmony_ci
1888c2ecf20Sopenharmony_ci#define M_DMA_DSCRA_A_ADDR_OFFSET   (M_DMA_DSCRA_OFFSET | M_DMA_DSCRA_A_ADDR)
1898c2ecf20Sopenharmony_ci
1908c2ecf20Sopenharmony_ci#if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
1918c2ecf20Sopenharmony_ci#define S_DMA_DSCRA_A_ADDR_UA	     _SB_MAKE64(0)
1928c2ecf20Sopenharmony_ci#define M_DMA_DSCRA_A_ADDR_UA	     _SB_MAKEMASK(40, S_DMA_DSCRA_A_ADDR_UA)
1938c2ecf20Sopenharmony_ci#endif /* 1250 PASS3 || 112x PASS1 || 1480 */
1948c2ecf20Sopenharmony_ci
1958c2ecf20Sopenharmony_ci#define S_DMA_DSCRA_A_SIZE	    _SB_MAKE64(40)
1968c2ecf20Sopenharmony_ci#define M_DMA_DSCRA_A_SIZE	    _SB_MAKEMASK(9, S_DMA_DSCRA_A_SIZE)
1978c2ecf20Sopenharmony_ci#define V_DMA_DSCRA_A_SIZE(x)	    _SB_MAKEVALUE(x, S_DMA_DSCRA_A_SIZE)
1988c2ecf20Sopenharmony_ci#define G_DMA_DSCRA_A_SIZE(x)	    _SB_GETVALUE(x, S_DMA_DSCRA_A_SIZE, M_DMA_DSCRA_A_SIZE)
1998c2ecf20Sopenharmony_ci
2008c2ecf20Sopenharmony_ci#if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
2018c2ecf20Sopenharmony_ci#define S_DMA_DSCRA_DSCR_CNT	    _SB_MAKE64(40)
2028c2ecf20Sopenharmony_ci#define M_DMA_DSCRA_DSCR_CNT	    _SB_MAKEMASK(8, S_DMA_DSCRA_DSCR_CNT)
2038c2ecf20Sopenharmony_ci#define G_DMA_DSCRA_DSCR_CNT(x)	    _SB_GETVALUE(x, S_DMA_DSCRA_DSCR_CNT, M_DMA_DSCRA_DSCR_CNT)
2048c2ecf20Sopenharmony_ci#endif /* 1250 PASS3 || 112x PASS1 || 1480 */
2058c2ecf20Sopenharmony_ci
2068c2ecf20Sopenharmony_ci#define M_DMA_DSCRA_INTERRUPT	    _SB_MAKEMASK1(49)
2078c2ecf20Sopenharmony_ci#define M_DMA_DSCRA_OFFSETB	    _SB_MAKEMASK1(50)
2088c2ecf20Sopenharmony_ci
2098c2ecf20Sopenharmony_ci#define S_DMA_DSCRA_STATUS	    _SB_MAKE64(51)
2108c2ecf20Sopenharmony_ci#define M_DMA_DSCRA_STATUS	    _SB_MAKEMASK(13, S_DMA_DSCRA_STATUS)
2118c2ecf20Sopenharmony_ci#define V_DMA_DSCRA_STATUS(x)	    _SB_MAKEVALUE(x, S_DMA_DSCRA_STATUS)
2128c2ecf20Sopenharmony_ci#define G_DMA_DSCRA_STATUS(x)	    _SB_GETVALUE(x, S_DMA_DSCRA_STATUS, M_DMA_DSCRA_STATUS)
2138c2ecf20Sopenharmony_ci
2148c2ecf20Sopenharmony_ci/*
2158c2ecf20Sopenharmony_ci * Descriptor doubleword "B"  (Table 7-13)
2168c2ecf20Sopenharmony_ci */
2178c2ecf20Sopenharmony_ci
2188c2ecf20Sopenharmony_ci
2198c2ecf20Sopenharmony_ci#define S_DMA_DSCRB_OPTIONS	    _SB_MAKE64(0)
2208c2ecf20Sopenharmony_ci#define M_DMA_DSCRB_OPTIONS	    _SB_MAKEMASK(4, S_DMA_DSCRB_OPTIONS)
2218c2ecf20Sopenharmony_ci#define V_DMA_DSCRB_OPTIONS(x)	    _SB_MAKEVALUE(x, S_DMA_DSCRB_OPTIONS)
2228c2ecf20Sopenharmony_ci#define G_DMA_DSCRB_OPTIONS(x)	    _SB_GETVALUE(x, S_DMA_DSCRB_OPTIONS, M_DMA_DSCRB_OPTIONS)
2238c2ecf20Sopenharmony_ci
2248c2ecf20Sopenharmony_ci#if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
2258c2ecf20Sopenharmony_ci#define S_DMA_DSCRB_A_SIZE	  _SB_MAKE64(8)
2268c2ecf20Sopenharmony_ci#define M_DMA_DSCRB_A_SIZE	  _SB_MAKEMASK(14, S_DMA_DSCRB_A_SIZE)
2278c2ecf20Sopenharmony_ci#define V_DMA_DSCRB_A_SIZE(x)	  _SB_MAKEVALUE(x, S_DMA_DSCRB_A_SIZE)
2288c2ecf20Sopenharmony_ci#define G_DMA_DSCRB_A_SIZE(x)	  _SB_GETVALUE(x, S_DMA_DSCRB_A_SIZE, M_DMA_DSCRB_A_SIZE)
2298c2ecf20Sopenharmony_ci#endif /* 1250 PASS3 || 112x PASS1 || 1480 */
2308c2ecf20Sopenharmony_ci
2318c2ecf20Sopenharmony_ci#define R_DMA_DSCRB_ADDR	    _SB_MAKE64(0x10)
2328c2ecf20Sopenharmony_ci
2338c2ecf20Sopenharmony_ci/* Note: Don't shift the address over, just mask it with the mask below */
2348c2ecf20Sopenharmony_ci#define S_DMA_DSCRB_B_ADDR	    _SB_MAKE64(5)
2358c2ecf20Sopenharmony_ci#define M_DMA_DSCRB_B_ADDR	    _SB_MAKEMASK(35, S_DMA_DSCRB_B_ADDR)
2368c2ecf20Sopenharmony_ci
2378c2ecf20Sopenharmony_ci#define S_DMA_DSCRB_B_SIZE	    _SB_MAKE64(40)
2388c2ecf20Sopenharmony_ci#define M_DMA_DSCRB_B_SIZE	    _SB_MAKEMASK(9, S_DMA_DSCRB_B_SIZE)
2398c2ecf20Sopenharmony_ci#define V_DMA_DSCRB_B_SIZE(x)	    _SB_MAKEVALUE(x, S_DMA_DSCRB_B_SIZE)
2408c2ecf20Sopenharmony_ci#define G_DMA_DSCRB_B_SIZE(x)	    _SB_GETVALUE(x, S_DMA_DSCRB_B_SIZE, M_DMA_DSCRB_B_SIZE)
2418c2ecf20Sopenharmony_ci
2428c2ecf20Sopenharmony_ci#define M_DMA_DSCRB_B_VALID	    _SB_MAKEMASK1(49)
2438c2ecf20Sopenharmony_ci
2448c2ecf20Sopenharmony_ci#if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
2458c2ecf20Sopenharmony_ci#define S_DMA_DSCRB_PKT_SIZE_MSB    _SB_MAKE64(48)
2468c2ecf20Sopenharmony_ci#define M_DMA_DSCRB_PKT_SIZE_MSB    _SB_MAKEMASK(2, S_DMA_DSCRB_PKT_SIZE_MSB)
2478c2ecf20Sopenharmony_ci#define V_DMA_DSCRB_PKT_SIZE_MSB(x) _SB_MAKEVALUE(x, S_DMA_DSCRB_PKT_SIZE_MSB)
2488c2ecf20Sopenharmony_ci#define G_DMA_DSCRB_PKT_SIZE_MSB(x) _SB_GETVALUE(x, S_DMA_DSCRB_PKT_SIZE_MSB, M_DMA_DSCRB_PKT_SIZE_MSB)
2498c2ecf20Sopenharmony_ci#endif /* 1250 PASS3 || 112x PASS1 || 1480 */
2508c2ecf20Sopenharmony_ci
2518c2ecf20Sopenharmony_ci#define S_DMA_DSCRB_PKT_SIZE	    _SB_MAKE64(50)
2528c2ecf20Sopenharmony_ci#define M_DMA_DSCRB_PKT_SIZE	    _SB_MAKEMASK(14, S_DMA_DSCRB_PKT_SIZE)
2538c2ecf20Sopenharmony_ci#define V_DMA_DSCRB_PKT_SIZE(x)	    _SB_MAKEVALUE(x, S_DMA_DSCRB_PKT_SIZE)
2548c2ecf20Sopenharmony_ci#define G_DMA_DSCRB_PKT_SIZE(x)	    _SB_GETVALUE(x, S_DMA_DSCRB_PKT_SIZE, M_DMA_DSCRB_PKT_SIZE)
2558c2ecf20Sopenharmony_ci
2568c2ecf20Sopenharmony_ci/*
2578c2ecf20Sopenharmony_ci * from pass2 some bits in dscr_b are also used for rx status
2588c2ecf20Sopenharmony_ci */
2598c2ecf20Sopenharmony_ci#define S_DMA_DSCRB_STATUS	    _SB_MAKE64(0)
2608c2ecf20Sopenharmony_ci#define M_DMA_DSCRB_STATUS	    _SB_MAKEMASK(1, S_DMA_DSCRB_STATUS)
2618c2ecf20Sopenharmony_ci#define V_DMA_DSCRB_STATUS(x)	    _SB_MAKEVALUE(x, S_DMA_DSCRB_STATUS)
2628c2ecf20Sopenharmony_ci#define G_DMA_DSCRB_STATUS(x)	    _SB_GETVALUE(x, S_DMA_DSCRB_STATUS, M_DMA_DSCRB_STATUS)
2638c2ecf20Sopenharmony_ci
2648c2ecf20Sopenharmony_ci/*
2658c2ecf20Sopenharmony_ci * Ethernet Descriptor Status Bits (Table 7-15)
2668c2ecf20Sopenharmony_ci */
2678c2ecf20Sopenharmony_ci
2688c2ecf20Sopenharmony_ci#define M_DMA_ETHRX_BADIP4CS	    _SB_MAKEMASK1(51)
2698c2ecf20Sopenharmony_ci#define M_DMA_ETHRX_DSCRERR	    _SB_MAKEMASK1(52)
2708c2ecf20Sopenharmony_ci
2718c2ecf20Sopenharmony_ci#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
2728c2ecf20Sopenharmony_ci/* Note: This bit is in the DSCR_B options field */
2738c2ecf20Sopenharmony_ci#define M_DMA_ETHRX_BADTCPCS	_SB_MAKEMASK1(0)
2748c2ecf20Sopenharmony_ci#endif /* 1250 PASS2 || 112x PASS1 || 1480 */
2758c2ecf20Sopenharmony_ci
2768c2ecf20Sopenharmony_ci#if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
2778c2ecf20Sopenharmony_ci/* Note: These bits are in the DSCR_B options field */
2788c2ecf20Sopenharmony_ci#define M_DMA_ETH_VLAN_FLAG	_SB_MAKEMASK1(1)
2798c2ecf20Sopenharmony_ci#define M_DMA_ETH_CRC_FLAG	_SB_MAKEMASK1(2)
2808c2ecf20Sopenharmony_ci#endif /* 1250 PASS3 || 112x PASS1 || 1480 */
2818c2ecf20Sopenharmony_ci
2828c2ecf20Sopenharmony_ci#define S_DMA_ETHRX_RXCH	    53
2838c2ecf20Sopenharmony_ci#define M_DMA_ETHRX_RXCH	    _SB_MAKEMASK(2, S_DMA_ETHRX_RXCH)
2848c2ecf20Sopenharmony_ci#define V_DMA_ETHRX_RXCH(x)	    _SB_MAKEVALUE(x, S_DMA_ETHRX_RXCH)
2858c2ecf20Sopenharmony_ci#define G_DMA_ETHRX_RXCH(x)	    _SB_GETVALUE(x, S_DMA_ETHRX_RXCH, M_DMA_ETHRX_RXCH)
2868c2ecf20Sopenharmony_ci
2878c2ecf20Sopenharmony_ci#define S_DMA_ETHRX_PKTTYPE	    55
2888c2ecf20Sopenharmony_ci#define M_DMA_ETHRX_PKTTYPE	    _SB_MAKEMASK(3, S_DMA_ETHRX_PKTTYPE)
2898c2ecf20Sopenharmony_ci#define V_DMA_ETHRX_PKTTYPE(x)	    _SB_MAKEVALUE(x, S_DMA_ETHRX_PKTTYPE)
2908c2ecf20Sopenharmony_ci#define G_DMA_ETHRX_PKTTYPE(x)	    _SB_GETVALUE(x, S_DMA_ETHRX_PKTTYPE, M_DMA_ETHRX_PKTTYPE)
2918c2ecf20Sopenharmony_ci
2928c2ecf20Sopenharmony_ci#define K_DMA_ETHRX_PKTTYPE_IPV4    0
2938c2ecf20Sopenharmony_ci#define K_DMA_ETHRX_PKTTYPE_ARPV4   1
2948c2ecf20Sopenharmony_ci#define K_DMA_ETHRX_PKTTYPE_802	    2
2958c2ecf20Sopenharmony_ci#define K_DMA_ETHRX_PKTTYPE_OTHER   3
2968c2ecf20Sopenharmony_ci#define K_DMA_ETHRX_PKTTYPE_USER0   4
2978c2ecf20Sopenharmony_ci#define K_DMA_ETHRX_PKTTYPE_USER1   5
2988c2ecf20Sopenharmony_ci#define K_DMA_ETHRX_PKTTYPE_USER2   6
2998c2ecf20Sopenharmony_ci#define K_DMA_ETHRX_PKTTYPE_USER3   7
3008c2ecf20Sopenharmony_ci
3018c2ecf20Sopenharmony_ci#define M_DMA_ETHRX_MATCH_HASH	    _SB_MAKEMASK1(58)
3028c2ecf20Sopenharmony_ci#define M_DMA_ETHRX_MATCH_EXACT	    _SB_MAKEMASK1(59)
3038c2ecf20Sopenharmony_ci#define M_DMA_ETHRX_BCAST	    _SB_MAKEMASK1(60)
3048c2ecf20Sopenharmony_ci#define M_DMA_ETHRX_MCAST	    _SB_MAKEMASK1(61)
3058c2ecf20Sopenharmony_ci#define M_DMA_ETHRX_BAD		    _SB_MAKEMASK1(62)
3068c2ecf20Sopenharmony_ci#define M_DMA_ETHRX_SOP		    _SB_MAKEMASK1(63)
3078c2ecf20Sopenharmony_ci
3088c2ecf20Sopenharmony_ci/*
3098c2ecf20Sopenharmony_ci * Ethernet Transmit Status Bits (Table 7-16)
3108c2ecf20Sopenharmony_ci */
3118c2ecf20Sopenharmony_ci
3128c2ecf20Sopenharmony_ci#define M_DMA_ETHTX_SOP		    _SB_MAKEMASK1(63)
3138c2ecf20Sopenharmony_ci
3148c2ecf20Sopenharmony_ci/*
3158c2ecf20Sopenharmony_ci * Ethernet Transmit Options (Table 7-17)
3168c2ecf20Sopenharmony_ci */
3178c2ecf20Sopenharmony_ci
3188c2ecf20Sopenharmony_ci#define K_DMA_ETHTX_NOTSOP	    _SB_MAKE64(0x00)
3198c2ecf20Sopenharmony_ci#define K_DMA_ETHTX_APPENDCRC	    _SB_MAKE64(0x01)
3208c2ecf20Sopenharmony_ci#define K_DMA_ETHTX_REPLACECRC	    _SB_MAKE64(0x02)
3218c2ecf20Sopenharmony_ci#define K_DMA_ETHTX_APPENDCRC_APPENDPAD _SB_MAKE64(0x03)
3228c2ecf20Sopenharmony_ci#define K_DMA_ETHTX_APPENDVLAN_REPLACECRC _SB_MAKE64(0x04)
3238c2ecf20Sopenharmony_ci#define K_DMA_ETHTX_REMOVEVLAN_REPLACECRC _SB_MAKE64(0x05)
3248c2ecf20Sopenharmony_ci#define K_DMA_ETHTX_REPLACEVLAN_REPLACECRC _SB_MAKE64(0x6)
3258c2ecf20Sopenharmony_ci#define K_DMA_ETHTX_NOMODS	    _SB_MAKE64(0x07)
3268c2ecf20Sopenharmony_ci#define K_DMA_ETHTX_RESERVED1	    _SB_MAKE64(0x08)
3278c2ecf20Sopenharmony_ci#define K_DMA_ETHTX_REPLACESADDR_APPENDCRC _SB_MAKE64(0x09)
3288c2ecf20Sopenharmony_ci#define K_DMA_ETHTX_REPLACESADDR_REPLACECRC _SB_MAKE64(0x0A)
3298c2ecf20Sopenharmony_ci#define K_DMA_ETHTX_REPLACESADDR_APPENDCRC_APPENDPAD _SB_MAKE64(0x0B)
3308c2ecf20Sopenharmony_ci#define K_DMA_ETHTX_REPLACESADDR_APPENDVLAN_REPLACECRC _SB_MAKE64(0x0C)
3318c2ecf20Sopenharmony_ci#define K_DMA_ETHTX_REPLACESADDR_REMOVEVLAN_REPLACECRC _SB_MAKE64(0x0D)
3328c2ecf20Sopenharmony_ci#define K_DMA_ETHTX_REPLACESADDR_REPLACEVLAN_REPLACECRC _SB_MAKE64(0x0E)
3338c2ecf20Sopenharmony_ci#define K_DMA_ETHTX_RESERVED2	    _SB_MAKE64(0x0F)
3348c2ecf20Sopenharmony_ci
3358c2ecf20Sopenharmony_ci/*
3368c2ecf20Sopenharmony_ci * Serial Receive Options (Table 7-18)
3378c2ecf20Sopenharmony_ci */
3388c2ecf20Sopenharmony_ci#define M_DMA_SERRX_CRC_ERROR	    _SB_MAKEMASK1(56)
3398c2ecf20Sopenharmony_ci#define M_DMA_SERRX_ABORT	    _SB_MAKEMASK1(57)
3408c2ecf20Sopenharmony_ci#define M_DMA_SERRX_OCTET_ERROR	    _SB_MAKEMASK1(58)
3418c2ecf20Sopenharmony_ci#define M_DMA_SERRX_LONGFRAME_ERROR _SB_MAKEMASK1(59)
3428c2ecf20Sopenharmony_ci#define M_DMA_SERRX_SHORTFRAME_ERROR _SB_MAKEMASK1(60)
3438c2ecf20Sopenharmony_ci#define M_DMA_SERRX_OVERRUN_ERROR   _SB_MAKEMASK1(61)
3448c2ecf20Sopenharmony_ci#define M_DMA_SERRX_GOOD	    _SB_MAKEMASK1(62)
3458c2ecf20Sopenharmony_ci#define M_DMA_SERRX_SOP		    _SB_MAKEMASK1(63)
3468c2ecf20Sopenharmony_ci
3478c2ecf20Sopenharmony_ci/*
3488c2ecf20Sopenharmony_ci * Serial Transmit Status Bits (Table 7-20)
3498c2ecf20Sopenharmony_ci */
3508c2ecf20Sopenharmony_ci
3518c2ecf20Sopenharmony_ci#define M_DMA_SERTX_FLAG	    _SB_MAKEMASK1(63)
3528c2ecf20Sopenharmony_ci
3538c2ecf20Sopenharmony_ci/*
3548c2ecf20Sopenharmony_ci * Serial Transmit Options (Table 7-21)
3558c2ecf20Sopenharmony_ci */
3568c2ecf20Sopenharmony_ci
3578c2ecf20Sopenharmony_ci#define K_DMA_SERTX_RESERVED	    _SB_MAKEMASK1(0)
3588c2ecf20Sopenharmony_ci#define K_DMA_SERTX_APPENDCRC	    _SB_MAKEMASK1(1)
3598c2ecf20Sopenharmony_ci#define K_DMA_SERTX_APPENDPAD	    _SB_MAKEMASK1(2)
3608c2ecf20Sopenharmony_ci#define K_DMA_SERTX_ABORT	    _SB_MAKEMASK1(3)
3618c2ecf20Sopenharmony_ci
3628c2ecf20Sopenharmony_ci
3638c2ecf20Sopenharmony_ci/*  *********************************************************************
3648c2ecf20Sopenharmony_ci    *  Data Mover Registers
3658c2ecf20Sopenharmony_ci    ********************************************************************* */
3668c2ecf20Sopenharmony_ci
3678c2ecf20Sopenharmony_ci/*
3688c2ecf20Sopenharmony_ci * Data Mover Descriptor Base Address Register (Table 7-22)
3698c2ecf20Sopenharmony_ci * Register: DM_DSCR_BASE_0
3708c2ecf20Sopenharmony_ci * Register: DM_DSCR_BASE_1
3718c2ecf20Sopenharmony_ci * Register: DM_DSCR_BASE_2
3728c2ecf20Sopenharmony_ci * Register: DM_DSCR_BASE_3
3738c2ecf20Sopenharmony_ci */
3748c2ecf20Sopenharmony_ci
3758c2ecf20Sopenharmony_ci#define M_DM_DSCR_BASE_MBZ	    _SB_MAKEMASK(4, 0)
3768c2ecf20Sopenharmony_ci
3778c2ecf20Sopenharmony_ci/*  Note: Just mask the base address and then OR it in. */
3788c2ecf20Sopenharmony_ci#define S_DM_DSCR_BASE_ADDR	    _SB_MAKE64(4)
3798c2ecf20Sopenharmony_ci#define M_DM_DSCR_BASE_ADDR	    _SB_MAKEMASK(36, S_DM_DSCR_BASE_ADDR)
3808c2ecf20Sopenharmony_ci
3818c2ecf20Sopenharmony_ci#define S_DM_DSCR_BASE_RINGSZ	    _SB_MAKE64(40)
3828c2ecf20Sopenharmony_ci#define M_DM_DSCR_BASE_RINGSZ	    _SB_MAKEMASK(16, S_DM_DSCR_BASE_RINGSZ)
3838c2ecf20Sopenharmony_ci#define V_DM_DSCR_BASE_RINGSZ(x)    _SB_MAKEVALUE(x, S_DM_DSCR_BASE_RINGSZ)
3848c2ecf20Sopenharmony_ci#define G_DM_DSCR_BASE_RINGSZ(x)    _SB_GETVALUE(x, S_DM_DSCR_BASE_RINGSZ, M_DM_DSCR_BASE_RINGSZ)
3858c2ecf20Sopenharmony_ci
3868c2ecf20Sopenharmony_ci#define S_DM_DSCR_BASE_PRIORITY	    _SB_MAKE64(56)
3878c2ecf20Sopenharmony_ci#define M_DM_DSCR_BASE_PRIORITY	    _SB_MAKEMASK(3, S_DM_DSCR_BASE_PRIORITY)
3888c2ecf20Sopenharmony_ci#define V_DM_DSCR_BASE_PRIORITY(x)  _SB_MAKEVALUE(x, S_DM_DSCR_BASE_PRIORITY)
3898c2ecf20Sopenharmony_ci#define G_DM_DSCR_BASE_PRIORITY(x)  _SB_GETVALUE(x, S_DM_DSCR_BASE_PRIORITY, M_DM_DSCR_BASE_PRIORITY)
3908c2ecf20Sopenharmony_ci
3918c2ecf20Sopenharmony_ci#define K_DM_DSCR_BASE_PRIORITY_1   0
3928c2ecf20Sopenharmony_ci#define K_DM_DSCR_BASE_PRIORITY_2   1
3938c2ecf20Sopenharmony_ci#define K_DM_DSCR_BASE_PRIORITY_4   2
3948c2ecf20Sopenharmony_ci#define K_DM_DSCR_BASE_PRIORITY_8   3
3958c2ecf20Sopenharmony_ci#define K_DM_DSCR_BASE_PRIORITY_16  4
3968c2ecf20Sopenharmony_ci
3978c2ecf20Sopenharmony_ci#define M_DM_DSCR_BASE_ACTIVE	    _SB_MAKEMASK1(59)
3988c2ecf20Sopenharmony_ci#define M_DM_DSCR_BASE_INTERRUPT    _SB_MAKEMASK1(60)
3998c2ecf20Sopenharmony_ci#define M_DM_DSCR_BASE_RESET	    _SB_MAKEMASK1(61)	/* write register */
4008c2ecf20Sopenharmony_ci#define M_DM_DSCR_BASE_ERROR	    _SB_MAKEMASK1(61)	/* read register */
4018c2ecf20Sopenharmony_ci#define M_DM_DSCR_BASE_ABORT	    _SB_MAKEMASK1(62)
4028c2ecf20Sopenharmony_ci#define M_DM_DSCR_BASE_ENABL	    _SB_MAKEMASK1(63)
4038c2ecf20Sopenharmony_ci
4048c2ecf20Sopenharmony_ci/*
4058c2ecf20Sopenharmony_ci * Data Mover Descriptor Count Register (Table 7-25)
4068c2ecf20Sopenharmony_ci */
4078c2ecf20Sopenharmony_ci
4088c2ecf20Sopenharmony_ci/* no bitfields */
4098c2ecf20Sopenharmony_ci
4108c2ecf20Sopenharmony_ci/*
4118c2ecf20Sopenharmony_ci * Data Mover Current Descriptor Address (Table 7-24)
4128c2ecf20Sopenharmony_ci * Register: DM_CUR_DSCR_ADDR_0
4138c2ecf20Sopenharmony_ci * Register: DM_CUR_DSCR_ADDR_1
4148c2ecf20Sopenharmony_ci * Register: DM_CUR_DSCR_ADDR_2
4158c2ecf20Sopenharmony_ci * Register: DM_CUR_DSCR_ADDR_3
4168c2ecf20Sopenharmony_ci */
4178c2ecf20Sopenharmony_ci
4188c2ecf20Sopenharmony_ci#define S_DM_CUR_DSCR_DSCR_ADDR	    _SB_MAKE64(0)
4198c2ecf20Sopenharmony_ci#define M_DM_CUR_DSCR_DSCR_ADDR	    _SB_MAKEMASK(40, S_DM_CUR_DSCR_DSCR_ADDR)
4208c2ecf20Sopenharmony_ci
4218c2ecf20Sopenharmony_ci#define S_DM_CUR_DSCR_DSCR_COUNT    _SB_MAKE64(48)
4228c2ecf20Sopenharmony_ci#define M_DM_CUR_DSCR_DSCR_COUNT    _SB_MAKEMASK(16, S_DM_CUR_DSCR_DSCR_COUNT)
4238c2ecf20Sopenharmony_ci#define V_DM_CUR_DSCR_DSCR_COUNT(r) _SB_MAKEVALUE(r, S_DM_CUR_DSCR_DSCR_COUNT)
4248c2ecf20Sopenharmony_ci#define G_DM_CUR_DSCR_DSCR_COUNT(r) _SB_GETVALUE(r, S_DM_CUR_DSCR_DSCR_COUNT,\
4258c2ecf20Sopenharmony_ci				     M_DM_CUR_DSCR_DSCR_COUNT)
4268c2ecf20Sopenharmony_ci
4278c2ecf20Sopenharmony_ci
4288c2ecf20Sopenharmony_ci#if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
4298c2ecf20Sopenharmony_ci/*
4308c2ecf20Sopenharmony_ci * Data Mover Channel Partial Result Registers
4318c2ecf20Sopenharmony_ci * Register: DM_PARTIAL_0
4328c2ecf20Sopenharmony_ci * Register: DM_PARTIAL_1
4338c2ecf20Sopenharmony_ci * Register: DM_PARTIAL_2
4348c2ecf20Sopenharmony_ci * Register: DM_PARTIAL_3
4358c2ecf20Sopenharmony_ci */
4368c2ecf20Sopenharmony_ci#define S_DM_PARTIAL_CRC_PARTIAL      _SB_MAKE64(0)
4378c2ecf20Sopenharmony_ci#define M_DM_PARTIAL_CRC_PARTIAL      _SB_MAKEMASK(32, S_DM_PARTIAL_CRC_PARTIAL)
4388c2ecf20Sopenharmony_ci#define V_DM_PARTIAL_CRC_PARTIAL(r)   _SB_MAKEVALUE(r, S_DM_PARTIAL_CRC_PARTIAL)
4398c2ecf20Sopenharmony_ci#define G_DM_PARTIAL_CRC_PARTIAL(r)   _SB_GETVALUE(r, S_DM_PARTIAL_CRC_PARTIAL,\
4408c2ecf20Sopenharmony_ci				       M_DM_PARTIAL_CRC_PARTIAL)
4418c2ecf20Sopenharmony_ci
4428c2ecf20Sopenharmony_ci#define S_DM_PARTIAL_TCPCS_PARTIAL    _SB_MAKE64(32)
4438c2ecf20Sopenharmony_ci#define M_DM_PARTIAL_TCPCS_PARTIAL    _SB_MAKEMASK(16, S_DM_PARTIAL_TCPCS_PARTIAL)
4448c2ecf20Sopenharmony_ci#define V_DM_PARTIAL_TCPCS_PARTIAL(r) _SB_MAKEVALUE(r, S_DM_PARTIAL_TCPCS_PARTIAL)
4458c2ecf20Sopenharmony_ci#define G_DM_PARTIAL_TCPCS_PARTIAL(r) _SB_GETVALUE(r, S_DM_PARTIAL_TCPCS_PARTIAL,\
4468c2ecf20Sopenharmony_ci				       M_DM_PARTIAL_TCPCS_PARTIAL)
4478c2ecf20Sopenharmony_ci
4488c2ecf20Sopenharmony_ci#define M_DM_PARTIAL_ODD_BYTE	      _SB_MAKEMASK1(48)
4498c2ecf20Sopenharmony_ci#endif /* 1250 PASS3 || 112x PASS1 || 1480 */
4508c2ecf20Sopenharmony_ci
4518c2ecf20Sopenharmony_ci
4528c2ecf20Sopenharmony_ci#if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
4538c2ecf20Sopenharmony_ci/*
4548c2ecf20Sopenharmony_ci * Data Mover CRC Definition Registers
4558c2ecf20Sopenharmony_ci * Register: CRC_DEF_0
4568c2ecf20Sopenharmony_ci * Register: CRC_DEF_1
4578c2ecf20Sopenharmony_ci */
4588c2ecf20Sopenharmony_ci#define S_CRC_DEF_CRC_INIT	      _SB_MAKE64(0)
4598c2ecf20Sopenharmony_ci#define M_CRC_DEF_CRC_INIT	      _SB_MAKEMASK(32, S_CRC_DEF_CRC_INIT)
4608c2ecf20Sopenharmony_ci#define V_CRC_DEF_CRC_INIT(r)	      _SB_MAKEVALUE(r, S_CRC_DEF_CRC_INIT)
4618c2ecf20Sopenharmony_ci#define G_CRC_DEF_CRC_INIT(r)	      _SB_GETVALUE(r, S_CRC_DEF_CRC_INIT,\
4628c2ecf20Sopenharmony_ci				       M_CRC_DEF_CRC_INIT)
4638c2ecf20Sopenharmony_ci
4648c2ecf20Sopenharmony_ci#define S_CRC_DEF_CRC_POLY	      _SB_MAKE64(32)
4658c2ecf20Sopenharmony_ci#define M_CRC_DEF_CRC_POLY	      _SB_MAKEMASK(32, S_CRC_DEF_CRC_POLY)
4668c2ecf20Sopenharmony_ci#define V_CRC_DEF_CRC_POLY(r)	      _SB_MAKEVALUE(r, S_CRC_DEF_CRC_POLY)
4678c2ecf20Sopenharmony_ci#define G_CRC_DEF_CRC_POLY(r)	      _SB_GETVALUE(r, S_CRC_DEF_CRC_POLY,\
4688c2ecf20Sopenharmony_ci				       M_CRC_DEF_CRC_POLY)
4698c2ecf20Sopenharmony_ci#endif /* 1250 PASS3 || 112x PASS1 || 1480 */
4708c2ecf20Sopenharmony_ci
4718c2ecf20Sopenharmony_ci
4728c2ecf20Sopenharmony_ci#if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
4738c2ecf20Sopenharmony_ci/*
4748c2ecf20Sopenharmony_ci * Data Mover CRC/Checksum Definition Registers
4758c2ecf20Sopenharmony_ci * Register: CTCP_DEF_0
4768c2ecf20Sopenharmony_ci * Register: CTCP_DEF_1
4778c2ecf20Sopenharmony_ci */
4788c2ecf20Sopenharmony_ci#define S_CTCP_DEF_CRC_TXOR	      _SB_MAKE64(0)
4798c2ecf20Sopenharmony_ci#define M_CTCP_DEF_CRC_TXOR	      _SB_MAKEMASK(32, S_CTCP_DEF_CRC_TXOR)
4808c2ecf20Sopenharmony_ci#define V_CTCP_DEF_CRC_TXOR(r)	      _SB_MAKEVALUE(r, S_CTCP_DEF_CRC_TXOR)
4818c2ecf20Sopenharmony_ci#define G_CTCP_DEF_CRC_TXOR(r)	      _SB_GETVALUE(r, S_CTCP_DEF_CRC_TXOR,\
4828c2ecf20Sopenharmony_ci				       M_CTCP_DEF_CRC_TXOR)
4838c2ecf20Sopenharmony_ci
4848c2ecf20Sopenharmony_ci#define S_CTCP_DEF_TCPCS_INIT	      _SB_MAKE64(32)
4858c2ecf20Sopenharmony_ci#define M_CTCP_DEF_TCPCS_INIT	      _SB_MAKEMASK(16, S_CTCP_DEF_TCPCS_INIT)
4868c2ecf20Sopenharmony_ci#define V_CTCP_DEF_TCPCS_INIT(r)      _SB_MAKEVALUE(r, S_CTCP_DEF_TCPCS_INIT)
4878c2ecf20Sopenharmony_ci#define G_CTCP_DEF_TCPCS_INIT(r)      _SB_GETVALUE(r, S_CTCP_DEF_TCPCS_INIT,\
4888c2ecf20Sopenharmony_ci				       M_CTCP_DEF_TCPCS_INIT)
4898c2ecf20Sopenharmony_ci
4908c2ecf20Sopenharmony_ci#define S_CTCP_DEF_CRC_WIDTH	      _SB_MAKE64(48)
4918c2ecf20Sopenharmony_ci#define M_CTCP_DEF_CRC_WIDTH	      _SB_MAKEMASK(2, S_CTCP_DEF_CRC_WIDTH)
4928c2ecf20Sopenharmony_ci#define V_CTCP_DEF_CRC_WIDTH(r)	      _SB_MAKEVALUE(r, S_CTCP_DEF_CRC_WIDTH)
4938c2ecf20Sopenharmony_ci#define G_CTCP_DEF_CRC_WIDTH(r)	      _SB_GETVALUE(r, S_CTCP_DEF_CRC_WIDTH,\
4948c2ecf20Sopenharmony_ci				       M_CTCP_DEF_CRC_WIDTH)
4958c2ecf20Sopenharmony_ci
4968c2ecf20Sopenharmony_ci#define K_CTCP_DEF_CRC_WIDTH_4	      0
4978c2ecf20Sopenharmony_ci#define K_CTCP_DEF_CRC_WIDTH_2	      1
4988c2ecf20Sopenharmony_ci#define K_CTCP_DEF_CRC_WIDTH_1	      2
4998c2ecf20Sopenharmony_ci
5008c2ecf20Sopenharmony_ci#define M_CTCP_DEF_CRC_BIT_ORDER      _SB_MAKEMASK1(50)
5018c2ecf20Sopenharmony_ci#endif /* 1250 PASS3 || 112x PASS1 || 1480 */
5028c2ecf20Sopenharmony_ci
5038c2ecf20Sopenharmony_ci
5048c2ecf20Sopenharmony_ci/*
5058c2ecf20Sopenharmony_ci * Data Mover Descriptor Doubleword "A"	 (Table 7-26)
5068c2ecf20Sopenharmony_ci */
5078c2ecf20Sopenharmony_ci
5088c2ecf20Sopenharmony_ci#define S_DM_DSCRA_DST_ADDR	    _SB_MAKE64(0)
5098c2ecf20Sopenharmony_ci#define M_DM_DSCRA_DST_ADDR	    _SB_MAKEMASK(40, S_DM_DSCRA_DST_ADDR)
5108c2ecf20Sopenharmony_ci
5118c2ecf20Sopenharmony_ci#define M_DM_DSCRA_UN_DEST	    _SB_MAKEMASK1(40)
5128c2ecf20Sopenharmony_ci#define M_DM_DSCRA_UN_SRC	    _SB_MAKEMASK1(41)
5138c2ecf20Sopenharmony_ci#define M_DM_DSCRA_INTERRUPT	    _SB_MAKEMASK1(42)
5148c2ecf20Sopenharmony_ci#if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)
5158c2ecf20Sopenharmony_ci#define M_DM_DSCRA_THROTTLE	    _SB_MAKEMASK1(43)
5168c2ecf20Sopenharmony_ci#endif /* up to 1250 PASS1 */
5178c2ecf20Sopenharmony_ci
5188c2ecf20Sopenharmony_ci#define S_DM_DSCRA_DIR_DEST	    _SB_MAKE64(44)
5198c2ecf20Sopenharmony_ci#define M_DM_DSCRA_DIR_DEST	    _SB_MAKEMASK(2, S_DM_DSCRA_DIR_DEST)
5208c2ecf20Sopenharmony_ci#define V_DM_DSCRA_DIR_DEST(x)	    _SB_MAKEVALUE(x, S_DM_DSCRA_DIR_DEST)
5218c2ecf20Sopenharmony_ci#define G_DM_DSCRA_DIR_DEST(x)	    _SB_GETVALUE(x, S_DM_DSCRA_DIR_DEST, M_DM_DSCRA_DIR_DEST)
5228c2ecf20Sopenharmony_ci
5238c2ecf20Sopenharmony_ci#define K_DM_DSCRA_DIR_DEST_INCR    0
5248c2ecf20Sopenharmony_ci#define K_DM_DSCRA_DIR_DEST_DECR    1
5258c2ecf20Sopenharmony_ci#define K_DM_DSCRA_DIR_DEST_CONST   2
5268c2ecf20Sopenharmony_ci
5278c2ecf20Sopenharmony_ci#define V_DM_DSCRA_DIR_DEST_INCR    _SB_MAKEVALUE(K_DM_DSCRA_DIR_DEST_INCR, S_DM_DSCRA_DIR_DEST)
5288c2ecf20Sopenharmony_ci#define V_DM_DSCRA_DIR_DEST_DECR    _SB_MAKEVALUE(K_DM_DSCRA_DIR_DEST_DECR, S_DM_DSCRA_DIR_DEST)
5298c2ecf20Sopenharmony_ci#define V_DM_DSCRA_DIR_DEST_CONST   _SB_MAKEVALUE(K_DM_DSCRA_DIR_DEST_CONST, S_DM_DSCRA_DIR_DEST)
5308c2ecf20Sopenharmony_ci
5318c2ecf20Sopenharmony_ci#define S_DM_DSCRA_DIR_SRC	    _SB_MAKE64(46)
5328c2ecf20Sopenharmony_ci#define M_DM_DSCRA_DIR_SRC	    _SB_MAKEMASK(2, S_DM_DSCRA_DIR_SRC)
5338c2ecf20Sopenharmony_ci#define V_DM_DSCRA_DIR_SRC(x)	    _SB_MAKEVALUE(x, S_DM_DSCRA_DIR_SRC)
5348c2ecf20Sopenharmony_ci#define G_DM_DSCRA_DIR_SRC(x)	    _SB_GETVALUE(x, S_DM_DSCRA_DIR_SRC, M_DM_DSCRA_DIR_SRC)
5358c2ecf20Sopenharmony_ci
5368c2ecf20Sopenharmony_ci#define K_DM_DSCRA_DIR_SRC_INCR	    0
5378c2ecf20Sopenharmony_ci#define K_DM_DSCRA_DIR_SRC_DECR	    1
5388c2ecf20Sopenharmony_ci#define K_DM_DSCRA_DIR_SRC_CONST    2
5398c2ecf20Sopenharmony_ci
5408c2ecf20Sopenharmony_ci#define V_DM_DSCRA_DIR_SRC_INCR	    _SB_MAKEVALUE(K_DM_DSCRA_DIR_SRC_INCR, S_DM_DSCRA_DIR_SRC)
5418c2ecf20Sopenharmony_ci#define V_DM_DSCRA_DIR_SRC_DECR	    _SB_MAKEVALUE(K_DM_DSCRA_DIR_SRC_DECR, S_DM_DSCRA_DIR_SRC)
5428c2ecf20Sopenharmony_ci#define V_DM_DSCRA_DIR_SRC_CONST    _SB_MAKEVALUE(K_DM_DSCRA_DIR_SRC_CONST, S_DM_DSCRA_DIR_SRC)
5438c2ecf20Sopenharmony_ci
5448c2ecf20Sopenharmony_ci
5458c2ecf20Sopenharmony_ci#define M_DM_DSCRA_ZERO_MEM	    _SB_MAKEMASK1(48)
5468c2ecf20Sopenharmony_ci#define M_DM_DSCRA_PREFETCH	    _SB_MAKEMASK1(49)
5478c2ecf20Sopenharmony_ci#define M_DM_DSCRA_L2C_DEST	    _SB_MAKEMASK1(50)
5488c2ecf20Sopenharmony_ci#define M_DM_DSCRA_L2C_SRC	    _SB_MAKEMASK1(51)
5498c2ecf20Sopenharmony_ci
5508c2ecf20Sopenharmony_ci#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
5518c2ecf20Sopenharmony_ci#define M_DM_DSCRA_RD_BKOFF	    _SB_MAKEMASK1(52)
5528c2ecf20Sopenharmony_ci#define M_DM_DSCRA_WR_BKOFF	    _SB_MAKEMASK1(53)
5538c2ecf20Sopenharmony_ci#endif /* 1250 PASS2 || 112x PASS1 || 1480 */
5548c2ecf20Sopenharmony_ci
5558c2ecf20Sopenharmony_ci#if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
5568c2ecf20Sopenharmony_ci#define M_DM_DSCRA_TCPCS_EN	    _SB_MAKEMASK1(54)
5578c2ecf20Sopenharmony_ci#define M_DM_DSCRA_TCPCS_RES	    _SB_MAKEMASK1(55)
5588c2ecf20Sopenharmony_ci#define M_DM_DSCRA_TCPCS_AP	    _SB_MAKEMASK1(56)
5598c2ecf20Sopenharmony_ci#define M_DM_DSCRA_CRC_EN	    _SB_MAKEMASK1(57)
5608c2ecf20Sopenharmony_ci#define M_DM_DSCRA_CRC_RES	    _SB_MAKEMASK1(58)
5618c2ecf20Sopenharmony_ci#define M_DM_DSCRA_CRC_AP	    _SB_MAKEMASK1(59)
5628c2ecf20Sopenharmony_ci#define M_DM_DSCRA_CRC_DFN	    _SB_MAKEMASK1(60)
5638c2ecf20Sopenharmony_ci#define M_DM_DSCRA_CRC_XBIT	    _SB_MAKEMASK1(61)
5648c2ecf20Sopenharmony_ci#endif /* 1250 PASS3 || 112x PASS1 || 1480 */
5658c2ecf20Sopenharmony_ci
5668c2ecf20Sopenharmony_ci#define M_DM_DSCRA_RESERVED2	    _SB_MAKEMASK(3, 61)
5678c2ecf20Sopenharmony_ci
5688c2ecf20Sopenharmony_ci/*
5698c2ecf20Sopenharmony_ci * Data Mover Descriptor Doubleword "B"	 (Table 7-25)
5708c2ecf20Sopenharmony_ci */
5718c2ecf20Sopenharmony_ci
5728c2ecf20Sopenharmony_ci#define S_DM_DSCRB_SRC_ADDR	    _SB_MAKE64(0)
5738c2ecf20Sopenharmony_ci#define M_DM_DSCRB_SRC_ADDR	    _SB_MAKEMASK(40, S_DM_DSCRB_SRC_ADDR)
5748c2ecf20Sopenharmony_ci
5758c2ecf20Sopenharmony_ci#define S_DM_DSCRB_SRC_LENGTH	    _SB_MAKE64(40)
5768c2ecf20Sopenharmony_ci#define M_DM_DSCRB_SRC_LENGTH	    _SB_MAKEMASK(20, S_DM_DSCRB_SRC_LENGTH)
5778c2ecf20Sopenharmony_ci#define V_DM_DSCRB_SRC_LENGTH(x)    _SB_MAKEVALUE(x, S_DM_DSCRB_SRC_LENGTH)
5788c2ecf20Sopenharmony_ci#define G_DM_DSCRB_SRC_LENGTH(x)    _SB_GETVALUE(x, S_DM_DSCRB_SRC_LENGTH, M_DM_DSCRB_SRC_LENGTH)
5798c2ecf20Sopenharmony_ci
5808c2ecf20Sopenharmony_ci
5818c2ecf20Sopenharmony_ci#endif
582