Macros.h 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352
  1. /*************************************
  2. * Macros.h
  3. **************************************/
  4. #ifndef __MACROS_H__
  5. #define __MACROS_H__
  6. #define TX_TIMER_PERIOD 10 /*10 msec*/
  7. #define MAX_CLASSIFIERS 100
  8. #define MAX_TARGET_DSX_BUFFERS 24
  9. #define MAX_CNTRL_PKTS 100
  10. #define MAX_DATA_PKTS 200
  11. #define MAX_ETH_SIZE 1536
  12. #define MAX_CNTL_PKT_SIZE 2048
  13. #define MTU_SIZE 1400
  14. #define TX_QLEN 5
  15. #define MAC_ADDR_REGISTER 0xbf60d000
  16. /* Quality of Service */
  17. #define NO_OF_QUEUES 17
  18. #define HiPriority (NO_OF_QUEUES-1)
  19. #define LowPriority 0
  20. #define BE 2
  21. #define rtPS 4
  22. #define ERTPS 5
  23. #define UGS 6
  24. #define BE_BUCKET_SIZE (1024*1024*100) /* 32kb */
  25. #define rtPS_BUCKET_SIZE (1024*1024*100) /* 8kb */
  26. #define MAX_ALLOWED_RATE (1024*1024*100)
  27. #define TX_PACKET_THRESHOLD 10
  28. #define XSECONDS (1*HZ)
  29. #define DSC_ACTIVATE_REQUEST 248
  30. #define QUEUE_DEPTH_OFFSET 0x1fc01000
  31. #define MAX_DEVICE_DESC_SIZE 2040
  32. #define MAX_CTRL_QUEUE_LEN 100
  33. #define MAX_APP_QUEUE_LEN 200
  34. #define MAX_LATENCY_ALLOWED 0xFFFFFFFF
  35. #define DEFAULT_UG_INTERVAL 250
  36. #define DEFAULT_UGI_FACTOR 4
  37. #define DEFAULT_PERSFCOUNT 60
  38. #define MAX_CONNECTIONS 10
  39. #define MAX_CLASS_NAME_LENGTH 32
  40. #define ETH_LENGTH_OF_ADDRESS 6
  41. #define MAX_MULTICAST_ADDRESSES 32
  42. #define IP_LENGTH_OF_ADDRESS 4
  43. #define IP_PACKET_ONLY_MODE 0
  44. #define ETH_PACKET_TUNNELING_MODE 1
  45. /* Link Request */
  46. #define SET_MAC_ADDRESS_REQUEST 0
  47. #define SYNC_UP_REQUEST 1
  48. #define SYNCED_UP 2
  49. #define LINK_UP_REQUEST 3
  50. #define LINK_CONNECTED 4
  51. #define SYNC_UP_NOTIFICATION 2
  52. #define LINK_UP_NOTIFICATION 4
  53. #define LINK_NET_ENTRY 0x0002
  54. #define HMC_STATUS 0x0004
  55. #define LINK_UP_CONTROL_REQ 0x83
  56. #define STATS_POINTER_REQ_STATUS 0x86
  57. #define NETWORK_ENTRY_REQ_PAYLOAD 198
  58. #define LINK_DOWN_REQ_PAYLOAD 226
  59. #define SYNC_UP_REQ_PAYLOAD 228
  60. #define STATISTICS_POINTER_REQ 237
  61. #define LINK_UP_REQ_PAYLOAD 245
  62. #define LINK_UP_ACK 246
  63. #define STATS_MSG_SIZE 4
  64. #define INDEX_TO_DATA 4
  65. #define GO_TO_IDLE_MODE_PAYLOAD 210
  66. #define COME_UP_FROM_IDLE_MODE_PAYLOAD 211
  67. #define IDLE_MODE_SF_UPDATE_MSG 187
  68. #define SKB_RESERVE_ETHERNET_HEADER 16
  69. #define SKB_RESERVE_PHS_BYTES 32
  70. #define IP_PACKET_ONLY_MODE 0
  71. #define ETH_PACKET_TUNNELING_MODE 1
  72. #define ETH_CS_802_3 1
  73. #define ETH_CS_802_1Q_VLAN 3
  74. #define IPV4_CS 1
  75. #define IPV6_CS 2
  76. #define ETH_CS_MASK 0x3f
  77. /** \brief Validity bit maps for TLVs in packet classification rule */
  78. #define PKT_CLASSIFICATION_USER_PRIORITY_VALID 0
  79. #define PKT_CLASSIFICATION_VLANID_VALID 1
  80. #ifndef MIN
  81. #define MIN(_a, _b) ((_a) < (_b) ? (_a) : (_b))
  82. #endif
  83. /*Leader related terms */
  84. #define LEADER_STATUS 0x00
  85. #define LEADER_STATUS_TCP_ACK 0x1
  86. #define LEADER_SIZE sizeof(struct bcm_leader)
  87. #define MAC_ADDR_REQ_SIZE sizeof(struct bcm_packettosend)
  88. #define SS_INFO_REQ_SIZE sizeof(struct bcm_packettosend)
  89. #define CM_REQUEST_SIZE (LEADER_SIZE + sizeof(stLocalSFChangeRequest))
  90. #define IDLE_REQ_SIZE sizeof(struct bcm_packettosend)
  91. #define MAX_TRANSFER_CTRL_BYTE_USB (2*1024)
  92. #define GET_MAILBOX1_REG_REQUEST 0x87
  93. #define GET_MAILBOX1_REG_RESPONSE 0x67
  94. #define VCID_CONTROL_PACKET 0x00
  95. #define TRANSMIT_NETWORK_DATA 0x00
  96. #define RECEIVED_NETWORK_DATA 0x20
  97. #define CM_RESPONSES 0xA0
  98. #define STATUS_RSP 0xA1
  99. #define LINK_CONTROL_RESP 0xA2
  100. #define IDLE_MODE_STATUS 0xA3
  101. #define STATS_POINTER_RESP 0xA6
  102. #define MGMT_MSG_INFO_SW_STATUS 0xA7
  103. #define AUTH_SS_HOST_MSG 0xA8
  104. #define CM_DSA_ACK_PAYLOAD 247
  105. #define CM_DSC_ACK_PAYLOAD 248
  106. #define CM_DSD_ACK_PAYLOAD 249
  107. #define CM_DSDEACTVATE 250
  108. #define TOTAL_MASKED_ADDRESS_IN_BYTES 32
  109. #define MAC_REQ 0
  110. #define LINK_RESP 1
  111. #define RSSI_INDICATION 2
  112. #define SS_INFO 4
  113. #define STATISTICS_INFO 5
  114. #define CM_INDICATION 6
  115. #define PARAM_RESP 7
  116. #define BUFFER_1K 1024
  117. #define BUFFER_2K (BUFFER_1K*2)
  118. #define BUFFER_4K (BUFFER_2K*2)
  119. #define BUFFER_8K (BUFFER_4K*2)
  120. #define BUFFER_16K (BUFFER_8K*2)
  121. #define DOWNLINK_DIR 0
  122. #define UPLINK_DIR 1
  123. #define BCM_SIGNATURE "BECEEM"
  124. #define GPIO_OUTPUT_REGISTER 0x0F00003C
  125. #define BCM_GPIO_OUTPUT_SET_REG 0x0F000040
  126. #define BCM_GPIO_OUTPUT_CLR_REG 0x0F000044
  127. #define GPIO_MODE_REGISTER 0x0F000034
  128. #define GPIO_PIN_STATE_REGISTER 0x0F000038
  129. struct bcm_link_state {
  130. unsigned char ucLinkStatus;
  131. unsigned char bIdleMode;
  132. unsigned char bShutdownMode;
  133. };
  134. enum enLinkStatus {
  135. WAIT_FOR_SYNC = 1,
  136. PHY_SYNC_ACHIVED = 2,
  137. LINKUP_IN_PROGRESS = 3,
  138. LINKUP_DONE = 4,
  139. DREG_RECEIVED = 5,
  140. LINK_STATUS_RESET_RECEIVED = 6,
  141. PERIODIC_WAKE_UP_NOTIFICATION_FRM_FW = 7,
  142. LINK_SHUTDOWN_REQ_FROM_FIRMWARE = 8,
  143. COMPLETE_WAKE_UP_NOTIFICATION_FRM_FW = 9
  144. };
  145. enum bcm_phs_dsc_action {
  146. eAddPHSRule = 0,
  147. eSetPHSRule,
  148. eDeletePHSRule,
  149. eDeleteAllPHSRules
  150. };
  151. #define CM_CONTROL_NEWDSX_MULTICLASSIFIER_REQ 0x89 /* Host to Mac */
  152. #define CM_CONTROL_NEWDSX_MULTICLASSIFIER_RESP 0xA9 /* Mac to Host */
  153. #define MASK_DISABLE_HEADER_SUPPRESSION 0x10 /* 0b000010000 */
  154. #define MINIMUM_PENDING_DESCRIPTORS 5
  155. #define SHUTDOWN_HOSTINITIATED_REQUESTPAYLOAD 0xCC
  156. #define SHUTDOWN_ACK_FROM_DRIVER 0x1
  157. #define SHUTDOWN_NACK_FROM_DRIVER 0x2
  158. #define LINK_SYNC_UP_SUBTYPE 0x0001
  159. #define LINK_SYNC_DOWN_SUBTYPE 0x0001
  160. #define CONT_MODE 1
  161. #define SINGLE_DESCRIPTOR 1
  162. #define DESCRIPTOR_LENGTH 0x30
  163. #define FIRMWARE_DESCS_ADDRESS 0x1F100000
  164. #define CLOCK_RESET_CNTRL_REG_1 0x0F00000C
  165. #define CLOCK_RESET_CNTRL_REG_2 0x0F000840
  166. #define TX_DESCRIPTOR_HEAD_REGISTER 0x0F010034
  167. #define RX_DESCRIPTOR_HEAD_REGISTER 0x0F010094
  168. #define STATISTICS_BEGIN_ADDR 0xbf60f02c
  169. #define MAX_PENDING_CTRL_PACKET (MAX_CTRL_QUEUE_LEN-10)
  170. #define WIMAX_MAX_MTU (MTU_SIZE + ETH_HLEN)
  171. #define AUTO_LINKUP_ENABLE 0x2
  172. #define AUTO_SYNC_DISABLE 0x1
  173. #define AUTO_FIRM_DOWNLOAD 0x1
  174. #define SETTLE_DOWN_TIME 50
  175. #define HOST_BUS_SUSPEND_BIT 16
  176. #define IDLE_MESSAGE 0x81
  177. #define MIPS_CLOCK_133MHz 1
  178. #define TARGET_CAN_GO_TO_IDLE_MODE 2
  179. #define TARGET_CAN_NOT_GO_TO_IDLE_MODE 3
  180. #define IDLE_MODE_PAYLOAD_LENGTH 8
  181. #define IP_HEADER(Buffer) ((IPHeaderFormat *)(Buffer))
  182. #define IPV4 4
  183. #define IP_VERSION(byte) (((byte&0xF0)>>4))
  184. #define SET_MAC_ADDRESS 193
  185. #define SET_MAC_ADDRESS_RESPONSE 236
  186. #define IDLE_MODE_WAKEUP_PATTERN 0xd0ea1d1e
  187. #define IDLE_MODE_WAKEUP_NOTIFIER_ADDRESS 0x1FC02FA8
  188. #define IDLE_MODE_MAX_RETRY_COUNT 1000
  189. #define CONFIG_BEGIN_ADDR 0xBF60B000
  190. #define FIRMWARE_BEGIN_ADDR 0xBFC00000
  191. #define INVALID_QUEUE_INDEX NO_OF_QUEUES
  192. #define INVALID_PID ((pid_t)-1)
  193. #define DDR_80_MHZ 0
  194. #define DDR_100_MHZ 1
  195. #define DDR_120_MHZ 2 /* Additional Frequency for T3LP */
  196. #define DDR_133_MHZ 3
  197. #define DDR_140_MHZ 4 /* Not Used (Reserved for future) */
  198. #define DDR_160_MHZ 5 /* Additional Frequency for T3LP */
  199. #define DDR_180_MHZ 6 /* Not Used (Reserved for future) */
  200. #define DDR_200_MHZ 7 /* Not Used (Reserved for future) */
  201. #define MIPS_200_MHZ 0
  202. #define MIPS_160_MHZ 1
  203. #define PLL_800_MHZ 0
  204. #define PLL_266_MHZ 1
  205. #define DEVICE_POWERSAVE_MODE_AS_MANUAL_CLOCK_GATING 0
  206. #define DEVICE_POWERSAVE_MODE_AS_PMU_CLOCK_GATING 1
  207. #define DEVICE_POWERSAVE_MODE_AS_PMU_SHUTDOWN 2
  208. #define DEVICE_POWERSAVE_MODE_AS_RESERVED 3
  209. #define DEVICE_POWERSAVE_MODE_AS_PROTOCOL_IDLE_MODE 4
  210. #define EEPROM_REJECT_REG_1 0x0f003018
  211. #define EEPROM_REJECT_REG_2 0x0f00301c
  212. #define EEPROM_REJECT_REG_3 0x0f003008
  213. #define EEPROM_REJECT_REG_4 0x0f003020
  214. #define EEPROM_REJECT_MASK 0x0fffffff
  215. #define VSG_MODE 0x3
  216. /* Idle Mode Related Registers */
  217. #define DEBUG_INTERRUPT_GENERATOR_REGISTOR 0x0F00007C
  218. #define SW_ABORT_IDLEMODE_LOC 0x0FF01FFC
  219. #define SW_ABORT_IDLEMODE_PATTERN 0xd0ea1d1e
  220. #define DEVICE_INT_OUT_EP_REG0 0x0F011870
  221. #define DEVICE_INT_OUT_EP_REG1 0x0F011874
  222. #define BIN_FILE "/lib/firmware/macxvi200.bin"
  223. #define CFG_FILE "/lib/firmware/macxvi.cfg"
  224. #define SF_MAX_ALLOWED_PACKETS_TO_BACKUP 128
  225. #define MIN_VAL(x, y) ((x) < (y) ? (x) : (y))
  226. #define MAC_ADDRESS_SIZE 6
  227. #define EEPROM_COMMAND_Q_REG 0x0F003018
  228. #define EEPROM_READ_DATA_Q_REG 0x0F003020
  229. #define CHIP_ID_REG 0x0F000000
  230. #define GPIO_MODE_REG 0x0F000034
  231. #define GPIO_OUTPUT_REG 0x0F00003C
  232. #define WIMAX_MAX_ALLOWED_RATE (1024*1024*50)
  233. #define T3 0xbece0300
  234. #define TARGET_SFID_TXDESC_MAP_LOC 0xBFFFF400
  235. #define RWM_READ 0
  236. #define RWM_WRITE 1
  237. #define T3LPB 0xbece3300
  238. #define BCS220_2 0xbece3311
  239. #define BCS220_2BC 0xBECE3310
  240. #define BCS250_BC 0xbece3301
  241. #define BCS220_3 0xbece3321
  242. #define HPM_CONFIG_LDO145 0x0F000D54
  243. #define HPM_CONFIG_MSW 0x0F000D58
  244. #define T3B 0xbece0310
  245. enum bcm_nvm_type {
  246. NVM_AUTODETECT = 0,
  247. NVM_EEPROM,
  248. NVM_FLASH,
  249. NVM_UNKNOWN
  250. };
  251. enum bcm_pmu_modes {
  252. HYBRID_MODE_7C = 0,
  253. INTERNAL_MODE_6 = 1,
  254. HYBRID_MODE_6 = 2
  255. };
  256. #define MAX_RDM_WRM_RETIRES 1
  257. enum eAbortPattern {
  258. ABORT_SHUTDOWN_MODE = 1,
  259. ABORT_IDLE_REG = 1,
  260. ABORT_IDLE_MODE = 2,
  261. ABORT_IDLE_SYNCDOWN = 3
  262. };
  263. /* Offsets used by driver in skb cb variable */
  264. #define SKB_CB_CLASSIFICATION_OFFSET 0
  265. #define SKB_CB_LATENCY_OFFSET 1
  266. #define SKB_CB_TCPACK_OFFSET 2
  267. #endif /* __MACROS_H__ */