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

📄 zdequates.h

📁 ZD1211LnxDrv_2_3_1_0無線網卡ZD1211
💻 H
字号:
/****************************************************************************
** COPYRIGHT (C) 2002 ZYDAS CORPORATION                                    **
** HTTP://WWW.ZYDAS.COM.TW/                                                **
****************************************************************************/

#ifndef _ZDEQUATES_H
#define _ZDEQUATES_H


//-------------------------------------------------------------------------
// Ethernet Frame_t Sizes
//-------------------------------------------------------------------------
#define ETHERNET_ADDRESS_LENGTH         6
#define ETHERNET_HEADER_SIZE            14
#define MINIMUM_ETHERNET_PACKET_SIZE    60
#define MAXIMUM_ETHERNET_PACKET_SIZE    1514
#if 1//fMERGE_RX_FRAME
    #define	MAX_WLAN_SIZE				4800
    #define ZD_MAX_WLAN_SIZE			4800
#else
    #define	MAX_WLAN_SIZE               2432
    #define ZD_MAX_WLAN_SIZE			1600
#endif
    
#define WLAN_HEADER						24	
#define CRC32_LEN						4
#define IV_SIZE							4
#define ICV_SIZE						4	

#if defined(HOST_IF_USB)
#define PLCP_HEADER						5
#define EXTRA_INFO_LEN					5 	//8 for ZD1212
#else


#define PLCP_HEADER						4
#define EXTRA_INFO_LEN					4 
#endif

#define EXTEND_IV_LEN					4
#define MIC_LENGTH						8
#define WDS_ADD_HEADER					6
#define EAPOL_TYPE						0x888e

#define BCN_INTERVAL_OFFSET				8
#define CAP_OFFSET						10
#define SSID_OFFSET						12
#define	NUM_SUPPORTED_RATE				32

#define BSS_INFO_NUM					64

#define TUPLE_CACHE_SIZE				16
#define MAX_DEFRAG_NUM					8


#if defined(HOST_IF_USB)
    #define MAX_RX_TIMEOUT				(100)
#else
    #define MAX_RX_TIMEOUT				(512*10*1000)
#endif    

#define MAXIM2_MAX_TX_PWR_SET       	0x7F
#define MAXIM2_MIN_TX_PWR_SET       	0x0
#define RFMD_MAX_TX_PWR_SET         	0xF0
#define RFMD_MIN_TX_PWR_SET        		0x60

#define	GCT_MAX_TX_PWR_SET				0x3f
#define	GCT_MIN_TX_PWR_SET				0x0

#define	AL2210_MAX_TX_PWR_SET			0xff
#define	AL2210_MIN_TX_PWR_SET			0x80

#define MAX_TX_PWR_READING              0xf0
#define MIN_TX_PWR_READING              0x30

#define AL2230_MAX_TX_PWR_SET       	(0x7F-1)
#define AL2230_MIN_TX_PWR_SET       	(0x00+1)


#define	TRACKING_NUM					20//10


//for USB
#define cTX_CCK                     	1       
#define cTX_OFDM                    	2       // 6M - 36M
#define cTX_48M                     	3
#define cTX_54M                     	4
#define cPWR_CTRL_GUARD             	4       // CR57: 4 -> 0.5 dB
#define cPWR_INT_VALUE_GUARD        	8       // CR31: 4 -> 1 dB; 8 -> 2 dB
#define cPWR_STRONG_SIG_DROP        	(0x18 - cPWR_INT_VALUE_GUARD)


#define cLBTEST_COUNT               	1000
#define cLBTEST_PATN                	0x55


#define cMAX_MULTI_WRITE_REG_NUM    	15
#define cMIN_MULTI_WRITE_REG_NUM    	0
#define cMAX_MULTI_RF_REG_NUM       	28
#define cMAX_MULTI_READ_REG_NUM     	15


/* Firmware Interface */
#define cTX_QUEUE_LEN               	4
// make sure already Tx by HMAC (for UMAC System)
// 1.Host->UMAC, 2.In UMAC Queue, 3.HMAC Sent
#define cTX_SENT_LEN                	(cTX_QUEUE_LEN + 2)
#define cFIRMWARE_OLD_ADDR          	0xEC00
#define cFIRMWARE_START_ADDR        	0xEE00
#define cFIRMWARE_EXT_CODE          	0x1000
#define cADDR_ENTRY_TABLE           	(cFIRMWARE_START_ADDR + 0x1D)
#define cBOOTCODE_START_ADDR        	0xF800
#define cINT_VECT_ADDR              	0xFFF5
#define cEEPROM_SIZE                	0x800   // 2k word (4k byte)


// in word (16 bit width)
#define cLOAD_CODE_LEN              	0xE
#define cLOAD_VECT_LEN              	(0x10000 - 0xFFF7)
#define cEPDATA_OFFSET              	(cLOAD_CODE_LEN + cLOAD_VECT_LEN)
#define USB_BASE_ADDR_EEPROM        	0x9900
#ifdef ZD1211B
	#define USB_BASE_ADDR_HOST         	0x9F00
#elif defined(ZD1211)
	#define USB_BASE_ADDR_HOST			0x9B00
#else
	#error	"***** You Need To Specified ZD1211 or ZD1211B *****"
#endif
#define BASE_ADDR_MASK_HOST         	(~0x00FF)
#define cFIRMWARE_EEPROM_OFFSET     	(cBOOTCODE_START_ADDR + cEPDATA_OFFSET)
//end of USB


// For Rate Adaption
#define FALL_RATE						0x0
#define	RISE_RATE						0x1

#define PS_CAM							0x0
#define	PS_PSM							0x1

#define	ACC_1							0x0
#define	ACC_2							0x1

// MAC_PA_STATE
#define	MAC_INI						0x0
#define	MAC_OPERATION					0x1
#define MAC_PS_OPERATION                                0x1
#define MAC_PS_SLEEP					0x2



// RF TYPE
#define UW2451_RF					0x2
#define uChip_RF					0x3
#define	AL2230_RF					0x4
#define	AL2210MPVB_RF				0x4
#define AL7230B_RF					0x5 //a,b,g RF
#define	THETA_RF					0x6
#define	AL2210_RF					0x7
#define	MAXIM_NEW_RF				0x8
#define	GCT_RF						0x9
#define	PV2000_RF					0xA
#define	RALINK_RF					0xB
#define	INTERSIL_RF					0xC
#define	RFMD_RF						0xD


#define	MAXIM_NEW_RF2				0xE
#define	PHILIPS_RF					0xF


#define ELEID_SSID					0


#define	ELEID_SUPRATES				1
#define ELEID_DSPARMS				3
#define ELEID_TIM					5
#define ELEID_ERP_INFO				42
#define ELEID_EXT_RATES				50
//-------------------------------------------------------------------------
//- Miscellaneous Equates
//-------------------------------------------------------------------------
#ifndef FALSE
#define FALSE       0
#define TRUE        1
#endif

#define DRIVER_NULL ((u32)0xffffffff)

//-------------------------------------------------------------------------
// Bit Mask definitions
//-------------------------------------------------------------------------
#define BIT_0       		0x0001
#define BIT_1       		0x0002
#define BIT_2       		0x0004
#define BIT_3       		0x0008
#define BIT_4       		0x0010
#define BIT_5       		0x0020
#define BIT_6       		0x0040
#define BIT_7       		0x0080
#define BIT_8       		0x0100
#define BIT_9       		0x0200
#define BIT_10      		0x0400
#define BIT_11      		0x0800
#define BIT_12      		0x1000
#define BIT_13      		0x2000
#define BIT_14      		0x4000
#define BIT_15      		0x8000
#define BIT_16      		0x00010000
#define BIT_17      		0x00020000
#define BIT_18      		0x00040000
#define BIT_19      		0x00080000
#define BIT_20      		0x00100000
#define BIT_21				0x00200000
#define BIT_22				0x00400000
#define BIT_23				0x00800000
#define BIT_24      		0x01000000
#define BIT_25				0x02000000
#define BIT_26				0x04000000
#define BIT_27				0x08000000
#define BIT_28      		0x10000000
#define BIT_29      		0x20000000
#define BIT_30      		0x40000000
#define BIT_31      		0x80000000

#define BIT_0_1				0x0003
#define BIT_0_2     		0x0007
#define BIT_0_3     		0x000F
#define BIT_0_4    			0x001F
#define BIT_0_5     		0x003F
#define BIT_0_6     		0x007F
#define BIT_0_7     		0x00FF
#define BIT_0_8    			0x01FF
#define BIT_0_13    		0x3FFF
#define BIT_0_15    		0xFFFF
#define BIT_1_2    			0x0006
#define BIT_1_3     		0x000E
#define BIT_2_5     		0x003C
#define BIT_3_4     		0x0018
#define BIT_4_5     		0x0030
#define BIT_4_6     		0x0070
#define BIT_4_7     		0x00F0
#define BIT_5_7     		0x00E0
#define BIT_5_9     		0x03E0
#define BIT_5_12    		0x1FE0
#define BIT_5_15    		0xFFE0
#define BIT_6_7     		0x00c0
#define BIT_7_11    		0x0F80
#define BIT_8_10    		0x0700
#define BIT_9_13    		0x3E00
#define BIT_12_15   		0xF000

#define BIT_16_20   		0x001F0000
#define BIT_21_25   		0x03E00000
#define BIT_26_27   		0x0C000000

#define RANDOM				0x0
#define INCREMENT			0x1



// Device Bus-Master (Tx) state
#define TX_IDLE					0x00
#define TX_READ_TBD				0x01
#define TX_READ_DATA0			0x02
#define TX_READ_DATA1			0x03
#define TX_CHK_TBD_CNT			0x04
#define TX_READ_TCB				0x05
#define TX_CHK_TCB				0x06
#define TX_WAIT_DATA			0x07
#define TX_RETRYFAILURE			0x08
#define TX_REDOWNLOAD			0x09

// Device Bus-Master (Rx) state
#define RX_IDLE					0x00
#define RX_WAIT_DATA			0x10
#define RX_DATA0				0x20
#define RX_DATA1				0x30
#define RX_READ_RCB				0x50

#define RX_CHK_RCB				0x60
#define RX_WAIT_STS				0x70
#define RX_FRM_ERR				0x80
#define RX_CHK_DATA				0x90


#define MAX_SSID_LEN			32

#define HOST_PEND				BIT_31
#define CAM_WRITE				BIT_31
#define MAC_LENGTH				6
#define RX_MIC_ERROR_IND	    BIT_4 // Bit4 of ExtraInfo[6], its Bit3-Bit0 indicates the encryption type.
#define RX_HW_MIC_ENABLE	    BIT_25 // The subfield of ZD_SnifferOn

#define MIC_FINISH				BIT_0

#define RX_MIC_ERROR_IND		BIT_4
#define HW_MIC_ENABLE			BIT_25


enum Frame_Control_Bit {
	TO_DS = BIT_0,
	FROM_DS = BIT_1,
	MORE_FRAG = BIT_2,
	RETRY_BIT = BIT_3,
	PWR_BIT = BIT_4,
	MORE_DATA = BIT_5,
	ENCRY_BIT = BIT_6,
	ODER_BIT = BIT_7

};



#define MAX_USER				40
#define MAX_KEY_LENGTH			16
#define ENCRY_TYPE_START_ADDR	60
#define DEFAULT_ENCRY_TYPE		65	
#define KEY_START_ADDR			66
#define STA_KEY_START_ADDR		386
#define COUNTER_START_ADDR		418
#define STA_COUNTER_START_ADDR	423

#define EXTENDED_IV				BIT_5
#define QoS_DATA				BIT_7
#define TO_DS_FROM_DS			BIT_0_1

#define AP_MODE					BIT_24
#define IBSS_MODE				BIT_25
#define POWER_MNT				BIT_26
#define STA_PS					BIT_27

#define NON_ERP_PRESENT_BIT		BIT_0

#define USE_PROTECTION_BIT		BIT_1
#define BARKER_PREAMBLE_BIT		BIT_2

#define HOST_BIG_ENDIAN			BIT_0

#define MEMBER_ZD1202			BIT_0
#define MEMBER_OTHERS			BIT_1
#define	BEACON_TIME				1
#define REG_MAX_WAIT			500

//for UART support

/*
 * These are the definitions for the Line Control Register
 */
#define UART_LCR_SBC			BIT_6	/* Set break control */ 
#define UART_LCR_DLAB			BIT_7	/* Divisor latch access bit */

/*
 * These are the definitions for the Line Status Register
 */
#define UART_LSR_DR				BIT_0	/* Receiver data ready */ 
#define UART_LSR_OE				BIT_1	/* Overrun error indicator */
#define UART_LSR_BI				BIT_4	/* Break interrupt indicator */
#define UART_LSR_THRE			BIT_5	/* Transmit-hold-register empty */
#define UART_LSR_TEMT			BIT_6	/* Transmitter empty */

/*
 * These are the definitions for the Interrupt Identification Register
 */
#define UART_IIR_ID_MASK		0x0E	/* Mask for the interrupt ID */
#define UART_IIR_MSI			0x00	/* Modem status interrupt */
#define UART_IIR_NO_INT			BIT_0	/* No interrupts pending */
#define UART_IIR_THRI			BIT_1	/* Transmitter holding register empty */
#define UART_IIR_RDI			BIT_2	/* Receiver data interrupt */
#define UART_IIR_RLSI			0x06	/* Receiver line status interrupt */
#define UART_IIR_RX_TIMEOUT		0x0C	/* Rx timeout interrupt */

/*


 * These are the definitions for the Interrupt Enable Register
 */
#define UART_IER_RDI			BIT_0	/* Enable receiver data interrupt */ 
#define UART_IER_THRI			BIT_1	/* Enable Transmitter holding register int. */
#define UART_IER_RLSI			BIT_2	/* Enable receiver line status interrupt */
#define UART_IER_MSI			BIT_3	/* Enable Modem status interrupt */

/*
 * These are the definitions for the Modem Control Register
 */
#define UART_MCR_DTR			BIT_0	/* DTR complement */ 
#define UART_MCR_RTS			BIT_1	/* RTS complement */ 
#define UART_MCR_TAFC			BIT_5	/* Tx auto flow control */
#define UART_MCR_RAFC			BIT_6	/* Rx auot flow control */

/*
 * These are the definitions for the Modem Status Register
 */
#define UART_MSR_DCTS			BIT_0	/* Delta CTS */ 
#define UART_MSR_DDCD			BIT_3	/* Delta DCD */
#define UART_MSR_CTS			BIT_4	/* Clear to Send */
#define UART_MSR_DCD			BIT_7	/* Data Carrier Detect */
#define UART_MSR_ANY_DELTA 		0x09	/* Any of the delta bits! */

/*
 * These are the definitions for the FIFO Control Register
 * 
 */
#define UART_FCR_CLEAR_RCVR		BIT_1 	/* Clear the RCVR FIFO */
#define UART_FCR_CLEAR_XMIT		BIT_2 	/* Clear the XMIT FIFO */
#define UART_FCR_TX_TRIGGER_1	0x00 /* Mask for tx trigger set at 1 */
#define UART_FCR_TX_TRIGGER_2	0x10 /* Mask for tx trigger set at 2 */
#define UART_FCR_TX_TRIGGER_4	0x20 /* Mask for tx trigger set at 4 */
#define UART_FCR_TX_TRIGGER_8	0x30 /* Mask for tx trigger set at 8 */
#define UART_FCR_RX_TRIGGER_1	0x00 /* Mask for rx trigger set at 1 */
#define UART_FCR_RX_TRIGGER_4	0x40 /* Mask for rx trigger set at 4 */
#define UART_FCR_RX_TRIGGER_8	0x80 /* Mask for rx trigger set at 8 */
#define UART_FCR_RX_TRIGGER_14	0xC0 /* Mask for rx trigger set at 14 */


//Extra Control register
#define UART_ECR_BREAK_LEN_11_BAUD	0x00 	/* Break length 11 baud clocks */
#define UART_ECR_BREAK_LEN_12_BAUD	0x01 	/* Break length 12 baud clocks */
#define UART_ECR_BREAK_LEN_23_BAUD	0x02 	/* Break length 23 baud clocks */
#define UART_ECR_BREAK_LEN_25_BAUD	0x03 	/* Break length 25 baud clocks */
#define UART_ECR_BREAK_DETECTION 	BIT_2	/* Break detection */
#define UART_ECR_BREAK_ENABLE 		BIT_3	/* Break enable */
#define UART_ECR_RX_TOUT_10_BAUD	0x00	/* Rx fifo timeout 10 baud cloacks */
#define UART_ECR_RX_TOUT_20_BAUD	0x10	/* Rx fifo timeout 20 baud cloacks */
#define UART_ECR_RX_TOUT_40_BAUD	0x20	/* Rx fifo timeout 40 baud cloacks */
#define UART_ECR_RX_TOUT_80_BAUD	0x30	/* Rx fifo timeout 80 baud cloacks */
#define UART_ECR_ENABLE 			BIT_7	/* UART enable */

//Baud rate definition
#define	BAUD_RATE_2400			0xBF
#define BAUD_RATE_4800 			0x5F
#define BAUD_RATE_9600 			0x2F
#define BAUD_RATE_19200 		0x17
#define BAUD_RATE_38400			0x0B
#define BAUD_RATE_57600 		0x07
#define BAUD_RATE_115200		0x03
#define BAUD_RATE_230400		0x01
#define BAUD_RATE_460800		0x00

// for EEPROM support
#define EEPROM_BASE_ADDRESS		0x900
#define EEPROM_WRITE_ACCESS		BIT_15
#define EEPROM_BUSY_FLAG		BIT_15
#define EEPROM_ACCESS_WRITE		0x01
#define EEPROM_ACCESS_READ		0x00


#define mBIT(b)                 (1 << (b))
#define mMASK(w)                (mBIT(w) - 1)
#define mSET_MASK(a, b)         ((a) | (b))
#define mCLR_MASK(a, b)         ((a) & (~(b)))
#define mSET_BIT(a, b)          mSET_MASK(a, mBIT(b))
#define mCLR_BIT(a, b)          mCLR_MASK(a, mBIT(b))
#define mCHK_BIT1(a, b)         ((a) & mBIT(b))
#define mTEST_BIT(a, b)         mCHK_BIT1(a, b)


#endif      // _EQUATES_H

⌨️ 快捷键说明

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