rx_reo_queue_ext.h 87 KB

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