?? sb1250_mac.h
字號:
/* ********************************************************************* * SB1250 Board Support Package * * MAC constants and macros File: sb1250_mac.h * * This module contains constants and macros for the SB1250's * ethernet controllers. * * SB1250 specification level: User's manual 1/02/02 * * Author: Mitch Lichtenberg * ********************************************************************* * * Copyright 2000,2001,2002,2003 * Broadcom Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA ********************************************************************* */#ifndef _SB1250_MAC_H#define _SB1250_MAC_H#include "sb1250_defs.h"/* ********************************************************************* * Ethernet MAC Registers ********************************************************************* *//* * MAC Configuration Register (Table 9-13) * Register: MAC_CFG_0 * Register: MAC_CFG_1 * Register: MAC_CFG_2 */#define M_MAC_RESERVED0 _SB_MAKEMASK1(0)#define M_MAC_TX_HOLD_SOP_EN _SB_MAKEMASK1(1)#define M_MAC_RETRY_EN _SB_MAKEMASK1(2)#define M_MAC_RET_DRPREQ_EN _SB_MAKEMASK1(3)#define M_MAC_RET_UFL_EN _SB_MAKEMASK1(4)#define M_MAC_BURST_EN _SB_MAKEMASK1(5)#define S_MAC_TX_PAUSE _SB_MAKE64(6)#define M_MAC_TX_PAUSE_CNT _SB_MAKEMASK(3,S_MAC_TX_PAUSE)#define V_MAC_TX_PAUSE_CNT(x) _SB_MAKEVALUE(x,S_MAC_TX_PAUSE)#define K_MAC_TX_PAUSE_CNT_512 0#define K_MAC_TX_PAUSE_CNT_1K 1#define K_MAC_TX_PAUSE_CNT_2K 2#define K_MAC_TX_PAUSE_CNT_4K 3#define K_MAC_TX_PAUSE_CNT_8K 4#define K_MAC_TX_PAUSE_CNT_16K 5#define K_MAC_TX_PAUSE_CNT_32K 6#define K_MAC_TX_PAUSE_CNT_64K 7#define V_MAC_TX_PAUSE_CNT_512 V_MAC_TX_PAUSE_CNT(K_MAC_TX_PAUSE_CNT_512)#define V_MAC_TX_PAUSE_CNT_1K V_MAC_TX_PAUSE_CNT(K_MAC_TX_PAUSE_CNT_1K)#define V_MAC_TX_PAUSE_CNT_2K V_MAC_TX_PAUSE_CNT(K_MAC_TX_PAUSE_CNT_2K)#define V_MAC_TX_PAUSE_CNT_4K V_MAC_TX_PAUSE_CNT(K_MAC_TX_PAUSE_CNT_4K)#define V_MAC_TX_PAUSE_CNT_8K V_MAC_TX_PAUSE_CNT(K_MAC_TX_PAUSE_CNT_8K)#define V_MAC_TX_PAUSE_CNT_16K V_MAC_TX_PAUSE_CNT(K_MAC_TX_PAUSE_CNT_16K)#define V_MAC_TX_PAUSE_CNT_32K V_MAC_TX_PAUSE_CNT(K_MAC_TX_PAUSE_CNT_32K)#define V_MAC_TX_PAUSE_CNT_64K V_MAC_TX_PAUSE_CNT(K_MAC_TX_PAUSE_CNT_64K)#define M_MAC_RESERVED1 _SB_MAKEMASK(8,9)#define M_MAC_AP_STAT_EN _SB_MAKEMASK1(17)#define M_MAC_RESERVED2 _SB_MAKEMASK1(18)#define M_MAC_DRP_ERRPKT_EN _SB_MAKEMASK1(19)#define M_MAC_DRP_FCSERRPKT_EN _SB_MAKEMASK1(20)#define M_MAC_DRP_CODEERRPKT_EN _SB_MAKEMASK1(21)#define M_MAC_DRP_DRBLERRPKT_EN _SB_MAKEMASK1(22)#define M_MAC_DRP_RNTPKT_EN _SB_MAKEMASK1(23)#define M_MAC_DRP_OSZPKT_EN _SB_MAKEMASK1(24)#define M_MAC_DRP_LENERRPKT_EN _SB_MAKEMASK1(25)#define M_MAC_RESERVED3 _SB_MAKEMASK(6,26)#define M_MAC_BYPASS_SEL _SB_MAKEMASK1(32)#define M_MAC_HDX_EN _SB_MAKEMASK1(33)#define S_MAC_SPEED_SEL _SB_MAKE64(34)#define M_MAC_SPEED_SEL _SB_MAKEMASK(2,S_MAC_SPEED_SEL)#define V_MAC_SPEED_SEL(x) _SB_MAKEVALUE(x,S_MAC_SPEED_SEL)#define G_MAC_SPEED_SEL(x) _SB_GETVALUE(x,S_MAC_SPEED_SEL,M_MAC_SPEED_SEL)#define K_MAC_SPEED_SEL_10MBPS 0#define K_MAC_SPEED_SEL_100MBPS 1#define K_MAC_SPEED_SEL_1000MBPS 2#define K_MAC_SPEED_SEL_RESERVED 3#define V_MAC_SPEED_SEL_10MBPS V_MAC_SPEED_SEL(K_MAC_SPEED_SEL_10MBPS)#define V_MAC_SPEED_SEL_100MBPS V_MAC_SPEED_SEL(K_MAC_SPEED_SEL_100MBPS)#define V_MAC_SPEED_SEL_1000MBPS V_MAC_SPEED_SEL(K_MAC_SPEED_SEL_1000MBPS)#define V_MAC_SPEED_SEL_RESERVED V_MAC_SPEED_SEL(K_MAC_SPEED_SEL_RESERVED)#define M_MAC_TX_CLK_EDGE_SEL _SB_MAKEMASK1(36)#define M_MAC_LOOPBACK_SEL _SB_MAKEMASK1(37)#define M_MAC_FAST_SYNC _SB_MAKEMASK1(38)#define M_MAC_SS_EN _SB_MAKEMASK1(39)#define S_MAC_BYPASS_CFG _SB_MAKE64(40)#define M_MAC_BYPASS_CFG _SB_MAKEMASK(2,S_MAC_BYPASS_CFG)#define V_MAC_BYPASS_CFG(x) _SB_MAKEVALUE(x,S_MAC_BYPASS_CFG)#define G_MAC_BYPASS_CFG(x) _SB_GETVALUE(x,S_MAC_BYPASS_CFG,M_MAC_BYPASS_CFG)#define K_MAC_BYPASS_GMII 0#define K_MAC_BYPASS_ENCODED 1#define K_MAC_BYPASS_SOP 2#define K_MAC_BYPASS_EOP 3#define M_MAC_BYPASS_16 _SB_MAKEMASK1(42)#define M_MAC_BYPASS_FCS_CHK _SB_MAKEMASK1(43)#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)#define M_MAC_RX_CH_SEL_MSB _SB_MAKEMASK1(44)#endif /* 1250 PASS2 || 112x PASS1 */#if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1)#define M_MAC_SPLIT_CH_SEL _SB_MAKEMASK1(45)#endif /* 1250 PASS3 || 112x PASS1 */#define S_MAC_BYPASS_IFG _SB_MAKE64(46)#define M_MAC_BYPASS_IFG _SB_MAKEMASK(8,S_MAC_BYPASS_IFG)#define V_MAC_BYPASS_IFG(x) _SB_MAKEVALUE(x,S_MAC_BYPASS_IFG)#define G_MAC_BYPASS_IFG(x) _SB_GETVALUE(x,S_MAC_BYPASS_IFG,M_MAC_BYPASS_IFG)#define K_MAC_FC_CMD_DISABLED 0#define K_MAC_FC_CMD_ENABLED 1#define K_MAC_FC_CMD_ENAB_FALSECARR 2#define V_MAC_FC_CMD_DISABLED V_MAC_FC_CMD(K_MAC_FC_CMD_DISABLED)#define V_MAC_FC_CMD_ENABLED V_MAC_FC_CMD(K_MAC_FC_CMD_ENABLED)#define V_MAC_FC_CMD_ENAB_FALSECARR V_MAC_FC_CMD(K_MAC_FC_CMD_ENAB_FALSECARR)#define M_MAC_FC_SEL _SB_MAKEMASK1(54)#define S_MAC_FC_CMD _SB_MAKE64(55)#define M_MAC_FC_CMD _SB_MAKEMASK(2,S_MAC_FC_CMD)#define V_MAC_FC_CMD(x) _SB_MAKEVALUE(x,S_MAC_FC_CMD)#define G_MAC_FC_CMD(x) _SB_GETVALUE(x,S_MAC_FC_CMD,M_MAC_FC_CMD)#define S_MAC_RX_CH_SEL _SB_MAKE64(57)#define M_MAC_RX_CH_SEL _SB_MAKEMASK(7,S_MAC_RX_CH_SEL)#define V_MAC_RX_CH_SEL(x) _SB_MAKEVALUE(x,S_MAC_RX_CH_SEL)#define G_MAC_RX_CH_SEL(x) _SB_GETVALUE(x,S_MAC_RX_CH_SEL,M_MAC_RX_CH_SEL)/* * MAC Enable Registers * Register: MAC_ENABLE_0 * Register: MAC_ENABLE_1 * Register: MAC_ENABLE_2 */#define M_MAC_RXDMA_EN0 _SB_MAKEMASK1(0)#define M_MAC_RXDMA_EN1 _SB_MAKEMASK1(1)#define M_MAC_TXDMA_EN0 _SB_MAKEMASK1(4)#define M_MAC_TXDMA_EN1 _SB_MAKEMASK1(5)#define M_MAC_PORT_RESET _SB_MAKEMASK1(8)#define M_MAC_RX_ENABLE _SB_MAKEMASK1(10)#define M_MAC_TX_ENABLE _SB_MAKEMASK1(11)#define M_MAC_BYP_RX_ENABLE _SB_MAKEMASK1(12)#define M_MAC_BYP_TX_ENABLE _SB_MAKEMASK1(13)/* * MAC DMA Control Register * Register: MAC_TXD_CTL_0 * Register: MAC_TXD_CTL_1 * Register: MAC_TXD_CTL_2 */#define S_MAC_TXD_WEIGHT0 _SB_MAKE64(0)#define M_MAC_TXD_WEIGHT0 _SB_MAKEMASK(4,S_MAC_TXD_WEIGHT0)#define V_MAC_TXD_WEIGHT0(x) _SB_MAKEVALUE(x,S_MAC_TXD_WEIGHT0)#define G_MAC_TXD_WEIGHT0(x) _SB_GETVALUE(x,S_MAC_TXD_WEIGHT0,M_MAC_TXD_WEIGHT0)#define S_MAC_TXD_WEIGHT1 _SB_MAKE64(4)#define M_MAC_TXD_WEIGHT1 _SB_MAKEMASK(4,S_MAC_TXD_WEIGHT1)#define V_MAC_TXD_WEIGHT1(x) _SB_MAKEVALUE(x,S_MAC_TXD_WEIGHT1)#define G_MAC_TXD_WEIGHT1(x) _SB_GETVALUE(x,S_MAC_TXD_WEIGHT1,M_MAC_TXD_WEIGHT1)/* * MAC Fifo Threshhold registers (Table 9-14) * Register: MAC_THRSH_CFG_0 * Register: MAC_THRSH_CFG_1 * Register: MAC_THRSH_CFG_2 */#define S_MAC_TX_WR_THRSH _SB_MAKE64(0)#if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)/* XXX: Can't enable, as it has the same name as a pass2+ define below. *//* #define M_MAC_TX_WR_THRSH _SB_MAKEMASK(6,S_MAC_TX_WR_THRSH) */#endif /* up to 1250 PASS1 */#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)#define M_MAC_TX_WR_THRSH _SB_MAKEMASK(7,S_MAC_TX_WR_THRSH)#endif /* 1250 PASS2 || 112x PASS1 */#define V_MAC_TX_WR_THRSH(x) _SB_MAKEVALUE(x,S_MAC_TX_WR_THRSH)#define G_MAC_TX_WR_THRSH(x) _SB_GETVALUE(x,S_MAC_TX_WR_THRSH,M_MAC_TX_WR_THRSH)#define S_MAC_TX_RD_THRSH _SB_MAKE64(8)#if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)/* XXX: Can't enable, as it has the same name as a pass2+ define below. *//* #define M_MAC_TX_RD_THRSH _SB_MAKEMASK(6,S_MAC_TX_RD_THRSH) */#endif /* up to 1250 PASS1 */#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)#define M_MAC_TX_RD_THRSH _SB_MAKEMASK(7,S_MAC_TX_RD_THRSH)#endif /* 1250 PASS2 || 112x PASS1 */#define V_MAC_TX_RD_THRSH(x) _SB_MAKEVALUE(x,S_MAC_TX_RD_THRSH)#define G_MAC_TX_RD_THRSH(x) _SB_GETVALUE(x,S_MAC_TX_RD_THRSH,M_MAC_TX_RD_THRSH)#define S_MAC_TX_RL_THRSH _SB_MAKE64(16)#define M_MAC_TX_RL_THRSH _SB_MAKEMASK(4,S_MAC_TX_RL_THRSH)#define V_MAC_TX_RL_THRSH(x) _SB_MAKEVALUE(x,S_MAC_TX_RL_THRSH)#define G_MAC_TX_RL_THRSH(x) _SB_GETVALUE(x,S_MAC_TX_RL_THRSH,M_MAC_TX_RL_THRSH)#define S_MAC_RX_PL_THRSH _SB_MAKE64(24)#define M_MAC_RX_PL_THRSH _SB_MAKEMASK(6,S_MAC_RX_PL_THRSH)#define V_MAC_RX_PL_THRSH(x) _SB_MAKEVALUE(x,S_MAC_RX_PL_THRSH)#define G_MAC_RX_PL_THRSH(x) _SB_GETVALUE(x,S_MAC_RX_PL_THRSH,M_MAC_RX_PL_THRSH)#define S_MAC_RX_RD_THRSH _SB_MAKE64(32)#define M_MAC_RX_RD_THRSH _SB_MAKEMASK(6,S_MAC_RX_RD_THRSH)#define V_MAC_RX_RD_THRSH(x) _SB_MAKEVALUE(x,S_MAC_RX_RD_THRSH)#define G_MAC_RX_RD_THRSH(x) _SB_GETVALUE(x,S_MAC_RX_RD_THRSH,M_MAC_RX_RD_THRSH)#define S_MAC_RX_RL_THRSH _SB_MAKE64(40)#define M_MAC_RX_RL_THRSH _SB_MAKEMASK(6,S_MAC_RX_RL_THRSH)#define V_MAC_RX_RL_THRSH(x) _SB_MAKEVALUE(x,S_MAC_RX_RL_THRSH)#define G_MAC_RX_RL_THRSH(x) _SB_GETVALUE(x,S_MAC_RX_RL_THRSH,M_MAC_RX_RL_THRSH)#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)#define S_MAC_ENC_FC_THRSH _SB_MAKE64(56)#define M_MAC_ENC_FC_THRSH _SB_MAKEMASK(6,S_MAC_ENC_FC_THRSH)#define V_MAC_ENC_FC_THRSH(x) _SB_MAKEVALUE(x,S_MAC_ENC_FC_THRSH)#define G_MAC_ENC_FC_THRSH(x) _SB_GETVALUE(x,S_MAC_ENC_FC_THRSH,M_MAC_ENC_FC_THRSH)#endif /* 1250 PASS2 || 112x PASS1 *//* * MAC Frame Configuration Registers (Table 9-15) * Register: MAC_FRAME_CFG_0 * Register: MAC_FRAME_CFG_1 * Register: MAC_FRAME_CFG_2 *//* XXXCGD: ??? Unused in pass2? */#define S_MAC_IFG_RX _SB_MAKE64(0)#define M_MAC_IFG_RX _SB_MAKEMASK(6,S_MAC_IFG_RX)#define V_MAC_IFG_RX(x) _SB_MAKEVALUE(x,S_MAC_IFG_RX)#define G_MAC_IFG_RX(x) _SB_GETVALUE(x,S_MAC_IFG_RX,M_MAC_IFG_RX)#if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1)#define S_MAC_PRE_LEN _SB_MAKE64(0)#define M_MAC_PRE_LEN _SB_MAKEMASK(6,S_MAC_PRE_LEN)#define V_MAC_PRE_LEN(x) _SB_MAKEVALUE(x,S_MAC_PRE_LEN)#define G_MAC_PRE_LEN(x) _SB_GETVALUE(x,S_MAC_PRE_LEN,M_MAC_PRE_LEN)#endif /* 1250 PASS3 || 112x PASS1 */#define S_MAC_IFG_TX _SB_MAKE64(6)#define M_MAC_IFG_TX _SB_MAKEMASK(6,S_MAC_IFG_TX)#define V_MAC_IFG_TX(x) _SB_MAKEVALUE(x,S_MAC_IFG_TX)#define G_MAC_IFG_TX(x) _SB_GETVALUE(x,S_MAC_IFG_TX,M_MAC_IFG_TX)#define S_MAC_IFG_THRSH _SB_MAKE64(12)#define M_MAC_IFG_THRSH _SB_MAKEMASK(6,S_MAC_IFG_THRSH)#define V_MAC_IFG_THRSH(x) _SB_MAKEVALUE(x,S_MAC_IFG_THRSH)#define G_MAC_IFG_THRSH(x) _SB_GETVALUE(x,S_MAC_IFG_THRSH,M_MAC_IFG_THRSH)#define S_MAC_BACKOFF_SEL _SB_MAKE64(18)#define M_MAC_BACKOFF_SEL _SB_MAKEMASK(4,S_MAC_BACKOFF_SEL)#define V_MAC_BACKOFF_SEL(x) _SB_MAKEVALUE(x,S_MAC_BACKOFF_SEL)#define G_MAC_BACKOFF_SEL(x) _SB_GETVALUE(x,S_MAC_BACKOFF_SEL,M_MAC_BACKOFF_SEL)#define S_MAC_LFSR_SEED _SB_MAKE64(22)#define M_MAC_LFSR_SEED _SB_MAKEMASK(8,S_MAC_LFSR_SEED)#define V_MAC_LFSR_SEED(x) _SB_MAKEVALUE(x,S_MAC_LFSR_SEED)#define G_MAC_LFSR_SEED(x) _SB_GETVALUE(x,S_MAC_LFSR_SEED,M_MAC_LFSR_SEED)#define S_MAC_SLOT_SIZE _SB_MAKE64(30)#define M_MAC_SLOT_SIZE _SB_MAKEMASK(10,S_MAC_SLOT_SIZE)#define V_MAC_SLOT_SIZE(x) _SB_MAKEVALUE(x,S_MAC_SLOT_SIZE)#define G_MAC_SLOT_SIZE(x) _SB_GETVALUE(x,S_MAC_SLOT_SIZE,M_MAC_SLOT_SIZE)#define S_MAC_MIN_FRAMESZ _SB_MAKE64(40)#define M_MAC_MIN_FRAMESZ _SB_MAKEMASK(8,S_MAC_MIN_FRAMESZ)#define V_MAC_MIN_FRAMESZ(x) _SB_MAKEVALUE(x,S_MAC_MIN_FRAMESZ)#define G_MAC_MIN_FRAMESZ(x) _SB_GETVALUE(x,S_MAC_MIN_FRAMESZ,M_MAC_MIN_FRAMESZ)#define S_MAC_MAX_FRAMESZ _SB_MAKE64(48)#define M_MAC_MAX_FRAMESZ _SB_MAKEMASK(16,S_MAC_MAX_FRAMESZ)#define V_MAC_MAX_FRAMESZ(x) _SB_MAKEVALUE(x,S_MAC_MAX_FRAMESZ)#define G_MAC_MAX_FRAMESZ(x) _SB_GETVALUE(x,S_MAC_MAX_FRAMESZ,M_MAC_MAX_FRAMESZ)/* * These constants are used to configure the fields within the Frame * Configuration Register. */#define K_MAC_IFG_RX_10 _SB_MAKE64(0) /* See table 176, not used */#define K_MAC_IFG_RX_100 _SB_MAKE64(0)#define K_MAC_IFG_RX_1000 _SB_MAKE64(0)#define K_MAC_IFG_TX_10 _SB_MAKE64(20)#define K_MAC_IFG_TX_100 _SB_MAKE64(20)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -