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

📄 smc9118.h

📁 U-boot源码 ARM7启动代码
💻 H
📖 第 1 页 / 共 2 页
字号:
#define TXFIFO_TEMPTY	0x80	/* TX FIFO Empty *//* Pointer Register */#define PTR_REG		0x0006#define	PTR_RCV		0x8000 /* 1=Receive area, 0=Transmit area */#define	PTR_AUTOINC 	0x4000 /* Auto increment the pointer on each access */#define PTR_READ	0x2000 /* When 1 the operation is a read */#define PTR_NOTEMPTY	0x0800 /* When 1 _do not_ write fifo DATA REG *//* Data Register */#define	SMC9118_DATA_REG	0x0008/* Interrupt Status/Acknowledge Register */#define	SMC9118_INT_REG	0x000C/* Interrupt Mask Register */#define IM_REG		0x000D#define	IM_MDINT	0x80 /* PHY MI Register 18 Interrupt */#define	IM_ERCV_INT	0x40 /* Early Receive Interrupt */#define	IM_EPH_INT	0x20 /* Set by Etheret Protocol Handler section */#define	IM_RX_OVRN_INT	0x10 /* Set by Receiver Overruns */#define	IM_ALLOC_INT	0x08 /* Set when allocation request is completed */#define	IM_TX_EMPTY_INT	0x04 /* Set if the TX FIFO goes empty */#define	IM_TX_INT	0x02 /* Transmit Interrrupt */#define IM_RCV_INT	0x01 /* Receive Interrupt *//* Multicast Table Registers */#define	MCAST_REG1	0x0000#define	MCAST_REG2	0x0002#define	MCAST_REG3	0x0004#define	MCAST_REG4	0x0006/* Management Interface Register (MII) */#define	MII_REG		0x0008#define MII_MSK_CRS100	0x4000 /* Disables CRS100 detection during tx half dup */#define MII_MDOE	0x0008 /* MII Output Enable */#define MII_MCLK	0x0004 /* MII Clock, pin MDCLK */#define MII_MDI		0x0002 /* MII Input, pin MDI */#define MII_MDO		0x0001 /* MII Output, pin MDO *//* Revision Register */#define	REV_REG		0x000A /* ( hi: chip id   low: rev # ) *//* Early RCV Register *//* this is NOT on SMC9192 */#define	ERCV_REG	0x000C#define ERCV_RCV_DISCRD	0x0080 /* When 1 discards a packet being received */#define ERCV_THRESHOLD	0x001F /* ERCV Threshold Mask *//* External Register */#define	EXT_REG		0x0000#define CHIP_9192	3#define CHIP_9194	4#define CHIP_9195	5#define CHIP_9196	6#define CHIP_91100	7#define CHIP_91100FD	8#define CHIP_91111FD	9/* . Transmit status bits*/#define TS_SUCCESS 0x0001#define TS_LOSTCAR 0x0400#define TS_LATCOL  0x0200#define TS_16COL   0x0010/* . Receive status bits*/#define RS_ALGNERR	0x8000#define RS_BRODCAST	0x4000#define RS_BADCRC	0x2000#define RS_ODDFRAME	0x1000	/* bug: the LAN9118 never sets this on receive */#define RS_TOOLONG	0x0800#define RS_TOOSHORT	0x0400#define RS_MULTICAST	0x0001#define RS_ERRORS	(RS_ALGNERR | RS_BADCRC | RS_TOOLONG | RS_TOOSHORT)/* PHY Types */enum {	PHY_LAN83C183 = 1,	/* LAN9118 Internal PHY */	PHY_LAN83C180};/* PHY Register Addresses (LAN9118 Internal PHY) *//* PHY Control Register */#define PHY_CNTL_REG		0x00#define PHY_CNTL_RST		0x8000	/* 1=PHY Reset */#define PHY_CNTL_LPBK		0x4000	/* 1=PHY Loopback */#define PHY_CNTL_SPEED		0x2000	/* 1=100Mbps, 0=10Mpbs */#define PHY_CNTL_ANEG_EN	0x1000 /* 1=Enable Auto negotiation */#define PHY_CNTL_PDN		0x0800	/* 1=PHY Power Down mode */#define PHY_CNTL_MII_DIS	0x0400	/* 1=MII 4 bit interface disabled */#define PHY_CNTL_ANEG_RST	0x0200 /* 1=Reset Auto negotiate */#define PHY_CNTL_DPLX		0x0100	/* 1=Full Duplex, 0=Half Duplex */#define PHY_CNTL_COLTST		0x0080	/* 1= MII Colision Test *//* PHY Status Register */#define PHY_STAT_REG		0x01#define PHY_STAT_CAP_T4		0x8000	/* 1=100Base-T4 capable */#define PHY_STAT_CAP_TXF	0x4000	/* 1=100Base-X full duplex capable */#define PHY_STAT_CAP_TXH	0x2000	/* 1=100Base-X half duplex capable */#define PHY_STAT_CAP_TF		0x1000	/* 1=10Mbps full duplex capable */#define PHY_STAT_CAP_TH		0x0800	/* 1=10Mbps half duplex capable */#define PHY_STAT_CAP_SUPR	0x0040	/* 1=recv mgmt frames with not preamble */#define PHY_STAT_ANEG_ACK	0x0020	/* 1=ANEG has completed */#define PHY_STAT_REM_FLT	0x0010	/* 1=Remote Fault detected */#define PHY_STAT_CAP_ANEG	0x0008	/* 1=Auto negotiate capable */#define PHY_STAT_LINK		0x0004	/* 1=valid link */#define PHY_STAT_JAB		0x0002	/* 1=10Mbps jabber condition */#define PHY_STAT_EXREG		0x0001	/* 1=extended registers implemented *//* PHY Identifier Registers */#define PHY_ID1_REG		0x02	/* PHY Identifier 1 */#define PHY_ID2_REG		0x03	/* PHY Identifier 2 *//* PHY Auto-Negotiation Advertisement Register */#define PHY_AD_REG		0x04#define PHY_AD_NP		0x8000	/* 1=PHY requests exchange of Next Page */#define PHY_AD_ACK		0x4000	/* 1=got link code u16 from remote */#define PHY_AD_RF		0x2000	/* 1=advertise remote fault */#define PHY_AD_T4		0x0200	/* 1=PHY is capable of 100Base-T4 */#define PHY_AD_TX_FDX		0x0100	/* 1=PHY is capable of 100Base-TX FDPLX */#define PHY_AD_TX_HDX		0x0080	/* 1=PHY is capable of 100Base-TX HDPLX */#define PHY_AD_10_FDX		0x0040	/* 1=PHY is capable of 10Base-T FDPLX */#define PHY_AD_10_HDX		0x0020	/* 1=PHY is capable of 10Base-T HDPLX */#define PHY_AD_CSMA		0x0001	/* 1=PHY is capable of 802.3 CMSA *//* PHY Auto-negotiation Remote End Capability Register */#define PHY_RMT_REG		0x05/* Uses same bit definitions as PHY_AD_REG *//* PHY Configuration Register 1 */#define PHY_CFG1_REG		0x10#define PHY_CFG1_LNKDIS		0x8000	/* 1=Rx Link Detect Function disabled */#define PHY_CFG1_XMTDIS		0x4000	/* 1=TP Transmitter Disabled */#define PHY_CFG1_XMTPDN		0x2000	/* 1=TP Transmitter Powered Down */#define PHY_CFG1_BYPSCR		0x0400	/* 1=Bypass scrambler/descrambler */#define PHY_CFG1_UNSCDS		0x0200	/* 1=Unscramble Idle Reception Disable */#define PHY_CFG1_EQLZR		0x0100	/* 1=Rx Equalizer Disabled */#define PHY_CFG1_CABLE		0x0080	/* 1=STP(150ohm), 0=UTP(100ohm) */#define PHY_CFG1_RLVL0		0x0040	/* 1=Rx Squelch level reduced by 4.5db */#define PHY_CFG1_TLVL_SHIFT	2	/* Transmit Output Level Adjust */#define PHY_CFG1_TLVL_MASK	0x003C#define PHY_CFG1_TRF_MASK	0x0003	/* Transmitter Rise/Fall time *//* PHY Configuration Register 2 */#define PHY_CFG2_REG		0x11#define PHY_CFG2_APOLDIS	0x0020	/* 1=Auto Polarity Correction disabled */#define PHY_CFG2_JABDIS		0x0010	/* 1=Jabber disabled */#define PHY_CFG2_MREG		0x0008	/* 1=Multiple register access (MII mgt) */#define PHY_CFG2_INTMDIO	0x0004	/* 1=Interrupt signaled with MDIO pulseo *//* PHY Status Output (and Interrupt status) Register */#define PHY_INT_REG		0x12	/* Status Output (Interrupt Status) */#define PHY_INT_INT		0x8000	/* 1=bits have changed since last read */#define	PHY_INT_LNKFAIL		0x4000	/* 1=Link Not detected */#define PHY_INT_LOSSSYNC	0x2000	/* 1=Descrambler has lost sync */#define PHY_INT_CWRD		0x1000	/* 1=Invalid 4B5B code detected on rx */#define PHY_INT_SSD		0x0800	/* 1=No Start Of Stream detected on rx */#define PHY_INT_ESD		0x0400	/* 1=No End Of Stream detected on rx */#define PHY_INT_RPOL		0x0200	/* 1=Reverse Polarity detected */#define PHY_INT_JAB		0x0100	/* 1=Jabber detected */#define PHY_INT_SPDDET		0x0080	/* 1=100Base-TX mode, 0=10Base-T mode */#define PHY_INT_DPLXDET		0x0040	/* 1=Device in Full Duplex *//* PHY Interrupt/Status Mask Register */#define PHY_MASK_REG		0x13	/* Interrupt Mask *//* Uses the same bit definitions as PHY_INT_REG */// SMSC9118 FIFO Ports#define SMSC9118_RX_DATA_PORT   (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x0)#define SMSC9118_TX_DATA_PORT   (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x20)// SMSC9118 FIFO status ports and peeks// (Reads on ports destructive, reads on peeks have no side effect)#define SMSC9118_RX_STAT_PORT   (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x40)#define SMSC9118_RX_STAT_PEEK   (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x44)#define SMSC9118_TX_STAT_PORT   (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x48)#define SMSC9118_TX_STAT_PEEK   (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x4C)// SMSC9118 Registers#define SMSC9118_ID_REV         (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x50)#define SMSC9118_IRQ_CFG        (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x54)#define SMSC9118_INT_STS        (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x58)#define SMSC9118_INT_EN         (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x5C)#define SMSC9118_RESERVED1      (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x60)#define SMSC9118_BYTE_TEST      (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x64)#define SMSC9118_FIFO_INT       (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x68)#define SMSC9118_RX_CFG	        (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x6C)#define SMSC9118_TX_CFG	        (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x70)#define SMSC9118_HW_CFG	        (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x74)#define SMSC9118_RX_DP_CTL	(volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x78)#define SMSC9118_RX_FIFO_INF    (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x7C)#define SMSC9118_TX_FIFO_INF    (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x80)#define SMSC9118_PMT_CTRL       (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x84)#define SMSC9118_GPIO_CFG       (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x88)#define SMSC9118_GPT_CFG        (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x8C)#define SMSC9118_GPT_CNT        (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x90)#define SMSC9118_RESERVED2      (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x94)#define SMSC9118_ENDIAN	        (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x98)#define SMSC9118_FREE_RUN       (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0x9C)#define SMSC9118_RX_DROP        (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0xA0)#define SMSC9118_MAC_CSR_CMD    (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0xA4)#define SMSC9118_MAC_CSR_DATA   (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0xA8)#define SMSC9118_AFC_CFG        (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0xAC)#define SMSC9118_E2P_CMD        (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0xB0)#define SMSC9118_E2P_DATA       (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0xB4)#define SMSC9118_RESERVED3      (volatile unsigned int *)(CONFIG_SMC9118_BASE + 0xB8)// SMSC9118 MAC Registers       Indices#define SMSC9118_MAC_CR         0x1#define SMSC9118_MAC_ADDRH      0x2#define SMSC9118_MAC_ADDRL      0x3#define SMSC9118_MAC_HASHH      0x4#define SMSC9118_MAC_HASHL      0x5#define SMSC9118_MAC_MII_ACC    0x6#define SMSC9118_MAC_MII_DATA   0x7#define SMSC9118_MAC_FLOW       0x8#define SMSC9118_MAC_VLAN1      0x9#define SMSC9118_MAC_VLAN2      0xA#define SMSC9118_MAC_WUFF       0xB#define SMSC9118_MAC_WUCSR      0xC// SMSC9118 PHY Registers       Indices#define SMSC9118_PHY_BCONTROL   0x0#define SMSC9118_PHY_BSTATUS    0x1#define SMSC9118_PHY_ID1        0x2#define SMSC9118_PHY_ID2        0x3#define SMSC9118_PHY_ANEG_ADV   0x4#define SMSC9118_PHY_ANEG_LPA   0x5#define SMSC9118_PHY_ANEG_EXP   0x6#define SMSC9118_PHY_MCONTROL   0x17#define SMSC9118_PHY_MSTATUS    0x18#define SMSC9118_PHY_CSINDICATE 0x27#define SMSC9118_PHY_INTSRC     0x29#define SMSC9118_PHY_INTMASK    0x30#define SMSC9118_PHY_CS         0x31#endif  /* _SMC9118_9118_H_ */

⌨️ 快捷键说明

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