Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

Crystal CS8900 Ethernet Interface Driver (cs8900.c)
[Network Library]


Detailed Description

 #include "net/cs8900.h" 
Overview
This driver provides initialization and transmit/receive functions for the Crystal CS8900 10Mb Ethernet Controller and PHY.


Defines

#define nop()   asm volatile ("nop")
#define CS8900_ESIA_ID   (0x630e)
#define CS8900_IO_RXTX_DATA_PORT0   (0x0000)
#define CS8900_IO_RXTX_DATA_PORT1   (0x0002)
#define CS8900_IO_TXCMD   (0x0004)
#define CS8900_IO_TXLENGTH   (0x0006)
#define CS8900_IO_ISQ   (0x0008)
#define CS8900_IO_PP_PTR   (0x000a)
#define CS8900_IO_PP_DATA_PORT0   (0x000c)
#define CS8900_IO_PP_DATA_PORT1   (0x000e)
#define PP_ChipID   0x0000
#define PP_ISAIOB   0x0020
#define PP_CS8900_ISAINT   0x0022
#define PP_CS8900_ISADMA   0x0024
#define PP_ISASOF   0x0026
#define PP_DmaFrameCnt   0x0028
#define PP_DmaByteCnt   0x002A
#define PP_CS8900_ISAMemB   0x002C
#define PP_ISABootBase   0x0030
#define PP_ISABootMask   0x0034
#define PP_RxFrameByteCnt   0x0050
#define PP_EECMD   0x0040
#define PP_EEData   0x0042
#define PP_RxCFG   0x0102
#define PP_RxCTL   0x0104
#define PP_TxCFG   0x0106
#define PP_TxCMD   0x0108
#define PP_BufCFG   0x010A
#define PP_LineCTL   0x0112
#define PP_SelfCTL   0x0114
#define PP_BusCTL   0x0116
#define PP_TestCTL   0x0118
#define PP_ISQ   0x0120
#define PP_RxEvent   0x0124
#define PP_TxEvent   0x0128
#define PP_BufEvent   0x012C
#define PP_RxMiss   0x0130
#define PP_TxCol   0x0132
#define PP_LineST   0x0134
#define PP_SelfST   0x0136
#define PP_BusST   0x0138
#define PP_TDR   0x013C
#define PP_TxCommand   0x0144
#define PP_TxLength   0x0146
#define PP_LAF   0x0150
#define PP_IA   0x0158
#define PP_RxStatus   0x0400
#define PP_RxLength   0x0402
#define PP_RxFrame   0x0404
#define PP_TxFrame   0x0A00
#define DEFAULTIOBASE   0x0300
#define SKIP_1   0x0040
#define RX_STREAM_ENBL   0x0080
#define RX_OK_ENBL   0x0100
#define RX_DMA_ONLY   0x0200
#define AUTO_RX_DMA   0x0400
#define BUFFER_CRC   0x0800
#define RX_CRC_ERROR_ENBL   0x1000
#define RX_RUNT_ENBL   0x2000
#define RX_EXTRA_DATA_ENBL   0x4000
#define RX_IA_HASH_ACCEPT   0x0040
#define RX_PROM_ACCEPT   0x0080
#define RX_OK_ACCEPT   0x0100
#define RX_MULTCAST_ACCEPT   0x0200
#define RX_IA_ACCEPT   0x0400
#define RX_BROADCAST_ACCEPT   0x0800
#define RX_BAD_CRC_ACCEPT   0x1000
#define RX_RUNT_ACCEPT   0x2000
#define RX_EXTRA_DATA_ACCEPT   0x4000
#define TX_LOST_CRS_ENBL   0x0040
#define TX_SQE_ERROR_ENBL   0x0080
#define TX_OK_ENBL   0x0100
#define TX_LATE_COL_ENBL   0x0200
#define TX_JBR_ENBL   0x0400
#define TX_ANY_COL_ENBL   0x0800
#define TX_16_COL_ENBL   0x8000
#define TX_START_5_BYTES   0x0000
#define TX_START_381_BYTES   0x0040
#define TX_START_1021_BYTES   0x0080
#define TX_START_ALL_BYTES   0x00C0
#define TX_FORCE   0x0100
#define TX_ONE_COL   0x0200
#define TX_NO_CRC   0x1000
#define TX_RUNT   0x2000
#define GENERATE_SW_INTERRUPT   0x0040
#define RX_DMA_ENBL   0x0080
#define READY_FOR_TX_ENBL   0x0100
#define TX_UNDERRUN_ENBL   0x0200
#define RX_MISS_ENBL   0x0400
#define RX_128_BYTE_ENBL   0x0800
#define TX_COL_COUNT_OVRFLOW_ENBL   0x1000
#define RX_MISS_COUNT_OVRFLOW_ENBL   0x2000
#define RX_DEST_MATCH_ENBL   0x8000
#define SERIAL_RX_ON   0x0040
#define SERIAL_TX_ON   0x0080
#define AUI_ONLY   0x0100
#define AUTO_AUI_10BASET   0x0200
#define MODIFIED_BACKOFF   0x0800
#define NO_AUTO_POLARITY   0x1000
#define TWO_PART_DEFDIS   0x2000
#define LOW_RX_SQUELCH   0x4000
#define POWER_ON_RESET   0x0040
#define SW_STOP   0x0100
#define SLEEP_ON   0x0200
#define AUTO_WAKEUP   0x0400
#define HCB0_ENBL   0x1000
#define HCB1_ENBL   0x2000
#define HCB0   0x4000
#define HCB1   0x8000
#define RESET_RX_DMA   0x0040
#define MEMORY_ON   0x0400
#define DMA_BURST_MODE   0x0800
#define IO_CHANNEL_READY_ON   0x1000
#define RX_DMA_SIZE_64K   0x2000
#define ENABLE_IRQ   0x8000
#define LINK_OFF   0x0080
#define ENDEC_LOOPBACK   0x0200
#define AUI_LOOPBACK   0x0400
#define BACKOFF_OFF   0x0800
#define FDX_8900   0x4000
#define RX_IA_HASHED   0x0040
#define RX_DRIBBLE   0x0080
#define RX_OK   0x0100
#define RX_HASHED   0x0200
#define RX_IA   0x0400
#define RX_BROADCAST   0x0800
#define RX_CRC_ERROR   0x1000
#define RX_RUNT   0x2000
#define RX_EXTRA_DATA   0x4000
#define HASH_INDEX_MASK   0xFC00
#define TX_LOST_CRS   0x0040
#define TX_SQE_ERROR   0x0080
#define TX_OK   0x0100
#define TX_LATE_COL   0x0200
#define TX_JBR   0x0400
#define TX_16_COL   0x8000
#define TX_COL_COUNT_MASK   0x7800
#define SW_INTERRUPT   0x0040
#define RX_DMA   0x0080
#define READY_FOR_TX   0x0100
#define TX_UNDERRUN   0x0200
#define RX_MISS   0x0400
#define RX_128_BYTE   0x0800
#define TX_COL_OVRFLW   0x1000
#define RX_MISS_OVRFLW   0x2000
#define RX_DEST_MATCH   0x8000
#define LINK_OK   0x0080
#define AUI_ON   0x0100
#define TENBASET_ON   0x0200
#define POLARITY_OK   0x1000
#define CRS_OK   0x4000
#define ACTIVE_33V   0x0040
#define INIT_DONE   0x0080
#define SI_BUSY   0x0100
#define EEPROM_PRESENT   0x0200
#define EEPROM_OK   0x0400
#define EL_PRESENT   0x0800
#define EE_SIZE_64   0x1000
#define TX_BID_ERROR   0x0080
#define READY_FOR_TX_NOW   0x0100
#define ISQ_RX_EVENT   0x0004
#define ISQ_TX_EVENT   0x0008
#define ISQ_BUFFER_EVENT   0x000C
#define ISQ_RX_MISS_EVENT   0x0010
#define ISQ_TX_COL_EVENT   0x0012
#define ISQ_EVENT_MASK   0x003F
#define AUTOINCREMENT   0x8000
#define EEPROM_WRITE_EN   0x00F0
#define EEPROM_WRITE_DIS   0x0000
#define EEPROM_WRITE_CMD   0x0100
#define EEPROM_READ_CMD   0x0200
#define RBUF_EVENT_LOW   0x0000
#define RBUF_EVENT_HIGH   0x0001
#define RBUF_LEN_LOW   0x0002
#define RBUF_LEN_HI   0x0003
#define RBUF_HEAD_LEN   0x0004

Functions

unsigned int cs8900BeginPacketRetreive (void)
void cs8900RetreivePacketData (u08 *packet, unsigned int packetLength)
void cs8900EndPacketRetreive (void)
void cs8900Init (void)
void cs8900Write (unsigned char address, unsigned char data)
unsigned char cs8900Read (unsigned char address)
void cs8900Write16 (unsigned char address, unsigned short data)
unsigned short cs8900Read16 (unsigned char address)
void cs8900WriteReg (unsigned short address, unsigned short data)
unsigned short cs8900ReadReg (unsigned short address)
void cs8900CopyToFrame (unsigned char *source, unsigned short size)
void cs8900CopyFromFrame (unsigned char *dest, unsigned short size)
u08 cs8900LinkStatus (void)
void cs8900IORegDump (void)
void cs8900RegDump (void)


Generated on Sun Oct 29 03:41:09 2006 for Procyon AVRlib by  doxygen 1.4.2