tx_msdu_extension.h 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867
  1. /*
  2. * Copyright (c) 2016-2017 The Linux Foundation. All rights reserved.
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for
  5. * any purpose with or without fee is hereby granted, provided that the
  6. * above copyright notice and this permission notice appear in all
  7. * copies.
  8. *
  9. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
  10. * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
  11. * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
  12. * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
  13. * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
  14. * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  15. * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  16. * PERFORMANCE OF THIS SOFTWARE.
  17. */
  18. // $ATH_LICENSE_HW_HDR_C$
  19. //
  20. // DO NOT EDIT! This file is automatically generated
  21. // These definitions are tied to a particular hardware layout
  22. #ifndef _TX_MSDU_EXTENSION_H_
  23. #define _TX_MSDU_EXTENSION_H_
  24. #if !defined(__ASSEMBLER__)
  25. #endif
  26. // ################ START SUMMARY #################
  27. //
  28. // Dword Fields
  29. // 0 tso_enable[0], ipv4_checksum_en[1], udp_over_ipv4_checksum_en[2], udp_over_ipv6_checksum_en[3], tcp_over_ipv4_checksum_en[4], tcp_over_ipv6_checksum_en[5], reserved_0a[6], tcp_flag[15:7], tcp_flag_mask[24:16], reserved_0b[31:25]
  30. // 1 l2_length[15:0], ip_length[31:16]
  31. // 2 tcp_seq_number[31:0]
  32. // 3 ip_identification[15:0], udp_length[31:16]
  33. // 4 checksum_offset[13:0], partial_checksum_en[14], reserved_4a[15], payload_start_offset[29:16], reserved_4b[31:30]
  34. // 5 payload_end_offset[13:0], reserved_5a[15:14], wds[16], reserved_5b[31:17]
  35. // 6 buf0_ptr_31_0[31:0]
  36. // 7 buf0_ptr_39_32[7:0], reserved_7a[15:8], buf0_len[31:16]
  37. // 8 buf1_ptr_31_0[31:0]
  38. // 9 buf1_ptr_39_32[7:0], reserved_9a[15:8], buf1_len[31:16]
  39. // 10 buf2_ptr_31_0[31:0]
  40. // 11 buf2_ptr_39_32[7:0], reserved_11a[15:8], buf2_len[31:16]
  41. // 12 buf3_ptr_31_0[31:0]
  42. // 13 buf3_ptr_39_32[7:0], reserved_13a[15:8], buf3_len[31:16]
  43. // 14 buf4_ptr_31_0[31:0]
  44. // 15 buf4_ptr_39_32[7:0], reserved_15a[15:8], buf4_len[31:16]
  45. // 16 buf5_ptr_31_0[31:0]
  46. // 17 buf5_ptr_39_32[7:0], reserved_17a[15:8], buf5_len[31:16]
  47. //
  48. // ################ END SUMMARY #################
  49. #define NUM_OF_DWORDS_TX_MSDU_EXTENSION 18
  50. struct tx_msdu_extension {
  51. uint32_t tso_enable : 1, //[0]
  52. ipv4_checksum_en : 1, //[1]
  53. udp_over_ipv4_checksum_en : 1, //[2]
  54. udp_over_ipv6_checksum_en : 1, //[3]
  55. tcp_over_ipv4_checksum_en : 1, //[4]
  56. tcp_over_ipv6_checksum_en : 1, //[5]
  57. reserved_0a : 1, //[6]
  58. tcp_flag : 9, //[15:7]
  59. tcp_flag_mask : 9, //[24:16]
  60. reserved_0b : 7; //[31:25]
  61. uint32_t l2_length : 16, //[15:0]
  62. ip_length : 16; //[31:16]
  63. uint32_t tcp_seq_number : 32; //[31:0]
  64. uint32_t ip_identification : 16, //[15:0]
  65. udp_length : 16; //[31:16]
  66. uint32_t checksum_offset : 14, //[13:0]
  67. partial_checksum_en : 1, //[14]
  68. reserved_4a : 1, //[15]
  69. payload_start_offset : 14, //[29:16]
  70. reserved_4b : 2; //[31:30]
  71. uint32_t payload_end_offset : 14, //[13:0]
  72. reserved_5a : 2, //[15:14]
  73. wds : 1, //[16]
  74. reserved_5b : 15; //[31:17]
  75. uint32_t buf0_ptr_31_0 : 32; //[31:0]
  76. uint32_t buf0_ptr_39_32 : 8, //[7:0]
  77. reserved_7a : 8, //[15:8]
  78. buf0_len : 16; //[31:16]
  79. uint32_t buf1_ptr_31_0 : 32; //[31:0]
  80. uint32_t buf1_ptr_39_32 : 8, //[7:0]
  81. reserved_9a : 8, //[15:8]
  82. buf1_len : 16; //[31:16]
  83. uint32_t buf2_ptr_31_0 : 32; //[31:0]
  84. uint32_t buf2_ptr_39_32 : 8, //[7:0]
  85. reserved_11a : 8, //[15:8]
  86. buf2_len : 16; //[31:16]
  87. uint32_t buf3_ptr_31_0 : 32; //[31:0]
  88. uint32_t buf3_ptr_39_32 : 8, //[7:0]
  89. reserved_13a : 8, //[15:8]
  90. buf3_len : 16; //[31:16]
  91. uint32_t buf4_ptr_31_0 : 32; //[31:0]
  92. uint32_t buf4_ptr_39_32 : 8, //[7:0]
  93. reserved_15a : 8, //[15:8]
  94. buf4_len : 16; //[31:16]
  95. uint32_t buf5_ptr_31_0 : 32; //[31:0]
  96. uint32_t buf5_ptr_39_32 : 8, //[7:0]
  97. reserved_17a : 8, //[15:8]
  98. buf5_len : 16; //[31:16]
  99. };
  100. /*
  101. tso_enable
  102. Enable transmit segmentation offload <legal all>
  103. ipv4_checksum_en
  104. FIELD NOT USED IN HAWKEYE 1.0
  105. Enable IPv4 checksum replacement
  106. udp_over_ipv4_checksum_en
  107. FIELD NOT USED IN HAWKEYE 1.0
  108. Enable UDP over IPv4 checksum replacement. UDP checksum
  109. over IPv4 is optional for TCP/IP stacks.
  110. udp_over_ipv6_checksum_en
  111. FIELD NOT USED IN HAWKEYE 1.0
  112. Enable UDP over IPv6 checksum replacement. UDP checksum
  113. over IPv6 is mandatory for TCP/IP stacks.
  114. tcp_over_ipv4_checksum_en
  115. FIELD NOT USED IN HAWKEYE 1.0
  116. Enable TCP checksum over IPv4 replacement
  117. tcp_over_ipv6_checksum_en
  118. FIELD NOT USED IN HAWKEYE 1.0
  119. Enable TCP checksum over IPv6 eplacement
  120. reserved_0a
  121. FW will set to 0, MAC will ignore.  <legal 0>
  122. tcp_flag
  123. TCP flags
  124. {NS,CWR,ECE,URG,ACK,PSH, RST ,SYN,FIN}<legal all>
  125. tcp_flag_mask
  126. TCP flag mask. Tcp_flag is inserted into the header
  127. based on the mask, if tso is enabled
  128. reserved_0b
  129. FW will set to 0, MAC will ignore.  <legal 0>
  130. l2_length
  131. L2 length for the msdu, if tso is enabled <legal all>
  132. ip_length
  133. Ip length for the msdu, if tso is enabled <legal all>
  134. tcp_seq_number
  135. Tcp_seq_number for the msdu, if tso is enabled <legal
  136. all>
  137. ip_identification
  138. Ip_identification for the msdu, if tso is enabled <legal
  139. all>
  140. udp_length
  141. TXDMA is copies this field into MSDU START TLV
  142. checksum_offset
  143. The calculated checksum from start offset to end offset
  144. will be added to the checksum at the offset given by this
  145. field<legal all>
  146. partial_checksum_en
  147. Partial Checksum Enable Bit.
  148. <legal 0-1>
  149. reserved_4a
  150. <Legal 0>
  151. payload_start_offset
  152. L4 checksum calculations will start fromt this offset
  153. <Legal all>
  154. reserved_4b
  155. <Legal 0>
  156. payload_end_offset
  157. L4 checksum calculations will end at this offset.
  158. <Legal all>
  159. reserved_5a
  160. <Legal 0>
  161. wds
  162. If set the current packet is 4-address frame. Required
  163. because an aggregate can include some frames with 3 address
  164. format and other frames with 4 address format. Used by the
  165. OLE during encapsulation.
  166. Note: there is also global wds tx control in the
  167. TX_PEER_ENTRY
  168. <legal all>
  169. reserved_5b
  170. <Legal 0>
  171. buf0_ptr_31_0
  172. Lower 32 bits of the first buffer pointer
  173. NOTE: SW/FW manages the 'cookie' info related to this
  174. buffer together with the 'cookie' info for this
  175. MSDU_EXTENSION descriptor
  176. <legal all>
  177. buf0_ptr_39_32
  178. Upper 8 bits of the first buffer pointer <legal all>
  179. reserved_7a
  180. <Legal 0>
  181. buf0_len
  182. Length of the first buffer <legal all>
  183. buf1_ptr_31_0
  184. Lower 32 bits of the second buffer pointer
  185. NOTE: SW/FW manages the 'cookie' info related to this
  186. buffer together with the 'cookie' info for this
  187. MSDU_EXTENSION descriptor
  188. <legal all>
  189. buf1_ptr_39_32
  190. Upper 8 bits of the second buffer pointer <legal all>
  191. reserved_9a
  192. <Legal 0>
  193. buf1_len
  194. Length of the second buffer <legal all>
  195. buf2_ptr_31_0
  196. Lower 32 bits of the third buffer pointer
  197. NOTE: SW/FW manages the 'cookie' info related to this
  198. buffer together with the 'cookie' info for this
  199. MSDU_EXTENSION descriptor
  200. <legal all>
  201. buf2_ptr_39_32
  202. Upper 8 bits of the third buffer pointer <legal all>
  203. reserved_11a
  204. <Legal 0>
  205. buf2_len
  206. Length of the third buffer <legal all>
  207. buf3_ptr_31_0
  208. Lower 32 bits of the fourth buffer pointer
  209. NOTE: SW/FW manages the 'cookie' info related to this
  210. buffer together with the 'cookie' info for this
  211. MSDU_EXTENSION descriptor
  212. <legal all>
  213. buf3_ptr_39_32
  214. Upper 8 bits of the fourth buffer pointer <legal all>
  215. reserved_13a
  216. <Legal 0>
  217. buf3_len
  218. Length of the fourth buffer <legal all>
  219. buf4_ptr_31_0
  220. Lower 32 bits of the fifth buffer pointer
  221. NOTE: SW/FW manages the 'cookie' info related to this
  222. buffer together with the 'cookie' info for this
  223. MSDU_EXTENSION descriptor
  224. <legal all>
  225. buf4_ptr_39_32
  226. Upper 8 bits of the fifth buffer pointer <legal all>
  227. reserved_15a
  228. <Legal 0>
  229. buf4_len
  230. Length of the fifth buffer <legal all>
  231. buf5_ptr_31_0
  232. Lower 32 bits of the sixth buffer pointer
  233. NOTE: SW/FW manages the 'cookie' info related to this
  234. buffer together with the 'cookie' info for this
  235. MSDU_EXTENSION descriptor
  236. <legal all>
  237. buf5_ptr_39_32
  238. Upper 8 bits of the sixth buffer pointer <legal all>
  239. reserved_17a
  240. <Legal 0>
  241. buf5_len
  242. Length of the sixth buffer <legal all>
  243. */
  244. /* Description TX_MSDU_EXTENSION_0_TSO_ENABLE
  245. Enable transmit segmentation offload <legal all>
  246. */
  247. #define TX_MSDU_EXTENSION_0_TSO_ENABLE_OFFSET 0x00000000
  248. #define TX_MSDU_EXTENSION_0_TSO_ENABLE_LSB 0
  249. #define TX_MSDU_EXTENSION_0_TSO_ENABLE_MASK 0x00000001
  250. /* Description TX_MSDU_EXTENSION_0_IPV4_CHECKSUM_EN
  251. FIELD NOT USED IN HAWKEYE 1.0
  252. Enable IPv4 checksum replacement
  253. */
  254. #define TX_MSDU_EXTENSION_0_IPV4_CHECKSUM_EN_OFFSET 0x00000000
  255. #define TX_MSDU_EXTENSION_0_IPV4_CHECKSUM_EN_LSB 1
  256. #define TX_MSDU_EXTENSION_0_IPV4_CHECKSUM_EN_MASK 0x00000002
  257. /* Description TX_MSDU_EXTENSION_0_UDP_OVER_IPV4_CHECKSUM_EN
  258. FIELD NOT USED IN HAWKEYE 1.0
  259. Enable UDP over IPv4 checksum replacement. UDP checksum
  260. over IPv4 is optional for TCP/IP stacks.
  261. */
  262. #define TX_MSDU_EXTENSION_0_UDP_OVER_IPV4_CHECKSUM_EN_OFFSET 0x00000000
  263. #define TX_MSDU_EXTENSION_0_UDP_OVER_IPV4_CHECKSUM_EN_LSB 2
  264. #define TX_MSDU_EXTENSION_0_UDP_OVER_IPV4_CHECKSUM_EN_MASK 0x00000004
  265. /* Description TX_MSDU_EXTENSION_0_UDP_OVER_IPV6_CHECKSUM_EN
  266. FIELD NOT USED IN HAWKEYE 1.0
  267. Enable UDP over IPv6 checksum replacement. UDP checksum
  268. over IPv6 is mandatory for TCP/IP stacks.
  269. */
  270. #define TX_MSDU_EXTENSION_0_UDP_OVER_IPV6_CHECKSUM_EN_OFFSET 0x00000000
  271. #define TX_MSDU_EXTENSION_0_UDP_OVER_IPV6_CHECKSUM_EN_LSB 3
  272. #define TX_MSDU_EXTENSION_0_UDP_OVER_IPV6_CHECKSUM_EN_MASK 0x00000008
  273. /* Description TX_MSDU_EXTENSION_0_TCP_OVER_IPV4_CHECKSUM_EN
  274. FIELD NOT USED IN HAWKEYE 1.0
  275. Enable TCP checksum over IPv4 replacement
  276. */
  277. #define TX_MSDU_EXTENSION_0_TCP_OVER_IPV4_CHECKSUM_EN_OFFSET 0x00000000
  278. #define TX_MSDU_EXTENSION_0_TCP_OVER_IPV4_CHECKSUM_EN_LSB 4
  279. #define TX_MSDU_EXTENSION_0_TCP_OVER_IPV4_CHECKSUM_EN_MASK 0x00000010
  280. /* Description TX_MSDU_EXTENSION_0_TCP_OVER_IPV6_CHECKSUM_EN
  281. FIELD NOT USED IN HAWKEYE 1.0
  282. Enable TCP checksum over IPv6 eplacement
  283. */
  284. #define TX_MSDU_EXTENSION_0_TCP_OVER_IPV6_CHECKSUM_EN_OFFSET 0x00000000
  285. #define TX_MSDU_EXTENSION_0_TCP_OVER_IPV6_CHECKSUM_EN_LSB 5
  286. #define TX_MSDU_EXTENSION_0_TCP_OVER_IPV6_CHECKSUM_EN_MASK 0x00000020
  287. /* Description TX_MSDU_EXTENSION_0_RESERVED_0A
  288. FW will set to 0, MAC will ignore.  <legal 0>
  289. */
  290. #define TX_MSDU_EXTENSION_0_RESERVED_0A_OFFSET 0x00000000
  291. #define TX_MSDU_EXTENSION_0_RESERVED_0A_LSB 6
  292. #define TX_MSDU_EXTENSION_0_RESERVED_0A_MASK 0x00000040
  293. /* Description TX_MSDU_EXTENSION_0_TCP_FLAG
  294. TCP flags
  295. {NS,CWR,ECE,URG,ACK,PSH, RST ,SYN,FIN}<legal all>
  296. */
  297. #define TX_MSDU_EXTENSION_0_TCP_FLAG_OFFSET 0x00000000
  298. #define TX_MSDU_EXTENSION_0_TCP_FLAG_LSB 7
  299. #define TX_MSDU_EXTENSION_0_TCP_FLAG_MASK 0x0000ff80
  300. /* Description TX_MSDU_EXTENSION_0_TCP_FLAG_MASK
  301. TCP flag mask. Tcp_flag is inserted into the header
  302. based on the mask, if tso is enabled
  303. */
  304. #define TX_MSDU_EXTENSION_0_TCP_FLAG_MASK_OFFSET 0x00000000
  305. #define TX_MSDU_EXTENSION_0_TCP_FLAG_MASK_LSB 16
  306. #define TX_MSDU_EXTENSION_0_TCP_FLAG_MASK_MASK 0x01ff0000
  307. /* Description TX_MSDU_EXTENSION_0_RESERVED_0B
  308. FW will set to 0, MAC will ignore.  <legal 0>
  309. */
  310. #define TX_MSDU_EXTENSION_0_RESERVED_0B_OFFSET 0x00000000
  311. #define TX_MSDU_EXTENSION_0_RESERVED_0B_LSB 25
  312. #define TX_MSDU_EXTENSION_0_RESERVED_0B_MASK 0xfe000000
  313. /* Description TX_MSDU_EXTENSION_1_L2_LENGTH
  314. L2 length for the msdu, if tso is enabled <legal all>
  315. */
  316. #define TX_MSDU_EXTENSION_1_L2_LENGTH_OFFSET 0x00000004
  317. #define TX_MSDU_EXTENSION_1_L2_LENGTH_LSB 0
  318. #define TX_MSDU_EXTENSION_1_L2_LENGTH_MASK 0x0000ffff
  319. /* Description TX_MSDU_EXTENSION_1_IP_LENGTH
  320. Ip length for the msdu, if tso is enabled <legal all>
  321. */
  322. #define TX_MSDU_EXTENSION_1_IP_LENGTH_OFFSET 0x00000004
  323. #define TX_MSDU_EXTENSION_1_IP_LENGTH_LSB 16
  324. #define TX_MSDU_EXTENSION_1_IP_LENGTH_MASK 0xffff0000
  325. /* Description TX_MSDU_EXTENSION_2_TCP_SEQ_NUMBER
  326. Tcp_seq_number for the msdu, if tso is enabled <legal
  327. all>
  328. */
  329. #define TX_MSDU_EXTENSION_2_TCP_SEQ_NUMBER_OFFSET 0x00000008
  330. #define TX_MSDU_EXTENSION_2_TCP_SEQ_NUMBER_LSB 0
  331. #define TX_MSDU_EXTENSION_2_TCP_SEQ_NUMBER_MASK 0xffffffff
  332. /* Description TX_MSDU_EXTENSION_3_IP_IDENTIFICATION
  333. Ip_identification for the msdu, if tso is enabled <legal
  334. all>
  335. */
  336. #define TX_MSDU_EXTENSION_3_IP_IDENTIFICATION_OFFSET 0x0000000c
  337. #define TX_MSDU_EXTENSION_3_IP_IDENTIFICATION_LSB 0
  338. #define TX_MSDU_EXTENSION_3_IP_IDENTIFICATION_MASK 0x0000ffff
  339. /* Description TX_MSDU_EXTENSION_3_UDP_LENGTH
  340. TXDMA is copies this field into MSDU START TLV
  341. */
  342. #define TX_MSDU_EXTENSION_3_UDP_LENGTH_OFFSET 0x0000000c
  343. #define TX_MSDU_EXTENSION_3_UDP_LENGTH_LSB 16
  344. #define TX_MSDU_EXTENSION_3_UDP_LENGTH_MASK 0xffff0000
  345. /* Description TX_MSDU_EXTENSION_4_CHECKSUM_OFFSET
  346. The calculated checksum from start offset to end offset
  347. will be added to the checksum at the offset given by this
  348. field<legal all>
  349. */
  350. #define TX_MSDU_EXTENSION_4_CHECKSUM_OFFSET_OFFSET 0x00000010
  351. #define TX_MSDU_EXTENSION_4_CHECKSUM_OFFSET_LSB 0
  352. #define TX_MSDU_EXTENSION_4_CHECKSUM_OFFSET_MASK 0x00003fff
  353. /* Description TX_MSDU_EXTENSION_4_PARTIAL_CHECKSUM_EN
  354. Partial Checksum Enable Bit.
  355. <legal 0-1>
  356. */
  357. #define TX_MSDU_EXTENSION_4_PARTIAL_CHECKSUM_EN_OFFSET 0x00000010
  358. #define TX_MSDU_EXTENSION_4_PARTIAL_CHECKSUM_EN_LSB 14
  359. #define TX_MSDU_EXTENSION_4_PARTIAL_CHECKSUM_EN_MASK 0x00004000
  360. /* Description TX_MSDU_EXTENSION_4_RESERVED_4A
  361. <Legal 0>
  362. */
  363. #define TX_MSDU_EXTENSION_4_RESERVED_4A_OFFSET 0x00000010
  364. #define TX_MSDU_EXTENSION_4_RESERVED_4A_LSB 15
  365. #define TX_MSDU_EXTENSION_4_RESERVED_4A_MASK 0x00008000
  366. /* Description TX_MSDU_EXTENSION_4_PAYLOAD_START_OFFSET
  367. L4 checksum calculations will start fromt this offset
  368. <Legal all>
  369. */
  370. #define TX_MSDU_EXTENSION_4_PAYLOAD_START_OFFSET_OFFSET 0x00000010
  371. #define TX_MSDU_EXTENSION_4_PAYLOAD_START_OFFSET_LSB 16
  372. #define TX_MSDU_EXTENSION_4_PAYLOAD_START_OFFSET_MASK 0x3fff0000
  373. /* Description TX_MSDU_EXTENSION_4_RESERVED_4B
  374. <Legal 0>
  375. */
  376. #define TX_MSDU_EXTENSION_4_RESERVED_4B_OFFSET 0x00000010
  377. #define TX_MSDU_EXTENSION_4_RESERVED_4B_LSB 30
  378. #define TX_MSDU_EXTENSION_4_RESERVED_4B_MASK 0xc0000000
  379. /* Description TX_MSDU_EXTENSION_5_PAYLOAD_END_OFFSET
  380. L4 checksum calculations will end at this offset.
  381. <Legal all>
  382. */
  383. #define TX_MSDU_EXTENSION_5_PAYLOAD_END_OFFSET_OFFSET 0x00000014
  384. #define TX_MSDU_EXTENSION_5_PAYLOAD_END_OFFSET_LSB 0
  385. #define TX_MSDU_EXTENSION_5_PAYLOAD_END_OFFSET_MASK 0x00003fff
  386. /* Description TX_MSDU_EXTENSION_5_RESERVED_5A
  387. <Legal 0>
  388. */
  389. #define TX_MSDU_EXTENSION_5_RESERVED_5A_OFFSET 0x00000014
  390. #define TX_MSDU_EXTENSION_5_RESERVED_5A_LSB 14
  391. #define TX_MSDU_EXTENSION_5_RESERVED_5A_MASK 0x0000c000
  392. /* Description TX_MSDU_EXTENSION_5_WDS
  393. If set the current packet is 4-address frame. Required
  394. because an aggregate can include some frames with 3 address
  395. format and other frames with 4 address format. Used by the
  396. OLE during encapsulation.
  397. Note: there is also global wds tx control in the
  398. TX_PEER_ENTRY
  399. <legal all>
  400. */
  401. #define TX_MSDU_EXTENSION_5_WDS_OFFSET 0x00000014
  402. #define TX_MSDU_EXTENSION_5_WDS_LSB 16
  403. #define TX_MSDU_EXTENSION_5_WDS_MASK 0x00010000
  404. /* Description TX_MSDU_EXTENSION_5_RESERVED_5B
  405. <Legal 0>
  406. */
  407. #define TX_MSDU_EXTENSION_5_RESERVED_5B_OFFSET 0x00000014
  408. #define TX_MSDU_EXTENSION_5_RESERVED_5B_LSB 17
  409. #define TX_MSDU_EXTENSION_5_RESERVED_5B_MASK 0xfffe0000
  410. /* Description TX_MSDU_EXTENSION_6_BUF0_PTR_31_0
  411. Lower 32 bits of the first buffer pointer
  412. NOTE: SW/FW manages the 'cookie' info related to this
  413. buffer together with the 'cookie' info for this
  414. MSDU_EXTENSION descriptor
  415. <legal all>
  416. */
  417. #define TX_MSDU_EXTENSION_6_BUF0_PTR_31_0_OFFSET 0x00000018
  418. #define TX_MSDU_EXTENSION_6_BUF0_PTR_31_0_LSB 0
  419. #define TX_MSDU_EXTENSION_6_BUF0_PTR_31_0_MASK 0xffffffff
  420. /* Description TX_MSDU_EXTENSION_7_BUF0_PTR_39_32
  421. Upper 8 bits of the first buffer pointer <legal all>
  422. */
  423. #define TX_MSDU_EXTENSION_7_BUF0_PTR_39_32_OFFSET 0x0000001c
  424. #define TX_MSDU_EXTENSION_7_BUF0_PTR_39_32_LSB 0
  425. #define TX_MSDU_EXTENSION_7_BUF0_PTR_39_32_MASK 0x000000ff
  426. /* Description TX_MSDU_EXTENSION_7_RESERVED_7A
  427. <Legal 0>
  428. */
  429. #define TX_MSDU_EXTENSION_7_RESERVED_7A_OFFSET 0x0000001c
  430. #define TX_MSDU_EXTENSION_7_RESERVED_7A_LSB 8
  431. #define TX_MSDU_EXTENSION_7_RESERVED_7A_MASK 0x0000ff00
  432. /* Description TX_MSDU_EXTENSION_7_BUF0_LEN
  433. Length of the first buffer <legal all>
  434. */
  435. #define TX_MSDU_EXTENSION_7_BUF0_LEN_OFFSET 0x0000001c
  436. #define TX_MSDU_EXTENSION_7_BUF0_LEN_LSB 16
  437. #define TX_MSDU_EXTENSION_7_BUF0_LEN_MASK 0xffff0000
  438. /* Description TX_MSDU_EXTENSION_8_BUF1_PTR_31_0
  439. Lower 32 bits of the second buffer pointer
  440. NOTE: SW/FW manages the 'cookie' info related to this
  441. buffer together with the 'cookie' info for this
  442. MSDU_EXTENSION descriptor
  443. <legal all>
  444. */
  445. #define TX_MSDU_EXTENSION_8_BUF1_PTR_31_0_OFFSET 0x00000020
  446. #define TX_MSDU_EXTENSION_8_BUF1_PTR_31_0_LSB 0
  447. #define TX_MSDU_EXTENSION_8_BUF1_PTR_31_0_MASK 0xffffffff
  448. /* Description TX_MSDU_EXTENSION_9_BUF1_PTR_39_32
  449. Upper 8 bits of the second buffer pointer <legal all>
  450. */
  451. #define TX_MSDU_EXTENSION_9_BUF1_PTR_39_32_OFFSET 0x00000024
  452. #define TX_MSDU_EXTENSION_9_BUF1_PTR_39_32_LSB 0
  453. #define TX_MSDU_EXTENSION_9_BUF1_PTR_39_32_MASK 0x000000ff
  454. /* Description TX_MSDU_EXTENSION_9_RESERVED_9A
  455. <Legal 0>
  456. */
  457. #define TX_MSDU_EXTENSION_9_RESERVED_9A_OFFSET 0x00000024
  458. #define TX_MSDU_EXTENSION_9_RESERVED_9A_LSB 8
  459. #define TX_MSDU_EXTENSION_9_RESERVED_9A_MASK 0x0000ff00
  460. /* Description TX_MSDU_EXTENSION_9_BUF1_LEN
  461. Length of the second buffer <legal all>
  462. */
  463. #define TX_MSDU_EXTENSION_9_BUF1_LEN_OFFSET 0x00000024
  464. #define TX_MSDU_EXTENSION_9_BUF1_LEN_LSB 16
  465. #define TX_MSDU_EXTENSION_9_BUF1_LEN_MASK 0xffff0000
  466. /* Description TX_MSDU_EXTENSION_10_BUF2_PTR_31_0
  467. Lower 32 bits of the third buffer pointer
  468. NOTE: SW/FW manages the 'cookie' info related to this
  469. buffer together with the 'cookie' info for this
  470. MSDU_EXTENSION descriptor
  471. <legal all>
  472. */
  473. #define TX_MSDU_EXTENSION_10_BUF2_PTR_31_0_OFFSET 0x00000028
  474. #define TX_MSDU_EXTENSION_10_BUF2_PTR_31_0_LSB 0
  475. #define TX_MSDU_EXTENSION_10_BUF2_PTR_31_0_MASK 0xffffffff
  476. /* Description TX_MSDU_EXTENSION_11_BUF2_PTR_39_32
  477. Upper 8 bits of the third buffer pointer <legal all>
  478. */
  479. #define TX_MSDU_EXTENSION_11_BUF2_PTR_39_32_OFFSET 0x0000002c
  480. #define TX_MSDU_EXTENSION_11_BUF2_PTR_39_32_LSB 0
  481. #define TX_MSDU_EXTENSION_11_BUF2_PTR_39_32_MASK 0x000000ff
  482. /* Description TX_MSDU_EXTENSION_11_RESERVED_11A
  483. <Legal 0>
  484. */
  485. #define TX_MSDU_EXTENSION_11_RESERVED_11A_OFFSET 0x0000002c
  486. #define TX_MSDU_EXTENSION_11_RESERVED_11A_LSB 8
  487. #define TX_MSDU_EXTENSION_11_RESERVED_11A_MASK 0x0000ff00
  488. /* Description TX_MSDU_EXTENSION_11_BUF2_LEN
  489. Length of the third buffer <legal all>
  490. */
  491. #define TX_MSDU_EXTENSION_11_BUF2_LEN_OFFSET 0x0000002c
  492. #define TX_MSDU_EXTENSION_11_BUF2_LEN_LSB 16
  493. #define TX_MSDU_EXTENSION_11_BUF2_LEN_MASK 0xffff0000
  494. /* Description TX_MSDU_EXTENSION_12_BUF3_PTR_31_0
  495. Lower 32 bits of the fourth buffer pointer
  496. NOTE: SW/FW manages the 'cookie' info related to this
  497. buffer together with the 'cookie' info for this
  498. MSDU_EXTENSION descriptor
  499. <legal all>
  500. */
  501. #define TX_MSDU_EXTENSION_12_BUF3_PTR_31_0_OFFSET 0x00000030
  502. #define TX_MSDU_EXTENSION_12_BUF3_PTR_31_0_LSB 0
  503. #define TX_MSDU_EXTENSION_12_BUF3_PTR_31_0_MASK 0xffffffff
  504. /* Description TX_MSDU_EXTENSION_13_BUF3_PTR_39_32
  505. Upper 8 bits of the fourth buffer pointer <legal all>
  506. */
  507. #define TX_MSDU_EXTENSION_13_BUF3_PTR_39_32_OFFSET 0x00000034
  508. #define TX_MSDU_EXTENSION_13_BUF3_PTR_39_32_LSB 0
  509. #define TX_MSDU_EXTENSION_13_BUF3_PTR_39_32_MASK 0x000000ff
  510. /* Description TX_MSDU_EXTENSION_13_RESERVED_13A
  511. <Legal 0>
  512. */
  513. #define TX_MSDU_EXTENSION_13_RESERVED_13A_OFFSET 0x00000034
  514. #define TX_MSDU_EXTENSION_13_RESERVED_13A_LSB 8
  515. #define TX_MSDU_EXTENSION_13_RESERVED_13A_MASK 0x0000ff00
  516. /* Description TX_MSDU_EXTENSION_13_BUF3_LEN
  517. Length of the fourth buffer <legal all>
  518. */
  519. #define TX_MSDU_EXTENSION_13_BUF3_LEN_OFFSET 0x00000034
  520. #define TX_MSDU_EXTENSION_13_BUF3_LEN_LSB 16
  521. #define TX_MSDU_EXTENSION_13_BUF3_LEN_MASK 0xffff0000
  522. /* Description TX_MSDU_EXTENSION_14_BUF4_PTR_31_0
  523. Lower 32 bits of the fifth buffer pointer
  524. NOTE: SW/FW manages the 'cookie' info related to this
  525. buffer together with the 'cookie' info for this
  526. MSDU_EXTENSION descriptor
  527. <legal all>
  528. */
  529. #define TX_MSDU_EXTENSION_14_BUF4_PTR_31_0_OFFSET 0x00000038
  530. #define TX_MSDU_EXTENSION_14_BUF4_PTR_31_0_LSB 0
  531. #define TX_MSDU_EXTENSION_14_BUF4_PTR_31_0_MASK 0xffffffff
  532. /* Description TX_MSDU_EXTENSION_15_BUF4_PTR_39_32
  533. Upper 8 bits of the fifth buffer pointer <legal all>
  534. */
  535. #define TX_MSDU_EXTENSION_15_BUF4_PTR_39_32_OFFSET 0x0000003c
  536. #define TX_MSDU_EXTENSION_15_BUF4_PTR_39_32_LSB 0
  537. #define TX_MSDU_EXTENSION_15_BUF4_PTR_39_32_MASK 0x000000ff
  538. /* Description TX_MSDU_EXTENSION_15_RESERVED_15A
  539. <Legal 0>
  540. */
  541. #define TX_MSDU_EXTENSION_15_RESERVED_15A_OFFSET 0x0000003c
  542. #define TX_MSDU_EXTENSION_15_RESERVED_15A_LSB 8
  543. #define TX_MSDU_EXTENSION_15_RESERVED_15A_MASK 0x0000ff00
  544. /* Description TX_MSDU_EXTENSION_15_BUF4_LEN
  545. Length of the fifth buffer <legal all>
  546. */
  547. #define TX_MSDU_EXTENSION_15_BUF4_LEN_OFFSET 0x0000003c
  548. #define TX_MSDU_EXTENSION_15_BUF4_LEN_LSB 16
  549. #define TX_MSDU_EXTENSION_15_BUF4_LEN_MASK 0xffff0000
  550. /* Description TX_MSDU_EXTENSION_16_BUF5_PTR_31_0
  551. Lower 32 bits of the sixth buffer pointer
  552. NOTE: SW/FW manages the 'cookie' info related to this
  553. buffer together with the 'cookie' info for this
  554. MSDU_EXTENSION descriptor
  555. <legal all>
  556. */
  557. #define TX_MSDU_EXTENSION_16_BUF5_PTR_31_0_OFFSET 0x00000040
  558. #define TX_MSDU_EXTENSION_16_BUF5_PTR_31_0_LSB 0
  559. #define TX_MSDU_EXTENSION_16_BUF5_PTR_31_0_MASK 0xffffffff
  560. /* Description TX_MSDU_EXTENSION_17_BUF5_PTR_39_32
  561. Upper 8 bits of the sixth buffer pointer <legal all>
  562. */
  563. #define TX_MSDU_EXTENSION_17_BUF5_PTR_39_32_OFFSET 0x00000044
  564. #define TX_MSDU_EXTENSION_17_BUF5_PTR_39_32_LSB 0
  565. #define TX_MSDU_EXTENSION_17_BUF5_PTR_39_32_MASK 0x000000ff
  566. /* Description TX_MSDU_EXTENSION_17_RESERVED_17A
  567. <Legal 0>
  568. */
  569. #define TX_MSDU_EXTENSION_17_RESERVED_17A_OFFSET 0x00000044
  570. #define TX_MSDU_EXTENSION_17_RESERVED_17A_LSB 8
  571. #define TX_MSDU_EXTENSION_17_RESERVED_17A_MASK 0x0000ff00
  572. /* Description TX_MSDU_EXTENSION_17_BUF5_LEN
  573. Length of the sixth buffer <legal all>
  574. */
  575. #define TX_MSDU_EXTENSION_17_BUF5_LEN_OFFSET 0x00000044
  576. #define TX_MSDU_EXTENSION_17_BUF5_LEN_LSB 16
  577. #define TX_MSDU_EXTENSION_17_BUF5_LEN_MASK 0xffff0000
  578. #endif // _TX_MSDU_EXTENSION_H_