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

📄 mvphy.h

📁 atheros ar531x ethernet driver
💻 H
字号:
/* * This file is subject to the terms and conditions of the GNU General Public * License.  See the file "COPYING" in the main directory of this archive * for more details. * * Copyright ?2003 Atheros Communications, Inc.,  All Rights Reserved. *//* * mvPhy.h - definitions for the ethernet PHY -- Marvell 88E6060 * All definitions in this file are operating system independent! */#ifndef MVPHY_H#define MVPHY_H/*****************//* PHY Registers *//*****************/#define MV_PHY_CONTROL                 0#define MV_PHY_STATUS                  1#define MV_PHY_ID1                     2#define MV_PHY_ID2                     3#define MV_AUTONEG_ADVERT              4#define MV_LINK_PARTNER_ABILITY        5#define MV_AUTONEG_EXPANSION           6#define MV_NEXT_PAGE_TRANSMIT          7#define MV_LINK_PARTNER_NEXT_PAGE      8#define MV_PHY_SPECIFIC_CONTROL_1     16#define MV_PHY_SPECIFIC_STATUS        17#define MV_PHY_INTERRUPT_ENABLE       18#define MV_PHY_INTERRUPT_STATUS       19#define MV_PHY_INTERRUPT_PORT_SUMMARY 20#define MV_RECEIVE_ERROR_COUNTER      21#define MV_LED_PARALLEL_SELECT        22#define MV_LED_STREAM_SELECT_LEDS     23#define MV_PHY_LED_CONTROL            24#define MV_PHY_MANUAL_LED_OVERRIDE    25#define MV_VCT_CONTROL                26#define MV_VCT_STATUS                 27#define MV_PHY_SPECIFIC_CONTROL_2     28/* MV_PHY_CONTROL fields */#define MV_CTRL_SOFTWARE_RESET                    0x8000#define MV_CTRL_AUTONEGOTIATION_ENABLE            0x1000#define MV_CTRL_FULL_DUPLEX			  0x0100#define MV_CTRL_100_MBPS			  0x2000/* MV_PHY_ID1 fields */#define MV_PHY_ID1_EXPECTATION                    0x0141 /* OUI >> 6 *//* MV_PHY_ID2 fields */#define MV_OUI_LSB_MASK                           0xfc00#define MV_OUI_LSB_EXPECTATION                    0x0c00#define MV_OUI_LSB_SHIFT                              10#define MV_MODEL_NUM_MASK                         0x03f0#define MV_MODEL_NUM_SHIFT                             4#define MV_REV_NUM_MASK                           0x000f#define MV_REV_NUM_SHIFT                               0/* MV_PHY_SPECIFIC_STATUS fields */#define MV_STATUS_RESOLVED_SPEED_100              0x4000#define MV_STATUS_RESOLVED_DUPLEX_FULL            0x2000#define MV_STATUS_RESOLVED                        0x0800#define MV_STATUS_REAL_TIME_LINK_UP               0x0400/* Check if autonegotiation is complete and link is up */#define MV_AUTONEG_DONE(mv_phy_specific_status)                   \    (((mv_phy_specific_status) &                                  \        (MV_STATUS_RESOLVED | MV_STATUS_REAL_TIME_LINK_UP)) ==    \        (MV_STATUS_RESOLVED | MV_STATUS_REAL_TIME_LINK_UP))/*************************//* Switch Port Registers *//*************************/#define MV_PORT_STATUS                 0#define MV_SWITCH_ID                   3#define MV_PORT_CONTROL                4#define MV_PORT_BASED_VLAN_MAP         6#define MV_PORT_ASSOCIATION_VECTOR    11#define MV_RX_COUNTER                 16#define MV_TX_COUNTER                 17/* MV_SWITCH_ID fields */#define MV_SWITCH_ID_DEV_MASK                       0xfff0#define MV_SWITCH_ID_DEV_EXPECTATION                0x0600#define MV_SWITCH_ID_DEV_SHIFT                           4#define MV_SWITCH_ID_REV_MASK                       0x000f#define MV_SWITCH_ID_REV_SHIFT                           0/* MV_PORT_CONTROL fields */#define MV_PORT_CONTROL_PORT_STATE_MASK             0x0003#define MV_PORT_CONTROL_PORT_STATE_DISABLED         0x0000#define MV_PORT_CONTROL_PORT_STATE_FORWARDING       0x0003#define MV_PORT_CONTROL_EGRESS_TRAILER_MODE     0x4000	/* Transmit */#define MV_PORT_CONTROL_INGRESS_TRAILER_MODE    0x0100	/* Receive */#define MV_PORT_CONTROL_HEADER_MODE            	0x0800	/* Transmit */#define MV_PORT_CONTROL_FORCE_FLOW_CTRL			0x8000#define MV_EGRESS_TRAILER_VALID                       0x80#define MV_INGRESS_TRAILER_OVERRIDE                   0x80#define MV_PHY_TRAILER_SIZE                              4/***************************//* Switch Global Registers *//***************************/#define MV_SWITCH_GLOBAL_STATUS        0#define MV_SWITCH_MAC_ADDR0            1#define MV_SWITCH_MAC_ADDR2            2#define MV_SWITCH_MAC_ADDR4            3#define MV_SWITCH_GLOBAL_CONTROL       4#define MV_ATU_CONTROL                10#define MV_ATU_OPERATION              11#define MV_ATU_DATA                   12#define MV_ATU_MAC_ADDR0              13#define MV_ATU_MAC_ADDR2              14#define MV_ATU_MAC_ADDR4              15/* MV_SWITCH_GLOBAL_STATUS fields */#define MV_SWITCH_STATUS_READY_MASK  0x0800/* MV_SWITCH_GLOBAL_CONTROL fields */#define MV_CTRMODE_MASK              0x0100#define MV_CTRMODE_GOODFRAMES        0x0000#define MV_CTRMODE_BADFRAMES         0x0100/* MV_ATU_CONTROL fields */#define MV_ATUCTRL_ATU_SIZE_MASK     0x3000#define MV_ATUCTRL_ATU_SIZE_SHIFT        12#define MV_ATUCTRL_ATU_SIZE_DEFAULT       2 /* 1024 entry database */#define MV_ATUCTRL_AGE_TIME_MASK     0x0ff0#define MV_ATUCTRL_AGE_TIME_SHIFT         4#define MV_ATUCTRL_AGE_TIME_DEFAULT      19 /* 19 * 16 = 304 seconds *//* MV_ATU_OPERATION fields */#define MV_ATU_BUSY_MASK             0x8000#define MV_ATU_IS_BUSY               0x8000#define MV_ATU_IS_FREE               0x0000#define MV_ATU_OP_MASK               0x7000#define MV_ATU_OP_FLUSH_ALL          0x1000#define MV_ATU_OP_GET_NEXT           0x4000#define MV_ATU_OP_PURGE_ENTRY        0x3000/* MV_ATU_DATA fields */#define MV_ENTRYPRI_MASK             0xc000#define MV_ENTRYPRI_SHIFT                14#define MV_PORTVEC_MASK              0x03f0#define MV_PORTVEC_SHIFT                  4#define MV_ENTRYSTATE_MASK           0x000f#define MV_ENTRYSTATE_SHIFT               0/* PHY Address for the switch itself */#define MV_SWITCH_GLOBAL_ADDR 0x1fBOOL    mv_phySetup(int ethUnit, UINT32 phyBase);void    mv_phyCheckStatusChange(int ethUnit);BOOL    mv_phyIsSpeed100(int ethUnit);int     mv_phyIsFullDuplex(int ethUnit);BOOL    mv_phyIsLinkAlive(int phyUnit);void    mv_phySet(int phyUnit, UINT32 regnum, UINT32 value);BOOL 	mv_phyIsFullDuplex_ext(int phyUnit);#endif /* MVPHY_H */

⌨️ 快捷键说明

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