1 /*************************************
3 **************************************/
7 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
8 #define kthread_run(threadfn,data,datafmt)(struct task_struct *)kernel_thread(threadfn,data,0)
11 #define TX_TIMER_PERIOD 10 //10 msec
12 #define MAX_CLASSIFIERS 100
13 //#define MAX_CLASSIFIERS_PER_SF 20
14 #define MAX_TARGET_DSX_BUFFERS 24
16 #define MAX_CNTRL_PKTS 100
17 #define MAX_DATA_PKTS 200
18 #define MAX_ETH_SIZE 1536
19 #define MAX_CNTL_PKT_SIZE 2048
21 #define JIFFIES_2_QUADPART() (ULONG)(jiffies * 10000) // jiffies(1msec) to Quadpart(100nsec)
25 #define MAC_ADDR_REGISTER 0xbf60d000
28 ///////////Quality of Service///////////////////////////
29 #define NO_OF_QUEUES 17
30 #define HiPriority NO_OF_QUEUES-1
37 #define BE_BUCKET_SIZE 1024*1024*100 //32kb
38 #define rtPS_BUCKET_SIZE 1024*1024*100 //8kb
39 #define MAX_ALLOWED_RATE 1024*1024*100
40 #define TX_PACKET_THRESHOLD 10
42 #define DSC_ACTIVATE_REQUEST 248
43 #define QUEUE_DEPTH_OFFSET 0x1fc01000
44 #define MAX_DEVICE_DESC_SIZE 2040
45 #define MAX_CTRL_QUEUE_LEN 100
46 #define MAX_APP_QUEUE_LEN 200
47 #define MAX_LATENCY_ALLOWED 0xFFFFFFFF
48 #define DEFAULT_UG_INTERVAL 250
49 #define DEFAULT_UGI_FACTOR 4
51 #define DEFAULT_PERSFCOUNT 60
52 #define MAX_CONNECTIONS 10
53 #define MAX_CLASS_NAME_LENGTH 32
55 #define ETH_LENGTH_OF_ADDRESS 6
56 #define MAX_MULTICAST_ADDRESSES 32
57 #define IP_LENGTH_OF_ADDRESS 4
59 #define IP_PACKET_ONLY_MODE 0
60 #define ETH_PACKET_TUNNELING_MODE 1
62 ////////////Link Request//////////////
63 #define SET_MAC_ADDRESS_REQUEST 0
64 #define SYNC_UP_REQUEST 1
66 #define LINK_UP_REQUEST 3
67 #define LINK_CONNECTED 4
68 #define SYNC_UP_NOTIFICATION 2
69 #define LINK_UP_NOTIFICATION 4
72 #define LINK_NET_ENTRY 0x0002
73 #define HMC_STATUS 0x0004
74 #define LINK_UP_CONTROL_REQ 0x83
76 #define STATS_POINTER_REQ_STATUS 0x86
77 #define NETWORK_ENTRY_REQ_PAYLOAD 198
78 #define LINK_DOWN_REQ_PAYLOAD 226
79 #define SYNC_UP_REQ_PAYLOAD 228
80 #define STATISTICS_POINTER_REQ 237
81 #define LINK_UP_REQ_PAYLOAD 245
82 #define LINK_UP_ACK 246
84 #define STATS_MSG_SIZE 4
85 #define INDEX_TO_DATA 4
87 #define GO_TO_IDLE_MODE_PAYLOAD 210
88 #define COME_UP_FROM_IDLE_MODE_PAYLOAD 211
89 #define IDLE_MODE_SF_UPDATE_MSG 187
91 #define SKB_RESERVE_ETHERNET_HEADER 16
92 #define SKB_RESERVE_PHS_BYTES 32
94 #define IP_PACKET_ONLY_MODE 0
95 #define ETH_PACKET_TUNNELING_MODE 1
97 #define ETH_CS_802_3 1
98 #define ETH_CS_802_1Q_VLAN 3
101 #define ETH_CS_MASK 0x3f
103 /** \brief Validity bit maps for TLVs in packet classification rule */
105 #define PKT_CLASSIFICATION_USER_PRIORITY_VALID 0
106 #define PKT_CLASSIFICATION_VLANID_VALID 1
109 #define MIN(_a, _b) ((_a) < (_b)? (_a): (_b))
113 /*Leader related terms */
114 #define LEADER_STATUS 0x00
115 #define LEADER_STATUS_TCP_ACK 0x1
116 #define LEADER_SIZE sizeof(LEADER)
117 #define MAC_ADDR_REQ_SIZE sizeof(PACKETTOSEND)
118 #define SS_INFO_REQ_SIZE sizeof(PACKETTOSEND)
119 #define CM_REQUEST_SIZE LEADER_SIZE + sizeof(stLocalSFChangeRequest)
120 #define IDLE_REQ_SIZE sizeof(PACKETTOSEND)
123 #define MAX_TRANSFER_CTRL_BYTE_USB 2 * 1024
125 #define GET_MAILBOX1_REG_REQUEST 0x87
126 #define GET_MAILBOX1_REG_RESPONSE 0x67
127 #define VCID_CONTROL_PACKET 0x00
129 #define TRANSMIT_NETWORK_DATA 0x00
130 #define RECEIVED_NETWORK_DATA 0x20
132 #define CM_RESPONSES 0xA0
133 #define STATUS_RSP 0xA1
134 #define LINK_CONTROL_RESP 0xA2
135 #define IDLE_MODE_STATUS 0xA3
136 #define STATS_POINTER_RESP 0xA6
137 #define MGMT_MSG_INFO_SW_STATUS 0xA7
138 #define AUTH_SS_HOST_MSG 0xA8
140 #define CM_DSA_ACK_PAYLOAD 247
141 #define CM_DSC_ACK_PAYLOAD 248
142 #define CM_DSD_ACK_PAYLOAD 249
143 #define CM_DSDEACTVATE 250
144 #define TOTAL_MASKED_ADDRESS_IN_BYTES 32
148 #define RSSI_INDICATION 2
151 #define STATISTICS_INFO 5
152 #define CM_INDICATION 6
154 #define BUFFER_1K 1024
155 #define BUFFER_2K BUFFER_1K*2
156 #define BUFFER_4K BUFFER_2K*2
157 #define BUFFER_8K BUFFER_4K*2
158 #define BUFFER_16K BUFFER_8K*2
159 #define DOWNLINK_DIR 0
162 #define BCM_SIGNATURE "BECEEM"
165 #define GPIO_OUTPUT_REGISTER 0x0F00003C
166 #define BCM_GPIO_OUTPUT_SET_REG 0x0F000040
167 #define BCM_GPIO_OUTPUT_CLR_REG 0x0F000044
168 #define GPIO_MODE_REGISTER 0x0F000034
169 #define GPIO_PIN_STATE_REGISTER 0x0F000038
172 typedef struct _LINK_STATE {
176 }LINK_STATE, *PLINK_STATE;
181 PHY_SYNC_ACHIVED = 2,
182 LINKUP_IN_PROGRESS = 3,
185 LINK_STATUS_RESET_RECIEVED = 6,
186 PERIODIC_WAKE_UP_NOTIFICATION_FRM_FW = 7,
187 LINK_SHUTDOWN_REQ_FROM_FIRMWARE = 8,
188 COMPLETE_WAKE_UP_NOTIFICATION_FRM_FW =9
191 typedef enum _E_PHS_DSC_ACTION
200 #define CM_CONTROL_NEWDSX_MULTICLASSIFIER_REQ 0x89 // Host to Mac
201 #define CM_CONTROL_NEWDSX_MULTICLASSIFIER_RESP 0xA9 // Mac to Host
202 #define MASK_DISABLE_HEADER_SUPPRESSION 0x10 //0b000010000
203 #define MINIMUM_PENDING_DESCRIPTORS 5
205 #define SHUTDOWN_HOSTINITIATED_REQUESTPAYLOAD 0xCC
206 #define SHUTDOWN_ACK_FROM_DRIVER 0x1
207 #define SHUTDOWN_NACK_FROM_DRIVER 0x2
209 #define LINK_SYNC_UP_SUBTYPE 0x0001
210 #define LINK_SYNC_DOWN_SUBTYPE 0x0001
215 #define SINGLE_DESCRIPTOR 1
218 #define DESCRIPTOR_LENGTH 0x30
219 #define FIRMWARE_DESCS_ADDRESS 0x1F100000
222 #define CLOCK_RESET_CNTRL_REG_1 0x0F00000C
223 #define CLOCK_RESET_CNTRL_REG_2 0x0F000840
227 #define TX_DESCRIPTOR_HEAD_REGISTER 0x0F010034
228 #define RX_DESCRIPTOR_HEAD_REGISTER 0x0F010094
230 #define STATISTICS_BEGIN_ADDR 0xbf60f02c
232 #define MAX_PENDING_CTRL_PACKET (MAX_CTRL_QUEUE_LEN-10)
234 #define WIMAX_MAX_MTU (MTU_SIZE + ETH_HLEN)
235 #define AUTO_LINKUP_ENABLE 0x2
236 #define AUTO_SYNC_DISABLE 0x1
237 #define AUTO_FIRM_DOWNLOAD 0x1
238 #define SETTLE_DOWN_TIME 50
240 #define HOST_BUS_SUSPEND_BIT 16
242 #define IDLE_MESSAGE 0x81
244 #define MIPS_CLOCK_133MHz 1
246 #define TARGET_CAN_GO_TO_IDLE_MODE 2
247 #define TARGET_CAN_NOT_GO_TO_IDLE_MODE 3
248 #define IDLE_MODE_PAYLOAD_LENGTH 8
250 #define IP_HEADER(Buffer) ((IPHeaderFormat*)(Buffer))
252 #define IP_VERSION(byte) (((byte&0xF0)>>4))
254 #define SET_MAC_ADDRESS 193
255 #define SET_MAC_ADDRESS_RESPONSE 236
257 #define IDLE_MODE_WAKEUP_PATTERN 0xd0ea1d1e
258 #define IDLE_MODE_WAKEUP_NOTIFIER_ADDRESS 0x1FC02FA8
259 #define IDLE_MODE_MAX_RETRY_COUNT 1000
262 #define CONFIG_BEGIN_ADDR 0xBF60B004
264 #define CONFIG_BEGIN_ADDR 0xBF60B000
267 #define FIRMWARE_BEGIN_ADDR 0xBFC00000
269 #define INVALID_QUEUE_INDEX (USHORT)-1
271 #define INVALID_PID (pid_t)-1
273 #define DDR_100_MHZ 1
274 #define DDR_120_MHZ 2 // Additional Frequency for T3LP
275 #define DDR_133_MHZ 3
276 #define DDR_140_MHZ 4 // Not Used (Reserved for future)
277 #define DDR_160_MHZ 5 // Additional Frequency for T3LP
278 #define DDR_180_MHZ 6 // Not Used (Reserved for future)
279 #define DDR_200_MHZ 7 // Not Used (Reserved for future)
281 #define MIPS_200_MHZ 0
282 #define MIPS_160_MHZ 1
284 #define PLL_800_MHZ 0
285 #define PLL_266_MHZ 1
287 #define DEVICE_POWERSAVE_MODE_AS_MANUAL_CLOCK_GATING 0
288 #define DEVICE_POWERSAVE_MODE_AS_PMU_CLOCK_GATING 1
289 #define DEVICE_POWERSAVE_MODE_AS_PMU_SHUTDOWN 2
290 #define DEVICE_POWERSAVE_MODE_AS_RESERVED 3
291 #define DEVICE_POWERSAVE_MODE_AS_PROTOCOL_IDLE_MODE 4
294 #define EEPROM_REJECT_REG_1 0x0f003018
295 #define EEPROM_REJECT_REG_2 0x0f00301c
296 #define EEPROM_REJECT_REG_3 0x0f003008
297 #define EEPROM_REJECT_REG_4 0x0f003020
298 #define EEPROM_REJECT_MASK 0x0fffffff
301 /* Idle Mode Related Registers */
302 #define DEBUG_INTERRUPT_GENERATOR_REGISTOR 0x0F00007C
303 #ifdef BCM_SHM_INTERFACE
304 #define SW_ABORT_IDLEMODE_LOC 0xbfc02f9c
305 #define CPE_VIRTUAL_MAILBOX_REG 0xBFC02E58
307 #define SW_ABORT_IDLEMODE_LOC 0x0FF01FFC
310 #define SW_ABORT_IDLEMODE_PATTERN 0xd0ea1d1e
311 #define DEVICE_INT_OUT_EP_REG0 0x0F011870
312 #define DEVICE_INT_OUT_EP_REG1 0x0F011874
314 #define BIN_FILE "/lib/firmware/macxvi200.bin"
315 #define CFG_FILE "/lib/firmware/macxvi.cfg"
316 #define SF_MAX_ALLOWED_PACKETS_TO_BACKUP 128
317 #define MIN_VAL(x,y) ((x)<(y)?(x):(y))
318 #define MAC_ADDRESS_SIZE 6
319 #define EEPROM_COMMAND_Q_REG 0x0F003018
320 #define EEPROM_READ_DATA_Q_REG 0x0F003020
321 #define CHIP_ID_REG 0x0F000000
322 #define GPIO_MODE_REG 0x0F000034
323 #define GPIO_OUTPUT_REG 0x0F00003C
324 #define WIMAX_MAX_ALLOWED_RATE 1024*1024*50
326 #define T3 0xbece0300
327 #define TARGET_SFID_TXDESC_MAP_LOC 0xBFFFF400
332 #define T3LPB 0xbece3300
333 #define BCS220_2 0xbece3311
334 #define BCS220_2BC 0xBECE3310
335 #define BCS250_BC 0xbece3301
336 #define BCS220_3 0xbece3321
339 #define HPM_CONFIG_LDO145 0x0F000D54
340 #define HPM_CONFIG_MSW 0x0F000D58
342 #define T3B 0xbece0310
343 typedef enum eNVM_TYPE
351 typedef enum ePMU_MODES
358 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
359 #define MAX_RDM_WRM_RETIRES 16
361 #define MAX_RDM_WRM_RETIRES 1
366 ABORT_SHUTDOWN_MODE = 1,
369 ABORT_IDLE_SYNCDOWN = 3
372 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
373 #define GET_BCM_ADAPTER(net_dev) ({\
374 PMINI_ADAPTER __Adapter = NULL; \
376 __Adapter = (PMINI_ADAPTER)(net_dev->priv); \
382 #define GET_BCM_ADAPTER(net_dev) ({\
383 PMINI_ADAPTER __Adapter = NULL; \
385 __Adapter = (PMINI_ADAPTER)(*((unsigned long *)netdev_priv(net_dev))); \
394 /* Offsets used by driver in skb cb variable */
395 #define SKB_CB_CLASSIFICATION_OFFSET 0
396 #define SKB_CB_LATENCY_OFFSET 1
397 #define SKB_CB_TCPACK_OFFSET 2
399 #endif //__MACROS_H__