Kernel  |  3.0

下载     查看原文件
C++程序  |  364行  |  9.48 KB
/*************************************
*	Macros.h
**************************************/
#ifndef	__MACROS_H__
#define __MACROS_H__

#define TX_TIMER_PERIOD 10	//10 msec
#define MAX_CLASSIFIERS 100
//#define MAX_CLASSIFIERS_PER_SF  20
#define MAX_TARGET_DSX_BUFFERS 24

#define MAX_CNTRL_PKTS 	100
#define MAX_DATA_PKTS 		200
#define MAX_ETH_SIZE 		1536
#define MAX_CNTL_PKT_SIZE 2048

#define MTU_SIZE 1400
#define TX_QLEN  5

#define MAC_ADDR_REGISTER 0xbf60d000


///////////Quality of Service///////////////////////////
#define NO_OF_QUEUES				17
#define HiPriority                  NO_OF_QUEUES-1
#define LowPriority                 0
#define BE                          2
#define rtPS                        4
#define ERTPS                       5
#define UGS                         6

#define BE_BUCKET_SIZE          	1024*1024*100  //32kb
#define rtPS_BUCKET_SIZE        	1024*1024*100    //8kb
#define MAX_ALLOWED_RATE    		1024*1024*100
#define TX_PACKET_THRESHOLD 		10
#define XSECONDS                    1*HZ
#define DSC_ACTIVATE_REQUEST    	248
#define QUEUE_DEPTH_OFFSET          0x1fc01000
#define MAX_DEVICE_DESC_SIZE 		2040
#define MAX_CTRL_QUEUE_LEN			100
#define MAX_APP_QUEUE_LEN			200
#define MAX_LATENCY_ALLOWED			0xFFFFFFFF
#define DEFAULT_UG_INTERVAL			250
#define DEFAULT_UGI_FACTOR			4

#define DEFAULT_PERSFCOUNT			60
#define MAX_CONNECTIONS				10
#define MAX_CLASS_NAME_LENGTH      	32

#define	ETH_LENGTH_OF_ADDRESS		6
#define MAX_MULTICAST_ADDRESSES     32
#define IP_LENGTH_OF_ADDRESS    	4

#define IP_PACKET_ONLY_MODE			0
#define ETH_PACKET_TUNNELING_MODE	1

////////////Link Request//////////////
#define SET_MAC_ADDRESS_REQUEST		0
#define SYNC_UP_REQUEST             1
#define SYNCED_UP                   2
#define LINK_UP_REQUEST             3
#define LINK_CONNECTED              4
#define SYNC_UP_NOTIFICATION    	2
#define LINK_UP_NOTIFICATION    	4


#define LINK_NET_ENTRY              0x0002
#define HMC_STATUS					0x0004
#define LINK_UP_CONTROL_REQ         0x83

#define STATS_POINTER_REQ_STATUS    0x86
#define NETWORK_ENTRY_REQ_PAYLOAD   198
#define LINK_DOWN_REQ_PAYLOAD  	 	226
#define SYNC_UP_REQ_PAYLOAD         228
#define STATISTICS_POINTER_REQ  	237
#define LINK_UP_REQ_PAYLOAD         245
#define LINK_UP_ACK                 246

#define STATS_MSG_SIZE              4
#define INDEX_TO_DATA               4

#define	GO_TO_IDLE_MODE_PAYLOAD			210
#define	COME_UP_FROM_IDLE_MODE_PAYLOAD	211
#define IDLE_MODE_SF_UPDATE_MSG			187

#define SKB_RESERVE_ETHERNET_HEADER	16
#define SKB_RESERVE_PHS_BYTES		32

#define IP_PACKET_ONLY_MODE			0
#define ETH_PACKET_TUNNELING_MODE	1

#define ETH_CS_802_3				1
#define ETH_CS_802_1Q_VLAN			3
#define IPV4_CS						1
#define IPV6_CS						2
#define	ETH_CS_MASK					0x3f

/** \brief Validity bit maps for TLVs in packet classification rule */

#define PKT_CLASSIFICATION_USER_PRIORITY_VALID		0
#define PKT_CLASSIFICATION_VLANID_VALID				1

#ifndef MIN
#define MIN(_a, _b) ((_a) < (_b)? (_a): (_b))
#endif


/*Leader related terms */
#define LEADER_STATUS   				0x00
#define LEADER_STATUS_TCP_ACK			0x1
#define LEADER_SIZE             		sizeof(LEADER)
#define MAC_ADDR_REQ_SIZE				sizeof(PACKETTOSEND)
#define SS_INFO_REQ_SIZE				sizeof(PACKETTOSEND)
#define	CM_REQUEST_SIZE					LEADER_SIZE + sizeof(stLocalSFChangeRequest)
#define IDLE_REQ_SIZE					sizeof(PACKETTOSEND)


#define MAX_TRANSFER_CTRL_BYTE_USB		2 * 1024

#define GET_MAILBOX1_REG_REQUEST        0x87
#define GET_MAILBOX1_REG_RESPONSE       0x67
#define VCID_CONTROL_PACKET             0x00

#define TRANSMIT_NETWORK_DATA           0x00
#define RECEIVED_NETWORK_DATA           0x20

#define CM_RESPONSES					0xA0
#define STATUS_RSP						0xA1
#define LINK_CONTROL_RESP				0xA2
#define	IDLE_MODE_STATUS				0xA3
#define STATS_POINTER_RESP				0xA6
#define MGMT_MSG_INFO_SW_STATUS         0xA7
#define AUTH_SS_HOST_MSG	    		0xA8

#define CM_DSA_ACK_PAYLOAD				247
#define CM_DSC_ACK_PAYLOAD				248
#define CM_DSD_ACK_PAYLOAD				249
#define CM_DSDEACTVATE					250
#define TOTAL_MASKED_ADDRESS_IN_BYTES	32

#define MAC_REQ				0
#define LINK_RESP			1
#define RSSI_INDICATION 	2

#define SS_INFO         	4
#define STATISTICS_INFO 	5
#define CM_INDICATION   	6
#define PARAM_RESP			7
#define BUFFER_1K 			1024
#define BUFFER_2K 			BUFFER_1K*2
#define BUFFER_4K 			BUFFER_2K*2
#define BUFFER_8K 			BUFFER_4K*2
#define BUFFER_16K 			BUFFER_8K*2
#define DOWNLINK_DIR 0
#define UPLINK_DIR 1

#define BCM_SIGNATURE		"BECEEM"


#define GPIO_OUTPUT_REGISTER	 0x0F00003C
#define BCM_GPIO_OUTPUT_SET_REG  0x0F000040
#define BCM_GPIO_OUTPUT_CLR_REG  0x0F000044
#define GPIO_MODE_REGISTER       0x0F000034
#define GPIO_PIN_STATE_REGISTER  0x0F000038


typedef struct _LINK_STATE {
	UCHAR	ucLinkStatus;
    UCHAR   bIdleMode;
	UCHAR	bShutdownMode;
}LINK_STATE, *PLINK_STATE;


enum enLinkStatus {
    WAIT_FOR_SYNC = 	1,
    PHY_SYNC_ACHIVED = 	2,
    LINKUP_IN_PROGRESS = 3,
    LINKUP_DONE     = 	4,
    DREG_RECIEVED =		5,
    LINK_STATUS_RESET_RECIEVED = 6,
    PERIODIC_WAKE_UP_NOTIFICATION_FRM_FW  = 7,
    LINK_SHUTDOWN_REQ_FROM_FIRMWARE = 8,
    COMPLETE_WAKE_UP_NOTIFICATION_FRM_FW =9
};

typedef enum _E_PHS_DSC_ACTION
{
	eAddPHSRule=0,
	eSetPHSRule,
	eDeletePHSRule,
	eDeleteAllPHSRules
}E_PHS_DSC_ACTION;


#define CM_CONTROL_NEWDSX_MULTICLASSIFIER_REQ		0x89    // Host to Mac
#define CM_CONTROL_NEWDSX_MULTICLASSIFIER_RESP      0xA9    // Mac to Host
#define MASK_DISABLE_HEADER_SUPPRESSION 			0x10 //0b000010000
#define	MINIMUM_PENDING_DESCRIPTORS					5

#define SHUTDOWN_HOSTINITIATED_REQUESTPAYLOAD 0xCC
#define SHUTDOWN_ACK_FROM_DRIVER 0x1
#define SHUTDOWN_NACK_FROM_DRIVER 0x2

#define LINK_SYNC_UP_SUBTYPE		0x0001
#define LINK_SYNC_DOWN_SUBTYPE		0x0001



#define CONT_MODE 1
#define SINGLE_DESCRIPTOR 1


#define DESCRIPTOR_LENGTH 0x30
#define FIRMWARE_DESCS_ADDRESS 0x1F100000


#define CLOCK_RESET_CNTRL_REG_1 0x0F00000C
#define CLOCK_RESET_CNTRL_REG_2 0x0F000840



#define TX_DESCRIPTOR_HEAD_REGISTER 0x0F010034
#define RX_DESCRIPTOR_HEAD_REGISTER 0x0F010094

#define STATISTICS_BEGIN_ADDR        0xbf60f02c

#define MAX_PENDING_CTRL_PACKET (MAX_CTRL_QUEUE_LEN-10)

#define WIMAX_MAX_MTU			(MTU_SIZE + ETH_HLEN)
#define AUTO_LINKUP_ENABLE              0x2
#define AUTO_SYNC_DISABLE              	0x1
#define AUTO_FIRM_DOWNLOAD              0x1
#define SETTLE_DOWN_TIME                50

#define HOST_BUS_SUSPEND_BIT            16

#define IDLE_MESSAGE 0x81

#define MIPS_CLOCK_133MHz 1

#define TARGET_CAN_GO_TO_IDLE_MODE 2
#define TARGET_CAN_NOT_GO_TO_IDLE_MODE 3
#define IDLE_MODE_PAYLOAD_LENGTH 8

#define IP_HEADER(Buffer) ((IPHeaderFormat*)(Buffer))
#define IPV4				4
#define IP_VERSION(byte)	(((byte&0xF0)>>4))

#define SET_MAC_ADDRESS  193
#define SET_MAC_ADDRESS_RESPONSE 236

#define IDLE_MODE_WAKEUP_PATTERN 0xd0ea1d1e
#define IDLE_MODE_WAKEUP_NOTIFIER_ADDRESS 0x1FC02FA8
#define IDLE_MODE_MAX_RETRY_COUNT 1000

#ifdef REL_4_1
#define CONFIG_BEGIN_ADDR 0xBF60B004
#else
#define CONFIG_BEGIN_ADDR 0xBF60B000
#endif

#define FIRMWARE_BEGIN_ADDR 0xBFC00000

#define INVALID_QUEUE_INDEX NO_OF_QUEUES

#define INVALID_PID (pid_t)-1
#define DDR_80_MHZ  	0
#define DDR_100_MHZ 	1
#define DDR_120_MHZ    	2 //  Additional Frequency for T3LP
#define DDR_133_MHZ    	3
#define DDR_140_MHZ    	4 //  Not Used (Reserved for future)
#define DDR_160_MHZ    	5 //  Additional Frequency for T3LP
#define DDR_180_MHZ    	6 //  Not Used (Reserved for future)
#define DDR_200_MHZ    	7 //  Not Used (Reserved for future)

#define MIPS_200_MHZ   0
#define MIPS_160_MHZ   1

#define PLL_800_MHZ    0
#define PLL_266_MHZ    1

#define DEVICE_POWERSAVE_MODE_AS_MANUAL_CLOCK_GATING        0
#define DEVICE_POWERSAVE_MODE_AS_PMU_CLOCK_GATING           1
#define DEVICE_POWERSAVE_MODE_AS_PMU_SHUTDOWN               2
#define DEVICE_POWERSAVE_MODE_AS_RESERVED                   3
#define DEVICE_POWERSAVE_MODE_AS_PROTOCOL_IDLE_MODE         4


#define EEPROM_REJECT_REG_1 0x0f003018
#define EEPROM_REJECT_REG_2 0x0f00301c
#define EEPROM_REJECT_REG_3 0x0f003008
#define EEPROM_REJECT_REG_4 0x0f003020
#define EEPROM_REJECT_MASK  0x0fffffff
#define VSG_MODE			  0x3

/* Idle Mode Related Registers */
#define DEBUG_INTERRUPT_GENERATOR_REGISTOR 0x0F00007C
#define SW_ABORT_IDLEMODE_LOC 		0x0FF01FFC

#define SW_ABORT_IDLEMODE_PATTERN 	0xd0ea1d1e
#define DEVICE_INT_OUT_EP_REG0		0x0F011870
#define DEVICE_INT_OUT_EP_REG1		0x0F011874

#define BIN_FILE "/lib/firmware/macxvi200.bin"
#define CFG_FILE "/lib/firmware/macxvi.cfg"
#define SF_MAX_ALLOWED_PACKETS_TO_BACKUP 128
#define MIN_VAL(x,y) 	((x)<(y)?(x):(y))
#define MAC_ADDRESS_SIZE 6
#define EEPROM_COMMAND_Q_REG    0x0F003018
#define EEPROM_READ_DATA_Q_REG  0x0F003020
#define CHIP_ID_REG 			0x0F000000
#define GPIO_MODE_REG			0x0F000034
#define GPIO_OUTPUT_REG			0x0F00003C
#define WIMAX_MAX_ALLOWED_RATE  1024*1024*50

#define T3 0xbece0300
#define TARGET_SFID_TXDESC_MAP_LOC 0xBFFFF400

#define RWM_READ 0
#define RWM_WRITE 1

#define T3LPB       0xbece3300
#define BCS220_2	0xbece3311
#define BCS220_2BC	0xBECE3310
#define BCS250_BC	0xbece3301
#define BCS220_3	0xbece3321


#define HPM_CONFIG_LDO145	0x0F000D54
#define HPM_CONFIG_MSW		0x0F000D58

#define T3B 0xbece0310
typedef enum eNVM_TYPE
{
	NVM_AUTODETECT = 0,
	NVM_EEPROM,
	NVM_FLASH,
	NVM_UNKNOWN
}NVM_TYPE;

typedef enum ePMU_MODES
{
	HYBRID_MODE_7C  = 0,
	INTERNAL_MODE_6 = 1,
	HYBRID_MODE_6   = 2
}PMU_MODE;

#define MAX_RDM_WRM_RETIRES 1

enum eAbortPattern {
	ABORT_SHUTDOWN_MODE = 1,
	ABORT_IDLE_REG = 1,
	ABORT_IDLE_MODE = 2,
	ABORT_IDLE_SYNCDOWN = 3
};


/* Offsets used by driver in skb cb variable */
#define SKB_CB_CLASSIFICATION_OFFSET    0
#define SKB_CB_LATENCY_OFFSET           1
#define SKB_CB_TCPACK_OFFSET            2

#endif	//__MACROS_H__