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

📄 eth_smsc911x.h

📁 Hermit-at-1.1.3,一款bootloader
💻 H
📖 第 1 页 / 共 2 页
字号:
#define RX_DP_CTRL				(0x78UL)#define		RX_DP_CTRL_RX_FFWD_		(0x00000FFFUL)	// R/W#define		RX_DP_CTRL_FFWD_BUSY_	(0x80000000UL)	// RO#define RX_FIFO_INF				(0x7CUL)#define		RX_FIFO_INF_RXSUSED_	(0x00FF0000UL)	// RO#define		RX_FIFO_INF_RXDUSED_	(0x0000FFFFUL)	// RO#define TX_FIFO_INF				(0x80UL)#define		TX_FIFO_INF_TSUSED_		(0x00FF0000UL)  // RO#define		TX_FIFO_INF_TSFREE_		(0x00FF0000UL)	// RO#define		TX_FIFO_INF_TDFREE_		(0x0000FFFFUL)	// RO#define PMT_CTRL				(0x84UL)#define		PMT_CTRL_PM_MODE_			(0x00018000UL)	// Self Clearing#define		PMT_CTRL_PHY_RST_			(0x00000400UL)	// Self Clearing#define		PMT_CTRL_WOL_EN_			(0x00000200UL)	// R/W#define		PMT_CTRL_ED_EN_				(0x00000100UL)	// R/W#define		PMT_CTRL_PME_TYPE_			(0x00000040UL)	// R/W Not Affected by SW Reset#define		PMT_CTRL_WUPS_				(0x00000030UL)	// R/WC#define			PMT_CTRL_WUPS_NOWAKE_		(0x00000000UL)	// R/WC#define			PMT_CTRL_WUPS_ED_			(0x00000010UL)	// R/WC#define			PMT_CTRL_WUPS_WOL_			(0x00000020UL)	// R/WC#define			PMT_CTRL_WUPS_MULTI_		(0x00000030UL)	// R/WC#define		PMT_CTRL_PME_IND_		(0x00000008UL)	// R/W#define		PMT_CTRL_PME_POL_		(0x00000004UL)	// R/W#define		PMT_CTRL_PME_EN_		(0x00000002UL)	// R/W Not Affected by SW Reset#define		PMT_CTRL_READY_			(0x00000001UL)	// RO#define GPIO_CFG				(0x88UL)#define		GPIO_CFG_LED3_EN_		(0x40000000UL)	// R/W#define		GPIO_CFG_LED2_EN_		(0x20000000UL)	// R/W#define		GPIO_CFG_LED1_EN_		(0x10000000UL)	// R/W#define		GPIO_CFG_GPIO2_INT_POL_	(0x04000000UL)	// R/W#define		GPIO_CFG_GPIO1_INT_POL_	(0x02000000UL)	// R/W#define		GPIO_CFG_GPIO0_INT_POL_	(0x01000000UL)	// R/W#define		GPIO_CFG_EEPR_EN_		(0x00E00000UL)	// R/W#define		GPIO_CFG_GPIOBUF2_		(0x00040000UL)	// R/W#define		GPIO_CFG_GPIOBUF1_		(0x00020000UL)	// R/W#define		GPIO_CFG_GPIOBUF0_		(0x00010000UL)	// R/W#define		GPIO_CFG_GPIODIR2_		(0x00000400UL)	// R/W#define		GPIO_CFG_GPIODIR1_		(0x00000200UL)	// R/W#define		GPIO_CFG_GPIODIR0_		(0x00000100UL)	// R/W#define		GPIO_CFG_GPIOD4_		(0x00000020UL)	// R/W#define		GPIO_CFG_GPIOD3_		(0x00000010UL)	// R/W#define		GPIO_CFG_GPIOD2_		(0x00000004UL)	// R/W#define		GPIO_CFG_GPIOD1_		(0x00000002UL)	// R/W#define		GPIO_CFG_GPIOD0_		(0x00000001UL)	// R/W#define GPT_CFG					(0x8CUL)#define		GPT_CFG_TIMER_EN_		(0x20000000UL)	// R/W#define		GPT_CFG_GPT_LOAD_		(0x0000FFFFUL)	// R/W#define GPT_CNT					(0x90UL)#define		GPT_CNT_GPT_CNT_		(0x0000FFFFUL)	// RO#define FPGA_REV				(0x94UL)#define		FPGA_REV_FPGA_REV_		(0x0000FFFFUL)	// RO#define ENDIAN					(0x98UL)#define FREE_RUN				(0x9CUL)#define RX_DROP					(0xA0UL)#define MAC_CSR_CMD				(0xA4UL)#define		MAC_CSR_CMD_CSR_BUSY_	(0x80000000UL)	// Self Clearing#define		MAC_CSR_CMD_R_NOT_W_	(0x40000000UL)	// R/W#define		MAC_CSR_CMD_CSR_ADDR_	(0x000000FFUL)	// R/W#define MAC_CSR_DATA			(0xA8UL)#define AFC_CFG					(0xACUL)#define		AFC_CFG_AFC_HI_			(0x00FF0000UL)	// R/W#define		AFC_CFG_AFC_LO_			(0x0000FF00UL)	// R/W#define		AFC_CFG_BACK_DUR_		(0x000000F0UL)	// R/W#define		AFC_CFG_FCMULT_			(0x00000008UL)	// R/W#define		AFC_CFG_FCBRD_			(0x00000004UL)	// R/W#define		AFC_CFG_FCADD_			(0x00000002UL)	// R/W#define		AFC_CFG_FCANY_			(0x00000001UL)	// R/W#define E2P_CMD					(0xB0UL)#define		E2P_CMD_EPC_BUSY_		(0x80000000UL)	// Self Clearing#define		E2P_CMD_EPC_CMD_		(0x70000000UL)	// R/W#define			E2P_CMD_EPC_CMD_READ_	(0x00000000UL)	// R/W#define			E2P_CMD_EPC_CMD_EWDS_	(0x10000000UL)	// R/W#define			E2P_CMD_EPC_CMD_EWEN_	(0x20000000UL)	// R/W#define			E2P_CMD_EPC_CMD_WRITE_	(0x30000000UL)	// R/W#define			E2P_CMD_EPC_CMD_WRAL_	(0x40000000UL)	// R/W#define			E2P_CMD_EPC_CMD_ERASE_	(0x50000000UL)	// R/W#define			E2P_CMD_EPC_CMD_ERAL_	(0x60000000UL)	// R/W#define			E2P_CMD_EPC_CMD_RELOAD_	(0x70000000UL)  // R/W#define		E2P_CMD_EPC_TIMEOUT_	(0x00000200UL)	// R#define		E2P_CMD_MAC_ADDR_LOADED_	(0x00000100UL)	// RO#define		E2P_CMD_EPC_ADDR_		(0x000000FFUL)	// R/W#define E2P_DATA				(0xB4UL)#define		E2P_DATA_EEPROM_DATA_	(0x000000FFUL)	// R/W//end of lan register offsets and bit definitions#define LAN_REGISTER_EXTENT		(0x00002000UL)/* **************************************************************************** *	Chip Specific MII Defines **************************************************************************** * *	Phy register offsets and bit definitions * */#define LAN9118_PHY_ID	(0x00C0001C)#define PHY_BCR		((DWORD)0U)#define PHY_BCR_RESET_					((WORD)0x8000U)#define PHY_BCR_LOOPBACK_			((WORD)0x4000U)#define PHY_BCR_SPEED_SELECT_		((WORD)0x2000U)#define PHY_BCR_AUTO_NEG_ENABLE_	((WORD)0x1000U)#define PHY_BCR_RESTART_AUTO_NEG_	((WORD)0x0200U)#define PHY_BCR_DUPLEX_MODE_		((WORD)0x0100U)#define PHY_BSR		((DWORD)1U)	#define PHY_BSR_LINK_STATUS_	((WORD)0x0004U)	#define PHY_BSR_REMOTE_FAULT_	((WORD)0x0010U)	#define PHY_BSR_AUTO_NEG_COMP_	((WORD)0x0020U)#define PHY_ID_1	((DWORD)2U)#define PHY_ID_2	((DWORD)3U)#define PHY_ANEG_ADV    ((DWORD)4U)#define PHY_ANEG_ADV_PAUSE_ ((WORD)0x0C00)#define PHY_ANEG_ADV_ASYMP_	((WORD)0x0800)#define PHY_ANEG_ADV_SYMP_	((WORD)0x0400)#define PHY_ANEG_ADV_10H_	((WORD)0x20)#define PHY_ANEG_ADV_10F_	((WORD)0x40)#define PHY_ANEG_ADV_100H_	((WORD)0x80)#define PHY_ANEG_ADV_100F_	((WORD)0x100)#define PHY_ANEG_ADV_SPEED_	((WORD)0x1E0)#define PHY_ANEG_LPA	((DWORD)5U)#define PHY_ANEG_LPA_ASYMP_		((WORD)0x0800)#define PHY_ANEG_LPA_SYMP_		((WORD)0x0400)#define PHY_ANEG_LPA_100FDX_	((WORD)0x0100)#define PHY_ANEG_LPA_100HDX_	((WORD)0x0080)#define PHY_ANEG_LPA_10FDX_		((WORD)0x0040)#define PHY_ANEG_LPA_10HDX_		((WORD)0x0020)#define PHY_MODE_CTRL_STS		((DWORD)17)	// Mode Control/Status Register	#define MODE_CTRL_STS_FASTRIP_		((WORD)0x4000U)	#define MODE_CTRL_STS_EDPWRDOWN_	((WORD)0x2000U)	#define MODE_CTRL_STS_LOWSQEN_		((WORD)0x0800U)	#define MODE_CTRL_STS_MDPREBP_		((WORD)0x0400U)	#define MODE_CTRL_STS_FARLOOPBACK_	((WORD)0x0200U)	#define MODE_CTRL_STS_FASTEST_		((WORD)0x0100U)	#define MODE_CTRL_STS_REFCLKEN_		((WORD)0x0010U)	#define MODE_CTRL_STS_PHYADBP_		((WORD)0x0008U)	#define MODE_CTRL_STS_FORCE_G_LINK_	((WORD)0x0004U)	#define MODE_CTRL_STS_ENERGYON_		((WORD)0x0002U)#define PHY_INT_SRC			((DWORD)29)#define PHY_INT_SRC_ENERGY_ON_			((WORD)0x0080U)#define PHY_INT_SRC_ANEG_COMP_			((WORD)0x0040U)#define PHY_INT_SRC_REMOTE_FAULT_		((WORD)0x0020U)#define PHY_INT_SRC_LINK_DOWN_			((WORD)0x0010U)#define PHY_INT_MASK		((DWORD)30)#define PHY_INT_MASK_ENERGY_ON_		((WORD)0x0080U)#define PHY_INT_MASK_ANEG_COMP_		((WORD)0x0040U)#define PHY_INT_MASK_REMOTE_FAULT_	((WORD)0x0020U)#define PHY_INT_MASK_LINK_DOWN_		((WORD)0x0010U)#define PHY_SPECIAL			((DWORD)31)#define PHY_SPECIAL_SPD_	((WORD)0x001CU)#define PHY_SPECIAL_SPD_10HALF_		((WORD)0x0004U)#define PHY_SPECIAL_SPD_10FULL_		((WORD)0x0014U)#define PHY_SPECIAL_SPD_100HALF_	((WORD)0x0008U)#define PHY_SPECIAL_SPD_100FULL_	((WORD)0x0018U)#define Lan_GetRegDW(dwOffset)	\	Platform_GetRegDW(privateData->dwLanBase,dwOffset)#define Lan_SetRegDW(dwOffset,dwVal) \	Platform_SetRegDW(privateData->dwLanBase,dwOffset,dwVal)#define Lan_ClrBitsDW(dwOffset,dwBits)						\	Platform_SetRegDW(privateData->dwLanBase,				\		dwOffset,Platform_GetRegDW(privateData->dwLanBase,	\		dwOffset)&(~dwBits))#define Lan_SetBitsDW(dwOffset,dwBits)						\	Platform_SetRegDW(privateData->dwLanBase,				\		dwOffset,Platform_GetRegDW(privateData->dwLanBase,	\		dwOffset)|dwBits);#define LINK_OFF				(0x00UL)#define LINK_SPEED_10HD			(0x01UL)#define LINK_SPEED_10FD			(0x02UL)#define LINK_SPEED_100HD		(0x04UL)#define LINK_SPEED_100FD		(0x08UL)#define LINK_SYMMETRIC_PAUSE	(0x10UL)#define LINK_ASYMMETRIC_PAUSE	(0x20UL)#define LINK_AUTO_NEGOTIATE		(0x40UL)/* **************************************************************************** **************************************************************************** *	MAC Control and Status Register (Indirect Address) *	Offset (through the MAC_CSR CMD and DATA port) **************************************************************************** **************************************************************************** * */#define MAC_CR				(0x01UL)	// R/W	/* MAC_CR - MAC Control Register */	#define MAC_CR_RXALL_		(0x80000000UL)	#define MAC_CR_HBDIS_		(0x10000000UL)	#define MAC_CR_RCVOWN_		(0x00800000UL)	#define MAC_CR_LOOPBK_		(0x00200000UL)	#define MAC_CR_FDPX_		(0x00100000UL)	#define MAC_CR_MCPAS_		(0x00080000UL)	#define MAC_CR_PRMS_		(0x00040000UL)	#define MAC_CR_INVFILT_		(0x00020000UL)	#define MAC_CR_PASSBAD_		(0x00010000UL)	#define MAC_CR_HFILT_		(0x00008000UL)	#define MAC_CR_HPFILT_		(0x00002000UL)	#define MAC_CR_LCOLL_		(0x00001000UL)	#define MAC_CR_BCAST_		(0x00000800UL)	#define MAC_CR_DISRTY_		(0x00000400UL)	#define MAC_CR_PADSTR_		(0x00000100UL)	#define MAC_CR_BOLMT_MASK_	(0x000000C0UL)	#define MAC_CR_DFCHK_		(0x00000020UL)	#define MAC_CR_TXEN_		(0x00000008UL)	#define MAC_CR_RXEN_		(0x00000004UL)#define ADDRH				(0x02UL)	// R/W mask 0x0000FFFFUL#define ADDRL				(0x03UL)	// R/W mask 0xFFFFFFFFUL#define HASHH				(0x04UL)	// R/W#define HASHL				(0x05UL)	// R/W#define MII_ACC				(0x06UL)	// R/W	#define MII_ACC_PHY_ADDR_	(0x0000F800UL)	#define MII_ACC_MIIRINDA_	(0x000007C0UL)	#define MII_ACC_MII_WRITE_	(0x00000002UL)	#define MII_ACC_MII_BUSY_	(0x00000001UL)#define MII_DATA			(0x07UL)	// R/W mask 0x0000FFFFUL#define FLOW				(0x08UL)	// R/W	#define FLOW_FCPT_			(0xFFFF0000UL)	#define FLOW_FCPASS_		(0x00000004UL)	#define FLOW_FCEN_			(0x00000002UL)	#define FLOW_FCBSY_			(0x00000001UL)#define VLAN1				(0x09UL)	// R/W mask 0x0000FFFFUL#define VLAN2				(0x0AUL)	// R/W mask 0x0000FFFFUL#define WUFF				(0x0BUL)	// WO#define WUCSR				(0x0CUL)	// R/W	#define WUCSR_GUE_			(0x00000200UL)	#define WUCSR_WUFR_			(0x00000040UL)	#define WUCSR_MPR_			(0x00000020UL)	#define WUCSR_WAKE_EN_		(0x00000004UL)	#define WUCSR_MPEN_			(0x00000002UL)void smsc911x_enable_phy_module(void);void smsc911x_disable_phy_module(void);int smsc911x_eth_send(const eth_frame *ethfr,		    const void *pfr, const unsigned int pfrlen);int smsc911x_eth_recv(const unsigned char *mac, eth_frame **ethfr,		    void **pbuf, unsigned int *pbuflen, int *timeout);int smsc911x_eth_rxbuf_free(const int idx);int smsc911x_eth_init(const unsigned char *mac);#endif

⌨️ 快捷键说明

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