tx_msdu_extension.h 24 KB

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