iPXE
Data Structures | Macros | Functions
smsc95xx.h File Reference

SMSC LAN95xx USB Ethernet driver. More...

#include "smscusb.h"

Go to the source code of this file.

Data Structures

struct  smsc95xx_rx_header
 Receive packet header. More...
 
struct  smsc95xx_tx_header
 Transmit packet header. More...
 
struct  smsc95xx_rx_statistics
 Receive statistics. More...
 
struct  smsc95xx_tx_statistics
 Transmit statistics. More...
 

Macros

#define SMSC95XX_INT_STS   0x008
 Interrupt status register. More...
 
#define SMSC95XX_INT_STS_RXDF_INT   0x00000800UL
 RX FIFO overflow. More...
 
#define SMSC95XX_INT_STS_PHY_INT   0x00008000UL
 PHY interrupt. More...
 
#define SMSC95XX_TX_CFG   0x010
 Transmit configuration register. More...
 
#define SMSC95XX_TX_CFG_ON   0x00000004UL
 TX enable. More...
 
#define SMSC95XX_HW_CFG   0x014
 Hardware configuration register. More...
 
#define SMSC95XX_HW_CFG_BIR   0x00001000UL
 Bulk IN use NAK. More...
 
#define SMSC95XX_HW_CFG_LRST   0x00000008UL
 Soft lite reset. More...
 
#define SMSC95XX_LED_GPIO_CFG   0x024
 LED GPIO configuration register. More...
 
#define SMSC95XX_LED_GPIO_CFG_GPCTL2(x)   ( (x) << 24 )
 GPIO 2 control. More...
 
#define SMSC95XX_LED_GPIO_CFG_GPCTL2_NSPD_LED   SMSC95XX_LED_GPIO_CFG_GPCTL2 ( 1 )
 Link speed LED. More...
 
#define SMSC95XX_LED_GPIO_CFG_GPCTL1(x)   ( (x) << 20 )
 GPIO 1 control. More...
 
#define SMSC95XX_LED_GPIO_CFG_GPCTL1_NLNKA_LED   SMSC95XX_LED_GPIO_CFG_GPCTL1 ( 1 )
 Activity LED. More...
 
#define SMSC95XX_LED_GPIO_CFG_GPCTL0(x)   ( (x) << 16 )
 GPIO 0 control. More...
 
#define SMSC95XX_LED_GPIO_CFG_GPCTL0_NFDX_LED   SMSC95XX_LED_GPIO_CFG_GPCTL0 ( 1 )
 Full-duplex LED. More...
 
#define SMSC95XX_E2P_BASE   0x030
 EEPROM register base. More...
 
#define SMSC95XX_INT_EP_CTL   0x068
 Interrupt endpoint control register. More...
 
#define SMSC95XX_INT_EP_CTL_RXDF_EN   0x00000800UL
 RX FIFO overflow. More...
 
#define SMSC95XX_INT_EP_CTL_PHY_EN   0x00008000UL
 PHY interrupt. More...
 
#define SMSC95XX_BULK_IN_DLY   0x06c
 Bulk IN delay register. More...
 
#define SMSC95XX_BULK_IN_DLY_SET(ticks)   ( (ticks) << 0 )
 Delay / 16.7ns. More...
 
#define SMSC95XX_MAC_CR   0x100
 MAC control register. More...
 
#define SMSC95XX_MAC_CR_RXALL   0x80000000UL
 Receive all. More...
 
#define SMSC95XX_MAC_CR_FDPX   0x00100000UL
 Full duplex. More...
 
#define SMSC95XX_MAC_CR_MCPAS   0x00080000UL
 All multicast. More...
 
#define SMSC95XX_MAC_CR_PRMS   0x00040000UL
 Promiscuous. More...
 
#define SMSC95XX_MAC_CR_PASSBAD   0x00010000UL
 Pass bad frames. More...
 
#define SMSC95XX_MAC_CR_TXEN   0x00000008UL
 TX enabled. More...
 
#define SMSC95XX_MAC_CR_RXEN   0x00000004UL
 RX enabled. More...
 
#define SMSC95XX_ADDR_BASE   0x104
 MAC address register base. More...
 
#define SMSC95XX_MII_BASE   0x0114
 MII register base. More...
 
#define SMSC95XX_MII_PHY_INTR_SOURCE   29
 PHY interrupt source MII register. More...
 
#define SMSC95XX_MII_PHY_INTR_MASK   30
 PHY interrupt mask MII register. More...
 
#define SMSC95XX_PHY_INTR_ANEG_DONE   0x0040
 PHY interrupt: auto-negotiation complete. More...
 
#define SMSC95XX_PHY_INTR_LINK_DOWN   0x0010
 PHY interrupt: link down. More...
 
#define SMSC95XX_RX_RUNT   0x00004000UL
 Runt frame. More...
 
#define SMSC95XX_RX_LATE   0x00000040UL
 Late collision. More...
 
#define SMSC95XX_RX_CRC   0x00000002UL
 CRC error. More...
 
#define SMSC95XX_TX_FIRST   0x00002000UL
 First segment. More...
 
#define SMSC95XX_TX_LAST   0x00001000UL
 Last segment. More...
 
#define SMSC95XX_TX_LEN(len)   ( (len) << 0 )
 Buffer size. More...
 
#define SMSC95XX_RX_STATISTICS   0
 Receive statistics. More...
 
#define SMSC95XX_TX_STATISTICS   1
 Transmit statistics. More...
 
#define SMSC95XX_RESET_DELAY_US   2
 Reset delay (in microseconds) More...
 
#define SMSC95XX_IN_MAX_FILL   8
 Bulk IN maximum fill level. More...
 
#define SMSC95XX_IN_MTU
 Bulk IN buffer size. More...
 
#define SMSC95XX_VM3_OEM_STRING_MAC   2
 Honeywell VM3 MAC address OEM string index. More...
 

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
 

Detailed Description

SMSC LAN95xx USB Ethernet driver.

Definition in file smsc95xx.h.

Macro Definition Documentation

◆ SMSC95XX_INT_STS

#define SMSC95XX_INT_STS   0x008

Interrupt status register.

Definition at line 15 of file smsc95xx.h.

◆ SMSC95XX_INT_STS_RXDF_INT

#define SMSC95XX_INT_STS_RXDF_INT   0x00000800UL

RX FIFO overflow.

Definition at line 16 of file smsc95xx.h.

◆ SMSC95XX_INT_STS_PHY_INT

#define SMSC95XX_INT_STS_PHY_INT   0x00008000UL

PHY interrupt.

Definition at line 17 of file smsc95xx.h.

◆ SMSC95XX_TX_CFG

#define SMSC95XX_TX_CFG   0x010

Transmit configuration register.

Definition at line 20 of file smsc95xx.h.

◆ SMSC95XX_TX_CFG_ON

#define SMSC95XX_TX_CFG_ON   0x00000004UL

TX enable.

Definition at line 21 of file smsc95xx.h.

◆ SMSC95XX_HW_CFG

#define SMSC95XX_HW_CFG   0x014

Hardware configuration register.

Definition at line 24 of file smsc95xx.h.

◆ SMSC95XX_HW_CFG_BIR

#define SMSC95XX_HW_CFG_BIR   0x00001000UL

Bulk IN use NAK.

Definition at line 25 of file smsc95xx.h.

◆ SMSC95XX_HW_CFG_LRST

#define SMSC95XX_HW_CFG_LRST   0x00000008UL

Soft lite reset.

Definition at line 26 of file smsc95xx.h.

◆ SMSC95XX_LED_GPIO_CFG

#define SMSC95XX_LED_GPIO_CFG   0x024

LED GPIO configuration register.

Definition at line 29 of file smsc95xx.h.

◆ SMSC95XX_LED_GPIO_CFG_GPCTL2

#define SMSC95XX_LED_GPIO_CFG_GPCTL2 (   x)    ( (x) << 24 )

GPIO 2 control.

Definition at line 30 of file smsc95xx.h.

◆ SMSC95XX_LED_GPIO_CFG_GPCTL2_NSPD_LED

#define SMSC95XX_LED_GPIO_CFG_GPCTL2_NSPD_LED   SMSC95XX_LED_GPIO_CFG_GPCTL2 ( 1 )

Link speed LED.

Definition at line 31 of file smsc95xx.h.

◆ SMSC95XX_LED_GPIO_CFG_GPCTL1

#define SMSC95XX_LED_GPIO_CFG_GPCTL1 (   x)    ( (x) << 20 )

GPIO 1 control.

Definition at line 33 of file smsc95xx.h.

◆ SMSC95XX_LED_GPIO_CFG_GPCTL1_NLNKA_LED

#define SMSC95XX_LED_GPIO_CFG_GPCTL1_NLNKA_LED   SMSC95XX_LED_GPIO_CFG_GPCTL1 ( 1 )

Activity LED.

Definition at line 34 of file smsc95xx.h.

◆ SMSC95XX_LED_GPIO_CFG_GPCTL0

#define SMSC95XX_LED_GPIO_CFG_GPCTL0 (   x)    ( (x) << 16 )

GPIO 0 control.

Definition at line 36 of file smsc95xx.h.

◆ SMSC95XX_LED_GPIO_CFG_GPCTL0_NFDX_LED

#define SMSC95XX_LED_GPIO_CFG_GPCTL0_NFDX_LED   SMSC95XX_LED_GPIO_CFG_GPCTL0 ( 1 )

Full-duplex LED.

Definition at line 37 of file smsc95xx.h.

◆ SMSC95XX_E2P_BASE

#define SMSC95XX_E2P_BASE   0x030

EEPROM register base.

Definition at line 41 of file smsc95xx.h.

◆ SMSC95XX_INT_EP_CTL

#define SMSC95XX_INT_EP_CTL   0x068

Interrupt endpoint control register.

Definition at line 44 of file smsc95xx.h.

◆ SMSC95XX_INT_EP_CTL_RXDF_EN

#define SMSC95XX_INT_EP_CTL_RXDF_EN   0x00000800UL

RX FIFO overflow.

Definition at line 45 of file smsc95xx.h.

◆ SMSC95XX_INT_EP_CTL_PHY_EN

#define SMSC95XX_INT_EP_CTL_PHY_EN   0x00008000UL

PHY interrupt.

Definition at line 46 of file smsc95xx.h.

◆ SMSC95XX_BULK_IN_DLY

#define SMSC95XX_BULK_IN_DLY   0x06c

Bulk IN delay register.

Definition at line 49 of file smsc95xx.h.

◆ SMSC95XX_BULK_IN_DLY_SET

#define SMSC95XX_BULK_IN_DLY_SET (   ticks)    ( (ticks) << 0 )

Delay / 16.7ns.

Definition at line 50 of file smsc95xx.h.

◆ SMSC95XX_MAC_CR

#define SMSC95XX_MAC_CR   0x100

MAC control register.

Definition at line 53 of file smsc95xx.h.

◆ SMSC95XX_MAC_CR_RXALL

#define SMSC95XX_MAC_CR_RXALL   0x80000000UL

Receive all.

Definition at line 54 of file smsc95xx.h.

◆ SMSC95XX_MAC_CR_FDPX

#define SMSC95XX_MAC_CR_FDPX   0x00100000UL

Full duplex.

Definition at line 55 of file smsc95xx.h.

◆ SMSC95XX_MAC_CR_MCPAS

#define SMSC95XX_MAC_CR_MCPAS   0x00080000UL

All multicast.

Definition at line 56 of file smsc95xx.h.

◆ SMSC95XX_MAC_CR_PRMS

#define SMSC95XX_MAC_CR_PRMS   0x00040000UL

Promiscuous.

Definition at line 57 of file smsc95xx.h.

◆ SMSC95XX_MAC_CR_PASSBAD

#define SMSC95XX_MAC_CR_PASSBAD   0x00010000UL

Pass bad frames.

Definition at line 58 of file smsc95xx.h.

◆ SMSC95XX_MAC_CR_TXEN

#define SMSC95XX_MAC_CR_TXEN   0x00000008UL

TX enabled.

Definition at line 59 of file smsc95xx.h.

◆ SMSC95XX_MAC_CR_RXEN

#define SMSC95XX_MAC_CR_RXEN   0x00000004UL

RX enabled.

Definition at line 60 of file smsc95xx.h.

◆ SMSC95XX_ADDR_BASE

#define SMSC95XX_ADDR_BASE   0x104

MAC address register base.

Definition at line 63 of file smsc95xx.h.

◆ SMSC95XX_MII_BASE

#define SMSC95XX_MII_BASE   0x0114

MII register base.

Definition at line 66 of file smsc95xx.h.

◆ SMSC95XX_MII_PHY_INTR_SOURCE

#define SMSC95XX_MII_PHY_INTR_SOURCE   29

PHY interrupt source MII register.

Definition at line 69 of file smsc95xx.h.

◆ SMSC95XX_MII_PHY_INTR_MASK

#define SMSC95XX_MII_PHY_INTR_MASK   30

PHY interrupt mask MII register.

Definition at line 72 of file smsc95xx.h.

◆ SMSC95XX_PHY_INTR_ANEG_DONE

#define SMSC95XX_PHY_INTR_ANEG_DONE   0x0040

PHY interrupt: auto-negotiation complete.

Definition at line 75 of file smsc95xx.h.

◆ SMSC95XX_PHY_INTR_LINK_DOWN

#define SMSC95XX_PHY_INTR_LINK_DOWN   0x0010

PHY interrupt: link down.

Definition at line 78 of file smsc95xx.h.

◆ SMSC95XX_RX_RUNT

#define SMSC95XX_RX_RUNT   0x00004000UL

Runt frame.

Definition at line 87 of file smsc95xx.h.

◆ SMSC95XX_RX_LATE

#define SMSC95XX_RX_LATE   0x00000040UL

Late collision.

Definition at line 90 of file smsc95xx.h.

◆ SMSC95XX_RX_CRC

#define SMSC95XX_RX_CRC   0x00000002UL

CRC error.

Definition at line 93 of file smsc95xx.h.

◆ SMSC95XX_TX_FIRST

#define SMSC95XX_TX_FIRST   0x00002000UL

First segment.

Definition at line 104 of file smsc95xx.h.

◆ SMSC95XX_TX_LAST

#define SMSC95XX_TX_LAST   0x00001000UL

Last segment.

Definition at line 107 of file smsc95xx.h.

◆ SMSC95XX_TX_LEN

#define SMSC95XX_TX_LEN (   len)    ( (len) << 0 )

Buffer size.

Definition at line 110 of file smsc95xx.h.

◆ SMSC95XX_RX_STATISTICS

#define SMSC95XX_RX_STATISTICS   0

Receive statistics.

Definition at line 133 of file smsc95xx.h.

◆ SMSC95XX_TX_STATISTICS

#define SMSC95XX_TX_STATISTICS   1

Transmit statistics.

Definition at line 160 of file smsc95xx.h.

◆ SMSC95XX_RESET_DELAY_US

#define SMSC95XX_RESET_DELAY_US   2

Reset delay (in microseconds)

Definition at line 163 of file smsc95xx.h.

◆ SMSC95XX_IN_MAX_FILL

#define SMSC95XX_IN_MAX_FILL   8

Bulk IN maximum fill level.

This is a policy decision.

Definition at line 169 of file smsc95xx.h.

◆ SMSC95XX_IN_MTU

#define SMSC95XX_IN_MTU
Value:
( sizeof ( struct smsc95xx_rx_header ) + \
ETH_FRAME_LEN + 4 /* possible VLAN header */ \
+ 4 /* CRC */ )
Receive packet header.
Definition: smsc95xx.h:81
#define ETH_FRAME_LEN
Definition: if_ether.h:11

Bulk IN buffer size.

Definition at line 172 of file smsc95xx.h.

◆ SMSC95XX_VM3_OEM_STRING_MAC

#define SMSC95XX_VM3_OEM_STRING_MAC   2

Honeywell VM3 MAC address OEM string index.

Definition at line 178 of file smsc95xx.h.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL  )