rx_mpdu_end.h 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761
  1. /*
  2. * Copyright (c) 2020 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. // $ATH_LICENSE_HW_HDR_C$
  17. //
  18. // DO NOT EDIT! This file is automatically generated
  19. // These definitions are tied to a particular hardware layout
  20. #ifndef _RX_MPDU_END_H_
  21. #define _RX_MPDU_END_H_
  22. #if !defined(__ASSEMBLER__)
  23. #endif
  24. // ################ START SUMMARY #################
  25. //
  26. // Dword Fields
  27. // 0 rxpcu_mpdu_filter_in_category[1:0], sw_frame_group_id[8:2], reserved_0[15:9], phy_ppdu_id[31:16]
  28. // 1 reserved_1a[10:0], unsup_ktype_short_frame[11], rx_in_tx_decrypt_byp[12], overflow_err[13], mpdu_length_err[14], tkip_mic_err[15], decrypt_err[16], unencrypted_frame_err[17], pn_fields_contain_valid_info[18], fcs_err[19], msdu_length_err[20], rxdma0_destination_ring[22:21], rxdma1_destination_ring[24:23], decrypt_status_code[27:25], rx_bitmap_not_updated[28], reserved_1b[31:29]
  29. //
  30. // ################ END SUMMARY #################
  31. #define NUM_OF_DWORDS_RX_MPDU_END 2
  32. struct rx_mpdu_end {
  33. uint32_t rxpcu_mpdu_filter_in_category : 2, //[1:0]
  34. sw_frame_group_id : 7, //[8:2]
  35. reserved_0 : 7, //[15:9]
  36. phy_ppdu_id : 16; //[31:16]
  37. uint32_t reserved_1a : 11, //[10:0]
  38. unsup_ktype_short_frame : 1, //[11]
  39. rx_in_tx_decrypt_byp : 1, //[12]
  40. overflow_err : 1, //[13]
  41. mpdu_length_err : 1, //[14]
  42. tkip_mic_err : 1, //[15]
  43. decrypt_err : 1, //[16]
  44. unencrypted_frame_err : 1, //[17]
  45. pn_fields_contain_valid_info : 1, //[18]
  46. fcs_err : 1, //[19]
  47. msdu_length_err : 1, //[20]
  48. rxdma0_destination_ring : 2, //[22:21]
  49. rxdma1_destination_ring : 2, //[24:23]
  50. decrypt_status_code : 3, //[27:25]
  51. rx_bitmap_not_updated : 1, //[28]
  52. reserved_1b : 3; //[31:29]
  53. };
  54. /*
  55. rxpcu_mpdu_filter_in_category
  56. Field indicates what the reason was that this MPDU frame
  57. was allowed to come into the receive path by RXPCU
  58. <enum 0 rxpcu_filter_pass> This MPDU passed the normal
  59. frame filter programming of rxpcu
  60. <enum 1 rxpcu_monitor_client> This MPDU did NOT pass the
  61. regular frame filter and would have been dropped, were it
  62. not for the frame fitting into the 'monitor_client'
  63. category.
  64. <enum 2 rxpcu_monitor_other> This MPDU did NOT pass the
  65. regular frame filter and also did not pass the
  66. rxpcu_monitor_client filter. It would have been dropped
  67. accept that it did pass the 'monitor_other' category.
  68. <legal 0-2>
  69. sw_frame_group_id
  70. SW processes frames based on certain classifications.
  71. This field indicates to what sw classification this MPDU is
  72. mapped.
  73. The classification is given in priority order
  74. <enum 0 sw_frame_group_NDP_frame>
  75. <enum 1 sw_frame_group_Multicast_data>
  76. <enum 2 sw_frame_group_Unicast_data>
  77. <enum 3 sw_frame_group_Null_data > This includes mpdus
  78. of type Data Null as well as QoS Data Null
  79. <enum 4 sw_frame_group_mgmt_0000 >
  80. <enum 5 sw_frame_group_mgmt_0001 >
  81. <enum 6 sw_frame_group_mgmt_0010 >
  82. <enum 7 sw_frame_group_mgmt_0011 >
  83. <enum 8 sw_frame_group_mgmt_0100 >
  84. <enum 9 sw_frame_group_mgmt_0101 >
  85. <enum 10 sw_frame_group_mgmt_0110 >
  86. <enum 11 sw_frame_group_mgmt_0111 >
  87. <enum 12 sw_frame_group_mgmt_1000 >
  88. <enum 13 sw_frame_group_mgmt_1001 >
  89. <enum 14 sw_frame_group_mgmt_1010 >
  90. <enum 15 sw_frame_group_mgmt_1011 >
  91. <enum 16 sw_frame_group_mgmt_1100 >
  92. <enum 17 sw_frame_group_mgmt_1101 >
  93. <enum 18 sw_frame_group_mgmt_1110 >
  94. <enum 19 sw_frame_group_mgmt_1111 >
  95. <enum 20 sw_frame_group_ctrl_0000 >
  96. <enum 21 sw_frame_group_ctrl_0001 >
  97. <enum 22 sw_frame_group_ctrl_0010 >
  98. <enum 23 sw_frame_group_ctrl_0011 >
  99. <enum 24 sw_frame_group_ctrl_0100 >
  100. <enum 25 sw_frame_group_ctrl_0101 >
  101. <enum 26 sw_frame_group_ctrl_0110 >
  102. <enum 27 sw_frame_group_ctrl_0111 >
  103. <enum 28 sw_frame_group_ctrl_1000 >
  104. <enum 29 sw_frame_group_ctrl_1001 >
  105. <enum 30 sw_frame_group_ctrl_1010 >
  106. <enum 31 sw_frame_group_ctrl_1011 >
  107. <enum 32 sw_frame_group_ctrl_1100 >
  108. <enum 33 sw_frame_group_ctrl_1101 >
  109. <enum 34 sw_frame_group_ctrl_1110 >
  110. <enum 35 sw_frame_group_ctrl_1111 >
  111. <enum 36 sw_frame_group_unsupported> This covers type 3
  112. and protocol version != 0
  113. <legal 0-37>
  114. reserved_0
  115. <legal 0>
  116. phy_ppdu_id
  117. A ppdu counter value that PHY increments for every PPDU
  118. received. The counter value wraps around
  119. <legal all>
  120. reserved_1a
  121. <legal 0>
  122. unsup_ktype_short_frame
  123. This bit will be '1' when WEP or TKIP or WAPI key type
  124. is received for 11ah short frame. Crypto will bypass the
  125. received packet without decryption to RxOLE after setting
  126. this bit.
  127. rx_in_tx_decrypt_byp
  128. Indicates that RX packet is not decrypted as Crypto is
  129. busy with TX packet processing.
  130. overflow_err
  131. RXPCU Receive FIFO ran out of space to receive the full
  132. MPDU. Therefor this MPDU is terminated early and is thus
  133. corrupted.
  134. This MPDU will not be ACKed.
  135. RXPCU might still be able to correctly receive the
  136. following MPDUs in the PPDU if enough fifo space became
  137. available in time
  138. mpdu_length_err
  139. Set by RXPCU if the expected MPDU length does not
  140. correspond with the actually received number of bytes in the
  141. MPDU.
  142. tkip_mic_err
  143. Set by RX CRYPTO when CRYPTO detected a TKIP MIC error
  144. for this MPDU
  145. decrypt_err
  146. Set by RX CRYPTO when CRYPTO detected a decrypt error
  147. for this MPDU or CRYPTO received an encrypted frame, but did
  148. not get a valid corresponding key id in the peer entry.
  149. unencrypted_frame_err
  150. Set by RX CRYPTO when CRYPTO detected an unencrypted
  151. frame while in the peer entry field
  152. 'All_frames_shall_be_encrypted' is set.
  153. pn_fields_contain_valid_info
  154. Set by RX CRYPTO to indicate that there is a valid PN
  155. field present in this MPDU
  156. fcs_err
  157. Set by RXPCU when there is an FCS error detected for
  158. this MPDU
  159. NOTE that when this field is set, all other (error)
  160. field settings should be ignored as modules could have made
  161. wrong decisions based on the corrupted data.
  162. msdu_length_err
  163. Set by RXOLE when there is an msdu length error detected
  164. in at least 1 of the MSDUs embedded within the MPDU
  165. rxdma0_destination_ring
  166. The ring to which RXDMA0 shall push the frame, assuming
  167. no MPDU level errors are detected. In case of MPDU level
  168. errors, RXDMA0 might change the RXDMA0 destination
  169. <enum 0 rxdma_release_ring > RXDMA0 shall push the
  170. frame to the Release ring. Effectively this means the frame
  171. needs to be dropped.
  172. <enum 1 rxdma2fw_ring > RXDMA0 shall push the frame to
  173. the FW ring
  174. <enum 2 rxdma2sw_ring > RXDMA0 shall push the frame to
  175. the SW ring
  176. <enum 3 rxdma2reo_ring > RXDMA0 shall push the frame
  177. to the REO entrance ring
  178. <legal all>
  179. rxdma1_destination_ring
  180. The ring to which RXDMA1 shall push the frame, assuming
  181. no MPDU level errors are detected. In case of MPDU level
  182. errors, RXDMA1 might change the RXDMA destination
  183. <enum 0 rxdma_release_ring > RXDMA1 shall push the
  184. frame to the Release ring. Effectively this means the frame
  185. needs to be dropped.
  186. <enum 1 rxdma2fw_ring > RXDMA1 shall push the frame to
  187. the FW ring
  188. <enum 2 rxdma2sw_ring > RXDMA1 shall push the frame to
  189. the SW ring
  190. <enum 3 rxdma2reo_ring > RXDMA1 shall push the frame
  191. to the REO entrance ring
  192. <legal all>
  193. decrypt_status_code
  194. Field provides insight into the decryption performed
  195. <enum 0 decrypt_ok> Frame had protection enabled and
  196. decrypted properly
  197. <enum 1 decrypt_unprotected_frame > Frame is unprotected
  198. and hence bypassed
  199. <enum 2 decrypt_data_err > Frame has protection enabled
  200. and could not be properly decrypted due to MIC/ICV mismatch
  201. etc.
  202. <enum 3 decrypt_key_invalid > Frame has protection
  203. enabled but the key that was required to decrypt this frame
  204. was not valid
  205. <enum 4 decrypt_peer_entry_invalid > Frame has
  206. protection enabled but the key that was required to decrypt
  207. this frame was not valid
  208. <enum 5 decrypt_other > Reserved for other indications
  209. <legal 0 - 5>
  210. rx_bitmap_not_updated
  211. Frame is received, but RXPCU could not update the
  212. receive bitmap due to (temporary) fifo contraints.
  213. <legal all>
  214. reserved_1b
  215. <legal 0>
  216. */
  217. /* Description RX_MPDU_END_0_RXPCU_MPDU_FILTER_IN_CATEGORY
  218. Field indicates what the reason was that this MPDU frame
  219. was allowed to come into the receive path by RXPCU
  220. <enum 0 rxpcu_filter_pass> This MPDU passed the normal
  221. frame filter programming of rxpcu
  222. <enum 1 rxpcu_monitor_client> This MPDU did NOT pass the
  223. regular frame filter and would have been dropped, were it
  224. not for the frame fitting into the 'monitor_client'
  225. category.
  226. <enum 2 rxpcu_monitor_other> This MPDU did NOT pass the
  227. regular frame filter and also did not pass the
  228. rxpcu_monitor_client filter. It would have been dropped
  229. accept that it did pass the 'monitor_other' category.
  230. <legal 0-2>
  231. */
  232. #define RX_MPDU_END_0_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET 0x00000000
  233. #define RX_MPDU_END_0_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB 0
  234. #define RX_MPDU_END_0_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK 0x00000003
  235. /* Description RX_MPDU_END_0_SW_FRAME_GROUP_ID
  236. SW processes frames based on certain classifications.
  237. This field indicates to what sw classification this MPDU is
  238. mapped.
  239. The classification is given in priority order
  240. <enum 0 sw_frame_group_NDP_frame>
  241. <enum 1 sw_frame_group_Multicast_data>
  242. <enum 2 sw_frame_group_Unicast_data>
  243. <enum 3 sw_frame_group_Null_data > This includes mpdus
  244. of type Data Null as well as QoS Data Null
  245. <enum 4 sw_frame_group_mgmt_0000 >
  246. <enum 5 sw_frame_group_mgmt_0001 >
  247. <enum 6 sw_frame_group_mgmt_0010 >
  248. <enum 7 sw_frame_group_mgmt_0011 >
  249. <enum 8 sw_frame_group_mgmt_0100 >
  250. <enum 9 sw_frame_group_mgmt_0101 >
  251. <enum 10 sw_frame_group_mgmt_0110 >
  252. <enum 11 sw_frame_group_mgmt_0111 >
  253. <enum 12 sw_frame_group_mgmt_1000 >
  254. <enum 13 sw_frame_group_mgmt_1001 >
  255. <enum 14 sw_frame_group_mgmt_1010 >
  256. <enum 15 sw_frame_group_mgmt_1011 >
  257. <enum 16 sw_frame_group_mgmt_1100 >
  258. <enum 17 sw_frame_group_mgmt_1101 >
  259. <enum 18 sw_frame_group_mgmt_1110 >
  260. <enum 19 sw_frame_group_mgmt_1111 >
  261. <enum 20 sw_frame_group_ctrl_0000 >
  262. <enum 21 sw_frame_group_ctrl_0001 >
  263. <enum 22 sw_frame_group_ctrl_0010 >
  264. <enum 23 sw_frame_group_ctrl_0011 >
  265. <enum 24 sw_frame_group_ctrl_0100 >
  266. <enum 25 sw_frame_group_ctrl_0101 >
  267. <enum 26 sw_frame_group_ctrl_0110 >
  268. <enum 27 sw_frame_group_ctrl_0111 >
  269. <enum 28 sw_frame_group_ctrl_1000 >
  270. <enum 29 sw_frame_group_ctrl_1001 >
  271. <enum 30 sw_frame_group_ctrl_1010 >
  272. <enum 31 sw_frame_group_ctrl_1011 >
  273. <enum 32 sw_frame_group_ctrl_1100 >
  274. <enum 33 sw_frame_group_ctrl_1101 >
  275. <enum 34 sw_frame_group_ctrl_1110 >
  276. <enum 35 sw_frame_group_ctrl_1111 >
  277. <enum 36 sw_frame_group_unsupported> This covers type 3
  278. and protocol version != 0
  279. <legal 0-37>
  280. */
  281. #define RX_MPDU_END_0_SW_FRAME_GROUP_ID_OFFSET 0x00000000
  282. #define RX_MPDU_END_0_SW_FRAME_GROUP_ID_LSB 2
  283. #define RX_MPDU_END_0_SW_FRAME_GROUP_ID_MASK 0x000001fc
  284. /* Description RX_MPDU_END_0_RESERVED_0
  285. <legal 0>
  286. */
  287. #define RX_MPDU_END_0_RESERVED_0_OFFSET 0x00000000
  288. #define RX_MPDU_END_0_RESERVED_0_LSB 9
  289. #define RX_MPDU_END_0_RESERVED_0_MASK 0x0000fe00
  290. /* Description RX_MPDU_END_0_PHY_PPDU_ID
  291. A ppdu counter value that PHY increments for every PPDU
  292. received. The counter value wraps around
  293. <legal all>
  294. */
  295. #define RX_MPDU_END_0_PHY_PPDU_ID_OFFSET 0x00000000
  296. #define RX_MPDU_END_0_PHY_PPDU_ID_LSB 16
  297. #define RX_MPDU_END_0_PHY_PPDU_ID_MASK 0xffff0000
  298. /* Description RX_MPDU_END_1_RESERVED_1A
  299. <legal 0>
  300. */
  301. #define RX_MPDU_END_1_RESERVED_1A_OFFSET 0x00000004
  302. #define RX_MPDU_END_1_RESERVED_1A_LSB 0
  303. #define RX_MPDU_END_1_RESERVED_1A_MASK 0x000007ff
  304. /* Description RX_MPDU_END_1_UNSUP_KTYPE_SHORT_FRAME
  305. This bit will be '1' when WEP or TKIP or WAPI key type
  306. is received for 11ah short frame. Crypto will bypass the
  307. received packet without decryption to RxOLE after setting
  308. this bit.
  309. */
  310. #define RX_MPDU_END_1_UNSUP_KTYPE_SHORT_FRAME_OFFSET 0x00000004
  311. #define RX_MPDU_END_1_UNSUP_KTYPE_SHORT_FRAME_LSB 11
  312. #define RX_MPDU_END_1_UNSUP_KTYPE_SHORT_FRAME_MASK 0x00000800
  313. /* Description RX_MPDU_END_1_RX_IN_TX_DECRYPT_BYP
  314. Indicates that RX packet is not decrypted as Crypto is
  315. busy with TX packet processing.
  316. */
  317. #define RX_MPDU_END_1_RX_IN_TX_DECRYPT_BYP_OFFSET 0x00000004
  318. #define RX_MPDU_END_1_RX_IN_TX_DECRYPT_BYP_LSB 12
  319. #define RX_MPDU_END_1_RX_IN_TX_DECRYPT_BYP_MASK 0x00001000
  320. /* Description RX_MPDU_END_1_OVERFLOW_ERR
  321. RXPCU Receive FIFO ran out of space to receive the full
  322. MPDU. Therefor this MPDU is terminated early and is thus
  323. corrupted.
  324. This MPDU will not be ACKed.
  325. RXPCU might still be able to correctly receive the
  326. following MPDUs in the PPDU if enough fifo space became
  327. available in time
  328. */
  329. #define RX_MPDU_END_1_OVERFLOW_ERR_OFFSET 0x00000004
  330. #define RX_MPDU_END_1_OVERFLOW_ERR_LSB 13
  331. #define RX_MPDU_END_1_OVERFLOW_ERR_MASK 0x00002000
  332. /* Description RX_MPDU_END_1_MPDU_LENGTH_ERR
  333. Set by RXPCU if the expected MPDU length does not
  334. correspond with the actually received number of bytes in the
  335. MPDU.
  336. */
  337. #define RX_MPDU_END_1_MPDU_LENGTH_ERR_OFFSET 0x00000004
  338. #define RX_MPDU_END_1_MPDU_LENGTH_ERR_LSB 14
  339. #define RX_MPDU_END_1_MPDU_LENGTH_ERR_MASK 0x00004000
  340. /* Description RX_MPDU_END_1_TKIP_MIC_ERR
  341. Set by RX CRYPTO when CRYPTO detected a TKIP MIC error
  342. for this MPDU
  343. */
  344. #define RX_MPDU_END_1_TKIP_MIC_ERR_OFFSET 0x00000004
  345. #define RX_MPDU_END_1_TKIP_MIC_ERR_LSB 15
  346. #define RX_MPDU_END_1_TKIP_MIC_ERR_MASK 0x00008000
  347. /* Description RX_MPDU_END_1_DECRYPT_ERR
  348. Set by RX CRYPTO when CRYPTO detected a decrypt error
  349. for this MPDU or CRYPTO received an encrypted frame, but did
  350. not get a valid corresponding key id in the peer entry.
  351. */
  352. #define RX_MPDU_END_1_DECRYPT_ERR_OFFSET 0x00000004
  353. #define RX_MPDU_END_1_DECRYPT_ERR_LSB 16
  354. #define RX_MPDU_END_1_DECRYPT_ERR_MASK 0x00010000
  355. /* Description RX_MPDU_END_1_UNENCRYPTED_FRAME_ERR
  356. Set by RX CRYPTO when CRYPTO detected an unencrypted
  357. frame while in the peer entry field
  358. 'All_frames_shall_be_encrypted' is set.
  359. */
  360. #define RX_MPDU_END_1_UNENCRYPTED_FRAME_ERR_OFFSET 0x00000004
  361. #define RX_MPDU_END_1_UNENCRYPTED_FRAME_ERR_LSB 17
  362. #define RX_MPDU_END_1_UNENCRYPTED_FRAME_ERR_MASK 0x00020000
  363. /* Description RX_MPDU_END_1_PN_FIELDS_CONTAIN_VALID_INFO
  364. Set by RX CRYPTO to indicate that there is a valid PN
  365. field present in this MPDU
  366. */
  367. #define RX_MPDU_END_1_PN_FIELDS_CONTAIN_VALID_INFO_OFFSET 0x00000004
  368. #define RX_MPDU_END_1_PN_FIELDS_CONTAIN_VALID_INFO_LSB 18
  369. #define RX_MPDU_END_1_PN_FIELDS_CONTAIN_VALID_INFO_MASK 0x00040000
  370. /* Description RX_MPDU_END_1_FCS_ERR
  371. Set by RXPCU when there is an FCS error detected for
  372. this MPDU
  373. NOTE that when this field is set, all other (error)
  374. field settings should be ignored as modules could have made
  375. wrong decisions based on the corrupted data.
  376. */
  377. #define RX_MPDU_END_1_FCS_ERR_OFFSET 0x00000004
  378. #define RX_MPDU_END_1_FCS_ERR_LSB 19
  379. #define RX_MPDU_END_1_FCS_ERR_MASK 0x00080000
  380. /* Description RX_MPDU_END_1_MSDU_LENGTH_ERR
  381. Set by RXOLE when there is an msdu length error detected
  382. in at least 1 of the MSDUs embedded within the MPDU
  383. */
  384. #define RX_MPDU_END_1_MSDU_LENGTH_ERR_OFFSET 0x00000004
  385. #define RX_MPDU_END_1_MSDU_LENGTH_ERR_LSB 20
  386. #define RX_MPDU_END_1_MSDU_LENGTH_ERR_MASK 0x00100000
  387. /* Description RX_MPDU_END_1_RXDMA0_DESTINATION_RING
  388. The ring to which RXDMA0 shall push the frame, assuming
  389. no MPDU level errors are detected. In case of MPDU level
  390. errors, RXDMA0 might change the RXDMA0 destination
  391. <enum 0 rxdma_release_ring > RXDMA0 shall push the
  392. frame to the Release ring. Effectively this means the frame
  393. needs to be dropped.
  394. <enum 1 rxdma2fw_ring > RXDMA0 shall push the frame to
  395. the FW ring
  396. <enum 2 rxdma2sw_ring > RXDMA0 shall push the frame to
  397. the SW ring
  398. <enum 3 rxdma2reo_ring > RXDMA0 shall push the frame
  399. to the REO entrance ring
  400. <legal all>
  401. */
  402. #define RX_MPDU_END_1_RXDMA0_DESTINATION_RING_OFFSET 0x00000004
  403. #define RX_MPDU_END_1_RXDMA0_DESTINATION_RING_LSB 21
  404. #define RX_MPDU_END_1_RXDMA0_DESTINATION_RING_MASK 0x00600000
  405. /* Description RX_MPDU_END_1_RXDMA1_DESTINATION_RING
  406. The ring to which RXDMA1 shall push the frame, assuming
  407. no MPDU level errors are detected. In case of MPDU level
  408. errors, RXDMA1 might change the RXDMA destination
  409. <enum 0 rxdma_release_ring > RXDMA1 shall push the
  410. frame to the Release ring. Effectively this means the frame
  411. needs to be dropped.
  412. <enum 1 rxdma2fw_ring > RXDMA1 shall push the frame to
  413. the FW ring
  414. <enum 2 rxdma2sw_ring > RXDMA1 shall push the frame to
  415. the SW ring
  416. <enum 3 rxdma2reo_ring > RXDMA1 shall push the frame
  417. to the REO entrance ring
  418. <legal all>
  419. */
  420. #define RX_MPDU_END_1_RXDMA1_DESTINATION_RING_OFFSET 0x00000004
  421. #define RX_MPDU_END_1_RXDMA1_DESTINATION_RING_LSB 23
  422. #define RX_MPDU_END_1_RXDMA1_DESTINATION_RING_MASK 0x01800000
  423. /* Description RX_MPDU_END_1_DECRYPT_STATUS_CODE
  424. Field provides insight into the decryption performed
  425. <enum 0 decrypt_ok> Frame had protection enabled and
  426. decrypted properly
  427. <enum 1 decrypt_unprotected_frame > Frame is unprotected
  428. and hence bypassed
  429. <enum 2 decrypt_data_err > Frame has protection enabled
  430. and could not be properly decrypted due to MIC/ICV mismatch
  431. etc.
  432. <enum 3 decrypt_key_invalid > Frame has protection
  433. enabled but the key that was required to decrypt this frame
  434. was not valid
  435. <enum 4 decrypt_peer_entry_invalid > Frame has
  436. protection enabled but the key that was required to decrypt
  437. this frame was not valid
  438. <enum 5 decrypt_other > Reserved for other indications
  439. <legal 0 - 5>
  440. */
  441. #define RX_MPDU_END_1_DECRYPT_STATUS_CODE_OFFSET 0x00000004
  442. #define RX_MPDU_END_1_DECRYPT_STATUS_CODE_LSB 25
  443. #define RX_MPDU_END_1_DECRYPT_STATUS_CODE_MASK 0x0e000000
  444. /* Description RX_MPDU_END_1_RX_BITMAP_NOT_UPDATED
  445. Frame is received, but RXPCU could not update the
  446. receive bitmap due to (temporary) fifo contraints.
  447. <legal all>
  448. */
  449. #define RX_MPDU_END_1_RX_BITMAP_NOT_UPDATED_OFFSET 0x00000004
  450. #define RX_MPDU_END_1_RX_BITMAP_NOT_UPDATED_LSB 28
  451. #define RX_MPDU_END_1_RX_BITMAP_NOT_UPDATED_MASK 0x10000000
  452. /* Description RX_MPDU_END_1_RESERVED_1B
  453. <legal 0>
  454. */
  455. #define RX_MPDU_END_1_RESERVED_1B_OFFSET 0x00000004
  456. #define RX_MPDU_END_1_RESERVED_1B_LSB 29
  457. #define RX_MPDU_END_1_RESERVED_1B_MASK 0xe0000000
  458. #endif // _RX_MPDU_END_H_