⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ns_gige_reg.h

📁 M5,一个功能强大的多处理器系统模拟器.很多针对处理器架构,性能的研究都使用它作为模拟平台
💻 H
字号:
/* * Copyright (c) 2004, 2005 * The Regents of The University of Michigan * All Rights Reserved * * This code is part of the M5 simulator. * * Permission is granted to use, copy, create derivative works and * redistribute this software and such derivative works for any * purpose, so long as the copyright notice above, this grant of * permission, and the disclaimer below appear in all copies made; and * so long as the name of The University of Michigan is not used in * any advertising or publicity pertaining to the use or distribution * of this software without specific, written prior authorization. * * THIS SOFTWARE IS PROVIDED AS IS, WITHOUT REPRESENTATION FROM THE * UNIVERSITY OF MICHIGAN AS TO ITS FITNESS FOR ANY PURPOSE, AND * WITHOUT WARRANTY BY THE UNIVERSITY OF MICHIGAN OF ANY KIND, EITHER * EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE. THE REGENTS OF THE UNIVERSITY OF MICHIGAN SHALL NOT BE * LIABLE FOR ANY DAMAGES, INCLUDING DIRECT, SPECIAL, INDIRECT, * INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WITH RESPECT TO ANY CLAIM * ARISING OUT OF OR IN CONNECTION WITH THE USE OF THE SOFTWARE, EVEN * IF IT HAS BEEN OR IS HEREAFTER ADVISED OF THE POSSIBILITY OF SUCH * DAMAGES. * * Authors: Lisa R. Hsu *//** @file * Ethernet device register definitions for the National * Semiconductor DP83820 Ethernet controller */#ifndef __DEV_NS_GIGE_REG_H__#define __DEV_NS_GIGE_REG_H__/* Device Register Address Map */enum DeviceRegisterAddress {    CR =                0x00,    CFGR =              0x04,    MEAR =              0x08,    PTSCR =             0x0c,    ISR =               0x10,    IMR =               0x14,    IER =               0x18,    IHR =               0x1c,    TXDP =              0x20,    TXDP_HI =           0x24,    TX_CFG =            0x28,    GPIOR =             0x2c,    RXDP =              0x30,    RXDP_HI =           0x34,    RX_CFG =            0x38,    PQCR =              0x3c,    WCSR =              0x40,    PCR =               0x44,    RFCR =              0x48,    RFDR =              0x4c,    BRAR =              0x50,    BRDR =              0x54,    SRR =               0x58,    MIBC =              0x5c,    MIB_START =         0x60,    MIB_END =           0x88,    VRCR =              0xbc,    VTCR =              0xc0,    VDR =               0xc4,    CCSR =              0xcc,    TBICR =             0xe0,    TBISR =             0xe4,    TANAR =             0xe8,    TANLPAR =           0xec,    TANER =             0xf0,    TESR =              0xf4,    M5REG =             0xf8,    LAST =              0xf8,    RESERVED =          0xfc};/* Chip Command Register */enum ChipCommandRegister {     CR_TXE =           0x00000001,     CR_TXD =           0x00000002,     CR_RXE =           0x00000004,     CR_RXD =           0x00000008,     CR_TXR =           0x00000010,     CR_RXR =           0x00000020,     CR_SWI =           0x00000080,     CR_RST =           0x00000100};/* configuration register */enum ConfigurationRegisters {     CFGR_LNKSTS =      0x80000000,     CFGR_SPDSTS =      0x60000000,     CFGR_SPDSTS1 =     0x40000000,     CFGR_SPDSTS0 =     0x20000000,     CFGR_DUPSTS =      0x10000000,     CFGR_TBI_EN =      0x01000000,     CFGR_RESERVED =    0x0e000000,     CFGR_MODE_1000 =   0x00400000,     CFGR_AUTO_1000 =   0x00200000,     CFGR_PINT_CTL =    0x001c0000,     CFGR_PINT_DUPSTS = 0x00100000,     CFGR_PINT_LNKSTS = 0x00080000,     CFGR_PINT_SPDSTS = 0x00040000,     CFGR_TMRTEST =     0x00020000,     CFGR_MRM_DIS =     0x00010000,     CFGR_MWI_DIS =     0x00008000,     CFGR_T64ADDR =     0x00004000,     CFGR_PCI64_DET =   0x00002000,     CFGR_DATA64_EN =   0x00001000,     CFGR_M64ADDR =     0x00000800,     CFGR_PHY_RST =     0x00000400,     CFGR_PHY_DIS =     0x00000200,     CFGR_EXTSTS_EN =   0x00000100,     CFGR_REQALG =      0x00000080,     CFGR_SB =          0x00000040,     CFGR_POW =         0x00000020,     CFGR_EXD =         0x00000010,     CFGR_PESEL =       0x00000008,     CFGR_BROM_DIS =    0x00000004,     CFGR_EXT_125 =     0x00000002,     CFGR_BEM =         0x00000001};/* EEPROM access register */enum EEPROMAccessRegister {     MEAR_EEDI =        0x00000001,     MEAR_EEDO =        0x00000002,     MEAR_EECLK =       0x00000004,     MEAR_EESEL =       0x00000008,     MEAR_MDIO =        0x00000010,     MEAR_MDDIR =       0x00000020,     MEAR_MDC =         0x00000040,};/* PCI test control register */enum PCITestControlRegister {     PTSCR_EEBIST_FAIL =        0x00000001,     PTSCR_EEBIST_EN =          0x00000002,     PTSCR_EELOAD_EN =          0x00000004,     PTSCR_RBIST_FAIL =         0x000001b8,     PTSCR_RBIST_DONE =         0x00000200,     PTSCR_RBIST_EN =           0x00000400,     PTSCR_RBIST_RST =          0x00002000,     PTSCR_RBIST_RDONLY =       0x000003f9};/* interrupt status register */enum InterruptStatusRegister {     ISR_RESERVE =      0x80000000,     ISR_TXDESC3 =      0x40000000,     ISR_TXDESC2 =      0x20000000,     ISR_TXDESC1 =      0x10000000,     ISR_TXDESC0 =      0x08000000,     ISR_RXDESC3 =      0x04000000,     ISR_RXDESC2 =      0x02000000,     ISR_RXDESC1 =      0x01000000,     ISR_RXDESC0 =      0x00800000,     ISR_TXRCMP =       0x00400000,     ISR_RXRCMP =       0x00200000,     ISR_DPERR =        0x00100000,     ISR_SSERR =        0x00080000,     ISR_RMABT =        0x00040000,     ISR_RTAB =         0x00020000,     ISR_RXSOVR =       0x00010000,     ISR_HIBINT =       0x00008000,     ISR_PHY =          0x00004000,     ISR_PME =          0x00002000,     ISR_SWI =          0x00001000,     ISR_MIB =          0x00000800,     ISR_TXURN =        0x00000400,     ISR_TXIDLE =       0x00000200,     ISR_TXERR =        0x00000100,     ISR_TXDESC =       0x00000080,     ISR_TXOK =         0x00000040,     ISR_RXORN =        0x00000020,     ISR_RXIDLE =       0x00000010,     ISR_RXEARLY =      0x00000008,     ISR_RXERR =        0x00000004,     ISR_RXDESC =       0x00000002,     ISR_RXOK =         0x00000001,     ISR_ALL =          0x7FFFFFFF,     ISR_DELAY =        (ISR_TXIDLE|ISR_TXDESC|ISR_TXOK|                         ISR_RXIDLE|ISR_RXDESC|ISR_RXOK),     ISR_NODELAY =      (ISR_ALL & ~ISR_DELAY),     ISR_IMPL =         (ISR_SWI|ISR_TXIDLE|ISR_TXDESC|ISR_TXOK|ISR_RXORN|                         ISR_RXIDLE|ISR_RXDESC|ISR_RXOK),     ISR_NOIMPL =       (ISR_ALL & ~ISR_IMPL)};/* transmit configuration register */enum TransmitConfigurationRegister {     TX_CFG_CSI =       0x80000000,     TX_CFG_HBI =       0x40000000,     TX_CFG_MLB =       0x20000000,     TX_CFG_ATP =       0x10000000,     TX_CFG_ECRETRY =   0x00800000,     TX_CFG_BRST_DIS =  0x00080000,     TX_CFG_MXDMA1024 = 0x00000000,     TX_CFG_MXDMA512 =  0x00700000,     TX_CFG_MXDMA256 =  0x00600000,     TX_CFG_MXDMA128 =  0x00500000,     TX_CFG_MXDMA64 =   0x00400000,     TX_CFG_MXDMA32 =   0x00300000,     TX_CFG_MXDMA16 =   0x00200000,     TX_CFG_MXDMA8 =    0x00100000,     TX_CFG_MXDMA =     0x00700000,     TX_CFG_FLTH_MASK = 0x0000ff00,     TX_CFG_DRTH_MASK = 0x000000ff};/*general purpose I/O control register */enum GeneralPurposeIOControlRegister {     GPIOR_UNUSED =     0xffff8000,     GPIOR_GP5_IN =     0x00004000,     GPIOR_GP4_IN =     0x00002000,     GPIOR_GP3_IN =     0x00001000,     GPIOR_GP2_IN =     0x00000800,     GPIOR_GP1_IN =     0x00000400,     GPIOR_GP5_OE =     0x00000200,     GPIOR_GP4_OE =     0x00000100,     GPIOR_GP3_OE =     0x00000080,     GPIOR_GP2_OE =     0x00000040,     GPIOR_GP1_OE =     0x00000020,     GPIOR_GP5_OUT =    0x00000010,     GPIOR_GP4_OUT =    0x00000008,     GPIOR_GP3_OUT =    0x00000004,     GPIOR_GP2_OUT =    0x00000002,     GPIOR_GP1_OUT =    0x00000001};/* receive configuration register */enum ReceiveConfigurationRegister {     RX_CFG_AEP =       0x80000000,     RX_CFG_ARP =       0x40000000,     RX_CFG_STRIPCRC =  0x20000000,     RX_CFG_RX_FD =     0x10000000,     RX_CFG_ALP =       0x08000000,     RX_CFG_AIRL =      0x04000000,     RX_CFG_MXDMA512 =  0x00700000,     RX_CFG_MXDMA =     0x00700000,     RX_CFG_DRTH =      0x0000003e,     RX_CFG_DRTH0 =     0x00000002};/* pause control status register */enum PauseControlStatusRegister {     PCR_PSEN =         (1 << 31),     PCR_PS_MCAST =     (1 << 30),     PCR_PS_DA =        (1 << 29),     PCR_STHI_8 =       (3 << 23),     PCR_STLO_4 =       (1 << 23),     PCR_FFHI_8K =      (3 << 21),     PCR_FFLO_4K =      (1 << 21),     PCR_PAUSE_CNT =    0xFFFE};/*receive filter/match control register */enum ReceiveFilterMatchControlRegister {     RFCR_RFEN =        0x80000000,     RFCR_AAB =         0x40000000,     RFCR_AAM =         0x20000000,     RFCR_AAU =         0x10000000,     RFCR_APM =         0x08000000,     RFCR_APAT =        0x07800000,     RFCR_APAT3 =       0x04000000,     RFCR_APAT2 =       0x02000000,     RFCR_APAT1 =       0x01000000,     RFCR_APAT0 =       0x00800000,     RFCR_AARP =        0x00400000,     RFCR_MHEN =        0x00200000,     RFCR_UHEN =        0x00100000,     RFCR_ULM =         0x00080000,     RFCR_RFADDR =      0x000003ff};/* receive filter/match data register */enum ReceiveFilterMatchDataRegister {     RFDR_BMASK =       0x00030000,     RFDR_RFDATA0 =     0x000000ff,     RFDR_RFDATA1 =     0x0000ff00};/* management information base control register */enum ManagementInformationBaseControlRegister {     MIBC_MIBS =        0x00000008,     MIBC_ACLR =        0x00000004,     MIBC_FRZ =         0x00000002,     MIBC_WRN =         0x00000001};/* VLAN/IP receive control register */enum VLANIPReceiveControlRegister {     VRCR_RUDPE =       0x00000080,     VRCR_RTCPE =       0x00000040,     VRCR_RIPE =        0x00000020,     VRCR_IPEN =        0x00000010,     VRCR_DUTF =        0x00000008,     VRCR_DVTF =        0x00000004,     VRCR_VTREN =       0x00000002,     VRCR_VTDEN =       0x00000001};/* VLAN/IP transmit control register */enum VLANIPTransmitControlRegister {     VTCR_PPCHK =       0x00000008,     VTCR_GCHK =        0x00000004,     VTCR_VPPTI =       0x00000002,     VTCR_VGTI =        0x00000001};/* Clockrun Control/Status Register */enum ClockrunControlStatusRegister {     CCSR_CLKRUN_EN =   0x00000001};/* TBI control register */enum TBIControlRegister {     TBICR_MR_LOOPBACK =        0x00004000,     TBICR_MR_AN_ENABLE =       0x00001000,     TBICR_MR_RESTART_AN =      0x00000200};/* TBI status register */enum TBIStatusRegister {     TBISR_MR_LINK_STATUS =     0x00000020,     TBISR_MR_AN_COMPLETE =     0x00000004};/* TBI auto-negotiation advertisement register */enum TBIAutoNegotiationAdvertisementRegister {     TANAR_NP =         0x00008000,     TANAR_RF2 =        0x00002000,     TANAR_RF1 =        0x00001000,     TANAR_PS2 =        0x00000100,     TANAR_PS1 =        0x00000080,     TANAR_HALF_DUP =   0x00000040,     TANAR_FULL_DUP =   0x00000020,     TANAR_UNUSED =     0x00000E1F};/* M5 control register */enum M5ControlRegister {     M5REG_RESERVED =   0xfffffffc,     M5REG_RSS =        0x00000004,     M5REG_RX_THREAD =  0x00000002,     M5REG_TX_THREAD =  0x00000001};struct ns_desc32 {    uint32_t link;    /* link field to next descriptor in linked list */    uint32_t bufptr;  /* pointer to the first fragment or buffer */    uint32_t cmdsts;  /* command/status field */    uint32_t extsts;  /* extended status field for VLAN and IP info */};struct ns_desc64 {    uint64_t link;    /* link field to next descriptor in linked list */    uint64_t bufptr;  /* pointer to the first fragment or buffer */    uint32_t cmdsts;  /* command/status field */    uint32_t extsts;  /* extended status field for VLAN and IP info */};/* cmdsts flags for descriptors */enum CMDSTSFlatsForDescriptors {     CMDSTS_OWN =       0x80000000,     CMDSTS_MORE =      0x40000000,     CMDSTS_INTR =      0x20000000,     CMDSTS_ERR =       0x10000000,     CMDSTS_OK =        0x08000000,     CMDSTS_LEN_MASK =  0x0000ffff,     CMDSTS_DEST_MASK = 0x01800000,     CMDSTS_DEST_SELF = 0x00800000,     CMDSTS_DEST_MULTI = 0x01000000};/* extended flags for descriptors */enum ExtendedFlagsForDescriptors {     EXTSTS_UDPERR =    0x00400000,     EXTSTS_UDPPKT =    0x00200000,     EXTSTS_TCPERR =    0x00100000,     EXTSTS_TCPPKT =    0x00080000,     EXTSTS_IPERR =     0x00040000,     EXTSTS_IPPKT =     0x00020000};/* speed status */static inline intSPDSTS_POLARITY(int lnksts){    return (CFGR_SPDSTS1 | CFGR_SPDSTS0 | CFGR_DUPSTS |            (lnksts ? CFGR_LNKSTS : 0));}#endif /* __DEV_NS_GIGE_REG_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -