File nut/dev/dm9000.c

References Functions: DmIOCtl() nut/dev/dm9000.c
  DmInit() nut/dev/dm9000.c
  DmOutput() nut/dev/dm9000.c
  NutEtherInput(), NutEtherOutput()
References Variables: dcb_eth0 nut/dev/dm9000.c
  ifn_eth0 nut/dev/dm9000.c

Included Files


Preprocessor definitions

#define NUT_THREAD_NICRXSTACK 384

#define NIC_NCR 0x00

#define NIC_NCR_LBM 0x06

#define NIC_NCR_LBNORM 0x00

#define NIC_NCR_LBMAC 0x02

#define NIC_NCR_LBPHY 0x04

#define NIC_NCR_RST 0x01

#define NIC_NSR 0x01

#define NIC_NSR_SPEED 0x80

#define NIC_NSR_LINKST 0x40

#define NIC_NSR_WAKEST 0x20

#define NIC_NSR_TX2END 0x08

#define NIC_NSR_TX1END 0x04

#define NIC_NSR_RXOV 0x02

#define NIC_TCR 0x02

#define NIC_TCR_TXREQ 0x01

#define NIC_TSR1 0x03

#define NIC_TSR2 0x04

#define NIC_RCR 0x05

#define NIC_RCR_DIS_LONG 0x20

#define NIC_RCR_DIS_CRC 0x10

#define NIC_RCR_ALL 0x08

#define NIC_RCR_PRMSC 0x02

#define NIC_RCR_RXEN 0x01

#define NIC_RSR 0x06

#define NIC_RSR_ERRORS 0xBF

#define NIC_RSR_RF 0x80

#define NIC_RSR_MF 0x40

#define NIC_RSR_LCS 0x20

#define NIC_RSR_RWTO 0x10

#define NIC_RSR_PLE 0x08

#define NIC_RSR_AE 0x04

#define NIC_RSR_CE 0x02

#define NIC_RSR_FOE 0x01

#define NIC_ROCR 0x07

#define NIC_BPTR 0x08

#define NIC_FCTR 0x09

#define NIC_FCR 0x0A

#define NIC_EPCR 0x0B

#define NIC_EPAR 0x0C

#define NIC_EPDRL 0x0D

#define NIC_EPDRH 0x0E

#define NIC_WCR 0x0F

#define NIC_PAR 0x10

#define NIC_MAR 0x16

#define NIC_GPCR 0x1E

#define NIC_GPR 0x1F

#define NIC_TRPA 0x22

#define NIC_RWPA 0x24

#define NIC_VID 0x28

#define NIC_PID 0x2A

#define NIC_CHIPR 0x2C

#define NIC_SMCR 0x2F

#define NIC_MRCMDX 0xF0

#define NIC_MRCMD 0xF2

#define NIC_MRR 0xF4

#define NIC_MWCMDX 0xF6

#define NIC_MWCMD 0xF8

#define NIC_MWR 0xFA

#define NIC_TXPL 0xFC

#define NIC_ISR 0xFE

#define NIC_ISR_IOM 0xC0

#define NIC_ISR_M16 0x00

#define NIC_ISR_M32 0x40

#define NIC_ISR_M8 0x80

#define NIC_ISR_ROOS 0x08

#define NIC_ISR_ROS 0x04

#define NIC_ISR_PTS 0x02

#define NIC_ISR_PRS 0x01

#define NIC_IMR 0xFF

#define NIC_IMR_PAR 0x80

#define NIC_IMR_ROOM 0x08

#define NIC_IMR_ROM 0x04

#define NIC_IMR_PTM 0x02

#define NIC_IMR_PRM 0x01


Type struct _NICINFO

struct _NICINFO
struct _NICINFO  
   {  
      HANDLE volatile ni_rx_rdy;  
      HANDLE volatile ni_tx_rdy;  
      HANDLE ni_mutex;  
      volatile int ni_tx_queued;  
      volatile int ni_tx_quelen;  
      volatile int ni_insane;  
      int ni_iomode;  
      uint8_t ni_mar[8];  
   }  

Typedef NICINFO

typedef struct _NICINFO NICINFO
See: Type struct _NICINFO

Global Variable devDm9000

NUTDEVICE devDm9000
Visible in:   nut/dev/dm9000.c

Local Variables

crctab
static const uint32_t crctab[]
Used in: ether_crc32_le()  

dcb_eth0
static NICINFO dcb_eth0

Used in:   nut/dev/dm9000.c

ifn_eth0
static IFNET ifn_eth0

Used in:   nut/dev/dm9000.c

Global Function DmInit()

int DmInit ( NUTDEVICE* dev )
Calls: NicReset() nut/dev/dm9000.c
  NutThreadCreate() nut/arch/cm3/os/context.c
  memset() nut/c/string/memset.c
  nic_inb() nut/dev/dm9000.c
  NutRegisterPhy()
Used in:   nut/dev/dm9000.c
References Functions: NicRxLanc() nut/dev/dm9000.c
  phy_inw() nut/dev/dm9000.c
  phy_outw() nut/dev/dm9000.c

Global Function DmOutput()

int DmOutput ( NUTDEVICE* dev, NETBUF* nb )
Calls: NicPutPacket() nut/dev/dm9000.c
  NutEventPost(), NutEventWait()
Used in:   nut/dev/dm9000.c

Global Function NicRxLanc()

void NicRxLanc ( void* arg )
Prototyped in: nut/dev/dm9000.c
Calls: NicGetPacket() nut/dev/dm9000.c
  NicStart() nut/dev/dm9000.c
  nic_inb() nut/dev/dm9000.c
  NutEventPost(), NutEventWait(), NutNetBufFree(), NutSleep(), NutThreadSetPriority()
Used in: DmInit() nut/dev/dm9000.c

Local Function DmIOCtl()

static int DmIOCtl ( NUTDEVICE* dev, int req, void* conf )
Calls: NicUpdateMCHardware() nut/dev/dm9000.c
  ether_crc32_le() nut/dev/dm9000.c
  free() nut/crt/malloc.c
  malloc() nut/crt/malloc.c
  memcpy() nut/c/string/memcpy.c
Used in:   nut/dev/dm9000.c

Local Function NicGetPacket()

static int NicGetPacket ( NICINFO* ni, NETBUF** nbp )
Called by: NicRxLanc() nut/dev/dm9000.c

Local Function NicPhyInit()

static int NicPhyInit ( void )
Calls: nic_outb() nut/dev/dm9000.c
  NutPhyCtl()
Called by: NicReset() nut/dev/dm9000.c

Local Function NicPutPacket()

static int NicPutPacket ( NICINFO* ni, NETBUF* nb, uint_fast16_t sz )
Called by: DmOutput() nut/dev/dm9000.c

Local Function NicReset()

static int NicReset ( void )
Calls: NicPhyInit() nut/dev/dm9000.c
  nic_outb() nut/dev/dm9000.c
  NutDelay()
Called by: DmInit() nut/dev/dm9000.c

Local Function NicStart()

static int NicStart ( const uint8_t* mac, NICINFO* ni )
Calls: NicUpdateMCHardware() nut/dev/dm9000.c
  nic_inb() nut/dev/dm9000.c
  nic_outb() nut/dev/dm9000.c
  NutDelay(), NutPhyCtl(), NutSleep()
Called by: NicRxLanc() nut/dev/dm9000.c

Local Function NicUpdateMCHardware()

static void NicUpdateMCHardware ( NICINFO* ni )
Calls: nic_outb() nut/dev/dm9000.c
Called by: DmIOCtl() nut/dev/dm9000.c
  NicStart() nut/dev/dm9000.c

Local Function ether_crc32_le()

static uint32_t ether_crc32_le ( const uint8_t* buf, uint8_t len )
Called by: DmIOCtl() nut/dev/dm9000.c
References Variables: crctab nut/dev/dm9000.c

Local Function nic_inb()

static inline uint8_t nic_inb ( uint16_t reg )
Called by: DmInit() nut/dev/dm9000.c
  NicRxLanc() nut/dev/dm9000.c
  NicStart() nut/dev/dm9000.c
  phy_inw() nut/dev/dm9000.c

Local Function nic_outb()

static inline void nic_outb ( uint8_t reg, uint8_t val )
Called by: NicPhyInit() nut/dev/dm9000.c
  NicReset() nut/dev/dm9000.c
  NicStart() nut/dev/dm9000.c
  NicUpdateMCHardware() nut/dev/dm9000.c
  phy_inw() nut/dev/dm9000.c
  phy_outw() nut/dev/dm9000.c

Local Function phy_inw()

static uint16_t phy_inw ( uint8_t reg )
Calls: nic_inb() nut/dev/dm9000.c
  nic_outb() nut/dev/dm9000.c
  NutDelay()
Used in: DmInit() nut/dev/dm9000.c

Local Function phy_outw()

static void phy_outw ( uint8_t reg, uint16_t val )
Calls: nic_outb() nut/dev/dm9000.c
  NutDelay()
Used in: DmInit() nut/dev/dm9000.c