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

📄 cs8900a.h

📁 s3c2410下的tftp固件程序
💻 H
字号:
/*********************************************************************************************
* File:	cs8900a.h
* Author:	Embest	
* Desc:	CS8900A ethernet chip register description
* History:	
*********************************************************************************************/
#ifndef __CS8900A_H__
#define __CS8900A_H__


/*------------------------------------------------------------------------------------------*/
/*                   CS8900A Register defines                                               */
/*------------------------------------------------------------------------------------------*/

// Bus interface registers
#define REG_Identification		0x0000
#define REG_IOBaseAddress		0x0020
#define REG_InterruptNumber		0x0022
#define REG_DMAChannelNumber	0x0024
#define REG_DMAStartOfFrame		0x0026
#define REG_DMARrameCount		0x0028
#define REG_RxDMAByteCount		0x002A
#define REG_MemoryBaseAddress	0x002C
#define REG_BootBaseAddress		0x0030
#define REG_BootAddressMask		0x0034
#define REG_EEPROMCommand		0x0040
#define REG_EEPROMData			0x0042
#define REG_ReceivedByteCounter	0x0050

// Status and control registers
#define REG_RxCFG		0x0102
#define REG_RxCTL		0x0104
#define REG_TxCFG		0x0106
#define REG_TxCMD		0x0108
#define REG_BufCFG		0x010A
#define REG_LineCTL		0x0112
#define REG_SelfCTL		0x0114
#define REG_BusCTL		0x0116
#define REG_TestCTL		0x0118

#define REG_ISQ			0x0120
#define REG_RxEvent		0x0124
#define REG_TxEvent		0x0128
#define REG_BufEvent	0x012C
#define REG_RxMISS		0x0130
#define REG_TxCOL		0x0132
#define REG_LineST		0x0134
#define REG_SelfST		0x0136
#define REG_BusST		0x0138
#define REG_TDR			0x013C

// Initiate transmit registers
#define REG_TxCommand	0x0144
#define REG_TxLength	0x0146

// Address filter registers
#define REG_LAF			0x0150
#define REG_IA			0x0158

// Frame location register
#define REG_RxStatus	0x0400
#define REG_RxLength	0x0402
#define REG_RxFrame		0x0404
#define REG_TxFrame		0x0A00

/*------------------------------------------------------------------------------------------*/
/*                   CS8900A register bit defines                                           */
/*------------------------------------------------------------------------------------------*/

// Bits of bus interface register
// ID 
#define ID_CODE			0x630E
#define ID_SIGNATURE	0x3000
#define REV_B			0x0700
#define REV_C			0x0800
#define REV_D			0x0900
#define REV_F			0x0A00
// INT number 
#define INTRQ0			0
#define INTRQ1			1
#define INTRQ2			2
#define INTRQ3			3
#define ALL_INTRQ_HI	4
// DMA number 
#define DMRQ0			0
#define DMRQ1			1
#define DMRQ2			2
#define ALL_DMRQ_HI		3
// EEPROM command 
#define OB0				(1<<8)
#define OB1				(1<<9)
#define ELSEL			(1<<10)


// Bits of status and control registers
#define LOW_BITS_MASK	0x001F
// RxCFG 
#define Skip_1			(1<<6)
#define StreamE			(1<<7)
#define RxOKiE			(1<<8)
#define RxDMAonly		(1<<9)
#define AutoRxDMAE		(1<<10)
#define BufferCRC		(1<<11)
#define CRCerroriE		(1<<12)
#define RuntiE			(1<<13)
#define ExtradataiE		(1<<14)
#define RxCFG_LOW		(0x03)
// RxCTL 
#define IAHashA			(1<<6)
#define PromiscuousA	(1<<7)
#define RxOKA			(1<<8)
#define MulticastA		(1<<9)
#define IdividualA		(1<<10)
#define BroadcastA		(1<<11)
#define CRCerrorA		(1<<12)
#define RuntA			(1<<13)
#define ExtradataA		(1<<14)
#define RxCTL_LOW		(0x05)
// TxCFG 
#define Loss_of_CRSiE	(1<<6)
#define SQErroriE		(1<<7)
#define TxOKiE			(1<<8)
#define Out_of_windowiE	(1<<9)
#define JabberiE		(1<<10)
#define AnycolliE		(1<<11)
#define _16colliE		(1<<15)
#define TxCFG_LOW		(0x07)
// TxCMD 
#define TxStart			(3<<6)
#define TxStart6		(1<<6)
#define TxStart7		(1<<7)
#define Force			(1<<8)
#define Onecoll			(1<<9)
#define InhibitCRC		(1<<12)
#define TxPadDis		(1<<13)
#define TxCMD_LOW		(0x09)
// BufCFG 
#define SWint_X			(1<<6)
#define RxDMAiE			(1<<7)
#define Rdy4TxiE		(1<<8)
#define TxUnderruniE	(1<<9)
#define RxMissiE		(1<<10)
#define Rx128iE			(1<<11)
#define TxColOvfiE		(1<<12)
#define MissOvfloiE		(1<<13)
#define RxDestiE		(1<<15)
#define BufCFG_LOW		(0x0B)
// LineCTL 
#define SerRxON			(1<<6)
#define SerTxON			(1<<7)
#define AUIonly			(1<<8)
#define AutoAUI_10BT	(1<<9)
#define ModBackOffE		(1<<11)
#define PolarityDis		(1<<12)
#define _2_partDefDis	(1<<13)
#define LoRxSquelch		(1<<14)
#define LineCTL_LOW		(0x13)
// SelfCTL 
#define RESET			(1<<6)
#define SWSuspend		(1<<8)
#define HWSleepE		(1<<9)
#define HWStandbyE		(1<<10)
#define HC0E			(1<<12)
#define HC1E			(1<<13)
#define HCB0			(1<<14)
#define HCB1			(1<<15)
#define SelfCTL_LOW		(0x15)
// BusCTL 
#define ResetRxDMA		(1<<6)
#define DMAextend		(1<<8)
#define UseSA			(1<<9)
#define MemoryE			(1<<10)
#define DMABurst		(1<<11)
#define IOCHRDYE		(1<<12)
#define RxDMAsize		(1<<13)
#define EnableIRQ		(1<<15)
#define BusCTL_LOW		(0x17)
// TestCTL 
#define DisableLT		(1<<7)
#define ENDECloop		(1<<9)
#define AUIloop			(1<<10)
#define DisableBackoff	(1<<11)
#define FDX				(1<<14)
#define TestCTL_LOW		(0x19)
// ISQ 
#define RegNum			(0x3f<<0)
#define RegContent		(0x3ff<<6)
#define ISQ_LOW			(0x00)
// RxEvent 
#define IAHash			(1<<6)
#define Dribblebits		(1<<7)
#define RxOK			(1<<8)
#define Hashed			(1<<9)
#define IdividualAdr	(1<<10)
#define Broadcast		(1<<11)
#define CRCerror		(1<<12)
#define Runt			(1<<13)
#define Extradata		(1<<14)
#define RxEvent_LOW		(0x04)
// TxEvent
#define Loss_of_CRS		(1<<6)
#define SQError			(1<<7)
#define TxOK			(1<<8)
#define Out_of_window	(1<<9)
#define Jabber			(1<<10)
#define Num_of_TxColl	(0xf<<11)
#define _16coll			(1<<15)
#define TxEvent_LOW		(0x08)
// BufEvent 
#define SWint			(1<<6)
#define RxDMAFrame		(1<<7)
#define Rdy4Tx			(1<<8)
#define TxUnderrun		(1<<9)
#define RxMiss			(1<<10)
#define Rx128			(1<<11)
#define RxDest			(1<<15)
#define BufEvent_LOW	(0x0C)
// RxMISS 
#define RxMissCount		(0x3ff<<6)
#define RxMISS_LOW		(0x10)
// TxCOL 
#define TxColCount		(0x3ff<<6)
#define TxCOL_LOW		(0x12)
// LineST 
#define LinkOK			(1<<7)
#define AUI				(1<<8)
#define _10BT			(1<<9)
#define PolarityOK		(1<<12)
#define CRS				(1<<14)
#define LineST_LOW		(0x14)
// SelfST 
#define _3_3VActive		(1<<6)
#define INITD			(1<<7)
#define SIBUSY			(1<<8)
#define EEPROMpresent	(1<<9)
#define EEPROMOK		(1<<10)
#define ELpresent		(1<<11)
#define EEsize			(1<<12)
#define SelfST_LOW		(0x16)
// BusST 
#define TxBidErr		(1<<7)
#define Rdy4TxNOW		(1<<8)
#define BusST_LOW		(0x18)
// TDR 
#define AUIDelay		(0x3ff<<6)
#define TDR_LOW			(0x1C)


// I/O space operation
#define IO_RX_TX_DATA0			0x0000
#define IO_RX_TX_DATA1			0x0002
#define IO_TX_COMMAND			0x0004
#define IO_TX_LENGTH			0x0006
#define IO_ISQ					0x0008
#define IO_PACKETPAGE_POINTER	0x000A
#define IO_PACKETPAGE_DATA0		0x000C
#define IO_PACKETPAGE_DATA1		0x000E


#endif                                                          // __CS8900A_H__ 

⌨️ 快捷键说明

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