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

📄 nicwinreg.h

📁 3com3c905网卡驱动程序
💻 H
字号:
/*******************************************************************************
*** Note: Copy rights resevered to Beijing Pacific Linkair Communications Co. 
***
*** File Name: NICWinReg.h
*** Purpose  : NIC Window 0-7 Registers Definitions
***
*** Author   : Guangzhao Tian
*** Modified : By Guangzhao Tian at 2000/9/7
***
**/

/* Window definitions.*/
#define REGISTER_WINDOW_0		0x0  /* setup/configuration */
#define REGISTER_WINDOW_1		0x1  /*/ operating set */
#define REGISTER_WINDOW_2		0x2  /* station address setup/read */
#define REGISTER_WINDOW_3		0x3  /* FIFO management */
#define REGISTER_WINDOW_4		0x4  /* diagnostics */
#define REGISTER_WINDOW_5		0x5  /* registers set by commands */
#define REGISTER_WINDOW_6		0x6  /* statistics */
#define REGISTER_WINDOW_7		0x7  /* bus master control*/

#define REGISTER_WINDOW_MASK		0xE000

/*-------- Register definitions ----------*/
 #define INTSTATUS_INTERRUPT_MASK	0x6EE  

/***** Window 0 registers. *******/
#define BIOS_ROM_ADDRESS_REGISTER	0x4
#define BIOS_ROM_DATA_REGISTER		0x8

#define EEPROM_COMMAND_REGISTER		0xA
	#define EEPROM_BUSY_BIT			BIT_15
	#define EEPROM_COMMAND_READ		0x0080   
	#define EEPROM_WRITE_ENABLE		0x0030
	#define EEPROM_ERASE_REGISTER	0x00C0
	#define EEPROM_WRITE_REGISTER	0x0040

#define EEPROM_DATA_REGISTER		0xC

#define INTSTATUS_COMMAND_REGISTER	0xE
	#define INTSTATUS_INTERRUPT_LATCH		BIT_0
	#define INTSTATUS_HOST_ERROR			BIT_1
	#define INTSTATUS_TX_COMPLETE			BIT_2
	#define INTSTATUS_RX_COMPLETE			BIT_4
	#define INTSTATUS_INTERRUPT_REQUESTED	BIT_6
	#define INTSTATUS_UPDATE_STATISTICS		BIT_7
	#define INTSTATUS_LINK_EVENT			BIT_8
	#define INTSTATUS_DOWN_COMPLETE			BIT_9
	#define INTSTATUS_UP_COMPLETE			BIT_10
	#define INTSTATUS_COMMAND_IN_PROGRESS	BIT_12

	#define INTSTATUS_INTERRUPT_NONE		0
	#define INTSTATUS_INTERRUPT_ALL			0x6EE  
	#define INTSTATUS_ACKNOWLEDGE_ALL		0x7FF


/* Window 2 registers. */
#define STATION_ADDRESS_LOW_REGISTER		0x0
#define STATION_ADDRESS_MID_REGISTER		0x2
#define STATION_ADDRESS_HIGH_REGISTER		0x4

/*  Window 3 registers. */
#define INTERNAL_CONFIG_REGISTER		0x0
	#define INTERNAL_CONFIG_DISABLE_BAD_SSD		BIT_8
	#define INTERNAL_CONFIG_ENABLE_TX_LARGE		BIT_14
	#define INTERNAL_CONFIG_ENABLE_RX_LARGE		BIT_15
	#define INTERNAL_CONFIG_AUTO_SELECT		    BIT_24
	#define INTERNAL_CONFIG_DISABLE_ROM		    BIT_25
	#define INTERNAL_CONFIG_TRANSCEIVER_MASK	0x00F00000L

#define MAXIMUM_PACKET_SIZE_REGISTER	0x4

#define MAC_CONTROL_REGISTER			0x6
	#define MAC_CONTROL_FULL_DUPLEX_ENABLE		BIT_5
	#define MAC_CONTROL_ALLOW_LARGE_PACKETS		BIT_6
	#define MAC_CONTROL_FLOW_CONTROL_ENABLE 	BIT_8

#define MEDIA_OPTIONS_REGISTER			0x8
	#define MEDIA_OPTIONS_100BASET4_AVAILABLE	BIT_0
	#define MEDIA_OPTIONS_100BASETX_AVAILABLE	BIT_1
	#define MEDIA_OPTIONS_100BASEFX_AVAILABLE	BIT_2
	#define MEDIA_OPTIONS_10BASET_AVAILABLE		BIT_3
	#define MEDIA_OPTIONS_10BASE2_AVAILABLE		BIT_4
	#define MEDIA_OPTIONS_10AUI_AVAILABLE		BIT_5
	#define MEDIA_OPTIONS_MII_AVAILABLE		    BIT_6
	#define MEDIA_OPTIONS_10BASEFL_AVAILABLE	BIT_8

#define RX_FREE_REGISTER			0xA
#define TX_FREE_REGISTER			0xC

/* Window 4 registers.*/
#define PHYSICAL_MANAGEMENT_REGISTER		       0x8

#define NETWORK_DIAGNOSTICS_REGISTER		       0x6
	#define NETWORK_DIAGNOSTICS_ASIC_REVISION	       0x003E
	#define NETWORK_DIAGNOSTICS_ASIC_REVISION_LOW  	   0x000E 
	#define NETWORK_DIAGNOSTICS_UPPER_BYTES_ENABLE 	   BIT_6

#define MEDIA_STATUS_REGISTER				       0xA
	#define MEDIA_STATUS_SQE_STATISTICS_ENABLE	       BIT_3
	#define MEDIA_STATUS_CARRIER_SENSE		           BIT_5
	#define MEDIA_STATUS_JABBER_GUARD_ENABLE	       BIT_6
	#define MEDIA_STATUS_LINK_BEAT_ENABLE		       BIT_7
	#define MEDIA_STATUS_LINK_DETECT		           BIT_11
	#define MEDIA_STATUS_TX_IN_PROGRESS		           BIT_12
	#define MEDIA_STATUS_DC_CONVERTER_ENABLED	       BIT_14

#define BAD_SSD_REGISTER			               0xC
#define UPPER_BYTES_OK_REGISTER			           0xD

/* Window 5 registers. */
#define RX_FILTER_REGISTER				0x8
#define INTERRUPT_ENABLE_REGISTER		0xA
#define INDICATION_ENABLE_REGISTER		0xC

/* Window 6 registers.*/
#define CARRIER_LOST_REGISTER		    0x0
#define SQE_ERRORS_REGISTER		        0x1
#define MULTIPLE_COLLISIONS_REGISTER	0x2
#define SINGLE_COLLISIONS_REGISTER	    0x3
#define LATE_COLLISIONS_REGISTER		0x4
#define RX_OVERRUNS_REGISTER			0x5
#define FRAMES_TRANSMITTED_OK_REGISTER	0x6
#define FRAMES_RECEIVED_OK_REGISTER		0x7
#define FRAMES_DEFERRED_REGISTER		0x8
#define UPPER_FRAMES_OK_REGISTER		0x9
#define BYTES_RECEIVED_OK_REGISTER		0xA
#define BYTES_TRANSMITTED_OK_REGISTER	0xC

/*  Window 7 registers. */
#define VLAN_MASK						0x0
#define VLAN_ETHERNET_TYPE				0x4
#define POWER_MAGNEMENT_EVENT           0xc

   /* Following are Window 7 Registers (Bus Master Control Version) */
#define BM_FRAGMENT_ADDRESS_WIN7		0x0
#define BM_FRAGMENT_LENGTH_WIN7			0x6
#define BUS_MASTER_STATUS_WIN7			0xB
#define BUS_MASTER_TIMER_WIN7			0xA

/***********************************************
**** Register Layout definition,
**** it's beyond 0x10, meaning not the window registers
***/
#define TX_PKTID                0x18

#define TIMER_REGISTER			0x1A

#define TX_STATUS_REGISTER		0x1B
	#define TX_STATUS_RECLAIM_ERROR         BIT_1
	#define TX_STATUS_STACK_OVERFLOW        BIT_2
	#define TX_STATUS_MAXIMUM_COLLISION	    BIT_3
	#define TX_STATUS_HWERROR		        BIT_4
	#define TX_STATUS_JABBER		        BIT_5
	#define TX_STATUS_INTERRUPT_REQUESTED	BIT_6
	#define TX_STATUS_COMPLETE		        BIT_7

#define INT_STATUS_AUTO_REGISTER	0x1E

#define DMA_CONTROL_REGISTER		0x20
	#define DMA_CONTROL_DOWN_STALLED	    BIT_2
	#define DMA_CONTROL_UP_COMPLETE		    BIT_3
	#define DMA_CONTROL_DOWN_COMPLETE	    BIT_4
	#define DMA_CONTROL_ARM_COUNTDOWN       BIT_6
	#define DMA_CONTROL_DOWN_IN_PROGRESS    BIT_7
	#define DMA_CONTROL_COUNTER_SPEED       BIT_8
	#define DMA_CONTROL_COUNTDOWN_MODE      BIT_9
	#define DMA_CONTROL_DOWN_SEQ_DISABLE    BIT_17
	#define DMA_CONTROL_DEFEAT_MWI          BIT_20
	#define DMA_CONTROL_DEFEAT_MRL          BIT_21
	#define DMA_CONTROL_UPOVERDISC_DISABLE	BIT_22
	#define DMA_CONTROL_TARGET_ABORT        BIT_30
	#define DMA_CONTROL_MASTER_ABORT        BIT_31

#define DOWN_LIST_POINTER_REGISTER		0x24

#define BUS_MASTER_FRAGMENT_ADDRESS		0x28
#define BUS_MASTER_FRAGMENT_LENGTH		0x2C

#define DOWN_POLL_REGISTER				0x2D

#define BUS_MASTER_TXFREETHRESH			0x2F

#define UP_PACKET_STATUS_REGISTER		0x30
	#define UP_PACKET_STATUS_ERROR					BIT_14
	#define UP_PACKET_STATUS_COMPLETE				BIT_15
	#define UP_PACKET_STATUS_OVERRUN				BIT_16
	#define UP_PACKET_STATUS_RUNT_FRAME				BIT_17
	#define UP_PACKET_STATUS_ALIGNMENT_ERROR		BIT_18
	#define UP_PACKET_STATUS_CRC_ERROR             	BIT_19
	#define UP_PACKET_STATUS_OVERSIZE_FRAME        	BIT_20
	#define UP_PACKET_STATUS_DRIBBLE_BITS			BIT_23
	#define UP_PACKET_STATUS_OVERFLOW				BIT_24
	#define UP_PACKET_STATUS_IP_CHECKSUM_ERROR		BIT_25
	#define UP_PACKET_STATUS_TCP_CHECKSUM_ERROR		BIT_26
	#define UP_PACKET_STATUS_UDP_CHECKSUM_ERROR		BIT_27
	#define UP_PACKET_STATUS_IMPLIED_BUFFER_ENABLE	BIT_28
	#define UP_PACKET_STATUS_IP_CHECKSUM_CHECKED	BIT_29
	#define UP_PACKET_STATUS_TCP_CHECKSUM_CHECKED	BIT_30
	#define UP_PACKET_STATUS_UDP_CHECKSUM_CHECKED	BIT_31

    #define UP_PACKET_LENGTH_MASK					0x1FFF
    #define UP_PACKET_STATUS_ERROR_MASK				0x1F0000

#define FREE_TIMER_REGISTER			0x34
#define COUNTDOWN_REGISTER			0x36

#define UP_LIST_POINTER_REGISTER	0x38
#define UP_POLL_REGISTER			0x3D

#define REAL_TIME_COUNTER_REGISTER	0x40

#define CONFIG_ADDRESS_REGISTER		0x44
#define CONFIG_DATA_REGISTER		0x48

#define DEBUG_DATA_REGISTER			0x70
#define DEBUG_CONTROL_REGISTER		0x74

/** Macros of Windows Registers
*** end of WinRegisters.h
****************************************************************************************************/

⌨️ 快捷键说明

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