XenevaOS
Loading...
Searching...
No Matches
Macros | Functions
smsc951x.c File Reference
#include "uspi/smsc951x.h"
#include "uspios.h"
#include "uspi/usbhostcontroller.h"
#include "uspi/devicenameservice.h"
#include "uspi/util.h"
#include "uspi/assert.h"
Include dependency graph for smsc951x.c:

Macros

#define WRITE_REGISTER   0xA0
 
#define READ_REGISTER   0xA1
 
#define ID_REV   0x00
 
#define INT_STS   0x08
 
#define RX_CFG   0x0C
 
#define TX_CFG   0x10
 
#define TX_CFG_ON   0x00000004
 
#define HW_CFG   0x14
 
#define HW_CFG_BIR   0x00001000
 
#define RX_FIFO_INF   0x18
 
#define PM_CTRL   0x20
 
#define LED_GPIO_CFG   0x24
 
#define LED_GPIO_CFG_SPD_LED   0x01000000
 
#define LED_GPIO_CFG_LNK_LED   0x00100000
 
#define LED_GPIO_CFG_FDX_LED   0x00010000
 
#define GPIO_CFG   0x28
 
#define AFC_CFG   0x2C
 
#define E2P_CMD   0x30
 
#define E2P_DATA   0x34
 
#define BURST_CAP   0x38
 
#define GPIO_WAKE   0x64
 
#define INT_EP_CTL   0x68
 
#define BULK_IN_DLY   0x6C
 
#define MAC_CR   0x100
 
#define MAC_CR_RCVOWN   0x00800000
 
#define MAC_CR_MCPAS   0x00080000
 
#define MAC_CR_PRMS   0x00040000
 
#define MAC_CR_BCAST   0x00000800
 
#define MAC_CR_TXEN   0x00000008
 
#define MAC_CR_RXEN   0x00000004
 
#define ADDRH   0x104
 
#define ADDRL   0x108
 
#define HASHH   0x10C
 
#define HASHL   0x110
 
#define MII_ADDR   0x114
 
#define MII_BUSY   0x01
 
#define MII_WRITE   0x02
 
#define PHY_ID_MASK   0x1F
 
#define PHY_ID_INTERNAL   0x01
 
#define REG_NUM_MASK   0x1F
 
#define MII_DATA   0x118
 
#define FLOW   0x11C
 
#define VLAN1   0x120
 
#define VLAN2   0x124
 
#define WUFF   0x128
 
#define WUCSR   0x12C
 
#define COE_CR   0x130
 
#define TX_CMD_A_DATA_OFFSET   0x001F0000
 
#define TX_CMD_A_FIRST_SEG   0x00002000
 
#define TX_CMD_A_LAST_SEG   0x00001000
 
#define TX_CMD_A_BUF_SIZE   0x000007FF
 
#define TX_CMD_B_CSUM_ENABLE   0x00004000
 
#define TX_CMD_B_ADD_CRC_DISABLE   0x00002000
 
#define TX_CMD_B_DISABLE_PADDING   0x00001000
 
#define TX_CMD_B_PKT_BYTE_LENGTH   0x000007FF
 
#define RX_STS_FF   0x40000000
 
#define RX_STS_FL   0x3FFF0000
 
#define RX_STS_FRAMELEN(reg)   (((reg) & RX_STS_FL) >> 16)
 
#define RX_STS_ES   0x00008000
 
#define RX_STS_BF   0x00002000
 
#define RX_STS_LE   0x00001000
 
#define RX_STS_RF   0x00000800
 
#define RX_STS_MF   0x00000400
 
#define RX_STS_TL   0x00000080
 
#define RX_STS_CS   0x00000040
 
#define RX_STS_FT   0x00000020
 
#define RX_STS_RW   0x00000010
 
#define RX_STS_ME   0x00000008
 
#define RX_STS_DB   0x00000004
 
#define RX_STS_CRC   0x00000002
 
#define RX_STS_ERROR
 

Functions

boolean SMSC951xDeviceWriteReg (TSMSC951xDevice *pThis, u32 nIndex, u32 nValue)
 
boolean SMSC951xDeviceReadReg (TSMSC951xDevice *pThis, u32 nIndex, u32 *pValue)
 
void SMSC951xDeviceDumpReg (TSMSC951xDevice *pThis, const char *pName, u32 nIndex)
 
void SMSC951xDeviceDumpRegs (TSMSC951xDevice *pThis)
 
void SMSC951xDevice (TSMSC951xDevice *pThis, TUSBFunction *pDevice)
 
void _SMSC951xDevice (TSMSC951xDevice *pThis)
 
boolean SMSC951xDeviceConfigure (TUSBFunction *pUSBFunction)
 
TMACAddressSMSC951xDeviceGetMACAddress (TSMSC951xDevice *pThis)
 
boolean SMSC951xDeviceSendFrame (TSMSC951xDevice *pThis, const void *pBuffer, unsigned nLength)
 
boolean SMSC951xDeviceReceiveFrame (TSMSC951xDevice *pThis, void *pBuffer, unsigned *pResultLength)
 
boolean SMSC951xDeviceIsLinkUp (TSMSC951xDevice *pThis)
 
boolean SMSC951xDevicePHYWrite (TSMSC951xDevice *pThis, u8 uchIndex, u16 usValue)
 
boolean SMSC951xDevicePHYRead (TSMSC951xDevice *pThis, u8 uchIndex, u16 *pValue)
 
boolean SMSC951xDevicePHYWaitNotBusy (TSMSC951xDevice *pThis)
 

Macro Definition Documentation

◆ ADDRH

#define ADDRH   0x104

◆ ADDRL

#define ADDRL   0x108

◆ AFC_CFG

#define AFC_CFG   0x2C

◆ BULK_IN_DLY

#define BULK_IN_DLY   0x6C

◆ BURST_CAP

#define BURST_CAP   0x38

◆ COE_CR

#define COE_CR   0x130

◆ E2P_CMD

#define E2P_CMD   0x30

◆ E2P_DATA

#define E2P_DATA   0x34

◆ FLOW

#define FLOW   0x11C

◆ GPIO_CFG

#define GPIO_CFG   0x28

◆ GPIO_WAKE

#define GPIO_WAKE   0x64

◆ HASHH

#define HASHH   0x10C

◆ HASHL

#define HASHL   0x110

◆ HW_CFG

#define HW_CFG   0x14

◆ HW_CFG_BIR

#define HW_CFG_BIR   0x00001000

◆ ID_REV

#define ID_REV   0x00

◆ INT_EP_CTL

#define INT_EP_CTL   0x68

◆ INT_STS

#define INT_STS   0x08

◆ LED_GPIO_CFG

#define LED_GPIO_CFG   0x24

◆ LED_GPIO_CFG_FDX_LED

#define LED_GPIO_CFG_FDX_LED   0x00010000

◆ LED_GPIO_CFG_LNK_LED

#define LED_GPIO_CFG_LNK_LED   0x00100000

◆ LED_GPIO_CFG_SPD_LED

#define LED_GPIO_CFG_SPD_LED   0x01000000

◆ MAC_CR

#define MAC_CR   0x100

◆ MAC_CR_BCAST

#define MAC_CR_BCAST   0x00000800

◆ MAC_CR_MCPAS

#define MAC_CR_MCPAS   0x00080000

◆ MAC_CR_PRMS

#define MAC_CR_PRMS   0x00040000

◆ MAC_CR_RCVOWN

#define MAC_CR_RCVOWN   0x00800000

◆ MAC_CR_RXEN

#define MAC_CR_RXEN   0x00000004

◆ MAC_CR_TXEN

#define MAC_CR_TXEN   0x00000008

◆ MII_ADDR

#define MII_ADDR   0x114

◆ MII_BUSY

#define MII_BUSY   0x01

◆ MII_DATA

#define MII_DATA   0x118

◆ MII_WRITE

#define MII_WRITE   0x02

◆ PHY_ID_INTERNAL

#define PHY_ID_INTERNAL   0x01

◆ PHY_ID_MASK

#define PHY_ID_MASK   0x1F

◆ PM_CTRL

#define PM_CTRL   0x20

◆ READ_REGISTER

#define READ_REGISTER   0xA1

◆ REG_NUM_MASK

#define REG_NUM_MASK   0x1F

◆ RX_CFG

#define RX_CFG   0x0C

◆ RX_FIFO_INF

#define RX_FIFO_INF   0x18

◆ RX_STS_BF

#define RX_STS_BF   0x00002000

◆ RX_STS_CRC

#define RX_STS_CRC   0x00000002

◆ RX_STS_CS

#define RX_STS_CS   0x00000040

◆ RX_STS_DB

#define RX_STS_DB   0x00000004

◆ RX_STS_ERROR

#define RX_STS_ERROR
Value:
#define RX_STS_ES
Definition smsc951x.c:101
#define RX_STS_FF
Definition smsc951x.c:98
#define RX_STS_LE
Definition smsc951x.c:103
#define RX_STS_ME
Definition smsc951x.c:110
#define RX_STS_CRC
Definition smsc951x.c:112
#define RX_STS_TL
Definition smsc951x.c:106
#define RX_STS_DB
Definition smsc951x.c:111
#define RX_STS_RW
Definition smsc951x.c:109
#define RX_STS_CS
Definition smsc951x.c:107

◆ RX_STS_ES

#define RX_STS_ES   0x00008000

◆ RX_STS_FF

#define RX_STS_FF   0x40000000

◆ RX_STS_FL

#define RX_STS_FL   0x3FFF0000

◆ RX_STS_FRAMELEN

#define RX_STS_FRAMELEN (   reg)    (((reg) & RX_STS_FL) >> 16)

◆ RX_STS_FT

#define RX_STS_FT   0x00000020

◆ RX_STS_LE

#define RX_STS_LE   0x00001000

◆ RX_STS_ME

#define RX_STS_ME   0x00000008

◆ RX_STS_MF

#define RX_STS_MF   0x00000400

◆ RX_STS_RF

#define RX_STS_RF   0x00000800

◆ RX_STS_RW

#define RX_STS_RW   0x00000010

◆ RX_STS_TL

#define RX_STS_TL   0x00000080

◆ TX_CFG

#define TX_CFG   0x10

◆ TX_CFG_ON

#define TX_CFG_ON   0x00000004

◆ TX_CMD_A_BUF_SIZE

#define TX_CMD_A_BUF_SIZE   0x000007FF

◆ TX_CMD_A_DATA_OFFSET

#define TX_CMD_A_DATA_OFFSET   0x001F0000

◆ TX_CMD_A_FIRST_SEG

#define TX_CMD_A_FIRST_SEG   0x00002000

◆ TX_CMD_A_LAST_SEG

#define TX_CMD_A_LAST_SEG   0x00001000

◆ TX_CMD_B_ADD_CRC_DISABLE

#define TX_CMD_B_ADD_CRC_DISABLE   0x00002000

◆ TX_CMD_B_CSUM_ENABLE

#define TX_CMD_B_CSUM_ENABLE   0x00004000

◆ TX_CMD_B_DISABLE_PADDING

#define TX_CMD_B_DISABLE_PADDING   0x00001000

◆ TX_CMD_B_PKT_BYTE_LENGTH

#define TX_CMD_B_PKT_BYTE_LENGTH   0x000007FF

◆ VLAN1

#define VLAN1   0x120

◆ VLAN2

#define VLAN2   0x124

◆ WRITE_REGISTER

#define WRITE_REGISTER   0xA0

◆ WUCSR

#define WUCSR   0x12C

◆ WUFF

#define WUFF   0x128

Function Documentation

◆ _SMSC951xDevice()

void _SMSC951xDevice ( TSMSC951xDevice pThis)

◆ SMSC951xDevice()

void SMSC951xDevice ( TSMSC951xDevice pThis,
TUSBFunction pDevice 
)

◆ SMSC951xDeviceConfigure()

boolean SMSC951xDeviceConfigure ( TUSBFunction pUSBFunction)

◆ SMSC951xDeviceDumpReg()

void SMSC951xDeviceDumpReg ( TSMSC951xDevice pThis,
const char *  pName,
u32  nIndex 
)

◆ SMSC951xDeviceDumpRegs()

void SMSC951xDeviceDumpRegs ( TSMSC951xDevice pThis)

◆ SMSC951xDeviceGetMACAddress()

TMACAddress * SMSC951xDeviceGetMACAddress ( TSMSC951xDevice pThis)

◆ SMSC951xDeviceIsLinkUp()

boolean SMSC951xDeviceIsLinkUp ( TSMSC951xDevice pThis)

◆ SMSC951xDevicePHYRead()

boolean SMSC951xDevicePHYRead ( TSMSC951xDevice pThis,
u8  uchIndex,
u16 pValue 
)

◆ SMSC951xDevicePHYWaitNotBusy()

boolean SMSC951xDevicePHYWaitNotBusy ( TSMSC951xDevice pThis)

◆ SMSC951xDevicePHYWrite()

boolean SMSC951xDevicePHYWrite ( TSMSC951xDevice pThis,
u8  uchIndex,
u16  usValue 
)

◆ SMSC951xDeviceReadReg()

boolean SMSC951xDeviceReadReg ( TSMSC951xDevice pThis,
u32  nIndex,
u32 pValue 
)

◆ SMSC951xDeviceReceiveFrame()

boolean SMSC951xDeviceReceiveFrame ( TSMSC951xDevice pThis,
void *  pBuffer,
unsigned *  pResultLength 
)

◆ SMSC951xDeviceSendFrame()

boolean SMSC951xDeviceSendFrame ( TSMSC951xDevice pThis,
const void *  pBuffer,
unsigned  nLength 
)

◆ SMSC951xDeviceWriteReg()

boolean SMSC951xDeviceWriteReg ( TSMSC951xDevice pThis,
u32  nIndex,
u32  nValue 
)