Macros.h 9.4 KB
Newer Older
1
/*************************************
2
* Macros.h
3
**************************************/
4
#ifndef __MACROS_H__
5 6
#define __MACROS_H__

7
#define TX_TIMER_PERIOD 10 /*10 msec*/
8 9 10
#define MAX_CLASSIFIERS 100
#define MAX_TARGET_DSX_BUFFERS 24

11 12 13
#define MAX_CNTRL_PKTS    100
#define MAX_DATA_PKTS     200
#define MAX_ETH_SIZE      1536
14 15 16
#define MAX_CNTL_PKT_SIZE 2048

#define MTU_SIZE 1400
17
#define TX_QLEN  5
18 19 20 21

#define MAC_ADDR_REGISTER 0xbf60d000


22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
/* 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
64 65 66


#define LINK_NET_ENTRY              0x0002
67
#define HMC_STATUS                  0x0004
68 69 70 71
#define LINK_UP_CONTROL_REQ         0x83

#define STATS_POINTER_REQ_STATUS    0x86
#define NETWORK_ENTRY_REQ_PAYLOAD   198
72
#define LINK_DOWN_REQ_PAYLOAD       226
73
#define SYNC_UP_REQ_PAYLOAD         228
74
#define STATISTICS_POINTER_REQ      237
75 76 77 78 79 80
#define LINK_UP_REQ_PAYLOAD         245
#define LINK_UP_ACK                 246

#define STATS_MSG_SIZE              4
#define INDEX_TO_DATA               4

81 82 83
#define GO_TO_IDLE_MODE_PAYLOAD         210
#define COME_UP_FROM_IDLE_MODE_PAYLOAD  211
#define IDLE_MODE_SF_UPDATE_MSG         187
84

85 86
#define SKB_RESERVE_ETHERNET_HEADER 16
#define SKB_RESERVE_PHS_BYTES       32
87

88 89
#define IP_PACKET_ONLY_MODE       0
#define ETH_PACKET_TUNNELING_MODE 1
90

91 92 93 94 95
#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
96 97 98

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

99 100
#define PKT_CLASSIFICATION_USER_PRIORITY_VALID 0
#define PKT_CLASSIFICATION_VLANID_VALID        1
101 102

#ifndef MIN
103
#define MIN(_a, _b) ((_a) < (_b) ? (_a) : (_b))
104 105 106 107
#endif


/*Leader related terms */
108 109
#define LEADER_STATUS         0x00
#define LEADER_STATUS_TCP_ACK 0x1
110
#define LEADER_SIZE           sizeof(struct bcm_leader)
111 112
#define MAC_ADDR_REQ_SIZE     sizeof(struct bcm_packettosend)
#define SS_INFO_REQ_SIZE      sizeof(struct bcm_packettosend)
113
#define CM_REQUEST_SIZE       (LEADER_SIZE + sizeof(stLocalSFChangeRequest))
114
#define IDLE_REQ_SIZE         sizeof(struct bcm_packettosend)
115 116


117
#define MAX_TRANSFER_CTRL_BYTE_USB (2*1024)
118 119 120 121 122 123 124 125

#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

126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
#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
160 161 162 163 164
#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

165
struct bcm_link_state {
166 167 168
	unsigned char ucLinkStatus;
	unsigned char bIdleMode;
	unsigned char bShutdownMode;
169
};
170 171

enum enLinkStatus {
172 173 174 175 176 177 178 179 180
	WAIT_FOR_SYNC = 1,
	PHY_SYNC_ACHIVED = 2,
	LINKUP_IN_PROGRESS = 3,
	LINKUP_DONE = 4,
	DREG_RECEIVED = 5,
	LINK_STATUS_RESET_RECEIVED = 6,
	PERIODIC_WAKE_UP_NOTIFICATION_FRM_FW  = 7,
	LINK_SHUTDOWN_REQ_FROM_FIRMWARE = 8,
	COMPLETE_WAKE_UP_NOTIFICATION_FRM_FW = 9
181 182
};

183
enum bcm_phs_dsc_action {
184
	eAddPHSRule = 0,
185 186 187
	eSetPHSRule,
	eDeletePHSRule,
	eDeleteAllPHSRules
188
};
189

190 191 192 193
#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
194 195 196 197 198

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

199 200
#define LINK_SYNC_UP_SUBTYPE   0x0001
#define LINK_SYNC_DOWN_SUBTYPE 0x0001
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223



#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)

224
#define WIMAX_MAX_MTU                   (MTU_SIZE + ETH_HLEN)
225
#define AUTO_LINKUP_ENABLE              0x2
226
#define AUTO_SYNC_DISABLE               0x1
227 228 229 230 231 232 233 234 235 236 237 238 239
#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

240 241 242
#define IP_HEADER(Buffer) ((IPHeaderFormat *)(Buffer))
#define IPV4 4
#define IP_VERSION(byte) (((byte&0xF0)>>4))
243 244 245 246 247 248 249 250 251 252 253 254

#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

#define CONFIG_BEGIN_ADDR 0xBF60B000

#define FIRMWARE_BEGIN_ADDR 0xBFC00000

255
#define INVALID_QUEUE_INDEX NO_OF_QUEUES
256

257 258 259 260 261 262 263 264 265
#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) */
266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284

#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
285
#define VSG_MODE            0x3
286 287 288

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

291 292 293
#define SW_ABORT_IDLEMODE_PATTERN 0xd0ea1d1e
#define DEVICE_INT_OUT_EP_REG0    0x0F011870
#define DEVICE_INT_OUT_EP_REG1    0x0F011874
294 295 296 297

#define BIN_FILE "/lib/firmware/macxvi200.bin"
#define CFG_FILE "/lib/firmware/macxvi.cfg"
#define SF_MAX_ALLOWED_PACKETS_TO_BACKUP 128
298
#define MIN_VAL(x, y) ((x) < (y) ? (x) : (y))
299 300 301
#define MAC_ADDRESS_SIZE 6
#define EEPROM_COMMAND_Q_REG    0x0F003018
#define EEPROM_READ_DATA_Q_REG  0x0F003020
302 303 304 305
#define CHIP_ID_REG             0x0F000000
#define GPIO_MODE_REG           0x0F000034
#define GPIO_OUTPUT_REG         0x0F00003C
#define WIMAX_MAX_ALLOWED_RATE  (1024*1024*50)
306 307 308 309 310 311 312

#define T3 0xbece0300
#define TARGET_SFID_TXDESC_MAP_LOC 0xBFFFF400

#define RWM_READ 0
#define RWM_WRITE 1

313 314 315 316 317
#define T3LPB      0xbece3300
#define BCS220_2   0xbece3311
#define BCS220_2BC 0xBECE3310
#define BCS250_BC  0xbece3301
#define BCS220_3   0xbece3321
318 319


320 321
#define HPM_CONFIG_LDO145 0x0F000D54
#define HPM_CONFIG_MSW    0x0F000D58
322 323

#define T3B 0xbece0310
324
enum bcm_nvm_type {
325 326 327 328
	NVM_AUTODETECT = 0,
	NVM_EEPROM,
	NVM_FLASH,
	NVM_UNKNOWN
329
};
330

331
enum bcm_pmu_modes {
332 333 334
	HYBRID_MODE_7C  = 0,
	INTERNAL_MODE_6 = 1,
	HYBRID_MODE_6   = 2
335
};
336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351

#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

352
#endif /* __MACROS_H__ */