tx_msdu_extension.h 24 KB

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