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