rx_reo_queue_ext.h 79 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793
  1. /*
  2. * Copyright (c) 2021 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_REO_QUEUE_EXT_H_
  21. #define _RX_REO_QUEUE_EXT_H_
  22. #if !defined(__ASSEMBLER__)
  23. #endif
  24. #include "uniform_descriptor_header.h"
  25. #include "rx_mpdu_link_ptr.h"
  26. // ################ START SUMMARY #################
  27. //
  28. // Dword Fields
  29. // 0 struct uniform_descriptor_header descriptor_header;
  30. // 1 reserved_1a[31:0]
  31. // 2-3 struct rx_mpdu_link_ptr mpdu_link_pointer_0;
  32. // 4-5 struct rx_mpdu_link_ptr mpdu_link_pointer_1;
  33. // 6-7 struct rx_mpdu_link_ptr mpdu_link_pointer_2;
  34. // 8-9 struct rx_mpdu_link_ptr mpdu_link_pointer_3;
  35. // 10-11 struct rx_mpdu_link_ptr mpdu_link_pointer_4;
  36. // 12-13 struct rx_mpdu_link_ptr mpdu_link_pointer_5;
  37. // 14-15 struct rx_mpdu_link_ptr mpdu_link_pointer_6;
  38. // 16-17 struct rx_mpdu_link_ptr mpdu_link_pointer_7;
  39. // 18-19 struct rx_mpdu_link_ptr mpdu_link_pointer_8;
  40. // 20-21 struct rx_mpdu_link_ptr mpdu_link_pointer_9;
  41. // 22-23 struct rx_mpdu_link_ptr mpdu_link_pointer_10;
  42. // 24-25 struct rx_mpdu_link_ptr mpdu_link_pointer_11;
  43. // 26-27 struct rx_mpdu_link_ptr mpdu_link_pointer_12;
  44. // 28-29 struct rx_mpdu_link_ptr mpdu_link_pointer_13;
  45. // 30-31 struct rx_mpdu_link_ptr mpdu_link_pointer_14;
  46. //
  47. // ################ END SUMMARY #################
  48. #define NUM_OF_DWORDS_RX_REO_QUEUE_EXT 32
  49. struct rx_reo_queue_ext {
  50. struct uniform_descriptor_header descriptor_header;
  51. uint32_t reserved_1a : 32; //[31:0]
  52. struct rx_mpdu_link_ptr mpdu_link_pointer_0;
  53. struct rx_mpdu_link_ptr mpdu_link_pointer_1;
  54. struct rx_mpdu_link_ptr mpdu_link_pointer_2;
  55. struct rx_mpdu_link_ptr mpdu_link_pointer_3;
  56. struct rx_mpdu_link_ptr mpdu_link_pointer_4;
  57. struct rx_mpdu_link_ptr mpdu_link_pointer_5;
  58. struct rx_mpdu_link_ptr mpdu_link_pointer_6;
  59. struct rx_mpdu_link_ptr mpdu_link_pointer_7;
  60. struct rx_mpdu_link_ptr mpdu_link_pointer_8;
  61. struct rx_mpdu_link_ptr mpdu_link_pointer_9;
  62. struct rx_mpdu_link_ptr mpdu_link_pointer_10;
  63. struct rx_mpdu_link_ptr mpdu_link_pointer_11;
  64. struct rx_mpdu_link_ptr mpdu_link_pointer_12;
  65. struct rx_mpdu_link_ptr mpdu_link_pointer_13;
  66. struct rx_mpdu_link_ptr mpdu_link_pointer_14;
  67. };
  68. /*
  69. struct uniform_descriptor_header descriptor_header
  70. Details about which module owns this struct.
  71. Note that sub field Buffer_type shall be set to
  72. Receive_REO_queue_ext_descriptor
  73. reserved_1a
  74. <legal 0>
  75. struct rx_mpdu_link_ptr mpdu_link_pointer_0
  76. Consumer: REO
  77. Producer: REO
  78. Pointer to the next MPDU_link descriptor in the MPDU
  79. queue
  80. struct rx_mpdu_link_ptr mpdu_link_pointer_1
  81. Consumer: REO
  82. Producer: REO
  83. Pointer to the next MPDU_link descriptor in the MPDU
  84. queue
  85. struct rx_mpdu_link_ptr mpdu_link_pointer_2
  86. Consumer: REO
  87. Producer: REO
  88. Pointer to the next MPDU_link descriptor in the MPDU
  89. queue
  90. struct rx_mpdu_link_ptr mpdu_link_pointer_3
  91. Consumer: REO
  92. Producer: REO
  93. Pointer to the next MPDU_link descriptor in the MPDU
  94. queue
  95. struct rx_mpdu_link_ptr mpdu_link_pointer_4
  96. Consumer: REO
  97. Producer: REO
  98. Pointer to the next MPDU_link descriptor in the MPDU
  99. queue
  100. struct rx_mpdu_link_ptr mpdu_link_pointer_5
  101. Consumer: REO
  102. Producer: REO
  103. Pointer to the next MPDU_link descriptor in the MPDU
  104. queue
  105. struct rx_mpdu_link_ptr mpdu_link_pointer_6
  106. Consumer: REO
  107. Producer: REO
  108. Pointer to the next MPDU_link descriptor in the MPDU
  109. queue
  110. struct rx_mpdu_link_ptr mpdu_link_pointer_7
  111. Consumer: REO
  112. Producer: REO
  113. Pointer to the next MPDU_link descriptor in the MPDU
  114. queue
  115. struct rx_mpdu_link_ptr mpdu_link_pointer_8
  116. Consumer: REO
  117. Producer: REO
  118. Pointer to the next MPDU_link descriptor in the MPDU
  119. queue
  120. struct rx_mpdu_link_ptr mpdu_link_pointer_9
  121. Consumer: REO
  122. Producer: REO
  123. Pointer to the next MPDU_link descriptor in the MPDU
  124. queue
  125. struct rx_mpdu_link_ptr mpdu_link_pointer_10
  126. Consumer: REO
  127. Producer: REO
  128. Pointer to the next MPDU_link descriptor in the MPDU
  129. queue
  130. struct rx_mpdu_link_ptr mpdu_link_pointer_11
  131. Consumer: REO
  132. Producer: REO
  133. Pointer to the next MPDU_link descriptor in the MPDU
  134. queue
  135. struct rx_mpdu_link_ptr mpdu_link_pointer_12
  136. Consumer: REO
  137. Producer: REO
  138. Pointer to the next MPDU_link descriptor in the MPDU
  139. queue
  140. struct rx_mpdu_link_ptr mpdu_link_pointer_13
  141. Consumer: REO
  142. Producer: REO
  143. Pointer to the next MPDU_link descriptor in the MPDU
  144. queue
  145. struct rx_mpdu_link_ptr mpdu_link_pointer_14
  146. Consumer: REO
  147. Producer: REO
  148. Pointer to the next MPDU_link descriptor in the MPDU
  149. queue
  150. */
  151. /* EXTERNAL REFERENCE : struct uniform_descriptor_header descriptor_header */
  152. /* Description RX_REO_QUEUE_EXT_0_DESCRIPTOR_HEADER_OWNER
  153. Consumer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO
  154. Producer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO
  155. The owner of this data structure:
  156. <enum 0 WBM_owned> Buffer Manager currently owns this
  157. data structure.
  158. <enum 1 SW_OR_FW_owned> Software of FW currently owns
  159. this data structure.
  160. <enum 2 TQM_owned> Transmit Queue Manager currently owns
  161. this data structure.
  162. <enum 3 RXDMA_owned> Receive DMA currently owns this
  163. data structure.
  164. <enum 4 REO_owned> Reorder currently owns this data
  165. structure.
  166. <enum 5 SWITCH_owned> SWITCH currently owns this data
  167. structure.
  168. <legal 0-5>
  169. */
  170. #define RX_REO_QUEUE_EXT_0_DESCRIPTOR_HEADER_OWNER_OFFSET 0x00000000
  171. #define RX_REO_QUEUE_EXT_0_DESCRIPTOR_HEADER_OWNER_LSB 0
  172. #define RX_REO_QUEUE_EXT_0_DESCRIPTOR_HEADER_OWNER_MASK 0x0000000f
  173. /* Description RX_REO_QUEUE_EXT_0_DESCRIPTOR_HEADER_BUFFER_TYPE
  174. Consumer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO
  175. Producer: In DEBUG mode: WBM, TQM, TXDMA, RXDMA, REO
  176. Field describing what contents format is of this
  177. descriptor
  178. <enum 0 Transmit_MSDU_Link_descriptor >
  179. <enum 1 Transmit_MPDU_Link_descriptor >
  180. <enum 2 Transmit_MPDU_Queue_head_descriptor>
  181. <enum 3 Transmit_MPDU_Queue_ext_descriptor>
  182. <enum 4 Transmit_flow_descriptor>
  183. <enum 5 Transmit_buffer > NOT TO BE USED:
  184. <enum 6 Receive_MSDU_Link_descriptor >
  185. <enum 7 Receive_MPDU_Link_descriptor >
  186. <enum 8 Receive_REO_queue_descriptor >
  187. <enum 9 Receive_REO_queue_ext_descriptor >
  188. <enum 10 Receive_buffer >
  189. <enum 11 Idle_link_list_entry>
  190. <legal 0-11>
  191. */
  192. #define RX_REO_QUEUE_EXT_0_DESCRIPTOR_HEADER_BUFFER_TYPE_OFFSET 0x00000000
  193. #define RX_REO_QUEUE_EXT_0_DESCRIPTOR_HEADER_BUFFER_TYPE_LSB 4
  194. #define RX_REO_QUEUE_EXT_0_DESCRIPTOR_HEADER_BUFFER_TYPE_MASK 0x000000f0
  195. /* Description RX_REO_QUEUE_EXT_0_DESCRIPTOR_HEADER_RESERVED_0A
  196. <legal 0>
  197. */
  198. #define RX_REO_QUEUE_EXT_0_DESCRIPTOR_HEADER_RESERVED_0A_OFFSET 0x00000000
  199. #define RX_REO_QUEUE_EXT_0_DESCRIPTOR_HEADER_RESERVED_0A_LSB 8
  200. #define RX_REO_QUEUE_EXT_0_DESCRIPTOR_HEADER_RESERVED_0A_MASK 0xffffff00
  201. /* Description RX_REO_QUEUE_EXT_1_RESERVED_1A
  202. <legal 0>
  203. */
  204. #define RX_REO_QUEUE_EXT_1_RESERVED_1A_OFFSET 0x00000004
  205. #define RX_REO_QUEUE_EXT_1_RESERVED_1A_LSB 0
  206. #define RX_REO_QUEUE_EXT_1_RESERVED_1A_MASK 0xffffffff
  207. /* EXTERNAL REFERENCE : struct rx_mpdu_link_ptr mpdu_link_pointer_0 */
  208. /* EXTERNAL REFERENCE : struct buffer_addr_info mpdu_link_desc_addr_info */
  209. /* Description RX_REO_QUEUE_EXT_2_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0
  210. Address (lower 32 bits) of the MSDU buffer OR
  211. MSDU_EXTENSION descriptor OR Link Descriptor
  212. In case of 'NULL' pointer, this field is set to 0
  213. <legal all>
  214. */
  215. #define RX_REO_QUEUE_EXT_2_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000008
  216. #define RX_REO_QUEUE_EXT_2_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
  217. #define RX_REO_QUEUE_EXT_2_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
  218. /* Description RX_REO_QUEUE_EXT_3_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32
  219. Address (upper 8 bits) of the MSDU buffer OR
  220. MSDU_EXTENSION descriptor OR Link Descriptor
  221. In case of 'NULL' pointer, this field is set to 0
  222. <legal all>
  223. */
  224. #define RX_REO_QUEUE_EXT_3_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000000c
  225. #define RX_REO_QUEUE_EXT_3_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
  226. #define RX_REO_QUEUE_EXT_3_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
  227. /* Description RX_REO_QUEUE_EXT_3_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER
  228. Consumer: WBM
  229. Producer: SW/FW
  230. In case of 'NULL' pointer, this field is set to 0
  231. Indicates to which buffer manager the buffer OR
  232. MSDU_EXTENSION descriptor OR link descriptor that is being
  233. pointed to shall be returned after the frame has been
  234. processed. It is used by WBM for routing purposes.
  235. <enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
  236. to the WMB buffer idle list
  237. <enum 1 WBM_IDLE_DESC_LIST> This buffer shall be
  238. returned to the WMB idle link descriptor idle list
  239. <enum 2 FW_BM> This buffer shall be returned to the FW
  240. <enum 3 SW0_BM> This buffer shall be returned to the SW,
  241. ring 0
  242. <enum 4 SW1_BM> This buffer shall be returned to the SW,
  243. ring 1
  244. <enum 5 SW2_BM> This buffer shall be returned to the SW,
  245. ring 2
  246. <enum 6 SW3_BM> This buffer shall be returned to the SW,
  247. ring 3
  248. <enum 7 SW4_BM> This buffer shall be returned to the SW,
  249. ring 3
  250. <legal all>
  251. */
  252. #define RX_REO_QUEUE_EXT_3_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000000c
  253. #define RX_REO_QUEUE_EXT_3_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
  254. #define RX_REO_QUEUE_EXT_3_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000700
  255. /* Description RX_REO_QUEUE_EXT_3_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE
  256. Cookie field exclusively used by SW.
  257. In case of 'NULL' pointer, this field is set to 0
  258. HW ignores the contents, accept that it passes the
  259. programmed value on to other descriptors together with the
  260. physical address
  261. Field can be used by SW to for example associate the
  262. buffers physical address with the virtual address
  263. The bit definitions as used by SW are within SW HLD
  264. specification
  265. NOTE:
  266. The three most significant bits can have a special
  267. meaning in case this struct is embedded in a TX_MPDU_DETAILS
  268. STRUCT, and field transmit_bw_restriction is set
  269. In case of NON punctured transmission:
  270. Sw_buffer_cookie[20:19] = 2'b00: 20 MHz TX only
  271. Sw_buffer_cookie[20:19] = 2'b01: 40 MHz TX only
  272. Sw_buffer_cookie[20:19] = 2'b10: 80 MHz TX only
  273. Sw_buffer_cookie[20:19] = 2'b11: 160 MHz TX only
  274. In case of punctured transmission:
  275. Sw_buffer_cookie[20:18] = 3'b000: pattern 0 only
  276. Sw_buffer_cookie[20:18] = 3'b001: pattern 1 only
  277. Sw_buffer_cookie[20:18] = 3'b010: pattern 2 only
  278. Sw_buffer_cookie[20:18] = 3'b011: pattern 3 only
  279. Sw_buffer_cookie[20:18] = 3'b100: pattern 4 only
  280. Sw_buffer_cookie[20:18] = 3'b101: pattern 5 only
  281. Sw_buffer_cookie[20:18] = 3'b110: pattern 6 only
  282. Sw_buffer_cookie[20:18] = 3'b111: pattern 7 only
  283. Note: a punctured transmission is indicated by the
  284. presence of TLV TX_PUNCTURE_SETUP embedded in the scheduler
  285. TLV
  286. <legal all>
  287. */
  288. #define RX_REO_QUEUE_EXT_3_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000000c
  289. #define RX_REO_QUEUE_EXT_3_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 11
  290. #define RX_REO_QUEUE_EXT_3_MPDU_LINK_POINTER_0_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff800
  291. /* EXTERNAL REFERENCE : struct rx_mpdu_link_ptr mpdu_link_pointer_1 */
  292. /* EXTERNAL REFERENCE : struct buffer_addr_info mpdu_link_desc_addr_info */
  293. /* Description RX_REO_QUEUE_EXT_4_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0
  294. Address (lower 32 bits) of the MSDU buffer OR
  295. MSDU_EXTENSION descriptor OR Link Descriptor
  296. In case of 'NULL' pointer, this field is set to 0
  297. <legal all>
  298. */
  299. #define RX_REO_QUEUE_EXT_4_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000010
  300. #define RX_REO_QUEUE_EXT_4_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
  301. #define RX_REO_QUEUE_EXT_4_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
  302. /* Description RX_REO_QUEUE_EXT_5_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32
  303. Address (upper 8 bits) of the MSDU buffer OR
  304. MSDU_EXTENSION descriptor OR Link Descriptor
  305. In case of 'NULL' pointer, this field is set to 0
  306. <legal all>
  307. */
  308. #define RX_REO_QUEUE_EXT_5_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000014
  309. #define RX_REO_QUEUE_EXT_5_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
  310. #define RX_REO_QUEUE_EXT_5_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
  311. /* Description RX_REO_QUEUE_EXT_5_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER
  312. Consumer: WBM
  313. Producer: SW/FW
  314. In case of 'NULL' pointer, this field is set to 0
  315. Indicates to which buffer manager the buffer OR
  316. MSDU_EXTENSION descriptor OR link descriptor that is being
  317. pointed to shall be returned after the frame has been
  318. processed. It is used by WBM for routing purposes.
  319. <enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
  320. to the WMB buffer idle list
  321. <enum 1 WBM_IDLE_DESC_LIST> This buffer shall be
  322. returned to the WMB idle link descriptor idle list
  323. <enum 2 FW_BM> This buffer shall be returned to the FW
  324. <enum 3 SW0_BM> This buffer shall be returned to the SW,
  325. ring 0
  326. <enum 4 SW1_BM> This buffer shall be returned to the SW,
  327. ring 1
  328. <enum 5 SW2_BM> This buffer shall be returned to the SW,
  329. ring 2
  330. <enum 6 SW3_BM> This buffer shall be returned to the SW,
  331. ring 3
  332. <enum 7 SW4_BM> This buffer shall be returned to the SW,
  333. ring 3
  334. <legal all>
  335. */
  336. #define RX_REO_QUEUE_EXT_5_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000014
  337. #define RX_REO_QUEUE_EXT_5_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
  338. #define RX_REO_QUEUE_EXT_5_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000700
  339. /* Description RX_REO_QUEUE_EXT_5_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE
  340. Cookie field exclusively used by SW.
  341. In case of 'NULL' pointer, this field is set to 0
  342. HW ignores the contents, accept that it passes the
  343. programmed value on to other descriptors together with the
  344. physical address
  345. Field can be used by SW to for example associate the
  346. buffers physical address with the virtual address
  347. The bit definitions as used by SW are within SW HLD
  348. specification
  349. NOTE:
  350. The three most significant bits can have a special
  351. meaning in case this struct is embedded in a TX_MPDU_DETAILS
  352. STRUCT, and field transmit_bw_restriction is set
  353. In case of NON punctured transmission:
  354. Sw_buffer_cookie[20:19] = 2'b00: 20 MHz TX only
  355. Sw_buffer_cookie[20:19] = 2'b01: 40 MHz TX only
  356. Sw_buffer_cookie[20:19] = 2'b10: 80 MHz TX only
  357. Sw_buffer_cookie[20:19] = 2'b11: 160 MHz TX only
  358. In case of punctured transmission:
  359. Sw_buffer_cookie[20:18] = 3'b000: pattern 0 only
  360. Sw_buffer_cookie[20:18] = 3'b001: pattern 1 only
  361. Sw_buffer_cookie[20:18] = 3'b010: pattern 2 only
  362. Sw_buffer_cookie[20:18] = 3'b011: pattern 3 only
  363. Sw_buffer_cookie[20:18] = 3'b100: pattern 4 only
  364. Sw_buffer_cookie[20:18] = 3'b101: pattern 5 only
  365. Sw_buffer_cookie[20:18] = 3'b110: pattern 6 only
  366. Sw_buffer_cookie[20:18] = 3'b111: pattern 7 only
  367. Note: a punctured transmission is indicated by the
  368. presence of TLV TX_PUNCTURE_SETUP embedded in the scheduler
  369. TLV
  370. <legal all>
  371. */
  372. #define RX_REO_QUEUE_EXT_5_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000014
  373. #define RX_REO_QUEUE_EXT_5_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 11
  374. #define RX_REO_QUEUE_EXT_5_MPDU_LINK_POINTER_1_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff800
  375. /* EXTERNAL REFERENCE : struct rx_mpdu_link_ptr mpdu_link_pointer_2 */
  376. /* EXTERNAL REFERENCE : struct buffer_addr_info mpdu_link_desc_addr_info */
  377. /* Description RX_REO_QUEUE_EXT_6_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0
  378. Address (lower 32 bits) of the MSDU buffer OR
  379. MSDU_EXTENSION descriptor OR Link Descriptor
  380. In case of 'NULL' pointer, this field is set to 0
  381. <legal all>
  382. */
  383. #define RX_REO_QUEUE_EXT_6_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000018
  384. #define RX_REO_QUEUE_EXT_6_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
  385. #define RX_REO_QUEUE_EXT_6_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
  386. /* Description RX_REO_QUEUE_EXT_7_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32
  387. Address (upper 8 bits) of the MSDU buffer OR
  388. MSDU_EXTENSION descriptor OR Link Descriptor
  389. In case of 'NULL' pointer, this field is set to 0
  390. <legal all>
  391. */
  392. #define RX_REO_QUEUE_EXT_7_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000001c
  393. #define RX_REO_QUEUE_EXT_7_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
  394. #define RX_REO_QUEUE_EXT_7_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
  395. /* Description RX_REO_QUEUE_EXT_7_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER
  396. Consumer: WBM
  397. Producer: SW/FW
  398. In case of 'NULL' pointer, this field is set to 0
  399. Indicates to which buffer manager the buffer OR
  400. MSDU_EXTENSION descriptor OR link descriptor that is being
  401. pointed to shall be returned after the frame has been
  402. processed. It is used by WBM for routing purposes.
  403. <enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
  404. to the WMB buffer idle list
  405. <enum 1 WBM_IDLE_DESC_LIST> This buffer shall be
  406. returned to the WMB idle link descriptor idle list
  407. <enum 2 FW_BM> This buffer shall be returned to the FW
  408. <enum 3 SW0_BM> This buffer shall be returned to the SW,
  409. ring 0
  410. <enum 4 SW1_BM> This buffer shall be returned to the SW,
  411. ring 1
  412. <enum 5 SW2_BM> This buffer shall be returned to the SW,
  413. ring 2
  414. <enum 6 SW3_BM> This buffer shall be returned to the SW,
  415. ring 3
  416. <enum 7 SW4_BM> This buffer shall be returned to the SW,
  417. ring 3
  418. <legal all>
  419. */
  420. #define RX_REO_QUEUE_EXT_7_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000001c
  421. #define RX_REO_QUEUE_EXT_7_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
  422. #define RX_REO_QUEUE_EXT_7_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000700
  423. /* Description RX_REO_QUEUE_EXT_7_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE
  424. Cookie field exclusively used by SW.
  425. In case of 'NULL' pointer, this field is set to 0
  426. HW ignores the contents, accept that it passes the
  427. programmed value on to other descriptors together with the
  428. physical address
  429. Field can be used by SW to for example associate the
  430. buffers physical address with the virtual address
  431. The bit definitions as used by SW are within SW HLD
  432. specification
  433. NOTE:
  434. The three most significant bits can have a special
  435. meaning in case this struct is embedded in a TX_MPDU_DETAILS
  436. STRUCT, and field transmit_bw_restriction is set
  437. In case of NON punctured transmission:
  438. Sw_buffer_cookie[20:19] = 2'b00: 20 MHz TX only
  439. Sw_buffer_cookie[20:19] = 2'b01: 40 MHz TX only
  440. Sw_buffer_cookie[20:19] = 2'b10: 80 MHz TX only
  441. Sw_buffer_cookie[20:19] = 2'b11: 160 MHz TX only
  442. In case of punctured transmission:
  443. Sw_buffer_cookie[20:18] = 3'b000: pattern 0 only
  444. Sw_buffer_cookie[20:18] = 3'b001: pattern 1 only
  445. Sw_buffer_cookie[20:18] = 3'b010: pattern 2 only
  446. Sw_buffer_cookie[20:18] = 3'b011: pattern 3 only
  447. Sw_buffer_cookie[20:18] = 3'b100: pattern 4 only
  448. Sw_buffer_cookie[20:18] = 3'b101: pattern 5 only
  449. Sw_buffer_cookie[20:18] = 3'b110: pattern 6 only
  450. Sw_buffer_cookie[20:18] = 3'b111: pattern 7 only
  451. Note: a punctured transmission is indicated by the
  452. presence of TLV TX_PUNCTURE_SETUP embedded in the scheduler
  453. TLV
  454. <legal all>
  455. */
  456. #define RX_REO_QUEUE_EXT_7_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000001c
  457. #define RX_REO_QUEUE_EXT_7_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 11
  458. #define RX_REO_QUEUE_EXT_7_MPDU_LINK_POINTER_2_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff800
  459. /* EXTERNAL REFERENCE : struct rx_mpdu_link_ptr mpdu_link_pointer_3 */
  460. /* EXTERNAL REFERENCE : struct buffer_addr_info mpdu_link_desc_addr_info */
  461. /* Description RX_REO_QUEUE_EXT_8_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0
  462. Address (lower 32 bits) of the MSDU buffer OR
  463. MSDU_EXTENSION descriptor OR Link Descriptor
  464. In case of 'NULL' pointer, this field is set to 0
  465. <legal all>
  466. */
  467. #define RX_REO_QUEUE_EXT_8_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000020
  468. #define RX_REO_QUEUE_EXT_8_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
  469. #define RX_REO_QUEUE_EXT_8_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
  470. /* Description RX_REO_QUEUE_EXT_9_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32
  471. Address (upper 8 bits) of the MSDU buffer OR
  472. MSDU_EXTENSION descriptor OR Link Descriptor
  473. In case of 'NULL' pointer, this field is set to 0
  474. <legal all>
  475. */
  476. #define RX_REO_QUEUE_EXT_9_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000024
  477. #define RX_REO_QUEUE_EXT_9_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
  478. #define RX_REO_QUEUE_EXT_9_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
  479. /* Description RX_REO_QUEUE_EXT_9_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER
  480. Consumer: WBM
  481. Producer: SW/FW
  482. In case of 'NULL' pointer, this field is set to 0
  483. Indicates to which buffer manager the buffer OR
  484. MSDU_EXTENSION descriptor OR link descriptor that is being
  485. pointed to shall be returned after the frame has been
  486. processed. It is used by WBM for routing purposes.
  487. <enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
  488. to the WMB buffer idle list
  489. <enum 1 WBM_IDLE_DESC_LIST> This buffer shall be
  490. returned to the WMB idle link descriptor idle list
  491. <enum 2 FW_BM> This buffer shall be returned to the FW
  492. <enum 3 SW0_BM> This buffer shall be returned to the SW,
  493. ring 0
  494. <enum 4 SW1_BM> This buffer shall be returned to the SW,
  495. ring 1
  496. <enum 5 SW2_BM> This buffer shall be returned to the SW,
  497. ring 2
  498. <enum 6 SW3_BM> This buffer shall be returned to the SW,
  499. ring 3
  500. <enum 7 SW4_BM> This buffer shall be returned to the SW,
  501. ring 3
  502. <legal all>
  503. */
  504. #define RX_REO_QUEUE_EXT_9_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000024
  505. #define RX_REO_QUEUE_EXT_9_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
  506. #define RX_REO_QUEUE_EXT_9_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000700
  507. /* Description RX_REO_QUEUE_EXT_9_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE
  508. Cookie field exclusively used by SW.
  509. In case of 'NULL' pointer, this field is set to 0
  510. HW ignores the contents, accept that it passes the
  511. programmed value on to other descriptors together with the
  512. physical address
  513. Field can be used by SW to for example associate the
  514. buffers physical address with the virtual address
  515. The bit definitions as used by SW are within SW HLD
  516. specification
  517. NOTE:
  518. The three most significant bits can have a special
  519. meaning in case this struct is embedded in a TX_MPDU_DETAILS
  520. STRUCT, and field transmit_bw_restriction is set
  521. In case of NON punctured transmission:
  522. Sw_buffer_cookie[20:19] = 2'b00: 20 MHz TX only
  523. Sw_buffer_cookie[20:19] = 2'b01: 40 MHz TX only
  524. Sw_buffer_cookie[20:19] = 2'b10: 80 MHz TX only
  525. Sw_buffer_cookie[20:19] = 2'b11: 160 MHz TX only
  526. In case of punctured transmission:
  527. Sw_buffer_cookie[20:18] = 3'b000: pattern 0 only
  528. Sw_buffer_cookie[20:18] = 3'b001: pattern 1 only
  529. Sw_buffer_cookie[20:18] = 3'b010: pattern 2 only
  530. Sw_buffer_cookie[20:18] = 3'b011: pattern 3 only
  531. Sw_buffer_cookie[20:18] = 3'b100: pattern 4 only
  532. Sw_buffer_cookie[20:18] = 3'b101: pattern 5 only
  533. Sw_buffer_cookie[20:18] = 3'b110: pattern 6 only
  534. Sw_buffer_cookie[20:18] = 3'b111: pattern 7 only
  535. Note: a punctured transmission is indicated by the
  536. presence of TLV TX_PUNCTURE_SETUP embedded in the scheduler
  537. TLV
  538. <legal all>
  539. */
  540. #define RX_REO_QUEUE_EXT_9_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000024
  541. #define RX_REO_QUEUE_EXT_9_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 11
  542. #define RX_REO_QUEUE_EXT_9_MPDU_LINK_POINTER_3_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff800
  543. /* EXTERNAL REFERENCE : struct rx_mpdu_link_ptr mpdu_link_pointer_4 */
  544. /* EXTERNAL REFERENCE : struct buffer_addr_info mpdu_link_desc_addr_info */
  545. /* Description RX_REO_QUEUE_EXT_10_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0
  546. Address (lower 32 bits) of the MSDU buffer OR
  547. MSDU_EXTENSION descriptor OR Link Descriptor
  548. In case of 'NULL' pointer, this field is set to 0
  549. <legal all>
  550. */
  551. #define RX_REO_QUEUE_EXT_10_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000028
  552. #define RX_REO_QUEUE_EXT_10_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
  553. #define RX_REO_QUEUE_EXT_10_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
  554. /* Description RX_REO_QUEUE_EXT_11_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32
  555. Address (upper 8 bits) of the MSDU buffer OR
  556. MSDU_EXTENSION descriptor OR Link Descriptor
  557. In case of 'NULL' pointer, this field is set to 0
  558. <legal all>
  559. */
  560. #define RX_REO_QUEUE_EXT_11_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000002c
  561. #define RX_REO_QUEUE_EXT_11_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
  562. #define RX_REO_QUEUE_EXT_11_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
  563. /* Description RX_REO_QUEUE_EXT_11_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER
  564. Consumer: WBM
  565. Producer: SW/FW
  566. In case of 'NULL' pointer, this field is set to 0
  567. Indicates to which buffer manager the buffer OR
  568. MSDU_EXTENSION descriptor OR link descriptor that is being
  569. pointed to shall be returned after the frame has been
  570. processed. It is used by WBM for routing purposes.
  571. <enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
  572. to the WMB buffer idle list
  573. <enum 1 WBM_IDLE_DESC_LIST> This buffer shall be
  574. returned to the WMB idle link descriptor idle list
  575. <enum 2 FW_BM> This buffer shall be returned to the FW
  576. <enum 3 SW0_BM> This buffer shall be returned to the SW,
  577. ring 0
  578. <enum 4 SW1_BM> This buffer shall be returned to the SW,
  579. ring 1
  580. <enum 5 SW2_BM> This buffer shall be returned to the SW,
  581. ring 2
  582. <enum 6 SW3_BM> This buffer shall be returned to the SW,
  583. ring 3
  584. <enum 7 SW4_BM> This buffer shall be returned to the SW,
  585. ring 3
  586. <legal all>
  587. */
  588. #define RX_REO_QUEUE_EXT_11_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000002c
  589. #define RX_REO_QUEUE_EXT_11_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
  590. #define RX_REO_QUEUE_EXT_11_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000700
  591. /* Description RX_REO_QUEUE_EXT_11_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE
  592. Cookie field exclusively used by SW.
  593. In case of 'NULL' pointer, this field is set to 0
  594. HW ignores the contents, accept that it passes the
  595. programmed value on to other descriptors together with the
  596. physical address
  597. Field can be used by SW to for example associate the
  598. buffers physical address with the virtual address
  599. The bit definitions as used by SW are within SW HLD
  600. specification
  601. NOTE:
  602. The three most significant bits can have a special
  603. meaning in case this struct is embedded in a TX_MPDU_DETAILS
  604. STRUCT, and field transmit_bw_restriction is set
  605. In case of NON punctured transmission:
  606. Sw_buffer_cookie[20:19] = 2'b00: 20 MHz TX only
  607. Sw_buffer_cookie[20:19] = 2'b01: 40 MHz TX only
  608. Sw_buffer_cookie[20:19] = 2'b10: 80 MHz TX only
  609. Sw_buffer_cookie[20:19] = 2'b11: 160 MHz TX only
  610. In case of punctured transmission:
  611. Sw_buffer_cookie[20:18] = 3'b000: pattern 0 only
  612. Sw_buffer_cookie[20:18] = 3'b001: pattern 1 only
  613. Sw_buffer_cookie[20:18] = 3'b010: pattern 2 only
  614. Sw_buffer_cookie[20:18] = 3'b011: pattern 3 only
  615. Sw_buffer_cookie[20:18] = 3'b100: pattern 4 only
  616. Sw_buffer_cookie[20:18] = 3'b101: pattern 5 only
  617. Sw_buffer_cookie[20:18] = 3'b110: pattern 6 only
  618. Sw_buffer_cookie[20:18] = 3'b111: pattern 7 only
  619. Note: a punctured transmission is indicated by the
  620. presence of TLV TX_PUNCTURE_SETUP embedded in the scheduler
  621. TLV
  622. <legal all>
  623. */
  624. #define RX_REO_QUEUE_EXT_11_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000002c
  625. #define RX_REO_QUEUE_EXT_11_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 11
  626. #define RX_REO_QUEUE_EXT_11_MPDU_LINK_POINTER_4_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff800
  627. /* EXTERNAL REFERENCE : struct rx_mpdu_link_ptr mpdu_link_pointer_5 */
  628. /* EXTERNAL REFERENCE : struct buffer_addr_info mpdu_link_desc_addr_info */
  629. /* Description RX_REO_QUEUE_EXT_12_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0
  630. Address (lower 32 bits) of the MSDU buffer OR
  631. MSDU_EXTENSION descriptor OR Link Descriptor
  632. In case of 'NULL' pointer, this field is set to 0
  633. <legal all>
  634. */
  635. #define RX_REO_QUEUE_EXT_12_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000030
  636. #define RX_REO_QUEUE_EXT_12_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
  637. #define RX_REO_QUEUE_EXT_12_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
  638. /* Description RX_REO_QUEUE_EXT_13_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32
  639. Address (upper 8 bits) of the MSDU buffer OR
  640. MSDU_EXTENSION descriptor OR Link Descriptor
  641. In case of 'NULL' pointer, this field is set to 0
  642. <legal all>
  643. */
  644. #define RX_REO_QUEUE_EXT_13_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000034
  645. #define RX_REO_QUEUE_EXT_13_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
  646. #define RX_REO_QUEUE_EXT_13_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
  647. /* Description RX_REO_QUEUE_EXT_13_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER
  648. Consumer: WBM
  649. Producer: SW/FW
  650. In case of 'NULL' pointer, this field is set to 0
  651. Indicates to which buffer manager the buffer OR
  652. MSDU_EXTENSION descriptor OR link descriptor that is being
  653. pointed to shall be returned after the frame has been
  654. processed. It is used by WBM for routing purposes.
  655. <enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
  656. to the WMB buffer idle list
  657. <enum 1 WBM_IDLE_DESC_LIST> This buffer shall be
  658. returned to the WMB idle link descriptor idle list
  659. <enum 2 FW_BM> This buffer shall be returned to the FW
  660. <enum 3 SW0_BM> This buffer shall be returned to the SW,
  661. ring 0
  662. <enum 4 SW1_BM> This buffer shall be returned to the SW,
  663. ring 1
  664. <enum 5 SW2_BM> This buffer shall be returned to the SW,
  665. ring 2
  666. <enum 6 SW3_BM> This buffer shall be returned to the SW,
  667. ring 3
  668. <enum 7 SW4_BM> This buffer shall be returned to the SW,
  669. ring 3
  670. <legal all>
  671. */
  672. #define RX_REO_QUEUE_EXT_13_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000034
  673. #define RX_REO_QUEUE_EXT_13_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
  674. #define RX_REO_QUEUE_EXT_13_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000700
  675. /* Description RX_REO_QUEUE_EXT_13_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE
  676. Cookie field exclusively used by SW.
  677. In case of 'NULL' pointer, this field is set to 0
  678. HW ignores the contents, accept that it passes the
  679. programmed value on to other descriptors together with the
  680. physical address
  681. Field can be used by SW to for example associate the
  682. buffers physical address with the virtual address
  683. The bit definitions as used by SW are within SW HLD
  684. specification
  685. NOTE:
  686. The three most significant bits can have a special
  687. meaning in case this struct is embedded in a TX_MPDU_DETAILS
  688. STRUCT, and field transmit_bw_restriction is set
  689. In case of NON punctured transmission:
  690. Sw_buffer_cookie[20:19] = 2'b00: 20 MHz TX only
  691. Sw_buffer_cookie[20:19] = 2'b01: 40 MHz TX only
  692. Sw_buffer_cookie[20:19] = 2'b10: 80 MHz TX only
  693. Sw_buffer_cookie[20:19] = 2'b11: 160 MHz TX only
  694. In case of punctured transmission:
  695. Sw_buffer_cookie[20:18] = 3'b000: pattern 0 only
  696. Sw_buffer_cookie[20:18] = 3'b001: pattern 1 only
  697. Sw_buffer_cookie[20:18] = 3'b010: pattern 2 only
  698. Sw_buffer_cookie[20:18] = 3'b011: pattern 3 only
  699. Sw_buffer_cookie[20:18] = 3'b100: pattern 4 only
  700. Sw_buffer_cookie[20:18] = 3'b101: pattern 5 only
  701. Sw_buffer_cookie[20:18] = 3'b110: pattern 6 only
  702. Sw_buffer_cookie[20:18] = 3'b111: pattern 7 only
  703. Note: a punctured transmission is indicated by the
  704. presence of TLV TX_PUNCTURE_SETUP embedded in the scheduler
  705. TLV
  706. <legal all>
  707. */
  708. #define RX_REO_QUEUE_EXT_13_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000034
  709. #define RX_REO_QUEUE_EXT_13_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 11
  710. #define RX_REO_QUEUE_EXT_13_MPDU_LINK_POINTER_5_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff800
  711. /* EXTERNAL REFERENCE : struct rx_mpdu_link_ptr mpdu_link_pointer_6 */
  712. /* EXTERNAL REFERENCE : struct buffer_addr_info mpdu_link_desc_addr_info */
  713. /* Description RX_REO_QUEUE_EXT_14_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0
  714. Address (lower 32 bits) of the MSDU buffer OR
  715. MSDU_EXTENSION descriptor OR Link Descriptor
  716. In case of 'NULL' pointer, this field is set to 0
  717. <legal all>
  718. */
  719. #define RX_REO_QUEUE_EXT_14_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000038
  720. #define RX_REO_QUEUE_EXT_14_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
  721. #define RX_REO_QUEUE_EXT_14_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
  722. /* Description RX_REO_QUEUE_EXT_15_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32
  723. Address (upper 8 bits) of the MSDU buffer OR
  724. MSDU_EXTENSION descriptor OR Link Descriptor
  725. In case of 'NULL' pointer, this field is set to 0
  726. <legal all>
  727. */
  728. #define RX_REO_QUEUE_EXT_15_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000003c
  729. #define RX_REO_QUEUE_EXT_15_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
  730. #define RX_REO_QUEUE_EXT_15_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
  731. /* Description RX_REO_QUEUE_EXT_15_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER
  732. Consumer: WBM
  733. Producer: SW/FW
  734. In case of 'NULL' pointer, this field is set to 0
  735. Indicates to which buffer manager the buffer OR
  736. MSDU_EXTENSION descriptor OR link descriptor that is being
  737. pointed to shall be returned after the frame has been
  738. processed. It is used by WBM for routing purposes.
  739. <enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
  740. to the WMB buffer idle list
  741. <enum 1 WBM_IDLE_DESC_LIST> This buffer shall be
  742. returned to the WMB idle link descriptor idle list
  743. <enum 2 FW_BM> This buffer shall be returned to the FW
  744. <enum 3 SW0_BM> This buffer shall be returned to the SW,
  745. ring 0
  746. <enum 4 SW1_BM> This buffer shall be returned to the SW,
  747. ring 1
  748. <enum 5 SW2_BM> This buffer shall be returned to the SW,
  749. ring 2
  750. <enum 6 SW3_BM> This buffer shall be returned to the SW,
  751. ring 3
  752. <enum 7 SW4_BM> This buffer shall be returned to the SW,
  753. ring 3
  754. <legal all>
  755. */
  756. #define RX_REO_QUEUE_EXT_15_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000003c
  757. #define RX_REO_QUEUE_EXT_15_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
  758. #define RX_REO_QUEUE_EXT_15_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000700
  759. /* Description RX_REO_QUEUE_EXT_15_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE
  760. Cookie field exclusively used by SW.
  761. In case of 'NULL' pointer, this field is set to 0
  762. HW ignores the contents, accept that it passes the
  763. programmed value on to other descriptors together with the
  764. physical address
  765. Field can be used by SW to for example associate the
  766. buffers physical address with the virtual address
  767. The bit definitions as used by SW are within SW HLD
  768. specification
  769. NOTE:
  770. The three most significant bits can have a special
  771. meaning in case this struct is embedded in a TX_MPDU_DETAILS
  772. STRUCT, and field transmit_bw_restriction is set
  773. In case of NON punctured transmission:
  774. Sw_buffer_cookie[20:19] = 2'b00: 20 MHz TX only
  775. Sw_buffer_cookie[20:19] = 2'b01: 40 MHz TX only
  776. Sw_buffer_cookie[20:19] = 2'b10: 80 MHz TX only
  777. Sw_buffer_cookie[20:19] = 2'b11: 160 MHz TX only
  778. In case of punctured transmission:
  779. Sw_buffer_cookie[20:18] = 3'b000: pattern 0 only
  780. Sw_buffer_cookie[20:18] = 3'b001: pattern 1 only
  781. Sw_buffer_cookie[20:18] = 3'b010: pattern 2 only
  782. Sw_buffer_cookie[20:18] = 3'b011: pattern 3 only
  783. Sw_buffer_cookie[20:18] = 3'b100: pattern 4 only
  784. Sw_buffer_cookie[20:18] = 3'b101: pattern 5 only
  785. Sw_buffer_cookie[20:18] = 3'b110: pattern 6 only
  786. Sw_buffer_cookie[20:18] = 3'b111: pattern 7 only
  787. Note: a punctured transmission is indicated by the
  788. presence of TLV TX_PUNCTURE_SETUP embedded in the scheduler
  789. TLV
  790. <legal all>
  791. */
  792. #define RX_REO_QUEUE_EXT_15_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000003c
  793. #define RX_REO_QUEUE_EXT_15_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 11
  794. #define RX_REO_QUEUE_EXT_15_MPDU_LINK_POINTER_6_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff800
  795. /* EXTERNAL REFERENCE : struct rx_mpdu_link_ptr mpdu_link_pointer_7 */
  796. /* EXTERNAL REFERENCE : struct buffer_addr_info mpdu_link_desc_addr_info */
  797. /* Description RX_REO_QUEUE_EXT_16_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0
  798. Address (lower 32 bits) of the MSDU buffer OR
  799. MSDU_EXTENSION descriptor OR Link Descriptor
  800. In case of 'NULL' pointer, this field is set to 0
  801. <legal all>
  802. */
  803. #define RX_REO_QUEUE_EXT_16_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000040
  804. #define RX_REO_QUEUE_EXT_16_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
  805. #define RX_REO_QUEUE_EXT_16_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
  806. /* Description RX_REO_QUEUE_EXT_17_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32
  807. Address (upper 8 bits) of the MSDU buffer OR
  808. MSDU_EXTENSION descriptor OR Link Descriptor
  809. In case of 'NULL' pointer, this field is set to 0
  810. <legal all>
  811. */
  812. #define RX_REO_QUEUE_EXT_17_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000044
  813. #define RX_REO_QUEUE_EXT_17_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
  814. #define RX_REO_QUEUE_EXT_17_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
  815. /* Description RX_REO_QUEUE_EXT_17_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER
  816. Consumer: WBM
  817. Producer: SW/FW
  818. In case of 'NULL' pointer, this field is set to 0
  819. Indicates to which buffer manager the buffer OR
  820. MSDU_EXTENSION descriptor OR link descriptor that is being
  821. pointed to shall be returned after the frame has been
  822. processed. It is used by WBM for routing purposes.
  823. <enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
  824. to the WMB buffer idle list
  825. <enum 1 WBM_IDLE_DESC_LIST> This buffer shall be
  826. returned to the WMB idle link descriptor idle list
  827. <enum 2 FW_BM> This buffer shall be returned to the FW
  828. <enum 3 SW0_BM> This buffer shall be returned to the SW,
  829. ring 0
  830. <enum 4 SW1_BM> This buffer shall be returned to the SW,
  831. ring 1
  832. <enum 5 SW2_BM> This buffer shall be returned to the SW,
  833. ring 2
  834. <enum 6 SW3_BM> This buffer shall be returned to the SW,
  835. ring 3
  836. <enum 7 SW4_BM> This buffer shall be returned to the SW,
  837. ring 3
  838. <legal all>
  839. */
  840. #define RX_REO_QUEUE_EXT_17_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000044
  841. #define RX_REO_QUEUE_EXT_17_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
  842. #define RX_REO_QUEUE_EXT_17_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000700
  843. /* Description RX_REO_QUEUE_EXT_17_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE
  844. Cookie field exclusively used by SW.
  845. In case of 'NULL' pointer, this field is set to 0
  846. HW ignores the contents, accept that it passes the
  847. programmed value on to other descriptors together with the
  848. physical address
  849. Field can be used by SW to for example associate the
  850. buffers physical address with the virtual address
  851. The bit definitions as used by SW are within SW HLD
  852. specification
  853. NOTE:
  854. The three most significant bits can have a special
  855. meaning in case this struct is embedded in a TX_MPDU_DETAILS
  856. STRUCT, and field transmit_bw_restriction is set
  857. In case of NON punctured transmission:
  858. Sw_buffer_cookie[20:19] = 2'b00: 20 MHz TX only
  859. Sw_buffer_cookie[20:19] = 2'b01: 40 MHz TX only
  860. Sw_buffer_cookie[20:19] = 2'b10: 80 MHz TX only
  861. Sw_buffer_cookie[20:19] = 2'b11: 160 MHz TX only
  862. In case of punctured transmission:
  863. Sw_buffer_cookie[20:18] = 3'b000: pattern 0 only
  864. Sw_buffer_cookie[20:18] = 3'b001: pattern 1 only
  865. Sw_buffer_cookie[20:18] = 3'b010: pattern 2 only
  866. Sw_buffer_cookie[20:18] = 3'b011: pattern 3 only
  867. Sw_buffer_cookie[20:18] = 3'b100: pattern 4 only
  868. Sw_buffer_cookie[20:18] = 3'b101: pattern 5 only
  869. Sw_buffer_cookie[20:18] = 3'b110: pattern 6 only
  870. Sw_buffer_cookie[20:18] = 3'b111: pattern 7 only
  871. Note: a punctured transmission is indicated by the
  872. presence of TLV TX_PUNCTURE_SETUP embedded in the scheduler
  873. TLV
  874. <legal all>
  875. */
  876. #define RX_REO_QUEUE_EXT_17_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000044
  877. #define RX_REO_QUEUE_EXT_17_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 11
  878. #define RX_REO_QUEUE_EXT_17_MPDU_LINK_POINTER_7_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff800
  879. /* EXTERNAL REFERENCE : struct rx_mpdu_link_ptr mpdu_link_pointer_8 */
  880. /* EXTERNAL REFERENCE : struct buffer_addr_info mpdu_link_desc_addr_info */
  881. /* Description RX_REO_QUEUE_EXT_18_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0
  882. Address (lower 32 bits) of the MSDU buffer OR
  883. MSDU_EXTENSION descriptor OR Link Descriptor
  884. In case of 'NULL' pointer, this field is set to 0
  885. <legal all>
  886. */
  887. #define RX_REO_QUEUE_EXT_18_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000048
  888. #define RX_REO_QUEUE_EXT_18_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
  889. #define RX_REO_QUEUE_EXT_18_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
  890. /* Description RX_REO_QUEUE_EXT_19_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32
  891. Address (upper 8 bits) of the MSDU buffer OR
  892. MSDU_EXTENSION descriptor OR Link Descriptor
  893. In case of 'NULL' pointer, this field is set to 0
  894. <legal all>
  895. */
  896. #define RX_REO_QUEUE_EXT_19_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000004c
  897. #define RX_REO_QUEUE_EXT_19_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
  898. #define RX_REO_QUEUE_EXT_19_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
  899. /* Description RX_REO_QUEUE_EXT_19_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER
  900. Consumer: WBM
  901. Producer: SW/FW
  902. In case of 'NULL' pointer, this field is set to 0
  903. Indicates to which buffer manager the buffer OR
  904. MSDU_EXTENSION descriptor OR link descriptor that is being
  905. pointed to shall be returned after the frame has been
  906. processed. It is used by WBM for routing purposes.
  907. <enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
  908. to the WMB buffer idle list
  909. <enum 1 WBM_IDLE_DESC_LIST> This buffer shall be
  910. returned to the WMB idle link descriptor idle list
  911. <enum 2 FW_BM> This buffer shall be returned to the FW
  912. <enum 3 SW0_BM> This buffer shall be returned to the SW,
  913. ring 0
  914. <enum 4 SW1_BM> This buffer shall be returned to the SW,
  915. ring 1
  916. <enum 5 SW2_BM> This buffer shall be returned to the SW,
  917. ring 2
  918. <enum 6 SW3_BM> This buffer shall be returned to the SW,
  919. ring 3
  920. <enum 7 SW4_BM> This buffer shall be returned to the SW,
  921. ring 3
  922. <legal all>
  923. */
  924. #define RX_REO_QUEUE_EXT_19_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000004c
  925. #define RX_REO_QUEUE_EXT_19_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
  926. #define RX_REO_QUEUE_EXT_19_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000700
  927. /* Description RX_REO_QUEUE_EXT_19_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE
  928. Cookie field exclusively used by SW.
  929. In case of 'NULL' pointer, this field is set to 0
  930. HW ignores the contents, accept that it passes the
  931. programmed value on to other descriptors together with the
  932. physical address
  933. Field can be used by SW to for example associate the
  934. buffers physical address with the virtual address
  935. The bit definitions as used by SW are within SW HLD
  936. specification
  937. NOTE:
  938. The three most significant bits can have a special
  939. meaning in case this struct is embedded in a TX_MPDU_DETAILS
  940. STRUCT, and field transmit_bw_restriction is set
  941. In case of NON punctured transmission:
  942. Sw_buffer_cookie[20:19] = 2'b00: 20 MHz TX only
  943. Sw_buffer_cookie[20:19] = 2'b01: 40 MHz TX only
  944. Sw_buffer_cookie[20:19] = 2'b10: 80 MHz TX only
  945. Sw_buffer_cookie[20:19] = 2'b11: 160 MHz TX only
  946. In case of punctured transmission:
  947. Sw_buffer_cookie[20:18] = 3'b000: pattern 0 only
  948. Sw_buffer_cookie[20:18] = 3'b001: pattern 1 only
  949. Sw_buffer_cookie[20:18] = 3'b010: pattern 2 only
  950. Sw_buffer_cookie[20:18] = 3'b011: pattern 3 only
  951. Sw_buffer_cookie[20:18] = 3'b100: pattern 4 only
  952. Sw_buffer_cookie[20:18] = 3'b101: pattern 5 only
  953. Sw_buffer_cookie[20:18] = 3'b110: pattern 6 only
  954. Sw_buffer_cookie[20:18] = 3'b111: pattern 7 only
  955. Note: a punctured transmission is indicated by the
  956. presence of TLV TX_PUNCTURE_SETUP embedded in the scheduler
  957. TLV
  958. <legal all>
  959. */
  960. #define RX_REO_QUEUE_EXT_19_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000004c
  961. #define RX_REO_QUEUE_EXT_19_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 11
  962. #define RX_REO_QUEUE_EXT_19_MPDU_LINK_POINTER_8_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff800
  963. /* EXTERNAL REFERENCE : struct rx_mpdu_link_ptr mpdu_link_pointer_9 */
  964. /* EXTERNAL REFERENCE : struct buffer_addr_info mpdu_link_desc_addr_info */
  965. /* Description RX_REO_QUEUE_EXT_20_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0
  966. Address (lower 32 bits) of the MSDU buffer OR
  967. MSDU_EXTENSION descriptor OR Link Descriptor
  968. In case of 'NULL' pointer, this field is set to 0
  969. <legal all>
  970. */
  971. #define RX_REO_QUEUE_EXT_20_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000050
  972. #define RX_REO_QUEUE_EXT_20_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
  973. #define RX_REO_QUEUE_EXT_20_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
  974. /* Description RX_REO_QUEUE_EXT_21_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32
  975. Address (upper 8 bits) of the MSDU buffer OR
  976. MSDU_EXTENSION descriptor OR Link Descriptor
  977. In case of 'NULL' pointer, this field is set to 0
  978. <legal all>
  979. */
  980. #define RX_REO_QUEUE_EXT_21_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000054
  981. #define RX_REO_QUEUE_EXT_21_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
  982. #define RX_REO_QUEUE_EXT_21_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
  983. /* Description RX_REO_QUEUE_EXT_21_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER
  984. Consumer: WBM
  985. Producer: SW/FW
  986. In case of 'NULL' pointer, this field is set to 0
  987. Indicates to which buffer manager the buffer OR
  988. MSDU_EXTENSION descriptor OR link descriptor that is being
  989. pointed to shall be returned after the frame has been
  990. processed. It is used by WBM for routing purposes.
  991. <enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
  992. to the WMB buffer idle list
  993. <enum 1 WBM_IDLE_DESC_LIST> This buffer shall be
  994. returned to the WMB idle link descriptor idle list
  995. <enum 2 FW_BM> This buffer shall be returned to the FW
  996. <enum 3 SW0_BM> This buffer shall be returned to the SW,
  997. ring 0
  998. <enum 4 SW1_BM> This buffer shall be returned to the SW,
  999. ring 1
  1000. <enum 5 SW2_BM> This buffer shall be returned to the SW,
  1001. ring 2
  1002. <enum 6 SW3_BM> This buffer shall be returned to the SW,
  1003. ring 3
  1004. <enum 7 SW4_BM> This buffer shall be returned to the SW,
  1005. ring 3
  1006. <legal all>
  1007. */
  1008. #define RX_REO_QUEUE_EXT_21_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000054
  1009. #define RX_REO_QUEUE_EXT_21_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
  1010. #define RX_REO_QUEUE_EXT_21_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000700
  1011. /* Description RX_REO_QUEUE_EXT_21_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE
  1012. Cookie field exclusively used by SW.
  1013. In case of 'NULL' pointer, this field is set to 0
  1014. HW ignores the contents, accept that it passes the
  1015. programmed value on to other descriptors together with the
  1016. physical address
  1017. Field can be used by SW to for example associate the
  1018. buffers physical address with the virtual address
  1019. The bit definitions as used by SW are within SW HLD
  1020. specification
  1021. NOTE:
  1022. The three most significant bits can have a special
  1023. meaning in case this struct is embedded in a TX_MPDU_DETAILS
  1024. STRUCT, and field transmit_bw_restriction is set
  1025. In case of NON punctured transmission:
  1026. Sw_buffer_cookie[20:19] = 2'b00: 20 MHz TX only
  1027. Sw_buffer_cookie[20:19] = 2'b01: 40 MHz TX only
  1028. Sw_buffer_cookie[20:19] = 2'b10: 80 MHz TX only
  1029. Sw_buffer_cookie[20:19] = 2'b11: 160 MHz TX only
  1030. In case of punctured transmission:
  1031. Sw_buffer_cookie[20:18] = 3'b000: pattern 0 only
  1032. Sw_buffer_cookie[20:18] = 3'b001: pattern 1 only
  1033. Sw_buffer_cookie[20:18] = 3'b010: pattern 2 only
  1034. Sw_buffer_cookie[20:18] = 3'b011: pattern 3 only
  1035. Sw_buffer_cookie[20:18] = 3'b100: pattern 4 only
  1036. Sw_buffer_cookie[20:18] = 3'b101: pattern 5 only
  1037. Sw_buffer_cookie[20:18] = 3'b110: pattern 6 only
  1038. Sw_buffer_cookie[20:18] = 3'b111: pattern 7 only
  1039. Note: a punctured transmission is indicated by the
  1040. presence of TLV TX_PUNCTURE_SETUP embedded in the scheduler
  1041. TLV
  1042. <legal all>
  1043. */
  1044. #define RX_REO_QUEUE_EXT_21_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000054
  1045. #define RX_REO_QUEUE_EXT_21_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 11
  1046. #define RX_REO_QUEUE_EXT_21_MPDU_LINK_POINTER_9_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff800
  1047. /* EXTERNAL REFERENCE : struct rx_mpdu_link_ptr mpdu_link_pointer_10 */
  1048. /* EXTERNAL REFERENCE : struct buffer_addr_info mpdu_link_desc_addr_info */
  1049. /* Description RX_REO_QUEUE_EXT_22_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0
  1050. Address (lower 32 bits) of the MSDU buffer OR
  1051. MSDU_EXTENSION descriptor OR Link Descriptor
  1052. In case of 'NULL' pointer, this field is set to 0
  1053. <legal all>
  1054. */
  1055. #define RX_REO_QUEUE_EXT_22_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000058
  1056. #define RX_REO_QUEUE_EXT_22_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
  1057. #define RX_REO_QUEUE_EXT_22_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
  1058. /* Description RX_REO_QUEUE_EXT_23_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32
  1059. Address (upper 8 bits) of the MSDU buffer OR
  1060. MSDU_EXTENSION descriptor OR Link Descriptor
  1061. In case of 'NULL' pointer, this field is set to 0
  1062. <legal all>
  1063. */
  1064. #define RX_REO_QUEUE_EXT_23_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000005c
  1065. #define RX_REO_QUEUE_EXT_23_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
  1066. #define RX_REO_QUEUE_EXT_23_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
  1067. /* Description RX_REO_QUEUE_EXT_23_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER
  1068. Consumer: WBM
  1069. Producer: SW/FW
  1070. In case of 'NULL' pointer, this field is set to 0
  1071. Indicates to which buffer manager the buffer OR
  1072. MSDU_EXTENSION descriptor OR link descriptor that is being
  1073. pointed to shall be returned after the frame has been
  1074. processed. It is used by WBM for routing purposes.
  1075. <enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
  1076. to the WMB buffer idle list
  1077. <enum 1 WBM_IDLE_DESC_LIST> This buffer shall be
  1078. returned to the WMB idle link descriptor idle list
  1079. <enum 2 FW_BM> This buffer shall be returned to the FW
  1080. <enum 3 SW0_BM> This buffer shall be returned to the SW,
  1081. ring 0
  1082. <enum 4 SW1_BM> This buffer shall be returned to the SW,
  1083. ring 1
  1084. <enum 5 SW2_BM> This buffer shall be returned to the SW,
  1085. ring 2
  1086. <enum 6 SW3_BM> This buffer shall be returned to the SW,
  1087. ring 3
  1088. <enum 7 SW4_BM> This buffer shall be returned to the SW,
  1089. ring 3
  1090. <legal all>
  1091. */
  1092. #define RX_REO_QUEUE_EXT_23_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000005c
  1093. #define RX_REO_QUEUE_EXT_23_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
  1094. #define RX_REO_QUEUE_EXT_23_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000700
  1095. /* Description RX_REO_QUEUE_EXT_23_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE
  1096. Cookie field exclusively used by SW.
  1097. In case of 'NULL' pointer, this field is set to 0
  1098. HW ignores the contents, accept that it passes the
  1099. programmed value on to other descriptors together with the
  1100. physical address
  1101. Field can be used by SW to for example associate the
  1102. buffers physical address with the virtual address
  1103. The bit definitions as used by SW are within SW HLD
  1104. specification
  1105. NOTE:
  1106. The three most significant bits can have a special
  1107. meaning in case this struct is embedded in a TX_MPDU_DETAILS
  1108. STRUCT, and field transmit_bw_restriction is set
  1109. In case of NON punctured transmission:
  1110. Sw_buffer_cookie[20:19] = 2'b00: 20 MHz TX only
  1111. Sw_buffer_cookie[20:19] = 2'b01: 40 MHz TX only
  1112. Sw_buffer_cookie[20:19] = 2'b10: 80 MHz TX only
  1113. Sw_buffer_cookie[20:19] = 2'b11: 160 MHz TX only
  1114. In case of punctured transmission:
  1115. Sw_buffer_cookie[20:18] = 3'b000: pattern 0 only
  1116. Sw_buffer_cookie[20:18] = 3'b001: pattern 1 only
  1117. Sw_buffer_cookie[20:18] = 3'b010: pattern 2 only
  1118. Sw_buffer_cookie[20:18] = 3'b011: pattern 3 only
  1119. Sw_buffer_cookie[20:18] = 3'b100: pattern 4 only
  1120. Sw_buffer_cookie[20:18] = 3'b101: pattern 5 only
  1121. Sw_buffer_cookie[20:18] = 3'b110: pattern 6 only
  1122. Sw_buffer_cookie[20:18] = 3'b111: pattern 7 only
  1123. Note: a punctured transmission is indicated by the
  1124. presence of TLV TX_PUNCTURE_SETUP embedded in the scheduler
  1125. TLV
  1126. <legal all>
  1127. */
  1128. #define RX_REO_QUEUE_EXT_23_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000005c
  1129. #define RX_REO_QUEUE_EXT_23_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 11
  1130. #define RX_REO_QUEUE_EXT_23_MPDU_LINK_POINTER_10_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff800
  1131. /* EXTERNAL REFERENCE : struct rx_mpdu_link_ptr mpdu_link_pointer_11 */
  1132. /* EXTERNAL REFERENCE : struct buffer_addr_info mpdu_link_desc_addr_info */
  1133. /* Description RX_REO_QUEUE_EXT_24_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0
  1134. Address (lower 32 bits) of the MSDU buffer OR
  1135. MSDU_EXTENSION descriptor OR Link Descriptor
  1136. In case of 'NULL' pointer, this field is set to 0
  1137. <legal all>
  1138. */
  1139. #define RX_REO_QUEUE_EXT_24_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000060
  1140. #define RX_REO_QUEUE_EXT_24_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
  1141. #define RX_REO_QUEUE_EXT_24_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
  1142. /* Description RX_REO_QUEUE_EXT_25_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32
  1143. Address (upper 8 bits) of the MSDU buffer OR
  1144. MSDU_EXTENSION descriptor OR Link Descriptor
  1145. In case of 'NULL' pointer, this field is set to 0
  1146. <legal all>
  1147. */
  1148. #define RX_REO_QUEUE_EXT_25_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000064
  1149. #define RX_REO_QUEUE_EXT_25_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
  1150. #define RX_REO_QUEUE_EXT_25_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
  1151. /* Description RX_REO_QUEUE_EXT_25_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER
  1152. Consumer: WBM
  1153. Producer: SW/FW
  1154. In case of 'NULL' pointer, this field is set to 0
  1155. Indicates to which buffer manager the buffer OR
  1156. MSDU_EXTENSION descriptor OR link descriptor that is being
  1157. pointed to shall be returned after the frame has been
  1158. processed. It is used by WBM for routing purposes.
  1159. <enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
  1160. to the WMB buffer idle list
  1161. <enum 1 WBM_IDLE_DESC_LIST> This buffer shall be
  1162. returned to the WMB idle link descriptor idle list
  1163. <enum 2 FW_BM> This buffer shall be returned to the FW
  1164. <enum 3 SW0_BM> This buffer shall be returned to the SW,
  1165. ring 0
  1166. <enum 4 SW1_BM> This buffer shall be returned to the SW,
  1167. ring 1
  1168. <enum 5 SW2_BM> This buffer shall be returned to the SW,
  1169. ring 2
  1170. <enum 6 SW3_BM> This buffer shall be returned to the SW,
  1171. ring 3
  1172. <enum 7 SW4_BM> This buffer shall be returned to the SW,
  1173. ring 3
  1174. <legal all>
  1175. */
  1176. #define RX_REO_QUEUE_EXT_25_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000064
  1177. #define RX_REO_QUEUE_EXT_25_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
  1178. #define RX_REO_QUEUE_EXT_25_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000700
  1179. /* Description RX_REO_QUEUE_EXT_25_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE
  1180. Cookie field exclusively used by SW.
  1181. In case of 'NULL' pointer, this field is set to 0
  1182. HW ignores the contents, accept that it passes the
  1183. programmed value on to other descriptors together with the
  1184. physical address
  1185. Field can be used by SW to for example associate the
  1186. buffers physical address with the virtual address
  1187. The bit definitions as used by SW are within SW HLD
  1188. specification
  1189. NOTE:
  1190. The three most significant bits can have a special
  1191. meaning in case this struct is embedded in a TX_MPDU_DETAILS
  1192. STRUCT, and field transmit_bw_restriction is set
  1193. In case of NON punctured transmission:
  1194. Sw_buffer_cookie[20:19] = 2'b00: 20 MHz TX only
  1195. Sw_buffer_cookie[20:19] = 2'b01: 40 MHz TX only
  1196. Sw_buffer_cookie[20:19] = 2'b10: 80 MHz TX only
  1197. Sw_buffer_cookie[20:19] = 2'b11: 160 MHz TX only
  1198. In case of punctured transmission:
  1199. Sw_buffer_cookie[20:18] = 3'b000: pattern 0 only
  1200. Sw_buffer_cookie[20:18] = 3'b001: pattern 1 only
  1201. Sw_buffer_cookie[20:18] = 3'b010: pattern 2 only
  1202. Sw_buffer_cookie[20:18] = 3'b011: pattern 3 only
  1203. Sw_buffer_cookie[20:18] = 3'b100: pattern 4 only
  1204. Sw_buffer_cookie[20:18] = 3'b101: pattern 5 only
  1205. Sw_buffer_cookie[20:18] = 3'b110: pattern 6 only
  1206. Sw_buffer_cookie[20:18] = 3'b111: pattern 7 only
  1207. Note: a punctured transmission is indicated by the
  1208. presence of TLV TX_PUNCTURE_SETUP embedded in the scheduler
  1209. TLV
  1210. <legal all>
  1211. */
  1212. #define RX_REO_QUEUE_EXT_25_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000064
  1213. #define RX_REO_QUEUE_EXT_25_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 11
  1214. #define RX_REO_QUEUE_EXT_25_MPDU_LINK_POINTER_11_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff800
  1215. /* EXTERNAL REFERENCE : struct rx_mpdu_link_ptr mpdu_link_pointer_12 */
  1216. /* EXTERNAL REFERENCE : struct buffer_addr_info mpdu_link_desc_addr_info */
  1217. /* Description RX_REO_QUEUE_EXT_26_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0
  1218. Address (lower 32 bits) of the MSDU buffer OR
  1219. MSDU_EXTENSION descriptor OR Link Descriptor
  1220. In case of 'NULL' pointer, this field is set to 0
  1221. <legal all>
  1222. */
  1223. #define RX_REO_QUEUE_EXT_26_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000068
  1224. #define RX_REO_QUEUE_EXT_26_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
  1225. #define RX_REO_QUEUE_EXT_26_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
  1226. /* Description RX_REO_QUEUE_EXT_27_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32
  1227. Address (upper 8 bits) of the MSDU buffer OR
  1228. MSDU_EXTENSION descriptor OR Link Descriptor
  1229. In case of 'NULL' pointer, this field is set to 0
  1230. <legal all>
  1231. */
  1232. #define RX_REO_QUEUE_EXT_27_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000006c
  1233. #define RX_REO_QUEUE_EXT_27_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
  1234. #define RX_REO_QUEUE_EXT_27_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
  1235. /* Description RX_REO_QUEUE_EXT_27_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER
  1236. Consumer: WBM
  1237. Producer: SW/FW
  1238. In case of 'NULL' pointer, this field is set to 0
  1239. Indicates to which buffer manager the buffer OR
  1240. MSDU_EXTENSION descriptor OR link descriptor that is being
  1241. pointed to shall be returned after the frame has been
  1242. processed. It is used by WBM for routing purposes.
  1243. <enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
  1244. to the WMB buffer idle list
  1245. <enum 1 WBM_IDLE_DESC_LIST> This buffer shall be
  1246. returned to the WMB idle link descriptor idle list
  1247. <enum 2 FW_BM> This buffer shall be returned to the FW
  1248. <enum 3 SW0_BM> This buffer shall be returned to the SW,
  1249. ring 0
  1250. <enum 4 SW1_BM> This buffer shall be returned to the SW,
  1251. ring 1
  1252. <enum 5 SW2_BM> This buffer shall be returned to the SW,
  1253. ring 2
  1254. <enum 6 SW3_BM> This buffer shall be returned to the SW,
  1255. ring 3
  1256. <enum 7 SW4_BM> This buffer shall be returned to the SW,
  1257. ring 3
  1258. <legal all>
  1259. */
  1260. #define RX_REO_QUEUE_EXT_27_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000006c
  1261. #define RX_REO_QUEUE_EXT_27_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
  1262. #define RX_REO_QUEUE_EXT_27_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000700
  1263. /* Description RX_REO_QUEUE_EXT_27_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE
  1264. Cookie field exclusively used by SW.
  1265. In case of 'NULL' pointer, this field is set to 0
  1266. HW ignores the contents, accept that it passes the
  1267. programmed value on to other descriptors together with the
  1268. physical address
  1269. Field can be used by SW to for example associate the
  1270. buffers physical address with the virtual address
  1271. The bit definitions as used by SW are within SW HLD
  1272. specification
  1273. NOTE:
  1274. The three most significant bits can have a special
  1275. meaning in case this struct is embedded in a TX_MPDU_DETAILS
  1276. STRUCT, and field transmit_bw_restriction is set
  1277. In case of NON punctured transmission:
  1278. Sw_buffer_cookie[20:19] = 2'b00: 20 MHz TX only
  1279. Sw_buffer_cookie[20:19] = 2'b01: 40 MHz TX only
  1280. Sw_buffer_cookie[20:19] = 2'b10: 80 MHz TX only
  1281. Sw_buffer_cookie[20:19] = 2'b11: 160 MHz TX only
  1282. In case of punctured transmission:
  1283. Sw_buffer_cookie[20:18] = 3'b000: pattern 0 only
  1284. Sw_buffer_cookie[20:18] = 3'b001: pattern 1 only
  1285. Sw_buffer_cookie[20:18] = 3'b010: pattern 2 only
  1286. Sw_buffer_cookie[20:18] = 3'b011: pattern 3 only
  1287. Sw_buffer_cookie[20:18] = 3'b100: pattern 4 only
  1288. Sw_buffer_cookie[20:18] = 3'b101: pattern 5 only
  1289. Sw_buffer_cookie[20:18] = 3'b110: pattern 6 only
  1290. Sw_buffer_cookie[20:18] = 3'b111: pattern 7 only
  1291. Note: a punctured transmission is indicated by the
  1292. presence of TLV TX_PUNCTURE_SETUP embedded in the scheduler
  1293. TLV
  1294. <legal all>
  1295. */
  1296. #define RX_REO_QUEUE_EXT_27_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000006c
  1297. #define RX_REO_QUEUE_EXT_27_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 11
  1298. #define RX_REO_QUEUE_EXT_27_MPDU_LINK_POINTER_12_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff800
  1299. /* EXTERNAL REFERENCE : struct rx_mpdu_link_ptr mpdu_link_pointer_13 */
  1300. /* EXTERNAL REFERENCE : struct buffer_addr_info mpdu_link_desc_addr_info */
  1301. /* Description RX_REO_QUEUE_EXT_28_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0
  1302. Address (lower 32 bits) of the MSDU buffer OR
  1303. MSDU_EXTENSION descriptor OR Link Descriptor
  1304. In case of 'NULL' pointer, this field is set to 0
  1305. <legal all>
  1306. */
  1307. #define RX_REO_QUEUE_EXT_28_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000070
  1308. #define RX_REO_QUEUE_EXT_28_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
  1309. #define RX_REO_QUEUE_EXT_28_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
  1310. /* Description RX_REO_QUEUE_EXT_29_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32
  1311. Address (upper 8 bits) of the MSDU buffer OR
  1312. MSDU_EXTENSION descriptor OR Link Descriptor
  1313. In case of 'NULL' pointer, this field is set to 0
  1314. <legal all>
  1315. */
  1316. #define RX_REO_QUEUE_EXT_29_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x00000074
  1317. #define RX_REO_QUEUE_EXT_29_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
  1318. #define RX_REO_QUEUE_EXT_29_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
  1319. /* Description RX_REO_QUEUE_EXT_29_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER
  1320. Consumer: WBM
  1321. Producer: SW/FW
  1322. In case of 'NULL' pointer, this field is set to 0
  1323. Indicates to which buffer manager the buffer OR
  1324. MSDU_EXTENSION descriptor OR link descriptor that is being
  1325. pointed to shall be returned after the frame has been
  1326. processed. It is used by WBM for routing purposes.
  1327. <enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
  1328. to the WMB buffer idle list
  1329. <enum 1 WBM_IDLE_DESC_LIST> This buffer shall be
  1330. returned to the WMB idle link descriptor idle list
  1331. <enum 2 FW_BM> This buffer shall be returned to the FW
  1332. <enum 3 SW0_BM> This buffer shall be returned to the SW,
  1333. ring 0
  1334. <enum 4 SW1_BM> This buffer shall be returned to the SW,
  1335. ring 1
  1336. <enum 5 SW2_BM> This buffer shall be returned to the SW,
  1337. ring 2
  1338. <enum 6 SW3_BM> This buffer shall be returned to the SW,
  1339. ring 3
  1340. <enum 7 SW4_BM> This buffer shall be returned to the SW,
  1341. ring 3
  1342. <legal all>
  1343. */
  1344. #define RX_REO_QUEUE_EXT_29_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x00000074
  1345. #define RX_REO_QUEUE_EXT_29_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
  1346. #define RX_REO_QUEUE_EXT_29_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000700
  1347. /* Description RX_REO_QUEUE_EXT_29_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE
  1348. Cookie field exclusively used by SW.
  1349. In case of 'NULL' pointer, this field is set to 0
  1350. HW ignores the contents, accept that it passes the
  1351. programmed value on to other descriptors together with the
  1352. physical address
  1353. Field can be used by SW to for example associate the
  1354. buffers physical address with the virtual address
  1355. The bit definitions as used by SW are within SW HLD
  1356. specification
  1357. NOTE:
  1358. The three most significant bits can have a special
  1359. meaning in case this struct is embedded in a TX_MPDU_DETAILS
  1360. STRUCT, and field transmit_bw_restriction is set
  1361. In case of NON punctured transmission:
  1362. Sw_buffer_cookie[20:19] = 2'b00: 20 MHz TX only
  1363. Sw_buffer_cookie[20:19] = 2'b01: 40 MHz TX only
  1364. Sw_buffer_cookie[20:19] = 2'b10: 80 MHz TX only
  1365. Sw_buffer_cookie[20:19] = 2'b11: 160 MHz TX only
  1366. In case of punctured transmission:
  1367. Sw_buffer_cookie[20:18] = 3'b000: pattern 0 only
  1368. Sw_buffer_cookie[20:18] = 3'b001: pattern 1 only
  1369. Sw_buffer_cookie[20:18] = 3'b010: pattern 2 only
  1370. Sw_buffer_cookie[20:18] = 3'b011: pattern 3 only
  1371. Sw_buffer_cookie[20:18] = 3'b100: pattern 4 only
  1372. Sw_buffer_cookie[20:18] = 3'b101: pattern 5 only
  1373. Sw_buffer_cookie[20:18] = 3'b110: pattern 6 only
  1374. Sw_buffer_cookie[20:18] = 3'b111: pattern 7 only
  1375. Note: a punctured transmission is indicated by the
  1376. presence of TLV TX_PUNCTURE_SETUP embedded in the scheduler
  1377. TLV
  1378. <legal all>
  1379. */
  1380. #define RX_REO_QUEUE_EXT_29_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x00000074
  1381. #define RX_REO_QUEUE_EXT_29_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 11
  1382. #define RX_REO_QUEUE_EXT_29_MPDU_LINK_POINTER_13_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff800
  1383. /* EXTERNAL REFERENCE : struct rx_mpdu_link_ptr mpdu_link_pointer_14 */
  1384. /* EXTERNAL REFERENCE : struct buffer_addr_info mpdu_link_desc_addr_info */
  1385. /* Description RX_REO_QUEUE_EXT_30_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0
  1386. Address (lower 32 bits) of the MSDU buffer OR
  1387. MSDU_EXTENSION descriptor OR Link Descriptor
  1388. In case of 'NULL' pointer, this field is set to 0
  1389. <legal all>
  1390. */
  1391. #define RX_REO_QUEUE_EXT_30_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET 0x00000078
  1392. #define RX_REO_QUEUE_EXT_30_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_LSB 0
  1393. #define RX_REO_QUEUE_EXT_30_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_31_0_MASK 0xffffffff
  1394. /* Description RX_REO_QUEUE_EXT_31_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32
  1395. Address (upper 8 bits) of the MSDU buffer OR
  1396. MSDU_EXTENSION descriptor OR Link Descriptor
  1397. In case of 'NULL' pointer, this field is set to 0
  1398. <legal all>
  1399. */
  1400. #define RX_REO_QUEUE_EXT_31_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET 0x0000007c
  1401. #define RX_REO_QUEUE_EXT_31_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_LSB 0
  1402. #define RX_REO_QUEUE_EXT_31_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_BUFFER_ADDR_39_32_MASK 0x000000ff
  1403. /* Description RX_REO_QUEUE_EXT_31_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER
  1404. Consumer: WBM
  1405. Producer: SW/FW
  1406. In case of 'NULL' pointer, this field is set to 0
  1407. Indicates to which buffer manager the buffer OR
  1408. MSDU_EXTENSION descriptor OR link descriptor that is being
  1409. pointed to shall be returned after the frame has been
  1410. processed. It is used by WBM for routing purposes.
  1411. <enum 0 WBM_IDLE_BUF_LIST> This buffer shall be returned
  1412. to the WMB buffer idle list
  1413. <enum 1 WBM_IDLE_DESC_LIST> This buffer shall be
  1414. returned to the WMB idle link descriptor idle list
  1415. <enum 2 FW_BM> This buffer shall be returned to the FW
  1416. <enum 3 SW0_BM> This buffer shall be returned to the SW,
  1417. ring 0
  1418. <enum 4 SW1_BM> This buffer shall be returned to the SW,
  1419. ring 1
  1420. <enum 5 SW2_BM> This buffer shall be returned to the SW,
  1421. ring 2
  1422. <enum 6 SW3_BM> This buffer shall be returned to the SW,
  1423. ring 3
  1424. <enum 7 SW4_BM> This buffer shall be returned to the SW,
  1425. ring 3
  1426. <legal all>
  1427. */
  1428. #define RX_REO_QUEUE_EXT_31_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET 0x0000007c
  1429. #define RX_REO_QUEUE_EXT_31_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB 8
  1430. #define RX_REO_QUEUE_EXT_31_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK 0x00000700
  1431. /* Description RX_REO_QUEUE_EXT_31_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE
  1432. Cookie field exclusively used by SW.
  1433. In case of 'NULL' pointer, this field is set to 0
  1434. HW ignores the contents, accept that it passes the
  1435. programmed value on to other descriptors together with the
  1436. physical address
  1437. Field can be used by SW to for example associate the
  1438. buffers physical address with the virtual address
  1439. The bit definitions as used by SW are within SW HLD
  1440. specification
  1441. NOTE:
  1442. The three most significant bits can have a special
  1443. meaning in case this struct is embedded in a TX_MPDU_DETAILS
  1444. STRUCT, and field transmit_bw_restriction is set
  1445. In case of NON punctured transmission:
  1446. Sw_buffer_cookie[20:19] = 2'b00: 20 MHz TX only
  1447. Sw_buffer_cookie[20:19] = 2'b01: 40 MHz TX only
  1448. Sw_buffer_cookie[20:19] = 2'b10: 80 MHz TX only
  1449. Sw_buffer_cookie[20:19] = 2'b11: 160 MHz TX only
  1450. In case of punctured transmission:
  1451. Sw_buffer_cookie[20:18] = 3'b000: pattern 0 only
  1452. Sw_buffer_cookie[20:18] = 3'b001: pattern 1 only
  1453. Sw_buffer_cookie[20:18] = 3'b010: pattern 2 only
  1454. Sw_buffer_cookie[20:18] = 3'b011: pattern 3 only
  1455. Sw_buffer_cookie[20:18] = 3'b100: pattern 4 only
  1456. Sw_buffer_cookie[20:18] = 3'b101: pattern 5 only
  1457. Sw_buffer_cookie[20:18] = 3'b110: pattern 6 only
  1458. Sw_buffer_cookie[20:18] = 3'b111: pattern 7 only
  1459. Note: a punctured transmission is indicated by the
  1460. presence of TLV TX_PUNCTURE_SETUP embedded in the scheduler
  1461. TLV
  1462. <legal all>
  1463. */
  1464. #define RX_REO_QUEUE_EXT_31_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET 0x0000007c
  1465. #define RX_REO_QUEUE_EXT_31_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_LSB 11
  1466. #define RX_REO_QUEUE_EXT_31_MPDU_LINK_POINTER_14_MPDU_LINK_DESC_ADDR_INFO_SW_BUFFER_COOKIE_MASK 0xfffff800
  1467. #endif // _RX_REO_QUEUE_EXT_H_