qed_hsi.h 273 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524
  1. /* QLogic qed NIC Driver
  2. * Copyright (c) 2015 QLogic Corporation
  3. *
  4. * This software is available under the terms of the GNU General Public License
  5. * (GPL) Version 2, available from the file COPYING in the main directory of
  6. * this source tree.
  7. */
  8. #ifndef _QED_HSI_H
  9. #define _QED_HSI_H
  10. #include <linux/types.h>
  11. #include <linux/io.h>
  12. #include <linux/bitops.h>
  13. #include <linux/delay.h>
  14. #include <linux/kernel.h>
  15. #include <linux/list.h>
  16. #include <linux/slab.h>
  17. #include <linux/qed/common_hsi.h>
  18. #include <linux/qed/storage_common.h>
  19. #include <linux/qed/tcp_common.h>
  20. #include <linux/qed/eth_common.h>
  21. #include <linux/qed/iscsi_common.h>
  22. #include <linux/qed/rdma_common.h>
  23. #include <linux/qed/roce_common.h>
  24. struct qed_hwfn;
  25. struct qed_ptt;
  26. /* opcodes for the event ring */
  27. enum common_event_opcode {
  28. COMMON_EVENT_PF_START,
  29. COMMON_EVENT_PF_STOP,
  30. COMMON_EVENT_VF_START,
  31. COMMON_EVENT_VF_STOP,
  32. COMMON_EVENT_VF_PF_CHANNEL,
  33. COMMON_EVENT_VF_FLR,
  34. COMMON_EVENT_PF_UPDATE,
  35. COMMON_EVENT_MALICIOUS_VF,
  36. COMMON_EVENT_RL_UPDATE,
  37. COMMON_EVENT_EMPTY,
  38. MAX_COMMON_EVENT_OPCODE
  39. };
  40. /* Common Ramrod Command IDs */
  41. enum common_ramrod_cmd_id {
  42. COMMON_RAMROD_UNUSED,
  43. COMMON_RAMROD_PF_START,
  44. COMMON_RAMROD_PF_STOP,
  45. COMMON_RAMROD_VF_START,
  46. COMMON_RAMROD_VF_STOP,
  47. COMMON_RAMROD_PF_UPDATE,
  48. COMMON_RAMROD_RL_UPDATE,
  49. COMMON_RAMROD_EMPTY,
  50. MAX_COMMON_RAMROD_CMD_ID
  51. };
  52. /* The core storm context for the Ystorm */
  53. struct ystorm_core_conn_st_ctx {
  54. __le32 reserved[4];
  55. };
  56. /* The core storm context for the Pstorm */
  57. struct pstorm_core_conn_st_ctx {
  58. __le32 reserved[4];
  59. };
  60. /* Core Slowpath Connection storm context of Xstorm */
  61. struct xstorm_core_conn_st_ctx {
  62. __le32 spq_base_lo;
  63. __le32 spq_base_hi;
  64. struct regpair consolid_base_addr;
  65. __le16 spq_cons;
  66. __le16 consolid_cons;
  67. __le32 reserved0[55];
  68. };
  69. struct xstorm_core_conn_ag_ctx {
  70. u8 reserved0;
  71. u8 core_state;
  72. u8 flags0;
  73. #define XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
  74. #define XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
  75. #define XSTORM_CORE_CONN_AG_CTX_RESERVED1_MASK 0x1
  76. #define XSTORM_CORE_CONN_AG_CTX_RESERVED1_SHIFT 1
  77. #define XSTORM_CORE_CONN_AG_CTX_RESERVED2_MASK 0x1
  78. #define XSTORM_CORE_CONN_AG_CTX_RESERVED2_SHIFT 2
  79. #define XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
  80. #define XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
  81. #define XSTORM_CORE_CONN_AG_CTX_RESERVED3_MASK 0x1
  82. #define XSTORM_CORE_CONN_AG_CTX_RESERVED3_SHIFT 4
  83. #define XSTORM_CORE_CONN_AG_CTX_RESERVED4_MASK 0x1
  84. #define XSTORM_CORE_CONN_AG_CTX_RESERVED4_SHIFT 5
  85. #define XSTORM_CORE_CONN_AG_CTX_RESERVED5_MASK 0x1
  86. #define XSTORM_CORE_CONN_AG_CTX_RESERVED5_SHIFT 6
  87. #define XSTORM_CORE_CONN_AG_CTX_RESERVED6_MASK 0x1
  88. #define XSTORM_CORE_CONN_AG_CTX_RESERVED6_SHIFT 7
  89. u8 flags1;
  90. #define XSTORM_CORE_CONN_AG_CTX_RESERVED7_MASK 0x1
  91. #define XSTORM_CORE_CONN_AG_CTX_RESERVED7_SHIFT 0
  92. #define XSTORM_CORE_CONN_AG_CTX_RESERVED8_MASK 0x1
  93. #define XSTORM_CORE_CONN_AG_CTX_RESERVED8_SHIFT 1
  94. #define XSTORM_CORE_CONN_AG_CTX_RESERVED9_MASK 0x1
  95. #define XSTORM_CORE_CONN_AG_CTX_RESERVED9_SHIFT 2
  96. #define XSTORM_CORE_CONN_AG_CTX_BIT11_MASK 0x1
  97. #define XSTORM_CORE_CONN_AG_CTX_BIT11_SHIFT 3
  98. #define XSTORM_CORE_CONN_AG_CTX_BIT12_MASK 0x1
  99. #define XSTORM_CORE_CONN_AG_CTX_BIT12_SHIFT 4
  100. #define XSTORM_CORE_CONN_AG_CTX_BIT13_MASK 0x1
  101. #define XSTORM_CORE_CONN_AG_CTX_BIT13_SHIFT 5
  102. #define XSTORM_CORE_CONN_AG_CTX_TX_RULE_ACTIVE_MASK 0x1
  103. #define XSTORM_CORE_CONN_AG_CTX_TX_RULE_ACTIVE_SHIFT 6
  104. #define XSTORM_CORE_CONN_AG_CTX_DQ_CF_ACTIVE_MASK 0x1
  105. #define XSTORM_CORE_CONN_AG_CTX_DQ_CF_ACTIVE_SHIFT 7
  106. u8 flags2;
  107. #define XSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3
  108. #define XSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 0
  109. #define XSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3
  110. #define XSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 2
  111. #define XSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3
  112. #define XSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 4
  113. #define XSTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3
  114. #define XSTORM_CORE_CONN_AG_CTX_CF3_SHIFT 6
  115. u8 flags3;
  116. #define XSTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3
  117. #define XSTORM_CORE_CONN_AG_CTX_CF4_SHIFT 0
  118. #define XSTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3
  119. #define XSTORM_CORE_CONN_AG_CTX_CF5_SHIFT 2
  120. #define XSTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3
  121. #define XSTORM_CORE_CONN_AG_CTX_CF6_SHIFT 4
  122. #define XSTORM_CORE_CONN_AG_CTX_CF7_MASK 0x3
  123. #define XSTORM_CORE_CONN_AG_CTX_CF7_SHIFT 6
  124. u8 flags4;
  125. #define XSTORM_CORE_CONN_AG_CTX_CF8_MASK 0x3
  126. #define XSTORM_CORE_CONN_AG_CTX_CF8_SHIFT 0
  127. #define XSTORM_CORE_CONN_AG_CTX_CF9_MASK 0x3
  128. #define XSTORM_CORE_CONN_AG_CTX_CF9_SHIFT 2
  129. #define XSTORM_CORE_CONN_AG_CTX_CF10_MASK 0x3
  130. #define XSTORM_CORE_CONN_AG_CTX_CF10_SHIFT 4
  131. #define XSTORM_CORE_CONN_AG_CTX_CF11_MASK 0x3
  132. #define XSTORM_CORE_CONN_AG_CTX_CF11_SHIFT 6
  133. u8 flags5;
  134. #define XSTORM_CORE_CONN_AG_CTX_CF12_MASK 0x3
  135. #define XSTORM_CORE_CONN_AG_CTX_CF12_SHIFT 0
  136. #define XSTORM_CORE_CONN_AG_CTX_CF13_MASK 0x3
  137. #define XSTORM_CORE_CONN_AG_CTX_CF13_SHIFT 2
  138. #define XSTORM_CORE_CONN_AG_CTX_CF14_MASK 0x3
  139. #define XSTORM_CORE_CONN_AG_CTX_CF14_SHIFT 4
  140. #define XSTORM_CORE_CONN_AG_CTX_CF15_MASK 0x3
  141. #define XSTORM_CORE_CONN_AG_CTX_CF15_SHIFT 6
  142. u8 flags6;
  143. #define XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_MASK 0x3
  144. #define XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_SHIFT 0
  145. #define XSTORM_CORE_CONN_AG_CTX_CF17_MASK 0x3
  146. #define XSTORM_CORE_CONN_AG_CTX_CF17_SHIFT 2
  147. #define XSTORM_CORE_CONN_AG_CTX_DQ_CF_MASK 0x3
  148. #define XSTORM_CORE_CONN_AG_CTX_DQ_CF_SHIFT 4
  149. #define XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_MASK 0x3
  150. #define XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_SHIFT 6
  151. u8 flags7;
  152. #define XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_MASK 0x3
  153. #define XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_SHIFT 0
  154. #define XSTORM_CORE_CONN_AG_CTX_RESERVED10_MASK 0x3
  155. #define XSTORM_CORE_CONN_AG_CTX_RESERVED10_SHIFT 2
  156. #define XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_MASK 0x3
  157. #define XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_SHIFT 4
  158. #define XSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1
  159. #define XSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 6
  160. #define XSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1
  161. #define XSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 7
  162. u8 flags8;
  163. #define XSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1
  164. #define XSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 0
  165. #define XSTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1
  166. #define XSTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 1
  167. #define XSTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1
  168. #define XSTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 2
  169. #define XSTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1
  170. #define XSTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 3
  171. #define XSTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1
  172. #define XSTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 4
  173. #define XSTORM_CORE_CONN_AG_CTX_CF7EN_MASK 0x1
  174. #define XSTORM_CORE_CONN_AG_CTX_CF7EN_SHIFT 5
  175. #define XSTORM_CORE_CONN_AG_CTX_CF8EN_MASK 0x1
  176. #define XSTORM_CORE_CONN_AG_CTX_CF8EN_SHIFT 6
  177. #define XSTORM_CORE_CONN_AG_CTX_CF9EN_MASK 0x1
  178. #define XSTORM_CORE_CONN_AG_CTX_CF9EN_SHIFT 7
  179. u8 flags9;
  180. #define XSTORM_CORE_CONN_AG_CTX_CF10EN_MASK 0x1
  181. #define XSTORM_CORE_CONN_AG_CTX_CF10EN_SHIFT 0
  182. #define XSTORM_CORE_CONN_AG_CTX_CF11EN_MASK 0x1
  183. #define XSTORM_CORE_CONN_AG_CTX_CF11EN_SHIFT 1
  184. #define XSTORM_CORE_CONN_AG_CTX_CF12EN_MASK 0x1
  185. #define XSTORM_CORE_CONN_AG_CTX_CF12EN_SHIFT 2
  186. #define XSTORM_CORE_CONN_AG_CTX_CF13EN_MASK 0x1
  187. #define XSTORM_CORE_CONN_AG_CTX_CF13EN_SHIFT 3
  188. #define XSTORM_CORE_CONN_AG_CTX_CF14EN_MASK 0x1
  189. #define XSTORM_CORE_CONN_AG_CTX_CF14EN_SHIFT 4
  190. #define XSTORM_CORE_CONN_AG_CTX_CF15EN_MASK 0x1
  191. #define XSTORM_CORE_CONN_AG_CTX_CF15EN_SHIFT 5
  192. #define XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_EN_MASK 0x1
  193. #define XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_EN_SHIFT 6
  194. #define XSTORM_CORE_CONN_AG_CTX_CF17EN_MASK 0x1
  195. #define XSTORM_CORE_CONN_AG_CTX_CF17EN_SHIFT 7
  196. u8 flags10;
  197. #define XSTORM_CORE_CONN_AG_CTX_DQ_CF_EN_MASK 0x1
  198. #define XSTORM_CORE_CONN_AG_CTX_DQ_CF_EN_SHIFT 0
  199. #define XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_EN_MASK 0x1
  200. #define XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_EN_SHIFT 1
  201. #define XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1
  202. #define XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2
  203. #define XSTORM_CORE_CONN_AG_CTX_RESERVED11_MASK 0x1
  204. #define XSTORM_CORE_CONN_AG_CTX_RESERVED11_SHIFT 3
  205. #define XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
  206. #define XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
  207. #define XSTORM_CORE_CONN_AG_CTX_CF23EN_MASK 0x1
  208. #define XSTORM_CORE_CONN_AG_CTX_CF23EN_SHIFT 5
  209. #define XSTORM_CORE_CONN_AG_CTX_RESERVED12_MASK 0x1
  210. #define XSTORM_CORE_CONN_AG_CTX_RESERVED12_SHIFT 6
  211. #define XSTORM_CORE_CONN_AG_CTX_RESERVED13_MASK 0x1
  212. #define XSTORM_CORE_CONN_AG_CTX_RESERVED13_SHIFT 7
  213. u8 flags11;
  214. #define XSTORM_CORE_CONN_AG_CTX_RESERVED14_MASK 0x1
  215. #define XSTORM_CORE_CONN_AG_CTX_RESERVED14_SHIFT 0
  216. #define XSTORM_CORE_CONN_AG_CTX_RESERVED15_MASK 0x1
  217. #define XSTORM_CORE_CONN_AG_CTX_RESERVED15_SHIFT 1
  218. #define XSTORM_CORE_CONN_AG_CTX_TX_DEC_RULE_EN_MASK 0x1
  219. #define XSTORM_CORE_CONN_AG_CTX_TX_DEC_RULE_EN_SHIFT 2
  220. #define XSTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1
  221. #define XSTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 3
  222. #define XSTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1
  223. #define XSTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 4
  224. #define XSTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1
  225. #define XSTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 5
  226. #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
  227. #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
  228. #define XSTORM_CORE_CONN_AG_CTX_RULE9EN_MASK 0x1
  229. #define XSTORM_CORE_CONN_AG_CTX_RULE9EN_SHIFT 7
  230. u8 flags12;
  231. #define XSTORM_CORE_CONN_AG_CTX_RULE10EN_MASK 0x1
  232. #define XSTORM_CORE_CONN_AG_CTX_RULE10EN_SHIFT 0
  233. #define XSTORM_CORE_CONN_AG_CTX_RULE11EN_MASK 0x1
  234. #define XSTORM_CORE_CONN_AG_CTX_RULE11EN_SHIFT 1
  235. #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
  236. #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
  237. #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
  238. #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
  239. #define XSTORM_CORE_CONN_AG_CTX_RULE14EN_MASK 0x1
  240. #define XSTORM_CORE_CONN_AG_CTX_RULE14EN_SHIFT 4
  241. #define XSTORM_CORE_CONN_AG_CTX_RULE15EN_MASK 0x1
  242. #define XSTORM_CORE_CONN_AG_CTX_RULE15EN_SHIFT 5
  243. #define XSTORM_CORE_CONN_AG_CTX_RULE16EN_MASK 0x1
  244. #define XSTORM_CORE_CONN_AG_CTX_RULE16EN_SHIFT 6
  245. #define XSTORM_CORE_CONN_AG_CTX_RULE17EN_MASK 0x1
  246. #define XSTORM_CORE_CONN_AG_CTX_RULE17EN_SHIFT 7
  247. u8 flags13;
  248. #define XSTORM_CORE_CONN_AG_CTX_RULE18EN_MASK 0x1
  249. #define XSTORM_CORE_CONN_AG_CTX_RULE18EN_SHIFT 0
  250. #define XSTORM_CORE_CONN_AG_CTX_RULE19EN_MASK 0x1
  251. #define XSTORM_CORE_CONN_AG_CTX_RULE19EN_SHIFT 1
  252. #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
  253. #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
  254. #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
  255. #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
  256. #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
  257. #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
  258. #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
  259. #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
  260. #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
  261. #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
  262. #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
  263. #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
  264. u8 flags14;
  265. #define XSTORM_CORE_CONN_AG_CTX_BIT16_MASK 0x1
  266. #define XSTORM_CORE_CONN_AG_CTX_BIT16_SHIFT 0
  267. #define XSTORM_CORE_CONN_AG_CTX_BIT17_MASK 0x1
  268. #define XSTORM_CORE_CONN_AG_CTX_BIT17_SHIFT 1
  269. #define XSTORM_CORE_CONN_AG_CTX_BIT18_MASK 0x1
  270. #define XSTORM_CORE_CONN_AG_CTX_BIT18_SHIFT 2
  271. #define XSTORM_CORE_CONN_AG_CTX_BIT19_MASK 0x1
  272. #define XSTORM_CORE_CONN_AG_CTX_BIT19_SHIFT 3
  273. #define XSTORM_CORE_CONN_AG_CTX_BIT20_MASK 0x1
  274. #define XSTORM_CORE_CONN_AG_CTX_BIT20_SHIFT 4
  275. #define XSTORM_CORE_CONN_AG_CTX_BIT21_MASK 0x1
  276. #define XSTORM_CORE_CONN_AG_CTX_BIT21_SHIFT 5
  277. #define XSTORM_CORE_CONN_AG_CTX_CF23_MASK 0x3
  278. #define XSTORM_CORE_CONN_AG_CTX_CF23_SHIFT 6
  279. u8 byte2;
  280. __le16 physical_q0;
  281. __le16 consolid_prod;
  282. __le16 reserved16;
  283. __le16 tx_bd_cons;
  284. __le16 tx_bd_or_spq_prod;
  285. __le16 word5;
  286. __le16 conn_dpi;
  287. u8 byte3;
  288. u8 byte4;
  289. u8 byte5;
  290. u8 byte6;
  291. __le32 reg0;
  292. __le32 reg1;
  293. __le32 reg2;
  294. __le32 reg3;
  295. __le32 reg4;
  296. __le32 reg5;
  297. __le32 reg6;
  298. __le16 word7;
  299. __le16 word8;
  300. __le16 word9;
  301. __le16 word10;
  302. __le32 reg7;
  303. __le32 reg8;
  304. __le32 reg9;
  305. u8 byte7;
  306. u8 byte8;
  307. u8 byte9;
  308. u8 byte10;
  309. u8 byte11;
  310. u8 byte12;
  311. u8 byte13;
  312. u8 byte14;
  313. u8 byte15;
  314. u8 byte16;
  315. __le16 word11;
  316. __le32 reg10;
  317. __le32 reg11;
  318. __le32 reg12;
  319. __le32 reg13;
  320. __le32 reg14;
  321. __le32 reg15;
  322. __le32 reg16;
  323. __le32 reg17;
  324. __le32 reg18;
  325. __le32 reg19;
  326. __le16 word12;
  327. __le16 word13;
  328. __le16 word14;
  329. __le16 word15;
  330. };
  331. struct tstorm_core_conn_ag_ctx {
  332. u8 byte0;
  333. u8 byte1;
  334. u8 flags0;
  335. #define TSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1
  336. #define TSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0
  337. #define TSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1
  338. #define TSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1
  339. #define TSTORM_CORE_CONN_AG_CTX_BIT2_MASK 0x1
  340. #define TSTORM_CORE_CONN_AG_CTX_BIT2_SHIFT 2
  341. #define TSTORM_CORE_CONN_AG_CTX_BIT3_MASK 0x1
  342. #define TSTORM_CORE_CONN_AG_CTX_BIT3_SHIFT 3
  343. #define TSTORM_CORE_CONN_AG_CTX_BIT4_MASK 0x1
  344. #define TSTORM_CORE_CONN_AG_CTX_BIT4_SHIFT 4
  345. #define TSTORM_CORE_CONN_AG_CTX_BIT5_MASK 0x1
  346. #define TSTORM_CORE_CONN_AG_CTX_BIT5_SHIFT 5
  347. #define TSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3
  348. #define TSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 6
  349. u8 flags1;
  350. #define TSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3
  351. #define TSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 0
  352. #define TSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3
  353. #define TSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 2
  354. #define TSTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3
  355. #define TSTORM_CORE_CONN_AG_CTX_CF3_SHIFT 4
  356. #define TSTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3
  357. #define TSTORM_CORE_CONN_AG_CTX_CF4_SHIFT 6
  358. u8 flags2;
  359. #define TSTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3
  360. #define TSTORM_CORE_CONN_AG_CTX_CF5_SHIFT 0
  361. #define TSTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3
  362. #define TSTORM_CORE_CONN_AG_CTX_CF6_SHIFT 2
  363. #define TSTORM_CORE_CONN_AG_CTX_CF7_MASK 0x3
  364. #define TSTORM_CORE_CONN_AG_CTX_CF7_SHIFT 4
  365. #define TSTORM_CORE_CONN_AG_CTX_CF8_MASK 0x3
  366. #define TSTORM_CORE_CONN_AG_CTX_CF8_SHIFT 6
  367. u8 flags3;
  368. #define TSTORM_CORE_CONN_AG_CTX_CF9_MASK 0x3
  369. #define TSTORM_CORE_CONN_AG_CTX_CF9_SHIFT 0
  370. #define TSTORM_CORE_CONN_AG_CTX_CF10_MASK 0x3
  371. #define TSTORM_CORE_CONN_AG_CTX_CF10_SHIFT 2
  372. #define TSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1
  373. #define TSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 4
  374. #define TSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1
  375. #define TSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 5
  376. #define TSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1
  377. #define TSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 6
  378. #define TSTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1
  379. #define TSTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 7
  380. u8 flags4;
  381. #define TSTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1
  382. #define TSTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 0
  383. #define TSTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1
  384. #define TSTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 1
  385. #define TSTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1
  386. #define TSTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 2
  387. #define TSTORM_CORE_CONN_AG_CTX_CF7EN_MASK 0x1
  388. #define TSTORM_CORE_CONN_AG_CTX_CF7EN_SHIFT 3
  389. #define TSTORM_CORE_CONN_AG_CTX_CF8EN_MASK 0x1
  390. #define TSTORM_CORE_CONN_AG_CTX_CF8EN_SHIFT 4
  391. #define TSTORM_CORE_CONN_AG_CTX_CF9EN_MASK 0x1
  392. #define TSTORM_CORE_CONN_AG_CTX_CF9EN_SHIFT 5
  393. #define TSTORM_CORE_CONN_AG_CTX_CF10EN_MASK 0x1
  394. #define TSTORM_CORE_CONN_AG_CTX_CF10EN_SHIFT 6
  395. #define TSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1
  396. #define TSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 7
  397. u8 flags5;
  398. #define TSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1
  399. #define TSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 0
  400. #define TSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1
  401. #define TSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 1
  402. #define TSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1
  403. #define TSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 2
  404. #define TSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1
  405. #define TSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 3
  406. #define TSTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1
  407. #define TSTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 4
  408. #define TSTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1
  409. #define TSTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 5
  410. #define TSTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1
  411. #define TSTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 6
  412. #define TSTORM_CORE_CONN_AG_CTX_RULE8EN_MASK 0x1
  413. #define TSTORM_CORE_CONN_AG_CTX_RULE8EN_SHIFT 7
  414. __le32 reg0;
  415. __le32 reg1;
  416. __le32 reg2;
  417. __le32 reg3;
  418. __le32 reg4;
  419. __le32 reg5;
  420. __le32 reg6;
  421. __le32 reg7;
  422. __le32 reg8;
  423. u8 byte2;
  424. u8 byte3;
  425. __le16 word0;
  426. u8 byte4;
  427. u8 byte5;
  428. __le16 word1;
  429. __le16 word2;
  430. __le16 word3;
  431. __le32 reg9;
  432. __le32 reg10;
  433. };
  434. struct ustorm_core_conn_ag_ctx {
  435. u8 reserved;
  436. u8 byte1;
  437. u8 flags0;
  438. #define USTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1
  439. #define USTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0
  440. #define USTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1
  441. #define USTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1
  442. #define USTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3
  443. #define USTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2
  444. #define USTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3
  445. #define USTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4
  446. #define USTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3
  447. #define USTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6
  448. u8 flags1;
  449. #define USTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3
  450. #define USTORM_CORE_CONN_AG_CTX_CF3_SHIFT 0
  451. #define USTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3
  452. #define USTORM_CORE_CONN_AG_CTX_CF4_SHIFT 2
  453. #define USTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3
  454. #define USTORM_CORE_CONN_AG_CTX_CF5_SHIFT 4
  455. #define USTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3
  456. #define USTORM_CORE_CONN_AG_CTX_CF6_SHIFT 6
  457. u8 flags2;
  458. #define USTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1
  459. #define USTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0
  460. #define USTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1
  461. #define USTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1
  462. #define USTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1
  463. #define USTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2
  464. #define USTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1
  465. #define USTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 3
  466. #define USTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1
  467. #define USTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 4
  468. #define USTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1
  469. #define USTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 5
  470. #define USTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1
  471. #define USTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 6
  472. #define USTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1
  473. #define USTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 7
  474. u8 flags3;
  475. #define USTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1
  476. #define USTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 0
  477. #define USTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1
  478. #define USTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 1
  479. #define USTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1
  480. #define USTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 2
  481. #define USTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1
  482. #define USTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 3
  483. #define USTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1
  484. #define USTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 4
  485. #define USTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1
  486. #define USTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 5
  487. #define USTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1
  488. #define USTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 6
  489. #define USTORM_CORE_CONN_AG_CTX_RULE8EN_MASK 0x1
  490. #define USTORM_CORE_CONN_AG_CTX_RULE8EN_SHIFT 7
  491. u8 byte2;
  492. u8 byte3;
  493. __le16 word0;
  494. __le16 word1;
  495. __le32 rx_producers;
  496. __le32 reg1;
  497. __le32 reg2;
  498. __le32 reg3;
  499. __le16 word2;
  500. __le16 word3;
  501. };
  502. /* The core storm context for the Mstorm */
  503. struct mstorm_core_conn_st_ctx {
  504. __le32 reserved[24];
  505. };
  506. /* The core storm context for the Ustorm */
  507. struct ustorm_core_conn_st_ctx {
  508. __le32 reserved[4];
  509. };
  510. /* core connection context */
  511. struct core_conn_context {
  512. struct ystorm_core_conn_st_ctx ystorm_st_context;
  513. struct regpair ystorm_st_padding[2];
  514. struct pstorm_core_conn_st_ctx pstorm_st_context;
  515. struct regpair pstorm_st_padding[2];
  516. struct xstorm_core_conn_st_ctx xstorm_st_context;
  517. struct xstorm_core_conn_ag_ctx xstorm_ag_context;
  518. struct tstorm_core_conn_ag_ctx tstorm_ag_context;
  519. struct ustorm_core_conn_ag_ctx ustorm_ag_context;
  520. struct mstorm_core_conn_st_ctx mstorm_st_context;
  521. struct ustorm_core_conn_st_ctx ustorm_st_context;
  522. struct regpair ustorm_st_padding[2];
  523. };
  524. struct eth_mstorm_per_pf_stat {
  525. struct regpair gre_discard_pkts;
  526. struct regpair vxlan_discard_pkts;
  527. struct regpair geneve_discard_pkts;
  528. struct regpair lb_discard_pkts;
  529. };
  530. struct eth_mstorm_per_queue_stat {
  531. struct regpair ttl0_discard;
  532. struct regpair packet_too_big_discard;
  533. struct regpair no_buff_discard;
  534. struct regpair not_active_discard;
  535. struct regpair tpa_coalesced_pkts;
  536. struct regpair tpa_coalesced_events;
  537. struct regpair tpa_aborts_num;
  538. struct regpair tpa_coalesced_bytes;
  539. };
  540. /* Ethernet TX Per PF */
  541. struct eth_pstorm_per_pf_stat {
  542. struct regpair sent_lb_ucast_bytes;
  543. struct regpair sent_lb_mcast_bytes;
  544. struct regpair sent_lb_bcast_bytes;
  545. struct regpair sent_lb_ucast_pkts;
  546. struct regpair sent_lb_mcast_pkts;
  547. struct regpair sent_lb_bcast_pkts;
  548. struct regpair sent_gre_bytes;
  549. struct regpair sent_vxlan_bytes;
  550. struct regpair sent_geneve_bytes;
  551. struct regpair sent_gre_pkts;
  552. struct regpair sent_vxlan_pkts;
  553. struct regpair sent_geneve_pkts;
  554. struct regpair gre_drop_pkts;
  555. struct regpair vxlan_drop_pkts;
  556. struct regpair geneve_drop_pkts;
  557. };
  558. /* Ethernet TX Per Queue Stats */
  559. struct eth_pstorm_per_queue_stat {
  560. struct regpair sent_ucast_bytes;
  561. struct regpair sent_mcast_bytes;
  562. struct regpair sent_bcast_bytes;
  563. struct regpair sent_ucast_pkts;
  564. struct regpair sent_mcast_pkts;
  565. struct regpair sent_bcast_pkts;
  566. struct regpair error_drop_pkts;
  567. };
  568. /* ETH Rx producers data */
  569. struct eth_rx_rate_limit {
  570. __le16 mult;
  571. __le16 cnst;
  572. u8 add_sub_cnst;
  573. u8 reserved0;
  574. __le16 reserved1;
  575. };
  576. struct eth_ustorm_per_pf_stat {
  577. struct regpair rcv_lb_ucast_bytes;
  578. struct regpair rcv_lb_mcast_bytes;
  579. struct regpair rcv_lb_bcast_bytes;
  580. struct regpair rcv_lb_ucast_pkts;
  581. struct regpair rcv_lb_mcast_pkts;
  582. struct regpair rcv_lb_bcast_pkts;
  583. struct regpair rcv_gre_bytes;
  584. struct regpair rcv_vxlan_bytes;
  585. struct regpair rcv_geneve_bytes;
  586. struct regpair rcv_gre_pkts;
  587. struct regpair rcv_vxlan_pkts;
  588. struct regpair rcv_geneve_pkts;
  589. };
  590. struct eth_ustorm_per_queue_stat {
  591. struct regpair rcv_ucast_bytes;
  592. struct regpair rcv_mcast_bytes;
  593. struct regpair rcv_bcast_bytes;
  594. struct regpair rcv_ucast_pkts;
  595. struct regpair rcv_mcast_pkts;
  596. struct regpair rcv_bcast_pkts;
  597. };
  598. /* Event Ring Next Page Address */
  599. struct event_ring_next_addr {
  600. struct regpair addr;
  601. __le32 reserved[2];
  602. };
  603. /* Event Ring Element */
  604. union event_ring_element {
  605. struct event_ring_entry entry;
  606. struct event_ring_next_addr next_addr;
  607. };
  608. /* Major and Minor hsi Versions */
  609. struct hsi_fp_ver_struct {
  610. u8 minor_ver_arr[2];
  611. u8 major_ver_arr[2];
  612. };
  613. /* Mstorm non-triggering VF zone */
  614. struct mstorm_non_trigger_vf_zone {
  615. struct eth_mstorm_per_queue_stat eth_queue_stat;
  616. struct eth_rx_prod_data eth_rx_queue_producers[ETH_MAX_NUM_RX_QUEUES_PER_VF];
  617. };
  618. /* Mstorm VF zone */
  619. struct mstorm_vf_zone {
  620. struct mstorm_non_trigger_vf_zone non_trigger;
  621. };
  622. /* personality per PF */
  623. enum personality_type {
  624. BAD_PERSONALITY_TYP,
  625. PERSONALITY_ISCSI,
  626. PERSONALITY_RESERVED2,
  627. PERSONALITY_RDMA_AND_ETH,
  628. PERSONALITY_RESERVED3,
  629. PERSONALITY_CORE,
  630. PERSONALITY_ETH,
  631. PERSONALITY_RESERVED4,
  632. MAX_PERSONALITY_TYPE
  633. };
  634. /* tunnel configuration */
  635. struct pf_start_tunnel_config {
  636. u8 set_vxlan_udp_port_flg;
  637. u8 set_geneve_udp_port_flg;
  638. u8 tx_enable_vxlan;
  639. u8 tx_enable_l2geneve;
  640. u8 tx_enable_ipgeneve;
  641. u8 tx_enable_l2gre;
  642. u8 tx_enable_ipgre;
  643. u8 tunnel_clss_vxlan;
  644. u8 tunnel_clss_l2geneve;
  645. u8 tunnel_clss_ipgeneve;
  646. u8 tunnel_clss_l2gre;
  647. u8 tunnel_clss_ipgre;
  648. __le16 vxlan_udp_port;
  649. __le16 geneve_udp_port;
  650. };
  651. /* Ramrod data for PF start ramrod */
  652. struct pf_start_ramrod_data {
  653. struct regpair event_ring_pbl_addr;
  654. struct regpair consolid_q_pbl_addr;
  655. struct pf_start_tunnel_config tunnel_config;
  656. __le16 event_ring_sb_id;
  657. u8 base_vf_id;
  658. u8 num_vfs;
  659. u8 event_ring_num_pages;
  660. u8 event_ring_sb_index;
  661. u8 path_id;
  662. u8 warning_as_error;
  663. u8 dont_log_ramrods;
  664. u8 personality;
  665. __le16 log_type_mask;
  666. u8 mf_mode;
  667. u8 integ_phase;
  668. u8 allow_npar_tx_switching;
  669. u8 inner_to_outer_pri_map[8];
  670. u8 pri_map_valid;
  671. __le32 outer_tag;
  672. struct hsi_fp_ver_struct hsi_fp_ver;
  673. };
  674. struct protocol_dcb_data {
  675. u8 dcb_enable_flag;
  676. u8 dcb_priority;
  677. u8 dcb_tc;
  678. u8 reserved;
  679. };
  680. struct pf_update_tunnel_config {
  681. u8 update_rx_pf_clss;
  682. u8 update_tx_pf_clss;
  683. u8 set_vxlan_udp_port_flg;
  684. u8 set_geneve_udp_port_flg;
  685. u8 tx_enable_vxlan;
  686. u8 tx_enable_l2geneve;
  687. u8 tx_enable_ipgeneve;
  688. u8 tx_enable_l2gre;
  689. u8 tx_enable_ipgre;
  690. u8 tunnel_clss_vxlan;
  691. u8 tunnel_clss_l2geneve;
  692. u8 tunnel_clss_ipgeneve;
  693. u8 tunnel_clss_l2gre;
  694. u8 tunnel_clss_ipgre;
  695. __le16 vxlan_udp_port;
  696. __le16 geneve_udp_port;
  697. __le16 reserved[3];
  698. };
  699. struct pf_update_ramrod_data {
  700. u8 pf_id;
  701. u8 update_eth_dcb_data_flag;
  702. u8 update_fcoe_dcb_data_flag;
  703. u8 update_iscsi_dcb_data_flag;
  704. u8 update_roce_dcb_data_flag;
  705. u8 update_iwarp_dcb_data_flag;
  706. u8 update_mf_vlan_flag;
  707. u8 reserved;
  708. struct protocol_dcb_data eth_dcb_data;
  709. struct protocol_dcb_data fcoe_dcb_data;
  710. struct protocol_dcb_data iscsi_dcb_data;
  711. struct protocol_dcb_data roce_dcb_data;
  712. struct protocol_dcb_data iwarp_dcb_data;
  713. __le16 mf_vlan;
  714. __le16 reserved2;
  715. struct pf_update_tunnel_config tunnel_config;
  716. };
  717. /* Ports mode */
  718. enum ports_mode {
  719. ENGX2_PORTX1,
  720. ENGX2_PORTX2,
  721. ENGX1_PORTX1,
  722. ENGX1_PORTX2,
  723. ENGX1_PORTX4,
  724. MAX_PORTS_MODE
  725. };
  726. /* use to index in hsi_fp_[major|minor]_ver_arr per protocol */
  727. enum protocol_version_array_key {
  728. ETH_VER_KEY = 0,
  729. ROCE_VER_KEY,
  730. MAX_PROTOCOL_VERSION_ARRAY_KEY
  731. };
  732. /* Pstorm non-triggering VF zone */
  733. struct pstorm_non_trigger_vf_zone {
  734. struct eth_pstorm_per_queue_stat eth_queue_stat;
  735. struct regpair reserved[2];
  736. };
  737. /* Pstorm VF zone */
  738. struct pstorm_vf_zone {
  739. struct pstorm_non_trigger_vf_zone non_trigger;
  740. struct regpair reserved[7];
  741. };
  742. /* Ramrod Header of SPQE */
  743. struct ramrod_header {
  744. __le32 cid;
  745. u8 cmd_id;
  746. u8 protocol_id;
  747. __le16 echo;
  748. };
  749. /* Slowpath Element (SPQE) */
  750. struct slow_path_element {
  751. struct ramrod_header hdr;
  752. struct regpair data_ptr;
  753. };
  754. /* Tstorm non-triggering VF zone */
  755. struct tstorm_non_trigger_vf_zone {
  756. struct regpair reserved[2];
  757. };
  758. struct tstorm_per_port_stat {
  759. struct regpair trunc_error_discard;
  760. struct regpair mac_error_discard;
  761. struct regpair mftag_filter_discard;
  762. struct regpair eth_mac_filter_discard;
  763. struct regpair reserved[5];
  764. struct regpair eth_irregular_pkt;
  765. struct regpair reserved1[2];
  766. struct regpair eth_gre_tunn_filter_discard;
  767. struct regpair eth_vxlan_tunn_filter_discard;
  768. struct regpair eth_geneve_tunn_filter_discard;
  769. };
  770. /* Tstorm VF zone */
  771. struct tstorm_vf_zone {
  772. struct tstorm_non_trigger_vf_zone non_trigger;
  773. };
  774. /* Tunnel classification scheme */
  775. enum tunnel_clss {
  776. TUNNEL_CLSS_MAC_VLAN = 0,
  777. TUNNEL_CLSS_MAC_VNI,
  778. TUNNEL_CLSS_INNER_MAC_VLAN,
  779. TUNNEL_CLSS_INNER_MAC_VNI,
  780. TUNNEL_CLSS_MAC_VLAN_DUAL_STAGE,
  781. MAX_TUNNEL_CLSS
  782. };
  783. /* Ustorm non-triggering VF zone */
  784. struct ustorm_non_trigger_vf_zone {
  785. struct eth_ustorm_per_queue_stat eth_queue_stat;
  786. struct regpair vf_pf_msg_addr;
  787. };
  788. /* Ustorm triggering VF zone */
  789. struct ustorm_trigger_vf_zone {
  790. u8 vf_pf_msg_valid;
  791. u8 reserved[7];
  792. };
  793. /* Ustorm VF zone */
  794. struct ustorm_vf_zone {
  795. struct ustorm_non_trigger_vf_zone non_trigger;
  796. struct ustorm_trigger_vf_zone trigger;
  797. };
  798. /* VF-PF channel data */
  799. struct vf_pf_channel_data {
  800. __le32 ready;
  801. u8 valid;
  802. u8 reserved0;
  803. __le16 reserved1;
  804. };
  805. /* Ramrod data for VF start ramrod */
  806. struct vf_start_ramrod_data {
  807. u8 vf_id;
  808. u8 enable_flr_ack;
  809. __le16 opaque_fid;
  810. u8 personality;
  811. u8 reserved[7];
  812. struct hsi_fp_ver_struct hsi_fp_ver;
  813. };
  814. /* Ramrod data for VF start ramrod */
  815. struct vf_stop_ramrod_data {
  816. u8 vf_id;
  817. u8 reserved0;
  818. __le16 reserved1;
  819. __le32 reserved2;
  820. };
  821. /* Attentions status block */
  822. struct atten_status_block {
  823. __le32 atten_bits;
  824. __le32 atten_ack;
  825. __le16 reserved0;
  826. __le16 sb_index;
  827. __le32 reserved1;
  828. };
  829. enum command_type_bit {
  830. IGU_COMMAND_TYPE_NOP = 0,
  831. IGU_COMMAND_TYPE_SET = 1,
  832. MAX_COMMAND_TYPE_BIT
  833. };
  834. /* DMAE command */
  835. struct dmae_cmd {
  836. __le32 opcode;
  837. #define DMAE_CMD_SRC_MASK 0x1
  838. #define DMAE_CMD_SRC_SHIFT 0
  839. #define DMAE_CMD_DST_MASK 0x3
  840. #define DMAE_CMD_DST_SHIFT 1
  841. #define DMAE_CMD_C_DST_MASK 0x1
  842. #define DMAE_CMD_C_DST_SHIFT 3
  843. #define DMAE_CMD_CRC_RESET_MASK 0x1
  844. #define DMAE_CMD_CRC_RESET_SHIFT 4
  845. #define DMAE_CMD_SRC_ADDR_RESET_MASK 0x1
  846. #define DMAE_CMD_SRC_ADDR_RESET_SHIFT 5
  847. #define DMAE_CMD_DST_ADDR_RESET_MASK 0x1
  848. #define DMAE_CMD_DST_ADDR_RESET_SHIFT 6
  849. #define DMAE_CMD_COMP_FUNC_MASK 0x1
  850. #define DMAE_CMD_COMP_FUNC_SHIFT 7
  851. #define DMAE_CMD_COMP_WORD_EN_MASK 0x1
  852. #define DMAE_CMD_COMP_WORD_EN_SHIFT 8
  853. #define DMAE_CMD_COMP_CRC_EN_MASK 0x1
  854. #define DMAE_CMD_COMP_CRC_EN_SHIFT 9
  855. #define DMAE_CMD_COMP_CRC_OFFSET_MASK 0x7
  856. #define DMAE_CMD_COMP_CRC_OFFSET_SHIFT 10
  857. #define DMAE_CMD_RESERVED1_MASK 0x1
  858. #define DMAE_CMD_RESERVED1_SHIFT 13
  859. #define DMAE_CMD_ENDIANITY_MODE_MASK 0x3
  860. #define DMAE_CMD_ENDIANITY_MODE_SHIFT 14
  861. #define DMAE_CMD_ERR_HANDLING_MASK 0x3
  862. #define DMAE_CMD_ERR_HANDLING_SHIFT 16
  863. #define DMAE_CMD_PORT_ID_MASK 0x3
  864. #define DMAE_CMD_PORT_ID_SHIFT 18
  865. #define DMAE_CMD_SRC_PF_ID_MASK 0xF
  866. #define DMAE_CMD_SRC_PF_ID_SHIFT 20
  867. #define DMAE_CMD_DST_PF_ID_MASK 0xF
  868. #define DMAE_CMD_DST_PF_ID_SHIFT 24
  869. #define DMAE_CMD_SRC_VF_ID_VALID_MASK 0x1
  870. #define DMAE_CMD_SRC_VF_ID_VALID_SHIFT 28
  871. #define DMAE_CMD_DST_VF_ID_VALID_MASK 0x1
  872. #define DMAE_CMD_DST_VF_ID_VALID_SHIFT 29
  873. #define DMAE_CMD_RESERVED2_MASK 0x3
  874. #define DMAE_CMD_RESERVED2_SHIFT 30
  875. __le32 src_addr_lo;
  876. __le32 src_addr_hi;
  877. __le32 dst_addr_lo;
  878. __le32 dst_addr_hi;
  879. __le16 length_dw;
  880. __le16 opcode_b;
  881. #define DMAE_CMD_SRC_VF_ID_MASK 0xFF
  882. #define DMAE_CMD_SRC_VF_ID_SHIFT 0
  883. #define DMAE_CMD_DST_VF_ID_MASK 0xFF
  884. #define DMAE_CMD_DST_VF_ID_SHIFT 8
  885. __le32 comp_addr_lo;
  886. __le32 comp_addr_hi;
  887. __le32 comp_val;
  888. __le32 crc32;
  889. __le32 crc_32_c;
  890. __le16 crc16;
  891. __le16 crc16_c;
  892. __le16 crc10;
  893. __le16 reserved;
  894. __le16 xsum16;
  895. __le16 xsum8;
  896. };
  897. enum dmae_cmd_comp_crc_en_enum {
  898. dmae_cmd_comp_crc_disabled,
  899. dmae_cmd_comp_crc_enabled,
  900. MAX_DMAE_CMD_COMP_CRC_EN_ENUM
  901. };
  902. enum dmae_cmd_comp_func_enum {
  903. dmae_cmd_comp_func_to_src,
  904. dmae_cmd_comp_func_to_dst,
  905. MAX_DMAE_CMD_COMP_FUNC_ENUM
  906. };
  907. enum dmae_cmd_comp_word_en_enum {
  908. dmae_cmd_comp_word_disabled,
  909. dmae_cmd_comp_word_enabled,
  910. MAX_DMAE_CMD_COMP_WORD_EN_ENUM
  911. };
  912. enum dmae_cmd_c_dst_enum {
  913. dmae_cmd_c_dst_pcie,
  914. dmae_cmd_c_dst_grc,
  915. MAX_DMAE_CMD_C_DST_ENUM
  916. };
  917. enum dmae_cmd_dst_enum {
  918. dmae_cmd_dst_none_0,
  919. dmae_cmd_dst_pcie,
  920. dmae_cmd_dst_grc,
  921. dmae_cmd_dst_none_3,
  922. MAX_DMAE_CMD_DST_ENUM
  923. };
  924. enum dmae_cmd_error_handling_enum {
  925. dmae_cmd_error_handling_send_regular_comp,
  926. dmae_cmd_error_handling_send_comp_with_err,
  927. dmae_cmd_error_handling_dont_send_comp,
  928. MAX_DMAE_CMD_ERROR_HANDLING_ENUM
  929. };
  930. enum dmae_cmd_src_enum {
  931. dmae_cmd_src_pcie,
  932. dmae_cmd_src_grc,
  933. MAX_DMAE_CMD_SRC_ENUM
  934. };
  935. /* IGU cleanup command */
  936. struct igu_cleanup {
  937. __le32 sb_id_and_flags;
  938. #define IGU_CLEANUP_RESERVED0_MASK 0x7FFFFFF
  939. #define IGU_CLEANUP_RESERVED0_SHIFT 0
  940. #define IGU_CLEANUP_CLEANUP_SET_MASK 0x1
  941. #define IGU_CLEANUP_CLEANUP_SET_SHIFT 27
  942. #define IGU_CLEANUP_CLEANUP_TYPE_MASK 0x7
  943. #define IGU_CLEANUP_CLEANUP_TYPE_SHIFT 28
  944. #define IGU_CLEANUP_COMMAND_TYPE_MASK 0x1
  945. #define IGU_CLEANUP_COMMAND_TYPE_SHIFT 31
  946. __le32 reserved1;
  947. };
  948. /* IGU firmware driver command */
  949. union igu_command {
  950. struct igu_prod_cons_update prod_cons_update;
  951. struct igu_cleanup cleanup;
  952. };
  953. /* IGU firmware driver command */
  954. struct igu_command_reg_ctrl {
  955. __le16 opaque_fid;
  956. __le16 igu_command_reg_ctrl_fields;
  957. #define IGU_COMMAND_REG_CTRL_PXP_BAR_ADDR_MASK 0xFFF
  958. #define IGU_COMMAND_REG_CTRL_PXP_BAR_ADDR_SHIFT 0
  959. #define IGU_COMMAND_REG_CTRL_RESERVED_MASK 0x7
  960. #define IGU_COMMAND_REG_CTRL_RESERVED_SHIFT 12
  961. #define IGU_COMMAND_REG_CTRL_COMMAND_TYPE_MASK 0x1
  962. #define IGU_COMMAND_REG_CTRL_COMMAND_TYPE_SHIFT 15
  963. };
  964. /* IGU mapping line structure */
  965. struct igu_mapping_line {
  966. __le32 igu_mapping_line_fields;
  967. #define IGU_MAPPING_LINE_VALID_MASK 0x1
  968. #define IGU_MAPPING_LINE_VALID_SHIFT 0
  969. #define IGU_MAPPING_LINE_VECTOR_NUMBER_MASK 0xFF
  970. #define IGU_MAPPING_LINE_VECTOR_NUMBER_SHIFT 1
  971. #define IGU_MAPPING_LINE_FUNCTION_NUMBER_MASK 0xFF
  972. #define IGU_MAPPING_LINE_FUNCTION_NUMBER_SHIFT 9
  973. #define IGU_MAPPING_LINE_PF_VALID_MASK 0x1
  974. #define IGU_MAPPING_LINE_PF_VALID_SHIFT 17
  975. #define IGU_MAPPING_LINE_IPS_GROUP_MASK 0x3F
  976. #define IGU_MAPPING_LINE_IPS_GROUP_SHIFT 18
  977. #define IGU_MAPPING_LINE_RESERVED_MASK 0xFF
  978. #define IGU_MAPPING_LINE_RESERVED_SHIFT 24
  979. };
  980. /* IGU MSIX line structure */
  981. struct igu_msix_vector {
  982. struct regpair address;
  983. __le32 data;
  984. __le32 msix_vector_fields;
  985. #define IGU_MSIX_VECTOR_MASK_BIT_MASK 0x1
  986. #define IGU_MSIX_VECTOR_MASK_BIT_SHIFT 0
  987. #define IGU_MSIX_VECTOR_RESERVED0_MASK 0x7FFF
  988. #define IGU_MSIX_VECTOR_RESERVED0_SHIFT 1
  989. #define IGU_MSIX_VECTOR_STEERING_TAG_MASK 0xFF
  990. #define IGU_MSIX_VECTOR_STEERING_TAG_SHIFT 16
  991. #define IGU_MSIX_VECTOR_RESERVED1_MASK 0xFF
  992. #define IGU_MSIX_VECTOR_RESERVED1_SHIFT 24
  993. };
  994. struct mstorm_core_conn_ag_ctx {
  995. u8 byte0;
  996. u8 byte1;
  997. u8 flags0;
  998. #define MSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1
  999. #define MSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0
  1000. #define MSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1
  1001. #define MSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1
  1002. #define MSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3
  1003. #define MSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2
  1004. #define MSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3
  1005. #define MSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4
  1006. #define MSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3
  1007. #define MSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6
  1008. u8 flags1;
  1009. #define MSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1
  1010. #define MSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0
  1011. #define MSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1
  1012. #define MSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1
  1013. #define MSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1
  1014. #define MSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2
  1015. #define MSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1
  1016. #define MSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 3
  1017. #define MSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1
  1018. #define MSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 4
  1019. #define MSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1
  1020. #define MSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 5
  1021. #define MSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1
  1022. #define MSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 6
  1023. #define MSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1
  1024. #define MSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 7
  1025. __le16 word0;
  1026. __le16 word1;
  1027. __le32 reg0;
  1028. __le32 reg1;
  1029. };
  1030. /* per encapsulation type enabling flags */
  1031. struct prs_reg_encapsulation_type_en {
  1032. u8 flags;
  1033. #define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GRE_ENABLE_MASK 0x1
  1034. #define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GRE_ENABLE_SHIFT 0
  1035. #define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GRE_ENABLE_MASK 0x1
  1036. #define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GRE_ENABLE_SHIFT 1
  1037. #define PRS_REG_ENCAPSULATION_TYPE_EN_VXLAN_ENABLE_MASK 0x1
  1038. #define PRS_REG_ENCAPSULATION_TYPE_EN_VXLAN_ENABLE_SHIFT 2
  1039. #define PRS_REG_ENCAPSULATION_TYPE_EN_T_TAG_ENABLE_MASK 0x1
  1040. #define PRS_REG_ENCAPSULATION_TYPE_EN_T_TAG_ENABLE_SHIFT 3
  1041. #define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GENEVE_ENABLE_MASK 0x1
  1042. #define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GENEVE_ENABLE_SHIFT 4
  1043. #define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GENEVE_ENABLE_MASK 0x1
  1044. #define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GENEVE_ENABLE_SHIFT 5
  1045. #define PRS_REG_ENCAPSULATION_TYPE_EN_RESERVED_MASK 0x3
  1046. #define PRS_REG_ENCAPSULATION_TYPE_EN_RESERVED_SHIFT 6
  1047. };
  1048. enum pxp_tph_st_hint {
  1049. TPH_ST_HINT_BIDIR,
  1050. TPH_ST_HINT_REQUESTER,
  1051. TPH_ST_HINT_TARGET,
  1052. TPH_ST_HINT_TARGET_PRIO,
  1053. MAX_PXP_TPH_ST_HINT
  1054. };
  1055. /* QM hardware structure of enable bypass credit mask */
  1056. struct qm_rf_bypass_mask {
  1057. u8 flags;
  1058. #define QM_RF_BYPASS_MASK_LINEVOQ_MASK 0x1
  1059. #define QM_RF_BYPASS_MASK_LINEVOQ_SHIFT 0
  1060. #define QM_RF_BYPASS_MASK_RESERVED0_MASK 0x1
  1061. #define QM_RF_BYPASS_MASK_RESERVED0_SHIFT 1
  1062. #define QM_RF_BYPASS_MASK_PFWFQ_MASK 0x1
  1063. #define QM_RF_BYPASS_MASK_PFWFQ_SHIFT 2
  1064. #define QM_RF_BYPASS_MASK_VPWFQ_MASK 0x1
  1065. #define QM_RF_BYPASS_MASK_VPWFQ_SHIFT 3
  1066. #define QM_RF_BYPASS_MASK_PFRL_MASK 0x1
  1067. #define QM_RF_BYPASS_MASK_PFRL_SHIFT 4
  1068. #define QM_RF_BYPASS_MASK_VPQCNRL_MASK 0x1
  1069. #define QM_RF_BYPASS_MASK_VPQCNRL_SHIFT 5
  1070. #define QM_RF_BYPASS_MASK_FWPAUSE_MASK 0x1
  1071. #define QM_RF_BYPASS_MASK_FWPAUSE_SHIFT 6
  1072. #define QM_RF_BYPASS_MASK_RESERVED1_MASK 0x1
  1073. #define QM_RF_BYPASS_MASK_RESERVED1_SHIFT 7
  1074. };
  1075. /* QM hardware structure of opportunistic credit mask */
  1076. struct qm_rf_opportunistic_mask {
  1077. __le16 flags;
  1078. #define QM_RF_OPPORTUNISTIC_MASK_LINEVOQ_MASK 0x1
  1079. #define QM_RF_OPPORTUNISTIC_MASK_LINEVOQ_SHIFT 0
  1080. #define QM_RF_OPPORTUNISTIC_MASK_BYTEVOQ_MASK 0x1
  1081. #define QM_RF_OPPORTUNISTIC_MASK_BYTEVOQ_SHIFT 1
  1082. #define QM_RF_OPPORTUNISTIC_MASK_PFWFQ_MASK 0x1
  1083. #define QM_RF_OPPORTUNISTIC_MASK_PFWFQ_SHIFT 2
  1084. #define QM_RF_OPPORTUNISTIC_MASK_VPWFQ_MASK 0x1
  1085. #define QM_RF_OPPORTUNISTIC_MASK_VPWFQ_SHIFT 3
  1086. #define QM_RF_OPPORTUNISTIC_MASK_PFRL_MASK 0x1
  1087. #define QM_RF_OPPORTUNISTIC_MASK_PFRL_SHIFT 4
  1088. #define QM_RF_OPPORTUNISTIC_MASK_VPQCNRL_MASK 0x1
  1089. #define QM_RF_OPPORTUNISTIC_MASK_VPQCNRL_SHIFT 5
  1090. #define QM_RF_OPPORTUNISTIC_MASK_FWPAUSE_MASK 0x1
  1091. #define QM_RF_OPPORTUNISTIC_MASK_FWPAUSE_SHIFT 6
  1092. #define QM_RF_OPPORTUNISTIC_MASK_RESERVED0_MASK 0x1
  1093. #define QM_RF_OPPORTUNISTIC_MASK_RESERVED0_SHIFT 7
  1094. #define QM_RF_OPPORTUNISTIC_MASK_QUEUEEMPTY_MASK 0x1
  1095. #define QM_RF_OPPORTUNISTIC_MASK_QUEUEEMPTY_SHIFT 8
  1096. #define QM_RF_OPPORTUNISTIC_MASK_RESERVED1_MASK 0x7F
  1097. #define QM_RF_OPPORTUNISTIC_MASK_RESERVED1_SHIFT 9
  1098. };
  1099. /* QM hardware structure of QM map memory */
  1100. struct qm_rf_pq_map {
  1101. __le32 reg;
  1102. #define QM_RF_PQ_MAP_PQ_VALID_MASK 0x1
  1103. #define QM_RF_PQ_MAP_PQ_VALID_SHIFT 0
  1104. #define QM_RF_PQ_MAP_RL_ID_MASK 0xFF
  1105. #define QM_RF_PQ_MAP_RL_ID_SHIFT 1
  1106. #define QM_RF_PQ_MAP_VP_PQ_ID_MASK 0x1FF
  1107. #define QM_RF_PQ_MAP_VP_PQ_ID_SHIFT 9
  1108. #define QM_RF_PQ_MAP_VOQ_MASK 0x1F
  1109. #define QM_RF_PQ_MAP_VOQ_SHIFT 18
  1110. #define QM_RF_PQ_MAP_WRR_WEIGHT_GROUP_MASK 0x3
  1111. #define QM_RF_PQ_MAP_WRR_WEIGHT_GROUP_SHIFT 23
  1112. #define QM_RF_PQ_MAP_RL_VALID_MASK 0x1
  1113. #define QM_RF_PQ_MAP_RL_VALID_SHIFT 25
  1114. #define QM_RF_PQ_MAP_RESERVED_MASK 0x3F
  1115. #define QM_RF_PQ_MAP_RESERVED_SHIFT 26
  1116. };
  1117. /* Completion params for aggregated interrupt completion */
  1118. struct sdm_agg_int_comp_params {
  1119. __le16 params;
  1120. #define SDM_AGG_INT_COMP_PARAMS_AGG_INT_INDEX_MASK 0x3F
  1121. #define SDM_AGG_INT_COMP_PARAMS_AGG_INT_INDEX_SHIFT 0
  1122. #define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_ENABLE_MASK 0x1
  1123. #define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_ENABLE_SHIFT 6
  1124. #define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_BIT_MASK 0x1FF
  1125. #define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_BIT_SHIFT 7
  1126. };
  1127. /* SDM operation gen command (generate aggregative interrupt) */
  1128. struct sdm_op_gen {
  1129. __le32 command;
  1130. #define SDM_OP_GEN_COMP_PARAM_MASK 0xFFFF
  1131. #define SDM_OP_GEN_COMP_PARAM_SHIFT 0
  1132. #define SDM_OP_GEN_COMP_TYPE_MASK 0xF
  1133. #define SDM_OP_GEN_COMP_TYPE_SHIFT 16
  1134. #define SDM_OP_GEN_RESERVED_MASK 0xFFF
  1135. #define SDM_OP_GEN_RESERVED_SHIFT 20
  1136. };
  1137. struct ystorm_core_conn_ag_ctx {
  1138. u8 byte0;
  1139. u8 byte1;
  1140. u8 flags0;
  1141. #define YSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1
  1142. #define YSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0
  1143. #define YSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1
  1144. #define YSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1
  1145. #define YSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3
  1146. #define YSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2
  1147. #define YSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3
  1148. #define YSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4
  1149. #define YSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3
  1150. #define YSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6
  1151. u8 flags1;
  1152. #define YSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1
  1153. #define YSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0
  1154. #define YSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1
  1155. #define YSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1
  1156. #define YSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1
  1157. #define YSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2
  1158. #define YSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1
  1159. #define YSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 3
  1160. #define YSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1
  1161. #define YSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 4
  1162. #define YSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1
  1163. #define YSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 5
  1164. #define YSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1
  1165. #define YSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 6
  1166. #define YSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1
  1167. #define YSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 7
  1168. u8 byte2;
  1169. u8 byte3;
  1170. __le16 word0;
  1171. __le32 reg0;
  1172. __le32 reg1;
  1173. __le16 word1;
  1174. __le16 word2;
  1175. __le16 word3;
  1176. __le16 word4;
  1177. __le32 reg2;
  1178. __le32 reg3;
  1179. };
  1180. /****************************************/
  1181. /* Debug Tools HSI constants and macros */
  1182. /****************************************/
  1183. enum block_addr {
  1184. GRCBASE_GRC = 0x50000,
  1185. GRCBASE_MISCS = 0x9000,
  1186. GRCBASE_MISC = 0x8000,
  1187. GRCBASE_DBU = 0xa000,
  1188. GRCBASE_PGLUE_B = 0x2a8000,
  1189. GRCBASE_CNIG = 0x218000,
  1190. GRCBASE_CPMU = 0x30000,
  1191. GRCBASE_NCSI = 0x40000,
  1192. GRCBASE_OPTE = 0x53000,
  1193. GRCBASE_BMB = 0x540000,
  1194. GRCBASE_PCIE = 0x54000,
  1195. GRCBASE_MCP = 0xe00000,
  1196. GRCBASE_MCP2 = 0x52000,
  1197. GRCBASE_PSWHST = 0x2a0000,
  1198. GRCBASE_PSWHST2 = 0x29e000,
  1199. GRCBASE_PSWRD = 0x29c000,
  1200. GRCBASE_PSWRD2 = 0x29d000,
  1201. GRCBASE_PSWWR = 0x29a000,
  1202. GRCBASE_PSWWR2 = 0x29b000,
  1203. GRCBASE_PSWRQ = 0x280000,
  1204. GRCBASE_PSWRQ2 = 0x240000,
  1205. GRCBASE_PGLCS = 0x0,
  1206. GRCBASE_DMAE = 0xc000,
  1207. GRCBASE_PTU = 0x560000,
  1208. GRCBASE_TCM = 0x1180000,
  1209. GRCBASE_MCM = 0x1200000,
  1210. GRCBASE_UCM = 0x1280000,
  1211. GRCBASE_XCM = 0x1000000,
  1212. GRCBASE_YCM = 0x1080000,
  1213. GRCBASE_PCM = 0x1100000,
  1214. GRCBASE_QM = 0x2f0000,
  1215. GRCBASE_TM = 0x2c0000,
  1216. GRCBASE_DORQ = 0x100000,
  1217. GRCBASE_BRB = 0x340000,
  1218. GRCBASE_SRC = 0x238000,
  1219. GRCBASE_PRS = 0x1f0000,
  1220. GRCBASE_TSDM = 0xfb0000,
  1221. GRCBASE_MSDM = 0xfc0000,
  1222. GRCBASE_USDM = 0xfd0000,
  1223. GRCBASE_XSDM = 0xf80000,
  1224. GRCBASE_YSDM = 0xf90000,
  1225. GRCBASE_PSDM = 0xfa0000,
  1226. GRCBASE_TSEM = 0x1700000,
  1227. GRCBASE_MSEM = 0x1800000,
  1228. GRCBASE_USEM = 0x1900000,
  1229. GRCBASE_XSEM = 0x1400000,
  1230. GRCBASE_YSEM = 0x1500000,
  1231. GRCBASE_PSEM = 0x1600000,
  1232. GRCBASE_RSS = 0x238800,
  1233. GRCBASE_TMLD = 0x4d0000,
  1234. GRCBASE_MULD = 0x4e0000,
  1235. GRCBASE_YULD = 0x4c8000,
  1236. GRCBASE_XYLD = 0x4c0000,
  1237. GRCBASE_PRM = 0x230000,
  1238. GRCBASE_PBF_PB1 = 0xda0000,
  1239. GRCBASE_PBF_PB2 = 0xda4000,
  1240. GRCBASE_RPB = 0x23c000,
  1241. GRCBASE_BTB = 0xdb0000,
  1242. GRCBASE_PBF = 0xd80000,
  1243. GRCBASE_RDIF = 0x300000,
  1244. GRCBASE_TDIF = 0x310000,
  1245. GRCBASE_CDU = 0x580000,
  1246. GRCBASE_CCFC = 0x2e0000,
  1247. GRCBASE_TCFC = 0x2d0000,
  1248. GRCBASE_IGU = 0x180000,
  1249. GRCBASE_CAU = 0x1c0000,
  1250. GRCBASE_UMAC = 0x51000,
  1251. GRCBASE_XMAC = 0x210000,
  1252. GRCBASE_DBG = 0x10000,
  1253. GRCBASE_NIG = 0x500000,
  1254. GRCBASE_WOL = 0x600000,
  1255. GRCBASE_BMBN = 0x610000,
  1256. GRCBASE_IPC = 0x20000,
  1257. GRCBASE_NWM = 0x800000,
  1258. GRCBASE_NWS = 0x700000,
  1259. GRCBASE_MS = 0x6a0000,
  1260. GRCBASE_PHY_PCIE = 0x620000,
  1261. GRCBASE_LED = 0x6b8000,
  1262. GRCBASE_MISC_AEU = 0x8000,
  1263. GRCBASE_BAR0_MAP = 0x1c00000,
  1264. MAX_BLOCK_ADDR
  1265. };
  1266. enum block_id {
  1267. BLOCK_GRC,
  1268. BLOCK_MISCS,
  1269. BLOCK_MISC,
  1270. BLOCK_DBU,
  1271. BLOCK_PGLUE_B,
  1272. BLOCK_CNIG,
  1273. BLOCK_CPMU,
  1274. BLOCK_NCSI,
  1275. BLOCK_OPTE,
  1276. BLOCK_BMB,
  1277. BLOCK_PCIE,
  1278. BLOCK_MCP,
  1279. BLOCK_MCP2,
  1280. BLOCK_PSWHST,
  1281. BLOCK_PSWHST2,
  1282. BLOCK_PSWRD,
  1283. BLOCK_PSWRD2,
  1284. BLOCK_PSWWR,
  1285. BLOCK_PSWWR2,
  1286. BLOCK_PSWRQ,
  1287. BLOCK_PSWRQ2,
  1288. BLOCK_PGLCS,
  1289. BLOCK_DMAE,
  1290. BLOCK_PTU,
  1291. BLOCK_TCM,
  1292. BLOCK_MCM,
  1293. BLOCK_UCM,
  1294. BLOCK_XCM,
  1295. BLOCK_YCM,
  1296. BLOCK_PCM,
  1297. BLOCK_QM,
  1298. BLOCK_TM,
  1299. BLOCK_DORQ,
  1300. BLOCK_BRB,
  1301. BLOCK_SRC,
  1302. BLOCK_PRS,
  1303. BLOCK_TSDM,
  1304. BLOCK_MSDM,
  1305. BLOCK_USDM,
  1306. BLOCK_XSDM,
  1307. BLOCK_YSDM,
  1308. BLOCK_PSDM,
  1309. BLOCK_TSEM,
  1310. BLOCK_MSEM,
  1311. BLOCK_USEM,
  1312. BLOCK_XSEM,
  1313. BLOCK_YSEM,
  1314. BLOCK_PSEM,
  1315. BLOCK_RSS,
  1316. BLOCK_TMLD,
  1317. BLOCK_MULD,
  1318. BLOCK_YULD,
  1319. BLOCK_XYLD,
  1320. BLOCK_PRM,
  1321. BLOCK_PBF_PB1,
  1322. BLOCK_PBF_PB2,
  1323. BLOCK_RPB,
  1324. BLOCK_BTB,
  1325. BLOCK_PBF,
  1326. BLOCK_RDIF,
  1327. BLOCK_TDIF,
  1328. BLOCK_CDU,
  1329. BLOCK_CCFC,
  1330. BLOCK_TCFC,
  1331. BLOCK_IGU,
  1332. BLOCK_CAU,
  1333. BLOCK_UMAC,
  1334. BLOCK_XMAC,
  1335. BLOCK_DBG,
  1336. BLOCK_NIG,
  1337. BLOCK_WOL,
  1338. BLOCK_BMBN,
  1339. BLOCK_IPC,
  1340. BLOCK_NWM,
  1341. BLOCK_NWS,
  1342. BLOCK_MS,
  1343. BLOCK_PHY_PCIE,
  1344. BLOCK_LED,
  1345. BLOCK_MISC_AEU,
  1346. BLOCK_BAR0_MAP,
  1347. MAX_BLOCK_ID
  1348. };
  1349. /* binary debug buffer types */
  1350. enum bin_dbg_buffer_type {
  1351. BIN_BUF_DBG_MODE_TREE,
  1352. BIN_BUF_DBG_DUMP_REG,
  1353. BIN_BUF_DBG_DUMP_MEM,
  1354. BIN_BUF_DBG_IDLE_CHK_REGS,
  1355. BIN_BUF_DBG_IDLE_CHK_IMMS,
  1356. BIN_BUF_DBG_IDLE_CHK_RULES,
  1357. BIN_BUF_DBG_IDLE_CHK_PARSING_DATA,
  1358. BIN_BUF_DBG_ATTN_BLOCKS,
  1359. BIN_BUF_DBG_ATTN_REGS,
  1360. BIN_BUF_DBG_ATTN_INDEXES,
  1361. BIN_BUF_DBG_ATTN_NAME_OFFSETS,
  1362. BIN_BUF_DBG_PARSING_STRINGS,
  1363. MAX_BIN_DBG_BUFFER_TYPE
  1364. };
  1365. /* Chip IDs */
  1366. enum chip_ids {
  1367. CHIP_RESERVED,
  1368. CHIP_BB_B0,
  1369. CHIP_RESERVED2,
  1370. MAX_CHIP_IDS
  1371. };
  1372. /* Attention bit mapping */
  1373. struct dbg_attn_bit_mapping {
  1374. __le16 data;
  1375. #define DBG_ATTN_BIT_MAPPING_VAL_MASK 0x7FFF
  1376. #define DBG_ATTN_BIT_MAPPING_VAL_SHIFT 0
  1377. #define DBG_ATTN_BIT_MAPPING_IS_UNUSED_BIT_CNT_MASK 0x1
  1378. #define DBG_ATTN_BIT_MAPPING_IS_UNUSED_BIT_CNT_SHIFT 15
  1379. };
  1380. /* Attention block per-type data */
  1381. struct dbg_attn_block_type_data {
  1382. __le16 names_offset;
  1383. __le16 reserved1;
  1384. u8 num_regs;
  1385. u8 reserved2;
  1386. __le16 regs_offset;
  1387. };
  1388. /* Block attentions */
  1389. struct dbg_attn_block {
  1390. struct dbg_attn_block_type_data per_type_data[2];
  1391. };
  1392. /* Attention register result */
  1393. struct dbg_attn_reg_result {
  1394. __le32 data;
  1395. #define DBG_ATTN_REG_RESULT_STS_ADDRESS_MASK 0xFFFFFF
  1396. #define DBG_ATTN_REG_RESULT_STS_ADDRESS_SHIFT 0
  1397. #define DBG_ATTN_REG_RESULT_NUM_ATTN_IDX_MASK 0xFF
  1398. #define DBG_ATTN_REG_RESULT_NUM_ATTN_IDX_SHIFT 24
  1399. __le16 attn_idx_offset;
  1400. __le16 reserved;
  1401. __le32 sts_val;
  1402. __le32 mask_val;
  1403. };
  1404. /* Attention block result */
  1405. struct dbg_attn_block_result {
  1406. u8 block_id;
  1407. u8 data;
  1408. #define DBG_ATTN_BLOCK_RESULT_ATTN_TYPE_MASK 0x3
  1409. #define DBG_ATTN_BLOCK_RESULT_ATTN_TYPE_SHIFT 0
  1410. #define DBG_ATTN_BLOCK_RESULT_NUM_REGS_MASK 0x3F
  1411. #define DBG_ATTN_BLOCK_RESULT_NUM_REGS_SHIFT 2
  1412. __le16 names_offset;
  1413. struct dbg_attn_reg_result reg_results[15];
  1414. };
  1415. /* mode header */
  1416. struct dbg_mode_hdr {
  1417. __le16 data;
  1418. #define DBG_MODE_HDR_EVAL_MODE_MASK 0x1
  1419. #define DBG_MODE_HDR_EVAL_MODE_SHIFT 0
  1420. #define DBG_MODE_HDR_MODES_BUF_OFFSET_MASK 0x7FFF
  1421. #define DBG_MODE_HDR_MODES_BUF_OFFSET_SHIFT 1
  1422. };
  1423. /* Attention register */
  1424. struct dbg_attn_reg {
  1425. struct dbg_mode_hdr mode;
  1426. __le16 attn_idx_offset;
  1427. __le32 data;
  1428. #define DBG_ATTN_REG_STS_ADDRESS_MASK 0xFFFFFF
  1429. #define DBG_ATTN_REG_STS_ADDRESS_SHIFT 0
  1430. #define DBG_ATTN_REG_NUM_ATTN_IDX_MASK 0xFF
  1431. #define DBG_ATTN_REG_NUM_ATTN_IDX_SHIFT 24
  1432. __le32 sts_clr_address;
  1433. __le32 mask_address;
  1434. };
  1435. /* attention types */
  1436. enum dbg_attn_type {
  1437. ATTN_TYPE_INTERRUPT,
  1438. ATTN_TYPE_PARITY,
  1439. MAX_DBG_ATTN_TYPE
  1440. };
  1441. /* Debug status codes */
  1442. enum dbg_status {
  1443. DBG_STATUS_OK,
  1444. DBG_STATUS_APP_VERSION_NOT_SET,
  1445. DBG_STATUS_UNSUPPORTED_APP_VERSION,
  1446. DBG_STATUS_DBG_BLOCK_NOT_RESET,
  1447. DBG_STATUS_INVALID_ARGS,
  1448. DBG_STATUS_OUTPUT_ALREADY_SET,
  1449. DBG_STATUS_INVALID_PCI_BUF_SIZE,
  1450. DBG_STATUS_PCI_BUF_ALLOC_FAILED,
  1451. DBG_STATUS_PCI_BUF_NOT_ALLOCATED,
  1452. DBG_STATUS_TOO_MANY_INPUTS,
  1453. DBG_STATUS_INPUT_OVERLAP,
  1454. DBG_STATUS_HW_ONLY_RECORDING,
  1455. DBG_STATUS_STORM_ALREADY_ENABLED,
  1456. DBG_STATUS_STORM_NOT_ENABLED,
  1457. DBG_STATUS_BLOCK_ALREADY_ENABLED,
  1458. DBG_STATUS_BLOCK_NOT_ENABLED,
  1459. DBG_STATUS_NO_INPUT_ENABLED,
  1460. DBG_STATUS_NO_FILTER_TRIGGER_64B,
  1461. DBG_STATUS_FILTER_ALREADY_ENABLED,
  1462. DBG_STATUS_TRIGGER_ALREADY_ENABLED,
  1463. DBG_STATUS_TRIGGER_NOT_ENABLED,
  1464. DBG_STATUS_CANT_ADD_CONSTRAINT,
  1465. DBG_STATUS_TOO_MANY_TRIGGER_STATES,
  1466. DBG_STATUS_TOO_MANY_CONSTRAINTS,
  1467. DBG_STATUS_RECORDING_NOT_STARTED,
  1468. DBG_STATUS_DATA_DIDNT_TRIGGER,
  1469. DBG_STATUS_NO_DATA_RECORDED,
  1470. DBG_STATUS_DUMP_BUF_TOO_SMALL,
  1471. DBG_STATUS_DUMP_NOT_CHUNK_ALIGNED,
  1472. DBG_STATUS_UNKNOWN_CHIP,
  1473. DBG_STATUS_VIRT_MEM_ALLOC_FAILED,
  1474. DBG_STATUS_BLOCK_IN_RESET,
  1475. DBG_STATUS_INVALID_TRACE_SIGNATURE,
  1476. DBG_STATUS_INVALID_NVRAM_BUNDLE,
  1477. DBG_STATUS_NVRAM_GET_IMAGE_FAILED,
  1478. DBG_STATUS_NON_ALIGNED_NVRAM_IMAGE,
  1479. DBG_STATUS_NVRAM_READ_FAILED,
  1480. DBG_STATUS_IDLE_CHK_PARSE_FAILED,
  1481. DBG_STATUS_MCP_TRACE_BAD_DATA,
  1482. DBG_STATUS_MCP_TRACE_NO_META,
  1483. DBG_STATUS_MCP_COULD_NOT_HALT,
  1484. DBG_STATUS_MCP_COULD_NOT_RESUME,
  1485. DBG_STATUS_DMAE_FAILED,
  1486. DBG_STATUS_SEMI_FIFO_NOT_EMPTY,
  1487. DBG_STATUS_IGU_FIFO_BAD_DATA,
  1488. DBG_STATUS_MCP_COULD_NOT_MASK_PRTY,
  1489. DBG_STATUS_FW_ASSERTS_PARSE_FAILED,
  1490. DBG_STATUS_REG_FIFO_BAD_DATA,
  1491. DBG_STATUS_PROTECTION_OVERRIDE_BAD_DATA,
  1492. DBG_STATUS_DBG_ARRAY_NOT_SET,
  1493. MAX_DBG_STATUS
  1494. };
  1495. /********************************/
  1496. /* HSI Init Functions constants */
  1497. /********************************/
  1498. /* Number of VLAN priorities */
  1499. #define NUM_OF_VLAN_PRIORITIES 8
  1500. /* QM per-port init parameters */
  1501. struct init_qm_port_params {
  1502. u8 active;
  1503. u8 active_phys_tcs;
  1504. __le16 num_pbf_cmd_lines;
  1505. __le16 num_btb_blocks;
  1506. __le16 reserved;
  1507. };
  1508. /* QM per-PQ init parameters */
  1509. struct init_qm_pq_params {
  1510. u8 vport_id;
  1511. u8 tc_id;
  1512. u8 wrr_group;
  1513. u8 rl_valid;
  1514. };
  1515. /* QM per-vport init parameters */
  1516. struct init_qm_vport_params {
  1517. __le32 vport_rl;
  1518. __le16 vport_wfq;
  1519. __le16 first_tx_pq_id[NUM_OF_TCS];
  1520. };
  1521. /**************************************/
  1522. /* Init Tool HSI constants and macros */
  1523. /**************************************/
  1524. /* Width of GRC address in bits (addresses are specified in dwords) */
  1525. #define GRC_ADDR_BITS 23
  1526. #define MAX_GRC_ADDR ((1 << GRC_ADDR_BITS) - 1)
  1527. /* indicates an init that should be applied to any phase ID */
  1528. #define ANY_PHASE_ID 0xffff
  1529. /* Max size in dwords of a zipped array */
  1530. #define MAX_ZIPPED_SIZE 8192
  1531. enum init_modes {
  1532. MODE_RESERVED,
  1533. MODE_BB_B0,
  1534. MODE_RESERVED2,
  1535. MODE_ASIC,
  1536. MODE_RESERVED3,
  1537. MODE_RESERVED4,
  1538. MODE_RESERVED5,
  1539. MODE_RESERVED6,
  1540. MODE_SF,
  1541. MODE_MF_SD,
  1542. MODE_MF_SI,
  1543. MODE_PORTS_PER_ENG_1,
  1544. MODE_PORTS_PER_ENG_2,
  1545. MODE_PORTS_PER_ENG_4,
  1546. MODE_100G,
  1547. MODE_40G,
  1548. MODE_RESERVED7,
  1549. MAX_INIT_MODES
  1550. };
  1551. enum init_phases {
  1552. PHASE_ENGINE,
  1553. PHASE_PORT,
  1554. PHASE_PF,
  1555. PHASE_VF,
  1556. PHASE_QM_PF,
  1557. MAX_INIT_PHASES
  1558. };
  1559. enum init_split_types {
  1560. SPLIT_TYPE_NONE,
  1561. SPLIT_TYPE_PORT,
  1562. SPLIT_TYPE_PF,
  1563. SPLIT_TYPE_PORT_PF,
  1564. SPLIT_TYPE_VF,
  1565. MAX_INIT_SPLIT_TYPES
  1566. };
  1567. /* Binary buffer header */
  1568. struct bin_buffer_hdr {
  1569. __le32 offset;
  1570. __le32 length;
  1571. };
  1572. /* binary init buffer types */
  1573. enum bin_init_buffer_type {
  1574. BIN_BUF_FW_VER_INFO,
  1575. BIN_BUF_INIT_CMD,
  1576. BIN_BUF_INIT_VAL,
  1577. BIN_BUF_INIT_MODE_TREE,
  1578. BIN_BUF_IRO,
  1579. MAX_BIN_INIT_BUFFER_TYPE
  1580. };
  1581. /* init array header: raw */
  1582. struct init_array_raw_hdr {
  1583. __le32 data;
  1584. #define INIT_ARRAY_RAW_HDR_TYPE_MASK 0xF
  1585. #define INIT_ARRAY_RAW_HDR_TYPE_SHIFT 0
  1586. #define INIT_ARRAY_RAW_HDR_PARAMS_MASK 0xFFFFFFF
  1587. #define INIT_ARRAY_RAW_HDR_PARAMS_SHIFT 4
  1588. };
  1589. /* init array header: standard */
  1590. struct init_array_standard_hdr {
  1591. __le32 data;
  1592. #define INIT_ARRAY_STANDARD_HDR_TYPE_MASK 0xF
  1593. #define INIT_ARRAY_STANDARD_HDR_TYPE_SHIFT 0
  1594. #define INIT_ARRAY_STANDARD_HDR_SIZE_MASK 0xFFFFFFF
  1595. #define INIT_ARRAY_STANDARD_HDR_SIZE_SHIFT 4
  1596. };
  1597. /* init array header: zipped */
  1598. struct init_array_zipped_hdr {
  1599. __le32 data;
  1600. #define INIT_ARRAY_ZIPPED_HDR_TYPE_MASK 0xF
  1601. #define INIT_ARRAY_ZIPPED_HDR_TYPE_SHIFT 0
  1602. #define INIT_ARRAY_ZIPPED_HDR_ZIPPED_SIZE_MASK 0xFFFFFFF
  1603. #define INIT_ARRAY_ZIPPED_HDR_ZIPPED_SIZE_SHIFT 4
  1604. };
  1605. /* init array header: pattern */
  1606. struct init_array_pattern_hdr {
  1607. __le32 data;
  1608. #define INIT_ARRAY_PATTERN_HDR_TYPE_MASK 0xF
  1609. #define INIT_ARRAY_PATTERN_HDR_TYPE_SHIFT 0
  1610. #define INIT_ARRAY_PATTERN_HDR_PATTERN_SIZE_MASK 0xF
  1611. #define INIT_ARRAY_PATTERN_HDR_PATTERN_SIZE_SHIFT 4
  1612. #define INIT_ARRAY_PATTERN_HDR_REPETITIONS_MASK 0xFFFFFF
  1613. #define INIT_ARRAY_PATTERN_HDR_REPETITIONS_SHIFT 8
  1614. };
  1615. /* init array header union */
  1616. union init_array_hdr {
  1617. struct init_array_raw_hdr raw;
  1618. struct init_array_standard_hdr standard;
  1619. struct init_array_zipped_hdr zipped;
  1620. struct init_array_pattern_hdr pattern;
  1621. };
  1622. /* init array types */
  1623. enum init_array_types {
  1624. INIT_ARR_STANDARD,
  1625. INIT_ARR_ZIPPED,
  1626. INIT_ARR_PATTERN,
  1627. MAX_INIT_ARRAY_TYPES
  1628. };
  1629. /* init operation: callback */
  1630. struct init_callback_op {
  1631. __le32 op_data;
  1632. #define INIT_CALLBACK_OP_OP_MASK 0xF
  1633. #define INIT_CALLBACK_OP_OP_SHIFT 0
  1634. #define INIT_CALLBACK_OP_RESERVED_MASK 0xFFFFFFF
  1635. #define INIT_CALLBACK_OP_RESERVED_SHIFT 4
  1636. __le16 callback_id;
  1637. __le16 block_id;
  1638. };
  1639. /* init operation: delay */
  1640. struct init_delay_op {
  1641. __le32 op_data;
  1642. #define INIT_DELAY_OP_OP_MASK 0xF
  1643. #define INIT_DELAY_OP_OP_SHIFT 0
  1644. #define INIT_DELAY_OP_RESERVED_MASK 0xFFFFFFF
  1645. #define INIT_DELAY_OP_RESERVED_SHIFT 4
  1646. __le32 delay;
  1647. };
  1648. /* init operation: if_mode */
  1649. struct init_if_mode_op {
  1650. __le32 op_data;
  1651. #define INIT_IF_MODE_OP_OP_MASK 0xF
  1652. #define INIT_IF_MODE_OP_OP_SHIFT 0
  1653. #define INIT_IF_MODE_OP_RESERVED1_MASK 0xFFF
  1654. #define INIT_IF_MODE_OP_RESERVED1_SHIFT 4
  1655. #define INIT_IF_MODE_OP_CMD_OFFSET_MASK 0xFFFF
  1656. #define INIT_IF_MODE_OP_CMD_OFFSET_SHIFT 16
  1657. __le16 reserved2;
  1658. __le16 modes_buf_offset;
  1659. };
  1660. /* init operation: if_phase */
  1661. struct init_if_phase_op {
  1662. __le32 op_data;
  1663. #define INIT_IF_PHASE_OP_OP_MASK 0xF
  1664. #define INIT_IF_PHASE_OP_OP_SHIFT 0
  1665. #define INIT_IF_PHASE_OP_DMAE_ENABLE_MASK 0x1
  1666. #define INIT_IF_PHASE_OP_DMAE_ENABLE_SHIFT 4
  1667. #define INIT_IF_PHASE_OP_RESERVED1_MASK 0x7FF
  1668. #define INIT_IF_PHASE_OP_RESERVED1_SHIFT 5
  1669. #define INIT_IF_PHASE_OP_CMD_OFFSET_MASK 0xFFFF
  1670. #define INIT_IF_PHASE_OP_CMD_OFFSET_SHIFT 16
  1671. __le32 phase_data;
  1672. #define INIT_IF_PHASE_OP_PHASE_MASK 0xFF
  1673. #define INIT_IF_PHASE_OP_PHASE_SHIFT 0
  1674. #define INIT_IF_PHASE_OP_RESERVED2_MASK 0xFF
  1675. #define INIT_IF_PHASE_OP_RESERVED2_SHIFT 8
  1676. #define INIT_IF_PHASE_OP_PHASE_ID_MASK 0xFFFF
  1677. #define INIT_IF_PHASE_OP_PHASE_ID_SHIFT 16
  1678. };
  1679. /* init mode operators */
  1680. enum init_mode_ops {
  1681. INIT_MODE_OP_NOT,
  1682. INIT_MODE_OP_OR,
  1683. INIT_MODE_OP_AND,
  1684. MAX_INIT_MODE_OPS
  1685. };
  1686. /* init operation: raw */
  1687. struct init_raw_op {
  1688. __le32 op_data;
  1689. #define INIT_RAW_OP_OP_MASK 0xF
  1690. #define INIT_RAW_OP_OP_SHIFT 0
  1691. #define INIT_RAW_OP_PARAM1_MASK 0xFFFFFFF
  1692. #define INIT_RAW_OP_PARAM1_SHIFT 4
  1693. __le32 param2;
  1694. };
  1695. /* init array params */
  1696. struct init_op_array_params {
  1697. __le16 size;
  1698. __le16 offset;
  1699. };
  1700. /* Write init operation arguments */
  1701. union init_write_args {
  1702. __le32 inline_val;
  1703. __le32 zeros_count;
  1704. __le32 array_offset;
  1705. struct init_op_array_params runtime;
  1706. };
  1707. /* init operation: write */
  1708. struct init_write_op {
  1709. __le32 data;
  1710. #define INIT_WRITE_OP_OP_MASK 0xF
  1711. #define INIT_WRITE_OP_OP_SHIFT 0
  1712. #define INIT_WRITE_OP_SOURCE_MASK 0x7
  1713. #define INIT_WRITE_OP_SOURCE_SHIFT 4
  1714. #define INIT_WRITE_OP_RESERVED_MASK 0x1
  1715. #define INIT_WRITE_OP_RESERVED_SHIFT 7
  1716. #define INIT_WRITE_OP_WIDE_BUS_MASK 0x1
  1717. #define INIT_WRITE_OP_WIDE_BUS_SHIFT 8
  1718. #define INIT_WRITE_OP_ADDRESS_MASK 0x7FFFFF
  1719. #define INIT_WRITE_OP_ADDRESS_SHIFT 9
  1720. union init_write_args args;
  1721. };
  1722. /* init operation: read */
  1723. struct init_read_op {
  1724. __le32 op_data;
  1725. #define INIT_READ_OP_OP_MASK 0xF
  1726. #define INIT_READ_OP_OP_SHIFT 0
  1727. #define INIT_READ_OP_POLL_TYPE_MASK 0xF
  1728. #define INIT_READ_OP_POLL_TYPE_SHIFT 4
  1729. #define INIT_READ_OP_RESERVED_MASK 0x1
  1730. #define INIT_READ_OP_RESERVED_SHIFT 8
  1731. #define INIT_READ_OP_ADDRESS_MASK 0x7FFFFF
  1732. #define INIT_READ_OP_ADDRESS_SHIFT 9
  1733. __le32 expected_val;
  1734. };
  1735. /* Init operations union */
  1736. union init_op {
  1737. struct init_raw_op raw;
  1738. struct init_write_op write;
  1739. struct init_read_op read;
  1740. struct init_if_mode_op if_mode;
  1741. struct init_if_phase_op if_phase;
  1742. struct init_callback_op callback;
  1743. struct init_delay_op delay;
  1744. };
  1745. /* Init command operation types */
  1746. enum init_op_types {
  1747. INIT_OP_READ,
  1748. INIT_OP_WRITE,
  1749. INIT_OP_IF_MODE,
  1750. INIT_OP_IF_PHASE,
  1751. INIT_OP_DELAY,
  1752. INIT_OP_CALLBACK,
  1753. MAX_INIT_OP_TYPES
  1754. };
  1755. /* init polling types */
  1756. enum init_poll_types {
  1757. INIT_POLL_NONE,
  1758. INIT_POLL_EQ,
  1759. INIT_POLL_OR,
  1760. INIT_POLL_AND,
  1761. MAX_INIT_POLL_TYPES
  1762. };
  1763. /* init source types */
  1764. enum init_source_types {
  1765. INIT_SRC_INLINE,
  1766. INIT_SRC_ZEROS,
  1767. INIT_SRC_ARRAY,
  1768. INIT_SRC_RUNTIME,
  1769. MAX_INIT_SOURCE_TYPES
  1770. };
  1771. /* Internal RAM Offsets macro data */
  1772. struct iro {
  1773. __le32 base;
  1774. __le16 m1;
  1775. __le16 m2;
  1776. __le16 m3;
  1777. __le16 size;
  1778. };
  1779. /**
  1780. * @brief qed_dbg_print_attn - Prints attention registers values in the specified results struct.
  1781. *
  1782. * @param p_hwfn
  1783. * @param results - Pointer to the attention read results
  1784. *
  1785. * @return error if one of the following holds:
  1786. * - the version wasn't set
  1787. * Otherwise, returns ok.
  1788. */
  1789. enum dbg_status qed_dbg_print_attn(struct qed_hwfn *p_hwfn,
  1790. struct dbg_attn_block_result *results);
  1791. #define MAX_NAME_LEN 16
  1792. /* Win 2 */
  1793. #define GTT_BAR0_MAP_REG_IGU_CMD \
  1794. 0x00f000UL
  1795. /* Win 3 */
  1796. #define GTT_BAR0_MAP_REG_TSDM_RAM \
  1797. 0x010000UL
  1798. /* Win 4 */
  1799. #define GTT_BAR0_MAP_REG_MSDM_RAM \
  1800. 0x011000UL
  1801. /* Win 5 */
  1802. #define GTT_BAR0_MAP_REG_MSDM_RAM_1024 \
  1803. 0x012000UL
  1804. /* Win 6 */
  1805. #define GTT_BAR0_MAP_REG_USDM_RAM \
  1806. 0x013000UL
  1807. /* Win 7 */
  1808. #define GTT_BAR0_MAP_REG_USDM_RAM_1024 \
  1809. 0x014000UL
  1810. /* Win 8 */
  1811. #define GTT_BAR0_MAP_REG_USDM_RAM_2048 \
  1812. 0x015000UL
  1813. /* Win 9 */
  1814. #define GTT_BAR0_MAP_REG_XSDM_RAM \
  1815. 0x016000UL
  1816. /* Win 10 */
  1817. #define GTT_BAR0_MAP_REG_YSDM_RAM \
  1818. 0x017000UL
  1819. /* Win 11 */
  1820. #define GTT_BAR0_MAP_REG_PSDM_RAM \
  1821. 0x018000UL
  1822. /**
  1823. * @brief qed_qm_pf_mem_size - prepare QM ILT sizes
  1824. *
  1825. * Returns the required host memory size in 4KB units.
  1826. * Must be called before all QM init HSI functions.
  1827. *
  1828. * @param pf_id - physical function ID
  1829. * @param num_pf_cids - number of connections used by this PF
  1830. * @param num_vf_cids - number of connections used by VFs of this PF
  1831. * @param num_tids - number of tasks used by this PF
  1832. * @param num_pf_pqs - number of PQs used by this PF
  1833. * @param num_vf_pqs - number of PQs used by VFs of this PF
  1834. *
  1835. * @return The required host memory size in 4KB units.
  1836. */
  1837. u32 qed_qm_pf_mem_size(u8 pf_id,
  1838. u32 num_pf_cids,
  1839. u32 num_vf_cids,
  1840. u32 num_tids, u16 num_pf_pqs, u16 num_vf_pqs);
  1841. struct qed_qm_common_rt_init_params {
  1842. u8 max_ports_per_engine;
  1843. u8 max_phys_tcs_per_port;
  1844. bool pf_rl_en;
  1845. bool pf_wfq_en;
  1846. bool vport_rl_en;
  1847. bool vport_wfq_en;
  1848. struct init_qm_port_params *port_params;
  1849. };
  1850. int qed_qm_common_rt_init(struct qed_hwfn *p_hwfn,
  1851. struct qed_qm_common_rt_init_params *p_params);
  1852. struct qed_qm_pf_rt_init_params {
  1853. u8 port_id;
  1854. u8 pf_id;
  1855. u8 max_phys_tcs_per_port;
  1856. bool is_first_pf;
  1857. u32 num_pf_cids;
  1858. u32 num_vf_cids;
  1859. u32 num_tids;
  1860. u16 start_pq;
  1861. u16 num_pf_pqs;
  1862. u16 num_vf_pqs;
  1863. u8 start_vport;
  1864. u8 num_vports;
  1865. u8 pf_wfq;
  1866. u32 pf_rl;
  1867. struct init_qm_pq_params *pq_params;
  1868. struct init_qm_vport_params *vport_params;
  1869. };
  1870. int qed_qm_pf_rt_init(struct qed_hwfn *p_hwfn,
  1871. struct qed_ptt *p_ptt,
  1872. struct qed_qm_pf_rt_init_params *p_params);
  1873. /**
  1874. * @brief qed_init_pf_wfq - Initializes the WFQ weight of the specified PF
  1875. *
  1876. * @param p_hwfn
  1877. * @param p_ptt - ptt window used for writing the registers
  1878. * @param pf_id - PF ID
  1879. * @param pf_wfq - WFQ weight. Must be non-zero.
  1880. *
  1881. * @return 0 on success, -1 on error.
  1882. */
  1883. int qed_init_pf_wfq(struct qed_hwfn *p_hwfn,
  1884. struct qed_ptt *p_ptt, u8 pf_id, u16 pf_wfq);
  1885. /**
  1886. * @brief qed_init_pf_rl - Initializes the rate limit of the specified PF
  1887. *
  1888. * @param p_hwfn
  1889. * @param p_ptt - ptt window used for writing the registers
  1890. * @param pf_id - PF ID
  1891. * @param pf_rl - rate limit in Mb/sec units
  1892. *
  1893. * @return 0 on success, -1 on error.
  1894. */
  1895. int qed_init_pf_rl(struct qed_hwfn *p_hwfn,
  1896. struct qed_ptt *p_ptt, u8 pf_id, u32 pf_rl);
  1897. /**
  1898. * @brief qed_init_vport_wfq Initializes the WFQ weight of the specified VPORT
  1899. *
  1900. * @param p_hwfn
  1901. * @param p_ptt - ptt window used for writing the registers
  1902. * @param first_tx_pq_id- An array containing the first Tx PQ ID associated
  1903. * with the VPORT for each TC. This array is filled by
  1904. * qed_qm_pf_rt_init
  1905. * @param vport_wfq - WFQ weight. Must be non-zero.
  1906. *
  1907. * @return 0 on success, -1 on error.
  1908. */
  1909. int qed_init_vport_wfq(struct qed_hwfn *p_hwfn,
  1910. struct qed_ptt *p_ptt,
  1911. u16 first_tx_pq_id[NUM_OF_TCS], u16 vport_wfq);
  1912. /**
  1913. * @brief qed_init_vport_rl - Initializes the rate limit of the specified VPORT
  1914. *
  1915. * @param p_hwfn
  1916. * @param p_ptt - ptt window used for writing the registers
  1917. * @param vport_id - VPORT ID
  1918. * @param vport_rl - rate limit in Mb/sec units
  1919. *
  1920. * @return 0 on success, -1 on error.
  1921. */
  1922. int qed_init_vport_rl(struct qed_hwfn *p_hwfn,
  1923. struct qed_ptt *p_ptt, u8 vport_id, u32 vport_rl);
  1924. /**
  1925. * @brief qed_send_qm_stop_cmd Sends a stop command to the QM
  1926. *
  1927. * @param p_hwfn
  1928. * @param p_ptt
  1929. * @param is_release_cmd - true for release, false for stop.
  1930. * @param is_tx_pq - true for Tx PQs, false for Other PQs.
  1931. * @param start_pq - first PQ ID to stop
  1932. * @param num_pqs - Number of PQs to stop, starting from start_pq.
  1933. *
  1934. * @return bool, true if successful, false if timeout occured while waiting for QM command done.
  1935. */
  1936. bool qed_send_qm_stop_cmd(struct qed_hwfn *p_hwfn,
  1937. struct qed_ptt *p_ptt,
  1938. bool is_release_cmd,
  1939. bool is_tx_pq, u16 start_pq, u16 num_pqs);
  1940. /**
  1941. * @brief qed_set_vxlan_dest_port - initializes vxlan tunnel destination udp port
  1942. *
  1943. * @param p_ptt - ptt window used for writing the registers.
  1944. * @param dest_port - vxlan destination udp port.
  1945. */
  1946. void qed_set_vxlan_dest_port(struct qed_hwfn *p_hwfn,
  1947. struct qed_ptt *p_ptt, u16 dest_port);
  1948. /**
  1949. * @brief qed_set_vxlan_enable - enable or disable VXLAN tunnel in HW
  1950. *
  1951. * @param p_ptt - ptt window used for writing the registers.
  1952. * @param vxlan_enable - vxlan enable flag.
  1953. */
  1954. void qed_set_vxlan_enable(struct qed_hwfn *p_hwfn,
  1955. struct qed_ptt *p_ptt, bool vxlan_enable);
  1956. /**
  1957. * @brief qed_set_gre_enable - enable or disable GRE tunnel in HW
  1958. *
  1959. * @param p_ptt - ptt window used for writing the registers.
  1960. * @param eth_gre_enable - eth GRE enable enable flag.
  1961. * @param ip_gre_enable - IP GRE enable enable flag.
  1962. */
  1963. void qed_set_gre_enable(struct qed_hwfn *p_hwfn,
  1964. struct qed_ptt *p_ptt,
  1965. bool eth_gre_enable, bool ip_gre_enable);
  1966. /**
  1967. * @brief qed_set_geneve_dest_port - initializes geneve tunnel destination udp port
  1968. *
  1969. * @param p_ptt - ptt window used for writing the registers.
  1970. * @param dest_port - geneve destination udp port.
  1971. */
  1972. void qed_set_geneve_dest_port(struct qed_hwfn *p_hwfn,
  1973. struct qed_ptt *p_ptt, u16 dest_port);
  1974. /**
  1975. * @brief qed_set_gre_enable - enable or disable GRE tunnel in HW
  1976. *
  1977. * @param p_ptt - ptt window used for writing the registers.
  1978. * @param eth_geneve_enable - eth GENEVE enable enable flag.
  1979. * @param ip_geneve_enable - IP GENEVE enable enable flag.
  1980. */
  1981. void qed_set_geneve_enable(struct qed_hwfn *p_hwfn,
  1982. struct qed_ptt *p_ptt,
  1983. bool eth_geneve_enable, bool ip_geneve_enable);
  1984. #define YSTORM_FLOW_CONTROL_MODE_OFFSET (IRO[0].base)
  1985. #define YSTORM_FLOW_CONTROL_MODE_SIZE (IRO[0].size)
  1986. #define TSTORM_PORT_STAT_OFFSET(port_id) \
  1987. (IRO[1].base + ((port_id) * IRO[1].m1))
  1988. #define TSTORM_PORT_STAT_SIZE (IRO[1].size)
  1989. #define USTORM_VF_PF_CHANNEL_READY_OFFSET(vf_id) \
  1990. (IRO[3].base + ((vf_id) * IRO[3].m1))
  1991. #define USTORM_VF_PF_CHANNEL_READY_SIZE (IRO[3].size)
  1992. #define USTORM_FLR_FINAL_ACK_OFFSET(pf_id) \
  1993. (IRO[4].base + (pf_id) * IRO[4].m1)
  1994. #define USTORM_FLR_FINAL_ACK_SIZE (IRO[4].size)
  1995. #define USTORM_EQE_CONS_OFFSET(pf_id) \
  1996. (IRO[5].base + ((pf_id) * IRO[5].m1))
  1997. #define USTORM_EQE_CONS_SIZE (IRO[5].size)
  1998. #define USTORM_ETH_QUEUE_ZONE_OFFSET(queue_zone_id) \
  1999. (IRO[6].base + ((queue_zone_id) * IRO[6].m1))
  2000. #define USTORM_ETH_QUEUE_ZONE_SIZE (IRO[6].size)
  2001. #define USTORM_COMMON_QUEUE_CONS_OFFSET(queue_zone_id) \
  2002. (IRO[7].base + ((queue_zone_id) * IRO[7].m1))
  2003. #define USTORM_COMMON_QUEUE_CONS_SIZE (IRO[7].size)
  2004. #define MSTORM_QUEUE_STAT_OFFSET(stat_counter_id) \
  2005. (IRO[18].base + ((stat_counter_id) * IRO[18].m1))
  2006. #define MSTORM_QUEUE_STAT_SIZE (IRO[18].size)
  2007. #define MSTORM_ETH_PF_PRODS_OFFSET(queue_id) \
  2008. (IRO[19].base + ((queue_id) * IRO[19].m1))
  2009. #define MSTORM_ETH_PF_PRODS_SIZE (IRO[19].size)
  2010. #define MSTORM_TPA_TIMEOUT_US_OFFSET (IRO[20].base)
  2011. #define MSTORM_TPA_TIMEOUT_US_SIZE (IRO[20].size)
  2012. #define MSTORM_ETH_PF_STAT_OFFSET(pf_id) \
  2013. (IRO[21].base + ((pf_id) * IRO[21].m1))
  2014. #define MSTORM_ETH_PF_STAT_SIZE (IRO[21].size)
  2015. #define USTORM_QUEUE_STAT_OFFSET(stat_counter_id) \
  2016. (IRO[22].base + ((stat_counter_id) * IRO[22].m1))
  2017. #define USTORM_QUEUE_STAT_SIZE (IRO[22].size)
  2018. #define USTORM_ETH_PF_STAT_OFFSET(pf_id) \
  2019. (IRO[23].base + ((pf_id) * IRO[23].m1))
  2020. #define USTORM_ETH_PF_STAT_SIZE (IRO[23].size)
  2021. #define PSTORM_QUEUE_STAT_OFFSET(stat_counter_id) \
  2022. (IRO[24].base + ((stat_counter_id) * IRO[24].m1))
  2023. #define PSTORM_QUEUE_STAT_SIZE (IRO[24].size)
  2024. #define PSTORM_ETH_PF_STAT_OFFSET(pf_id) \
  2025. (IRO[25].base + ((pf_id) * IRO[25].m1))
  2026. #define PSTORM_ETH_PF_STAT_SIZE (IRO[25].size)
  2027. #define PSTORM_CTL_FRAME_ETHTYPE_OFFSET(ethtype) \
  2028. (IRO[26].base + ((ethtype) * IRO[26].m1))
  2029. #define PSTORM_CTL_FRAME_ETHTYPE_SIZE (IRO[26].size)
  2030. #define TSTORM_ETH_PRS_INPUT_OFFSET (IRO[27].base)
  2031. #define TSTORM_ETH_PRS_INPUT_SIZE (IRO[27].size)
  2032. #define ETH_RX_RATE_LIMIT_OFFSET(pf_id) \
  2033. (IRO[28].base + ((pf_id) * IRO[28].m1))
  2034. #define ETH_RX_RATE_LIMIT_SIZE (IRO[28].size)
  2035. #define XSTORM_ETH_QUEUE_ZONE_OFFSET(queue_id) \
  2036. (IRO[29].base + ((queue_id) * IRO[29].m1))
  2037. #define XSTORM_ETH_QUEUE_ZONE_SIZE (IRO[29].size)
  2038. static const struct iro iro_arr[46] = {
  2039. {0x0, 0x0, 0x0, 0x0, 0x8},
  2040. {0x4cb0, 0x78, 0x0, 0x0, 0x78},
  2041. {0x6318, 0x20, 0x0, 0x0, 0x20},
  2042. {0xb00, 0x8, 0x0, 0x0, 0x4},
  2043. {0xa80, 0x8, 0x0, 0x0, 0x4},
  2044. {0x0, 0x8, 0x0, 0x0, 0x2},
  2045. {0x80, 0x8, 0x0, 0x0, 0x4},
  2046. {0x84, 0x8, 0x0, 0x0, 0x2},
  2047. {0x4bc0, 0x0, 0x0, 0x0, 0x78},
  2048. {0x3df0, 0x0, 0x0, 0x0, 0x78},
  2049. {0x29b0, 0x0, 0x0, 0x0, 0x78},
  2050. {0x4c38, 0x0, 0x0, 0x0, 0x78},
  2051. {0x4a48, 0x0, 0x0, 0x0, 0x78},
  2052. {0x7e48, 0x0, 0x0, 0x0, 0x78},
  2053. {0xa28, 0x8, 0x0, 0x0, 0x8},
  2054. {0x60f8, 0x10, 0x0, 0x0, 0x10},
  2055. {0xb820, 0x30, 0x0, 0x0, 0x30},
  2056. {0x95b8, 0x30, 0x0, 0x0, 0x30},
  2057. {0x4c18, 0x80, 0x0, 0x0, 0x40},
  2058. {0x1f8, 0x4, 0x0, 0x0, 0x4},
  2059. {0xc9a8, 0x0, 0x0, 0x0, 0x4},
  2060. {0x4c58, 0x80, 0x0, 0x0, 0x20},
  2061. {0x8050, 0x40, 0x0, 0x0, 0x30},
  2062. {0xe770, 0x60, 0x0, 0x0, 0x60},
  2063. {0x2b48, 0x80, 0x0, 0x0, 0x38},
  2064. {0xdf88, 0x78, 0x0, 0x0, 0x78},
  2065. {0x1f8, 0x4, 0x0, 0x0, 0x4},
  2066. {0xacf0, 0x0, 0x0, 0x0, 0xf0},
  2067. {0xade0, 0x8, 0x0, 0x0, 0x8},
  2068. {0x1f8, 0x8, 0x0, 0x0, 0x8},
  2069. {0xac0, 0x8, 0x0, 0x0, 0x8},
  2070. {0x2578, 0x8, 0x0, 0x0, 0x8},
  2071. {0x24f8, 0x8, 0x0, 0x0, 0x8},
  2072. {0x0, 0x8, 0x0, 0x0, 0x8},
  2073. {0x200, 0x10, 0x8, 0x0, 0x8},
  2074. {0xb78, 0x10, 0x8, 0x0, 0x2},
  2075. {0xd888, 0x38, 0x0, 0x0, 0x24},
  2076. {0x12120, 0x10, 0x0, 0x0, 0x8},
  2077. {0x11b20, 0x38, 0x0, 0x0, 0x18},
  2078. {0xa8c0, 0x30, 0x0, 0x0, 0x10},
  2079. {0x86f8, 0x28, 0x0, 0x0, 0x18},
  2080. {0xeff8, 0x10, 0x0, 0x0, 0x10},
  2081. {0xdd08, 0x48, 0x0, 0x0, 0x38},
  2082. {0xf460, 0x20, 0x0, 0x0, 0x20},
  2083. {0x2b80, 0x80, 0x0, 0x0, 0x10},
  2084. {0x5000, 0x10, 0x0, 0x0, 0x10},
  2085. };
  2086. /* Runtime array offsets */
  2087. #define DORQ_REG_PF_MAX_ICID_0_RT_OFFSET 0
  2088. #define DORQ_REG_PF_MAX_ICID_1_RT_OFFSET 1
  2089. #define DORQ_REG_PF_MAX_ICID_2_RT_OFFSET 2
  2090. #define DORQ_REG_PF_MAX_ICID_3_RT_OFFSET 3
  2091. #define DORQ_REG_PF_MAX_ICID_4_RT_OFFSET 4
  2092. #define DORQ_REG_PF_MAX_ICID_5_RT_OFFSET 5
  2093. #define DORQ_REG_PF_MAX_ICID_6_RT_OFFSET 6
  2094. #define DORQ_REG_PF_MAX_ICID_7_RT_OFFSET 7
  2095. #define DORQ_REG_VF_MAX_ICID_0_RT_OFFSET 8
  2096. #define DORQ_REG_VF_MAX_ICID_1_RT_OFFSET 9
  2097. #define DORQ_REG_VF_MAX_ICID_2_RT_OFFSET 10
  2098. #define DORQ_REG_VF_MAX_ICID_3_RT_OFFSET 11
  2099. #define DORQ_REG_VF_MAX_ICID_4_RT_OFFSET 12
  2100. #define DORQ_REG_VF_MAX_ICID_5_RT_OFFSET 13
  2101. #define DORQ_REG_VF_MAX_ICID_6_RT_OFFSET 14
  2102. #define DORQ_REG_VF_MAX_ICID_7_RT_OFFSET 15
  2103. #define DORQ_REG_PF_WAKE_ALL_RT_OFFSET 16
  2104. #define DORQ_REG_TAG1_ETHERTYPE_RT_OFFSET 17
  2105. #define IGU_REG_PF_CONFIGURATION_RT_OFFSET 18
  2106. #define IGU_REG_VF_CONFIGURATION_RT_OFFSET 19
  2107. #define IGU_REG_ATTN_MSG_ADDR_L_RT_OFFSET 20
  2108. #define IGU_REG_ATTN_MSG_ADDR_H_RT_OFFSET 21
  2109. #define IGU_REG_LEADING_EDGE_LATCH_RT_OFFSET 22
  2110. #define IGU_REG_TRAILING_EDGE_LATCH_RT_OFFSET 23
  2111. #define CAU_REG_CQE_AGG_UNIT_SIZE_RT_OFFSET 24
  2112. #define CAU_REG_SB_VAR_MEMORY_RT_OFFSET 761
  2113. #define CAU_REG_SB_VAR_MEMORY_RT_SIZE 736
  2114. #define CAU_REG_SB_VAR_MEMORY_RT_OFFSET 761
  2115. #define CAU_REG_SB_VAR_MEMORY_RT_SIZE 736
  2116. #define CAU_REG_SB_ADDR_MEMORY_RT_OFFSET 1497
  2117. #define CAU_REG_SB_ADDR_MEMORY_RT_SIZE 736
  2118. #define CAU_REG_PI_MEMORY_RT_OFFSET 2233
  2119. #define CAU_REG_PI_MEMORY_RT_SIZE 4416
  2120. #define PRS_REG_SEARCH_RESP_INITIATOR_TYPE_RT_OFFSET 6649
  2121. #define PRS_REG_TASK_ID_MAX_INITIATOR_PF_RT_OFFSET 6650
  2122. #define PRS_REG_TASK_ID_MAX_INITIATOR_VF_RT_OFFSET 6651
  2123. #define PRS_REG_TASK_ID_MAX_TARGET_PF_RT_OFFSET 6652
  2124. #define PRS_REG_TASK_ID_MAX_TARGET_VF_RT_OFFSET 6653
  2125. #define PRS_REG_SEARCH_TCP_RT_OFFSET 6654
  2126. #define PRS_REG_SEARCH_FCOE_RT_OFFSET 6655
  2127. #define PRS_REG_SEARCH_ROCE_RT_OFFSET 6656
  2128. #define PRS_REG_ROCE_DEST_QP_MAX_VF_RT_OFFSET 6657
  2129. #define PRS_REG_ROCE_DEST_QP_MAX_PF_RT_OFFSET 6658
  2130. #define PRS_REG_SEARCH_OPENFLOW_RT_OFFSET 6659
  2131. #define PRS_REG_SEARCH_NON_IP_AS_OPENFLOW_RT_OFFSET 6660
  2132. #define PRS_REG_OPENFLOW_SUPPORT_ONLY_KNOWN_OVER_IP_RT_OFFSET 6661
  2133. #define PRS_REG_OPENFLOW_SEARCH_KEY_MASK_RT_OFFSET 6662
  2134. #define PRS_REG_TAG_ETHERTYPE_0_RT_OFFSET 6663
  2135. #define PRS_REG_LIGHT_L2_ETHERTYPE_EN_RT_OFFSET 6664
  2136. #define SRC_REG_FIRSTFREE_RT_OFFSET 6665
  2137. #define SRC_REG_FIRSTFREE_RT_SIZE 2
  2138. #define SRC_REG_LASTFREE_RT_OFFSET 6667
  2139. #define SRC_REG_LASTFREE_RT_SIZE 2
  2140. #define SRC_REG_COUNTFREE_RT_OFFSET 6669
  2141. #define SRC_REG_NUMBER_HASH_BITS_RT_OFFSET 6670
  2142. #define PSWRQ2_REG_CDUT_P_SIZE_RT_OFFSET 6671
  2143. #define PSWRQ2_REG_CDUC_P_SIZE_RT_OFFSET 6672
  2144. #define PSWRQ2_REG_TM_P_SIZE_RT_OFFSET 6673
  2145. #define PSWRQ2_REG_QM_P_SIZE_RT_OFFSET 6674
  2146. #define PSWRQ2_REG_SRC_P_SIZE_RT_OFFSET 6675
  2147. #define PSWRQ2_REG_TSDM_P_SIZE_RT_OFFSET 6676
  2148. #define PSWRQ2_REG_TM_FIRST_ILT_RT_OFFSET 6677
  2149. #define PSWRQ2_REG_TM_LAST_ILT_RT_OFFSET 6678
  2150. #define PSWRQ2_REG_QM_FIRST_ILT_RT_OFFSET 6679
  2151. #define PSWRQ2_REG_QM_LAST_ILT_RT_OFFSET 6680
  2152. #define PSWRQ2_REG_SRC_FIRST_ILT_RT_OFFSET 6681
  2153. #define PSWRQ2_REG_SRC_LAST_ILT_RT_OFFSET 6682
  2154. #define PSWRQ2_REG_CDUC_FIRST_ILT_RT_OFFSET 6683
  2155. #define PSWRQ2_REG_CDUC_LAST_ILT_RT_OFFSET 6684
  2156. #define PSWRQ2_REG_CDUT_FIRST_ILT_RT_OFFSET 6685
  2157. #define PSWRQ2_REG_CDUT_LAST_ILT_RT_OFFSET 6686
  2158. #define PSWRQ2_REG_TSDM_FIRST_ILT_RT_OFFSET 6687
  2159. #define PSWRQ2_REG_TSDM_LAST_ILT_RT_OFFSET 6688
  2160. #define PSWRQ2_REG_TM_NUMBER_OF_PF_BLOCKS_RT_OFFSET 6689
  2161. #define PSWRQ2_REG_CDUT_NUMBER_OF_PF_BLOCKS_RT_OFFSET 6690
  2162. #define PSWRQ2_REG_CDUC_NUMBER_OF_PF_BLOCKS_RT_OFFSET 6691
  2163. #define PSWRQ2_REG_TM_VF_BLOCKS_RT_OFFSET 6692
  2164. #define PSWRQ2_REG_CDUT_VF_BLOCKS_RT_OFFSET 6693
  2165. #define PSWRQ2_REG_CDUC_VF_BLOCKS_RT_OFFSET 6694
  2166. #define PSWRQ2_REG_TM_BLOCKS_FACTOR_RT_OFFSET 6695
  2167. #define PSWRQ2_REG_CDUT_BLOCKS_FACTOR_RT_OFFSET 6696
  2168. #define PSWRQ2_REG_CDUC_BLOCKS_FACTOR_RT_OFFSET 6697
  2169. #define PSWRQ2_REG_VF_BASE_RT_OFFSET 6698
  2170. #define PSWRQ2_REG_VF_LAST_ILT_RT_OFFSET 6699
  2171. #define PSWRQ2_REG_WR_MBS0_RT_OFFSET 6700
  2172. #define PSWRQ2_REG_RD_MBS0_RT_OFFSET 6701
  2173. #define PSWRQ2_REG_DRAM_ALIGN_WR_RT_OFFSET 6702
  2174. #define PSWRQ2_REG_DRAM_ALIGN_RD_RT_OFFSET 6703
  2175. #define PSWRQ2_REG_ILT_MEMORY_RT_OFFSET 6704
  2176. #define PSWRQ2_REG_ILT_MEMORY_RT_SIZE 22000
  2177. #define PGLUE_REG_B_VF_BASE_RT_OFFSET 28704
  2178. #define PGLUE_REG_B_CACHE_LINE_SIZE_RT_OFFSET 28705
  2179. #define PGLUE_REG_B_PF_BAR0_SIZE_RT_OFFSET 28706
  2180. #define PGLUE_REG_B_PF_BAR1_SIZE_RT_OFFSET 28707
  2181. #define PGLUE_REG_B_VF_BAR1_SIZE_RT_OFFSET 28708
  2182. #define TM_REG_VF_ENABLE_CONN_RT_OFFSET 28709
  2183. #define TM_REG_PF_ENABLE_CONN_RT_OFFSET 28710
  2184. #define TM_REG_PF_ENABLE_TASK_RT_OFFSET 28711
  2185. #define TM_REG_GROUP_SIZE_RESOLUTION_CONN_RT_OFFSET 28712
  2186. #define TM_REG_GROUP_SIZE_RESOLUTION_TASK_RT_OFFSET 28713
  2187. #define TM_REG_CONFIG_CONN_MEM_RT_OFFSET 28714
  2188. #define TM_REG_CONFIG_CONN_MEM_RT_SIZE 416
  2189. #define TM_REG_CONFIG_TASK_MEM_RT_OFFSET 29130
  2190. #define TM_REG_CONFIG_TASK_MEM_RT_SIZE 512
  2191. #define QM_REG_MAXPQSIZE_0_RT_OFFSET 29642
  2192. #define QM_REG_MAXPQSIZE_1_RT_OFFSET 29643
  2193. #define QM_REG_MAXPQSIZE_2_RT_OFFSET 29644
  2194. #define QM_REG_MAXPQSIZETXSEL_0_RT_OFFSET 29645
  2195. #define QM_REG_MAXPQSIZETXSEL_1_RT_OFFSET 29646
  2196. #define QM_REG_MAXPQSIZETXSEL_2_RT_OFFSET 29647
  2197. #define QM_REG_MAXPQSIZETXSEL_3_RT_OFFSET 29648
  2198. #define QM_REG_MAXPQSIZETXSEL_4_RT_OFFSET 29649
  2199. #define QM_REG_MAXPQSIZETXSEL_5_RT_OFFSET 29650
  2200. #define QM_REG_MAXPQSIZETXSEL_6_RT_OFFSET 29651
  2201. #define QM_REG_MAXPQSIZETXSEL_7_RT_OFFSET 29652
  2202. #define QM_REG_MAXPQSIZETXSEL_8_RT_OFFSET 29653
  2203. #define QM_REG_MAXPQSIZETXSEL_9_RT_OFFSET 29654
  2204. #define QM_REG_MAXPQSIZETXSEL_10_RT_OFFSET 29655
  2205. #define QM_REG_MAXPQSIZETXSEL_11_RT_OFFSET 29656
  2206. #define QM_REG_MAXPQSIZETXSEL_12_RT_OFFSET 29657
  2207. #define QM_REG_MAXPQSIZETXSEL_13_RT_OFFSET 29658
  2208. #define QM_REG_MAXPQSIZETXSEL_14_RT_OFFSET 29659
  2209. #define QM_REG_MAXPQSIZETXSEL_15_RT_OFFSET 29660
  2210. #define QM_REG_MAXPQSIZETXSEL_16_RT_OFFSET 29661
  2211. #define QM_REG_MAXPQSIZETXSEL_17_RT_OFFSET 29662
  2212. #define QM_REG_MAXPQSIZETXSEL_18_RT_OFFSET 29663
  2213. #define QM_REG_MAXPQSIZETXSEL_19_RT_OFFSET 29664
  2214. #define QM_REG_MAXPQSIZETXSEL_20_RT_OFFSET 29665
  2215. #define QM_REG_MAXPQSIZETXSEL_21_RT_OFFSET 29666
  2216. #define QM_REG_MAXPQSIZETXSEL_22_RT_OFFSET 29667
  2217. #define QM_REG_MAXPQSIZETXSEL_23_RT_OFFSET 29668
  2218. #define QM_REG_MAXPQSIZETXSEL_24_RT_OFFSET 29669
  2219. #define QM_REG_MAXPQSIZETXSEL_25_RT_OFFSET 29670
  2220. #define QM_REG_MAXPQSIZETXSEL_26_RT_OFFSET 29671
  2221. #define QM_REG_MAXPQSIZETXSEL_27_RT_OFFSET 29672
  2222. #define QM_REG_MAXPQSIZETXSEL_28_RT_OFFSET 29673
  2223. #define QM_REG_MAXPQSIZETXSEL_29_RT_OFFSET 29674
  2224. #define QM_REG_MAXPQSIZETXSEL_30_RT_OFFSET 29675
  2225. #define QM_REG_MAXPQSIZETXSEL_31_RT_OFFSET 29676
  2226. #define QM_REG_MAXPQSIZETXSEL_32_RT_OFFSET 29677
  2227. #define QM_REG_MAXPQSIZETXSEL_33_RT_OFFSET 29678
  2228. #define QM_REG_MAXPQSIZETXSEL_34_RT_OFFSET 29679
  2229. #define QM_REG_MAXPQSIZETXSEL_35_RT_OFFSET 29680
  2230. #define QM_REG_MAXPQSIZETXSEL_36_RT_OFFSET 29681
  2231. #define QM_REG_MAXPQSIZETXSEL_37_RT_OFFSET 29682
  2232. #define QM_REG_MAXPQSIZETXSEL_38_RT_OFFSET 29683
  2233. #define QM_REG_MAXPQSIZETXSEL_39_RT_OFFSET 29684
  2234. #define QM_REG_MAXPQSIZETXSEL_40_RT_OFFSET 29685
  2235. #define QM_REG_MAXPQSIZETXSEL_41_RT_OFFSET 29686
  2236. #define QM_REG_MAXPQSIZETXSEL_42_RT_OFFSET 29687
  2237. #define QM_REG_MAXPQSIZETXSEL_43_RT_OFFSET 29688
  2238. #define QM_REG_MAXPQSIZETXSEL_44_RT_OFFSET 29689
  2239. #define QM_REG_MAXPQSIZETXSEL_45_RT_OFFSET 29690
  2240. #define QM_REG_MAXPQSIZETXSEL_46_RT_OFFSET 29691
  2241. #define QM_REG_MAXPQSIZETXSEL_47_RT_OFFSET 29692
  2242. #define QM_REG_MAXPQSIZETXSEL_48_RT_OFFSET 29693
  2243. #define QM_REG_MAXPQSIZETXSEL_49_RT_OFFSET 29694
  2244. #define QM_REG_MAXPQSIZETXSEL_50_RT_OFFSET 29695
  2245. #define QM_REG_MAXPQSIZETXSEL_51_RT_OFFSET 29696
  2246. #define QM_REG_MAXPQSIZETXSEL_52_RT_OFFSET 29697
  2247. #define QM_REG_MAXPQSIZETXSEL_53_RT_OFFSET 29698
  2248. #define QM_REG_MAXPQSIZETXSEL_54_RT_OFFSET 29699
  2249. #define QM_REG_MAXPQSIZETXSEL_55_RT_OFFSET 29700
  2250. #define QM_REG_MAXPQSIZETXSEL_56_RT_OFFSET 29701
  2251. #define QM_REG_MAXPQSIZETXSEL_57_RT_OFFSET 29702
  2252. #define QM_REG_MAXPQSIZETXSEL_58_RT_OFFSET 29703
  2253. #define QM_REG_MAXPQSIZETXSEL_59_RT_OFFSET 29704
  2254. #define QM_REG_MAXPQSIZETXSEL_60_RT_OFFSET 29705
  2255. #define QM_REG_MAXPQSIZETXSEL_61_RT_OFFSET 29706
  2256. #define QM_REG_MAXPQSIZETXSEL_62_RT_OFFSET 29707
  2257. #define QM_REG_MAXPQSIZETXSEL_63_RT_OFFSET 29708
  2258. #define QM_REG_BASEADDROTHERPQ_RT_OFFSET 29709
  2259. #define QM_REG_BASEADDROTHERPQ_RT_SIZE 128
  2260. #define QM_REG_VOQCRDLINE_RT_OFFSET 29837
  2261. #define QM_REG_VOQCRDLINE_RT_SIZE 20
  2262. #define QM_REG_VOQINITCRDLINE_RT_OFFSET 29857
  2263. #define QM_REG_VOQINITCRDLINE_RT_SIZE 20
  2264. #define QM_REG_AFULLQMBYPTHRPFWFQ_RT_OFFSET 29877
  2265. #define QM_REG_AFULLQMBYPTHRVPWFQ_RT_OFFSET 29878
  2266. #define QM_REG_AFULLQMBYPTHRPFRL_RT_OFFSET 29879
  2267. #define QM_REG_AFULLQMBYPTHRGLBLRL_RT_OFFSET 29880
  2268. #define QM_REG_AFULLOPRTNSTCCRDMASK_RT_OFFSET 29881
  2269. #define QM_REG_WRROTHERPQGRP_0_RT_OFFSET 29882
  2270. #define QM_REG_WRROTHERPQGRP_1_RT_OFFSET 29883
  2271. #define QM_REG_WRROTHERPQGRP_2_RT_OFFSET 29884
  2272. #define QM_REG_WRROTHERPQGRP_3_RT_OFFSET 29885
  2273. #define QM_REG_WRROTHERPQGRP_4_RT_OFFSET 29886
  2274. #define QM_REG_WRROTHERPQGRP_5_RT_OFFSET 29887
  2275. #define QM_REG_WRROTHERPQGRP_6_RT_OFFSET 29888
  2276. #define QM_REG_WRROTHERPQGRP_7_RT_OFFSET 29889
  2277. #define QM_REG_WRROTHERPQGRP_8_RT_OFFSET 29890
  2278. #define QM_REG_WRROTHERPQGRP_9_RT_OFFSET 29891
  2279. #define QM_REG_WRROTHERPQGRP_10_RT_OFFSET 29892
  2280. #define QM_REG_WRROTHERPQGRP_11_RT_OFFSET 29893
  2281. #define QM_REG_WRROTHERPQGRP_12_RT_OFFSET 29894
  2282. #define QM_REG_WRROTHERPQGRP_13_RT_OFFSET 29895
  2283. #define QM_REG_WRROTHERPQGRP_14_RT_OFFSET 29896
  2284. #define QM_REG_WRROTHERPQGRP_15_RT_OFFSET 29897
  2285. #define QM_REG_WRROTHERGRPWEIGHT_0_RT_OFFSET 29898
  2286. #define QM_REG_WRROTHERGRPWEIGHT_1_RT_OFFSET 29899
  2287. #define QM_REG_WRROTHERGRPWEIGHT_2_RT_OFFSET 29900
  2288. #define QM_REG_WRROTHERGRPWEIGHT_3_RT_OFFSET 29901
  2289. #define QM_REG_WRRTXGRPWEIGHT_0_RT_OFFSET 29902
  2290. #define QM_REG_WRRTXGRPWEIGHT_1_RT_OFFSET 29903
  2291. #define QM_REG_PQTX2PF_0_RT_OFFSET 29904
  2292. #define QM_REG_PQTX2PF_1_RT_OFFSET 29905
  2293. #define QM_REG_PQTX2PF_2_RT_OFFSET 29906
  2294. #define QM_REG_PQTX2PF_3_RT_OFFSET 29907
  2295. #define QM_REG_PQTX2PF_4_RT_OFFSET 29908
  2296. #define QM_REG_PQTX2PF_5_RT_OFFSET 29909
  2297. #define QM_REG_PQTX2PF_6_RT_OFFSET 29910
  2298. #define QM_REG_PQTX2PF_7_RT_OFFSET 29911
  2299. #define QM_REG_PQTX2PF_8_RT_OFFSET 29912
  2300. #define QM_REG_PQTX2PF_9_RT_OFFSET 29913
  2301. #define QM_REG_PQTX2PF_10_RT_OFFSET 29914
  2302. #define QM_REG_PQTX2PF_11_RT_OFFSET 29915
  2303. #define QM_REG_PQTX2PF_12_RT_OFFSET 29916
  2304. #define QM_REG_PQTX2PF_13_RT_OFFSET 29917
  2305. #define QM_REG_PQTX2PF_14_RT_OFFSET 29918
  2306. #define QM_REG_PQTX2PF_15_RT_OFFSET 29919
  2307. #define QM_REG_PQTX2PF_16_RT_OFFSET 29920
  2308. #define QM_REG_PQTX2PF_17_RT_OFFSET 29921
  2309. #define QM_REG_PQTX2PF_18_RT_OFFSET 29922
  2310. #define QM_REG_PQTX2PF_19_RT_OFFSET 29923
  2311. #define QM_REG_PQTX2PF_20_RT_OFFSET 29924
  2312. #define QM_REG_PQTX2PF_21_RT_OFFSET 29925
  2313. #define QM_REG_PQTX2PF_22_RT_OFFSET 29926
  2314. #define QM_REG_PQTX2PF_23_RT_OFFSET 29927
  2315. #define QM_REG_PQTX2PF_24_RT_OFFSET 29928
  2316. #define QM_REG_PQTX2PF_25_RT_OFFSET 29929
  2317. #define QM_REG_PQTX2PF_26_RT_OFFSET 29930
  2318. #define QM_REG_PQTX2PF_27_RT_OFFSET 29931
  2319. #define QM_REG_PQTX2PF_28_RT_OFFSET 29932
  2320. #define QM_REG_PQTX2PF_29_RT_OFFSET 29933
  2321. #define QM_REG_PQTX2PF_30_RT_OFFSET 29934
  2322. #define QM_REG_PQTX2PF_31_RT_OFFSET 29935
  2323. #define QM_REG_PQTX2PF_32_RT_OFFSET 29936
  2324. #define QM_REG_PQTX2PF_33_RT_OFFSET 29937
  2325. #define QM_REG_PQTX2PF_34_RT_OFFSET 29938
  2326. #define QM_REG_PQTX2PF_35_RT_OFFSET 29939
  2327. #define QM_REG_PQTX2PF_36_RT_OFFSET 29940
  2328. #define QM_REG_PQTX2PF_37_RT_OFFSET 29941
  2329. #define QM_REG_PQTX2PF_38_RT_OFFSET 29942
  2330. #define QM_REG_PQTX2PF_39_RT_OFFSET 29943
  2331. #define QM_REG_PQTX2PF_40_RT_OFFSET 29944
  2332. #define QM_REG_PQTX2PF_41_RT_OFFSET 29945
  2333. #define QM_REG_PQTX2PF_42_RT_OFFSET 29946
  2334. #define QM_REG_PQTX2PF_43_RT_OFFSET 29947
  2335. #define QM_REG_PQTX2PF_44_RT_OFFSET 29948
  2336. #define QM_REG_PQTX2PF_45_RT_OFFSET 29949
  2337. #define QM_REG_PQTX2PF_46_RT_OFFSET 29950
  2338. #define QM_REG_PQTX2PF_47_RT_OFFSET 29951
  2339. #define QM_REG_PQTX2PF_48_RT_OFFSET 29952
  2340. #define QM_REG_PQTX2PF_49_RT_OFFSET 29953
  2341. #define QM_REG_PQTX2PF_50_RT_OFFSET 29954
  2342. #define QM_REG_PQTX2PF_51_RT_OFFSET 29955
  2343. #define QM_REG_PQTX2PF_52_RT_OFFSET 29956
  2344. #define QM_REG_PQTX2PF_53_RT_OFFSET 29957
  2345. #define QM_REG_PQTX2PF_54_RT_OFFSET 29958
  2346. #define QM_REG_PQTX2PF_55_RT_OFFSET 29959
  2347. #define QM_REG_PQTX2PF_56_RT_OFFSET 29960
  2348. #define QM_REG_PQTX2PF_57_RT_OFFSET 29961
  2349. #define QM_REG_PQTX2PF_58_RT_OFFSET 29962
  2350. #define QM_REG_PQTX2PF_59_RT_OFFSET 29963
  2351. #define QM_REG_PQTX2PF_60_RT_OFFSET 29964
  2352. #define QM_REG_PQTX2PF_61_RT_OFFSET 29965
  2353. #define QM_REG_PQTX2PF_62_RT_OFFSET 29966
  2354. #define QM_REG_PQTX2PF_63_RT_OFFSET 29967
  2355. #define QM_REG_PQOTHER2PF_0_RT_OFFSET 29968
  2356. #define QM_REG_PQOTHER2PF_1_RT_OFFSET 29969
  2357. #define QM_REG_PQOTHER2PF_2_RT_OFFSET 29970
  2358. #define QM_REG_PQOTHER2PF_3_RT_OFFSET 29971
  2359. #define QM_REG_PQOTHER2PF_4_RT_OFFSET 29972
  2360. #define QM_REG_PQOTHER2PF_5_RT_OFFSET 29973
  2361. #define QM_REG_PQOTHER2PF_6_RT_OFFSET 29974
  2362. #define QM_REG_PQOTHER2PF_7_RT_OFFSET 29975
  2363. #define QM_REG_PQOTHER2PF_8_RT_OFFSET 29976
  2364. #define QM_REG_PQOTHER2PF_9_RT_OFFSET 29977
  2365. #define QM_REG_PQOTHER2PF_10_RT_OFFSET 29978
  2366. #define QM_REG_PQOTHER2PF_11_RT_OFFSET 29979
  2367. #define QM_REG_PQOTHER2PF_12_RT_OFFSET 29980
  2368. #define QM_REG_PQOTHER2PF_13_RT_OFFSET 29981
  2369. #define QM_REG_PQOTHER2PF_14_RT_OFFSET 29982
  2370. #define QM_REG_PQOTHER2PF_15_RT_OFFSET 29983
  2371. #define QM_REG_RLGLBLPERIOD_0_RT_OFFSET 29984
  2372. #define QM_REG_RLGLBLPERIOD_1_RT_OFFSET 29985
  2373. #define QM_REG_RLGLBLPERIODTIMER_0_RT_OFFSET 29986
  2374. #define QM_REG_RLGLBLPERIODTIMER_1_RT_OFFSET 29987
  2375. #define QM_REG_RLGLBLPERIODSEL_0_RT_OFFSET 29988
  2376. #define QM_REG_RLGLBLPERIODSEL_1_RT_OFFSET 29989
  2377. #define QM_REG_RLGLBLPERIODSEL_2_RT_OFFSET 29990
  2378. #define QM_REG_RLGLBLPERIODSEL_3_RT_OFFSET 29991
  2379. #define QM_REG_RLGLBLPERIODSEL_4_RT_OFFSET 29992
  2380. #define QM_REG_RLGLBLPERIODSEL_5_RT_OFFSET 29993
  2381. #define QM_REG_RLGLBLPERIODSEL_6_RT_OFFSET 29994
  2382. #define QM_REG_RLGLBLPERIODSEL_7_RT_OFFSET 29995
  2383. #define QM_REG_RLGLBLINCVAL_RT_OFFSET 29996
  2384. #define QM_REG_RLGLBLINCVAL_RT_SIZE 256
  2385. #define QM_REG_RLGLBLUPPERBOUND_RT_OFFSET 30252
  2386. #define QM_REG_RLGLBLUPPERBOUND_RT_SIZE 256
  2387. #define QM_REG_RLGLBLCRD_RT_OFFSET 30508
  2388. #define QM_REG_RLGLBLCRD_RT_SIZE 256
  2389. #define QM_REG_RLGLBLENABLE_RT_OFFSET 30764
  2390. #define QM_REG_RLPFPERIOD_RT_OFFSET 30765
  2391. #define QM_REG_RLPFPERIODTIMER_RT_OFFSET 30766
  2392. #define QM_REG_RLPFINCVAL_RT_OFFSET 30767
  2393. #define QM_REG_RLPFINCVAL_RT_SIZE 16
  2394. #define QM_REG_RLPFUPPERBOUND_RT_OFFSET 30783
  2395. #define QM_REG_RLPFUPPERBOUND_RT_SIZE 16
  2396. #define QM_REG_RLPFCRD_RT_OFFSET 30799
  2397. #define QM_REG_RLPFCRD_RT_SIZE 16
  2398. #define QM_REG_RLPFENABLE_RT_OFFSET 30815
  2399. #define QM_REG_RLPFVOQENABLE_RT_OFFSET 30816
  2400. #define QM_REG_WFQPFWEIGHT_RT_OFFSET 30817
  2401. #define QM_REG_WFQPFWEIGHT_RT_SIZE 16
  2402. #define QM_REG_WFQPFUPPERBOUND_RT_OFFSET 30833
  2403. #define QM_REG_WFQPFUPPERBOUND_RT_SIZE 16
  2404. #define QM_REG_WFQPFCRD_RT_OFFSET 30849
  2405. #define QM_REG_WFQPFCRD_RT_SIZE 160
  2406. #define QM_REG_WFQPFENABLE_RT_OFFSET 31009
  2407. #define QM_REG_WFQVPENABLE_RT_OFFSET 31010
  2408. #define QM_REG_BASEADDRTXPQ_RT_OFFSET 31011
  2409. #define QM_REG_BASEADDRTXPQ_RT_SIZE 512
  2410. #define QM_REG_TXPQMAP_RT_OFFSET 31523
  2411. #define QM_REG_TXPQMAP_RT_SIZE 512
  2412. #define QM_REG_WFQVPWEIGHT_RT_OFFSET 32035
  2413. #define QM_REG_WFQVPWEIGHT_RT_SIZE 512
  2414. #define QM_REG_WFQVPCRD_RT_OFFSET 32547
  2415. #define QM_REG_WFQVPCRD_RT_SIZE 512
  2416. #define QM_REG_WFQVPMAP_RT_OFFSET 33059
  2417. #define QM_REG_WFQVPMAP_RT_SIZE 512
  2418. #define QM_REG_WFQPFCRD_MSB_RT_OFFSET 33571
  2419. #define QM_REG_WFQPFCRD_MSB_RT_SIZE 160
  2420. #define NIG_REG_TAG_ETHERTYPE_0_RT_OFFSET 33731
  2421. #define NIG_REG_OUTER_TAG_VALUE_LIST0_RT_OFFSET 33732
  2422. #define NIG_REG_OUTER_TAG_VALUE_LIST1_RT_OFFSET 33733
  2423. #define NIG_REG_OUTER_TAG_VALUE_LIST2_RT_OFFSET 33734
  2424. #define NIG_REG_OUTER_TAG_VALUE_LIST3_RT_OFFSET 33735
  2425. #define NIG_REG_OUTER_TAG_VALUE_MASK_RT_OFFSET 33736
  2426. #define NIG_REG_LLH_FUNC_TAGMAC_CLS_TYPE_RT_OFFSET 33737
  2427. #define NIG_REG_LLH_FUNC_TAG_EN_RT_OFFSET 33738
  2428. #define NIG_REG_LLH_FUNC_TAG_EN_RT_SIZE 4
  2429. #define NIG_REG_LLH_FUNC_TAG_HDR_SEL_RT_OFFSET 33742
  2430. #define NIG_REG_LLH_FUNC_TAG_HDR_SEL_RT_SIZE 4
  2431. #define NIG_REG_LLH_FUNC_TAG_VALUE_RT_OFFSET 33746
  2432. #define NIG_REG_LLH_FUNC_TAG_VALUE_RT_SIZE 4
  2433. #define NIG_REG_LLH_FUNC_NO_TAG_RT_OFFSET 33750
  2434. #define NIG_REG_LLH_FUNC_FILTER_VALUE_RT_OFFSET 33751
  2435. #define NIG_REG_LLH_FUNC_FILTER_VALUE_RT_SIZE 32
  2436. #define NIG_REG_LLH_FUNC_FILTER_EN_RT_OFFSET 33783
  2437. #define NIG_REG_LLH_FUNC_FILTER_EN_RT_SIZE 16
  2438. #define NIG_REG_LLH_FUNC_FILTER_MODE_RT_OFFSET 33799
  2439. #define NIG_REG_LLH_FUNC_FILTER_MODE_RT_SIZE 16
  2440. #define NIG_REG_LLH_FUNC_FILTER_PROTOCOL_TYPE_RT_OFFSET 33815
  2441. #define NIG_REG_LLH_FUNC_FILTER_PROTOCOL_TYPE_RT_SIZE 16
  2442. #define NIG_REG_LLH_FUNC_FILTER_HDR_SEL_RT_OFFSET 33831
  2443. #define NIG_REG_LLH_FUNC_FILTER_HDR_SEL_RT_SIZE 16
  2444. #define NIG_REG_TX_EDPM_CTRL_RT_OFFSET 33847
  2445. #define NIG_REG_ROCE_DUPLICATE_TO_HOST_RT_OFFSET 33848
  2446. #define CDU_REG_CID_ADDR_PARAMS_RT_OFFSET 33849
  2447. #define CDU_REG_SEGMENT0_PARAMS_RT_OFFSET 33850
  2448. #define CDU_REG_SEGMENT1_PARAMS_RT_OFFSET 33851
  2449. #define CDU_REG_PF_SEG0_TYPE_OFFSET_RT_OFFSET 33852
  2450. #define CDU_REG_PF_SEG1_TYPE_OFFSET_RT_OFFSET 33853
  2451. #define CDU_REG_PF_SEG2_TYPE_OFFSET_RT_OFFSET 33854
  2452. #define CDU_REG_PF_SEG3_TYPE_OFFSET_RT_OFFSET 33855
  2453. #define CDU_REG_PF_FL_SEG0_TYPE_OFFSET_RT_OFFSET 33856
  2454. #define CDU_REG_PF_FL_SEG1_TYPE_OFFSET_RT_OFFSET 33857
  2455. #define CDU_REG_PF_FL_SEG2_TYPE_OFFSET_RT_OFFSET 33858
  2456. #define CDU_REG_PF_FL_SEG3_TYPE_OFFSET_RT_OFFSET 33859
  2457. #define CDU_REG_VF_SEG_TYPE_OFFSET_RT_OFFSET 33860
  2458. #define CDU_REG_VF_FL_SEG_TYPE_OFFSET_RT_OFFSET 33861
  2459. #define PBF_REG_TAG_ETHERTYPE_0_RT_OFFSET 33862
  2460. #define PBF_REG_BTB_SHARED_AREA_SIZE_RT_OFFSET 33863
  2461. #define PBF_REG_YCMD_QS_NUM_LINES_VOQ0_RT_OFFSET 33864
  2462. #define PBF_REG_BTB_GUARANTEED_VOQ0_RT_OFFSET 33865
  2463. #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ0_RT_OFFSET 33866
  2464. #define PBF_REG_YCMD_QS_NUM_LINES_VOQ1_RT_OFFSET 33867
  2465. #define PBF_REG_BTB_GUARANTEED_VOQ1_RT_OFFSET 33868
  2466. #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ1_RT_OFFSET 33869
  2467. #define PBF_REG_YCMD_QS_NUM_LINES_VOQ2_RT_OFFSET 33870
  2468. #define PBF_REG_BTB_GUARANTEED_VOQ2_RT_OFFSET 33871
  2469. #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ2_RT_OFFSET 33872
  2470. #define PBF_REG_YCMD_QS_NUM_LINES_VOQ3_RT_OFFSET 33873
  2471. #define PBF_REG_BTB_GUARANTEED_VOQ3_RT_OFFSET 33874
  2472. #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ3_RT_OFFSET 33875
  2473. #define PBF_REG_YCMD_QS_NUM_LINES_VOQ4_RT_OFFSET 33876
  2474. #define PBF_REG_BTB_GUARANTEED_VOQ4_RT_OFFSET 33877
  2475. #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ4_RT_OFFSET 33878
  2476. #define PBF_REG_YCMD_QS_NUM_LINES_VOQ5_RT_OFFSET 33879
  2477. #define PBF_REG_BTB_GUARANTEED_VOQ5_RT_OFFSET 33880
  2478. #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ5_RT_OFFSET 33881
  2479. #define PBF_REG_YCMD_QS_NUM_LINES_VOQ6_RT_OFFSET 33882
  2480. #define PBF_REG_BTB_GUARANTEED_VOQ6_RT_OFFSET 33883
  2481. #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ6_RT_OFFSET 33884
  2482. #define PBF_REG_YCMD_QS_NUM_LINES_VOQ7_RT_OFFSET 33885
  2483. #define PBF_REG_BTB_GUARANTEED_VOQ7_RT_OFFSET 33886
  2484. #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ7_RT_OFFSET 33887
  2485. #define PBF_REG_YCMD_QS_NUM_LINES_VOQ8_RT_OFFSET 33888
  2486. #define PBF_REG_BTB_GUARANTEED_VOQ8_RT_OFFSET 33889
  2487. #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ8_RT_OFFSET 33890
  2488. #define PBF_REG_YCMD_QS_NUM_LINES_VOQ9_RT_OFFSET 33891
  2489. #define PBF_REG_BTB_GUARANTEED_VOQ9_RT_OFFSET 33892
  2490. #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ9_RT_OFFSET 33893
  2491. #define PBF_REG_YCMD_QS_NUM_LINES_VOQ10_RT_OFFSET 33894
  2492. #define PBF_REG_BTB_GUARANTEED_VOQ10_RT_OFFSET 33895
  2493. #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ10_RT_OFFSET 33896
  2494. #define PBF_REG_YCMD_QS_NUM_LINES_VOQ11_RT_OFFSET 33897
  2495. #define PBF_REG_BTB_GUARANTEED_VOQ11_RT_OFFSET 33898
  2496. #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ11_RT_OFFSET 33899
  2497. #define PBF_REG_YCMD_QS_NUM_LINES_VOQ12_RT_OFFSET 33900
  2498. #define PBF_REG_BTB_GUARANTEED_VOQ12_RT_OFFSET 33901
  2499. #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ12_RT_OFFSET 33902
  2500. #define PBF_REG_YCMD_QS_NUM_LINES_VOQ13_RT_OFFSET 33903
  2501. #define PBF_REG_BTB_GUARANTEED_VOQ13_RT_OFFSET 33904
  2502. #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ13_RT_OFFSET 33905
  2503. #define PBF_REG_YCMD_QS_NUM_LINES_VOQ14_RT_OFFSET 33906
  2504. #define PBF_REG_BTB_GUARANTEED_VOQ14_RT_OFFSET 33907
  2505. #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ14_RT_OFFSET 33908
  2506. #define PBF_REG_YCMD_QS_NUM_LINES_VOQ15_RT_OFFSET 33909
  2507. #define PBF_REG_BTB_GUARANTEED_VOQ15_RT_OFFSET 33910
  2508. #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ15_RT_OFFSET 33911
  2509. #define PBF_REG_YCMD_QS_NUM_LINES_VOQ16_RT_OFFSET 33912
  2510. #define PBF_REG_BTB_GUARANTEED_VOQ16_RT_OFFSET 33913
  2511. #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ16_RT_OFFSET 33914
  2512. #define PBF_REG_YCMD_QS_NUM_LINES_VOQ17_RT_OFFSET 33915
  2513. #define PBF_REG_BTB_GUARANTEED_VOQ17_RT_OFFSET 33916
  2514. #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ17_RT_OFFSET 33917
  2515. #define PBF_REG_YCMD_QS_NUM_LINES_VOQ18_RT_OFFSET 33918
  2516. #define PBF_REG_BTB_GUARANTEED_VOQ18_RT_OFFSET 33919
  2517. #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ18_RT_OFFSET 33920
  2518. #define PBF_REG_YCMD_QS_NUM_LINES_VOQ19_RT_OFFSET 33921
  2519. #define PBF_REG_BTB_GUARANTEED_VOQ19_RT_OFFSET 33922
  2520. #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ19_RT_OFFSET 33923
  2521. #define XCM_REG_CON_PHY_Q3_RT_OFFSET 33924
  2522. #define RUNTIME_ARRAY_SIZE 33925
  2523. /* The eth storm context for the Tstorm */
  2524. struct tstorm_eth_conn_st_ctx {
  2525. __le32 reserved[4];
  2526. };
  2527. /* The eth storm context for the Pstorm */
  2528. struct pstorm_eth_conn_st_ctx {
  2529. __le32 reserved[8];
  2530. };
  2531. /* The eth storm context for the Xstorm */
  2532. struct xstorm_eth_conn_st_ctx {
  2533. __le32 reserved[60];
  2534. };
  2535. struct xstorm_eth_conn_ag_ctx {
  2536. u8 reserved0;
  2537. u8 eth_state;
  2538. u8 flags0;
  2539. #define XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
  2540. #define XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
  2541. #define XSTORM_ETH_CONN_AG_CTX_RESERVED1_MASK 0x1
  2542. #define XSTORM_ETH_CONN_AG_CTX_RESERVED1_SHIFT 1
  2543. #define XSTORM_ETH_CONN_AG_CTX_RESERVED2_MASK 0x1
  2544. #define XSTORM_ETH_CONN_AG_CTX_RESERVED2_SHIFT 2
  2545. #define XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
  2546. #define XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
  2547. #define XSTORM_ETH_CONN_AG_CTX_RESERVED3_MASK 0x1
  2548. #define XSTORM_ETH_CONN_AG_CTX_RESERVED3_SHIFT 4
  2549. #define XSTORM_ETH_CONN_AG_CTX_RESERVED4_MASK 0x1
  2550. #define XSTORM_ETH_CONN_AG_CTX_RESERVED4_SHIFT 5
  2551. #define XSTORM_ETH_CONN_AG_CTX_RESERVED5_MASK 0x1
  2552. #define XSTORM_ETH_CONN_AG_CTX_RESERVED5_SHIFT 6
  2553. #define XSTORM_ETH_CONN_AG_CTX_RESERVED6_MASK 0x1
  2554. #define XSTORM_ETH_CONN_AG_CTX_RESERVED6_SHIFT 7
  2555. u8 flags1;
  2556. #define XSTORM_ETH_CONN_AG_CTX_RESERVED7_MASK 0x1
  2557. #define XSTORM_ETH_CONN_AG_CTX_RESERVED7_SHIFT 0
  2558. #define XSTORM_ETH_CONN_AG_CTX_RESERVED8_MASK 0x1
  2559. #define XSTORM_ETH_CONN_AG_CTX_RESERVED8_SHIFT 1
  2560. #define XSTORM_ETH_CONN_AG_CTX_RESERVED9_MASK 0x1
  2561. #define XSTORM_ETH_CONN_AG_CTX_RESERVED9_SHIFT 2
  2562. #define XSTORM_ETH_CONN_AG_CTX_BIT11_MASK 0x1
  2563. #define XSTORM_ETH_CONN_AG_CTX_BIT11_SHIFT 3
  2564. #define XSTORM_ETH_CONN_AG_CTX_BIT12_MASK 0x1
  2565. #define XSTORM_ETH_CONN_AG_CTX_BIT12_SHIFT 4
  2566. #define XSTORM_ETH_CONN_AG_CTX_BIT13_MASK 0x1
  2567. #define XSTORM_ETH_CONN_AG_CTX_BIT13_SHIFT 5
  2568. #define XSTORM_ETH_CONN_AG_CTX_TX_RULE_ACTIVE_MASK 0x1
  2569. #define XSTORM_ETH_CONN_AG_CTX_TX_RULE_ACTIVE_SHIFT 6
  2570. #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_ACTIVE_MASK 0x1
  2571. #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_ACTIVE_SHIFT 7
  2572. u8 flags2;
  2573. #define XSTORM_ETH_CONN_AG_CTX_CF0_MASK 0x3
  2574. #define XSTORM_ETH_CONN_AG_CTX_CF0_SHIFT 0
  2575. #define XSTORM_ETH_CONN_AG_CTX_CF1_MASK 0x3
  2576. #define XSTORM_ETH_CONN_AG_CTX_CF1_SHIFT 2
  2577. #define XSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3
  2578. #define XSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 4
  2579. #define XSTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3
  2580. #define XSTORM_ETH_CONN_AG_CTX_CF3_SHIFT 6
  2581. u8 flags3;
  2582. #define XSTORM_ETH_CONN_AG_CTX_CF4_MASK 0x3
  2583. #define XSTORM_ETH_CONN_AG_CTX_CF4_SHIFT 0
  2584. #define XSTORM_ETH_CONN_AG_CTX_CF5_MASK 0x3
  2585. #define XSTORM_ETH_CONN_AG_CTX_CF5_SHIFT 2
  2586. #define XSTORM_ETH_CONN_AG_CTX_CF6_MASK 0x3
  2587. #define XSTORM_ETH_CONN_AG_CTX_CF6_SHIFT 4
  2588. #define XSTORM_ETH_CONN_AG_CTX_CF7_MASK 0x3
  2589. #define XSTORM_ETH_CONN_AG_CTX_CF7_SHIFT 6
  2590. u8 flags4;
  2591. #define XSTORM_ETH_CONN_AG_CTX_CF8_MASK 0x3
  2592. #define XSTORM_ETH_CONN_AG_CTX_CF8_SHIFT 0
  2593. #define XSTORM_ETH_CONN_AG_CTX_CF9_MASK 0x3
  2594. #define XSTORM_ETH_CONN_AG_CTX_CF9_SHIFT 2
  2595. #define XSTORM_ETH_CONN_AG_CTX_CF10_MASK 0x3
  2596. #define XSTORM_ETH_CONN_AG_CTX_CF10_SHIFT 4
  2597. #define XSTORM_ETH_CONN_AG_CTX_CF11_MASK 0x3
  2598. #define XSTORM_ETH_CONN_AG_CTX_CF11_SHIFT 6
  2599. u8 flags5;
  2600. #define XSTORM_ETH_CONN_AG_CTX_CF12_MASK 0x3
  2601. #define XSTORM_ETH_CONN_AG_CTX_CF12_SHIFT 0
  2602. #define XSTORM_ETH_CONN_AG_CTX_CF13_MASK 0x3
  2603. #define XSTORM_ETH_CONN_AG_CTX_CF13_SHIFT 2
  2604. #define XSTORM_ETH_CONN_AG_CTX_CF14_MASK 0x3
  2605. #define XSTORM_ETH_CONN_AG_CTX_CF14_SHIFT 4
  2606. #define XSTORM_ETH_CONN_AG_CTX_CF15_MASK 0x3
  2607. #define XSTORM_ETH_CONN_AG_CTX_CF15_SHIFT 6
  2608. u8 flags6;
  2609. #define XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_MASK 0x3
  2610. #define XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_SHIFT 0
  2611. #define XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_MASK 0x3
  2612. #define XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_SHIFT 2
  2613. #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_MASK 0x3
  2614. #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_SHIFT 4
  2615. #define XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_MASK 0x3
  2616. #define XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_SHIFT 6
  2617. u8 flags7;
  2618. #define XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_MASK 0x3
  2619. #define XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_SHIFT 0
  2620. #define XSTORM_ETH_CONN_AG_CTX_RESERVED10_MASK 0x3
  2621. #define XSTORM_ETH_CONN_AG_CTX_RESERVED10_SHIFT 2
  2622. #define XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_MASK 0x3
  2623. #define XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_SHIFT 4
  2624. #define XSTORM_ETH_CONN_AG_CTX_CF0EN_MASK 0x1
  2625. #define XSTORM_ETH_CONN_AG_CTX_CF0EN_SHIFT 6
  2626. #define XSTORM_ETH_CONN_AG_CTX_CF1EN_MASK 0x1
  2627. #define XSTORM_ETH_CONN_AG_CTX_CF1EN_SHIFT 7
  2628. u8 flags8;
  2629. #define XSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1
  2630. #define XSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 0
  2631. #define XSTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1
  2632. #define XSTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 1
  2633. #define XSTORM_ETH_CONN_AG_CTX_CF4EN_MASK 0x1
  2634. #define XSTORM_ETH_CONN_AG_CTX_CF4EN_SHIFT 2
  2635. #define XSTORM_ETH_CONN_AG_CTX_CF5EN_MASK 0x1
  2636. #define XSTORM_ETH_CONN_AG_CTX_CF5EN_SHIFT 3
  2637. #define XSTORM_ETH_CONN_AG_CTX_CF6EN_MASK 0x1
  2638. #define XSTORM_ETH_CONN_AG_CTX_CF6EN_SHIFT 4
  2639. #define XSTORM_ETH_CONN_AG_CTX_CF7EN_MASK 0x1
  2640. #define XSTORM_ETH_CONN_AG_CTX_CF7EN_SHIFT 5
  2641. #define XSTORM_ETH_CONN_AG_CTX_CF8EN_MASK 0x1
  2642. #define XSTORM_ETH_CONN_AG_CTX_CF8EN_SHIFT 6
  2643. #define XSTORM_ETH_CONN_AG_CTX_CF9EN_MASK 0x1
  2644. #define XSTORM_ETH_CONN_AG_CTX_CF9EN_SHIFT 7
  2645. u8 flags9;
  2646. #define XSTORM_ETH_CONN_AG_CTX_CF10EN_MASK 0x1
  2647. #define XSTORM_ETH_CONN_AG_CTX_CF10EN_SHIFT 0
  2648. #define XSTORM_ETH_CONN_AG_CTX_CF11EN_MASK 0x1
  2649. #define XSTORM_ETH_CONN_AG_CTX_CF11EN_SHIFT 1
  2650. #define XSTORM_ETH_CONN_AG_CTX_CF12EN_MASK 0x1
  2651. #define XSTORM_ETH_CONN_AG_CTX_CF12EN_SHIFT 2
  2652. #define XSTORM_ETH_CONN_AG_CTX_CF13EN_MASK 0x1
  2653. #define XSTORM_ETH_CONN_AG_CTX_CF13EN_SHIFT 3
  2654. #define XSTORM_ETH_CONN_AG_CTX_CF14EN_MASK 0x1
  2655. #define XSTORM_ETH_CONN_AG_CTX_CF14EN_SHIFT 4
  2656. #define XSTORM_ETH_CONN_AG_CTX_CF15EN_MASK 0x1
  2657. #define XSTORM_ETH_CONN_AG_CTX_CF15EN_SHIFT 5
  2658. #define XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_MASK 0x1
  2659. #define XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_SHIFT 6
  2660. #define XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_EN_MASK 0x1
  2661. #define XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_EN_SHIFT 7
  2662. u8 flags10;
  2663. #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_EN_MASK 0x1
  2664. #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_EN_SHIFT 0
  2665. #define XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_EN_MASK 0x1
  2666. #define XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_EN_SHIFT 1
  2667. #define XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1
  2668. #define XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2
  2669. #define XSTORM_ETH_CONN_AG_CTX_RESERVED11_MASK 0x1
  2670. #define XSTORM_ETH_CONN_AG_CTX_RESERVED11_SHIFT 3
  2671. #define XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
  2672. #define XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
  2673. #define XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_MASK 0x1
  2674. #define XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_SHIFT 5
  2675. #define XSTORM_ETH_CONN_AG_CTX_RESERVED12_MASK 0x1
  2676. #define XSTORM_ETH_CONN_AG_CTX_RESERVED12_SHIFT 6
  2677. #define XSTORM_ETH_CONN_AG_CTX_RESERVED13_MASK 0x1
  2678. #define XSTORM_ETH_CONN_AG_CTX_RESERVED13_SHIFT 7
  2679. u8 flags11;
  2680. #define XSTORM_ETH_CONN_AG_CTX_RESERVED14_MASK 0x1
  2681. #define XSTORM_ETH_CONN_AG_CTX_RESERVED14_SHIFT 0
  2682. #define XSTORM_ETH_CONN_AG_CTX_RESERVED15_MASK 0x1
  2683. #define XSTORM_ETH_CONN_AG_CTX_RESERVED15_SHIFT 1
  2684. #define XSTORM_ETH_CONN_AG_CTX_TX_DEC_RULE_EN_MASK 0x1
  2685. #define XSTORM_ETH_CONN_AG_CTX_TX_DEC_RULE_EN_SHIFT 2
  2686. #define XSTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1
  2687. #define XSTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 3
  2688. #define XSTORM_ETH_CONN_AG_CTX_RULE6EN_MASK 0x1
  2689. #define XSTORM_ETH_CONN_AG_CTX_RULE6EN_SHIFT 4
  2690. #define XSTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1
  2691. #define XSTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 5
  2692. #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
  2693. #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
  2694. #define XSTORM_ETH_CONN_AG_CTX_RULE9EN_MASK 0x1
  2695. #define XSTORM_ETH_CONN_AG_CTX_RULE9EN_SHIFT 7
  2696. u8 flags12;
  2697. #define XSTORM_ETH_CONN_AG_CTX_RULE10EN_MASK 0x1
  2698. #define XSTORM_ETH_CONN_AG_CTX_RULE10EN_SHIFT 0
  2699. #define XSTORM_ETH_CONN_AG_CTX_RULE11EN_MASK 0x1
  2700. #define XSTORM_ETH_CONN_AG_CTX_RULE11EN_SHIFT 1
  2701. #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
  2702. #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
  2703. #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
  2704. #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
  2705. #define XSTORM_ETH_CONN_AG_CTX_RULE14EN_MASK 0x1
  2706. #define XSTORM_ETH_CONN_AG_CTX_RULE14EN_SHIFT 4
  2707. #define XSTORM_ETH_CONN_AG_CTX_RULE15EN_MASK 0x1
  2708. #define XSTORM_ETH_CONN_AG_CTX_RULE15EN_SHIFT 5
  2709. #define XSTORM_ETH_CONN_AG_CTX_RULE16EN_MASK 0x1
  2710. #define XSTORM_ETH_CONN_AG_CTX_RULE16EN_SHIFT 6
  2711. #define XSTORM_ETH_CONN_AG_CTX_RULE17EN_MASK 0x1
  2712. #define XSTORM_ETH_CONN_AG_CTX_RULE17EN_SHIFT 7
  2713. u8 flags13;
  2714. #define XSTORM_ETH_CONN_AG_CTX_RULE18EN_MASK 0x1
  2715. #define XSTORM_ETH_CONN_AG_CTX_RULE18EN_SHIFT 0
  2716. #define XSTORM_ETH_CONN_AG_CTX_RULE19EN_MASK 0x1
  2717. #define XSTORM_ETH_CONN_AG_CTX_RULE19EN_SHIFT 1
  2718. #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
  2719. #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
  2720. #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
  2721. #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
  2722. #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
  2723. #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
  2724. #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
  2725. #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
  2726. #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
  2727. #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
  2728. #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
  2729. #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
  2730. u8 flags14;
  2731. #define XSTORM_ETH_CONN_AG_CTX_EDPM_USE_EXT_HDR_MASK 0x1
  2732. #define XSTORM_ETH_CONN_AG_CTX_EDPM_USE_EXT_HDR_SHIFT 0
  2733. #define XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_MASK 0x1
  2734. #define XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_SHIFT 1
  2735. #define XSTORM_ETH_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_MASK 0x1
  2736. #define XSTORM_ETH_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_SHIFT 2
  2737. #define XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_MASK 0x1
  2738. #define XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_SHIFT 3
  2739. #define XSTORM_ETH_CONN_AG_CTX_L2_EDPM_ENABLE_MASK 0x1
  2740. #define XSTORM_ETH_CONN_AG_CTX_L2_EDPM_ENABLE_SHIFT 4
  2741. #define XSTORM_ETH_CONN_AG_CTX_ROCE_EDPM_ENABLE_MASK 0x1
  2742. #define XSTORM_ETH_CONN_AG_CTX_ROCE_EDPM_ENABLE_SHIFT 5
  2743. #define XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_MASK 0x3
  2744. #define XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_SHIFT 6
  2745. u8 edpm_event_id;
  2746. __le16 physical_q0;
  2747. __le16 quota;
  2748. __le16 edpm_num_bds;
  2749. __le16 tx_bd_cons;
  2750. __le16 tx_bd_prod;
  2751. __le16 tx_class;
  2752. __le16 conn_dpi;
  2753. u8 byte3;
  2754. u8 byte4;
  2755. u8 byte5;
  2756. u8 byte6;
  2757. __le32 reg0;
  2758. __le32 reg1;
  2759. __le32 reg2;
  2760. __le32 reg3;
  2761. __le32 reg4;
  2762. __le32 reg5;
  2763. __le32 reg6;
  2764. __le16 word7;
  2765. __le16 word8;
  2766. __le16 word9;
  2767. __le16 word10;
  2768. __le32 reg7;
  2769. __le32 reg8;
  2770. __le32 reg9;
  2771. u8 byte7;
  2772. u8 byte8;
  2773. u8 byte9;
  2774. u8 byte10;
  2775. u8 byte11;
  2776. u8 byte12;
  2777. u8 byte13;
  2778. u8 byte14;
  2779. u8 byte15;
  2780. u8 byte16;
  2781. __le16 word11;
  2782. __le32 reg10;
  2783. __le32 reg11;
  2784. __le32 reg12;
  2785. __le32 reg13;
  2786. __le32 reg14;
  2787. __le32 reg15;
  2788. __le32 reg16;
  2789. __le32 reg17;
  2790. __le32 reg18;
  2791. __le32 reg19;
  2792. __le16 word12;
  2793. __le16 word13;
  2794. __le16 word14;
  2795. __le16 word15;
  2796. };
  2797. /* The eth storm context for the Ystorm */
  2798. struct ystorm_eth_conn_st_ctx {
  2799. __le32 reserved[8];
  2800. };
  2801. struct ystorm_eth_conn_ag_ctx {
  2802. u8 byte0;
  2803. u8 state;
  2804. u8 flags0;
  2805. #define YSTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1
  2806. #define YSTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0
  2807. #define YSTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1
  2808. #define YSTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1
  2809. #define YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_MASK 0x3
  2810. #define YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_SHIFT 2
  2811. #define YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_MASK 0x3
  2812. #define YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_SHIFT 4
  2813. #define YSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3
  2814. #define YSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 6
  2815. u8 flags1;
  2816. #define YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_MASK 0x1
  2817. #define YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_SHIFT 0
  2818. #define YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_EN_MASK 0x1
  2819. #define YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_EN_SHIFT 1
  2820. #define YSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1
  2821. #define YSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 2
  2822. #define YSTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1
  2823. #define YSTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 3
  2824. #define YSTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1
  2825. #define YSTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 4
  2826. #define YSTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1
  2827. #define YSTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 5
  2828. #define YSTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1
  2829. #define YSTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 6
  2830. #define YSTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1
  2831. #define YSTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 7
  2832. u8 tx_q0_int_coallecing_timeset;
  2833. u8 byte3;
  2834. __le16 word0;
  2835. __le32 terminate_spqe;
  2836. __le32 reg1;
  2837. __le16 tx_bd_cons_upd;
  2838. __le16 word2;
  2839. __le16 word3;
  2840. __le16 word4;
  2841. __le32 reg2;
  2842. __le32 reg3;
  2843. };
  2844. struct tstorm_eth_conn_ag_ctx {
  2845. u8 byte0;
  2846. u8 byte1;
  2847. u8 flags0;
  2848. #define TSTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1
  2849. #define TSTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0
  2850. #define TSTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1
  2851. #define TSTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1
  2852. #define TSTORM_ETH_CONN_AG_CTX_BIT2_MASK 0x1
  2853. #define TSTORM_ETH_CONN_AG_CTX_BIT2_SHIFT 2
  2854. #define TSTORM_ETH_CONN_AG_CTX_BIT3_MASK 0x1
  2855. #define TSTORM_ETH_CONN_AG_CTX_BIT3_SHIFT 3
  2856. #define TSTORM_ETH_CONN_AG_CTX_BIT4_MASK 0x1
  2857. #define TSTORM_ETH_CONN_AG_CTX_BIT4_SHIFT 4
  2858. #define TSTORM_ETH_CONN_AG_CTX_BIT5_MASK 0x1
  2859. #define TSTORM_ETH_CONN_AG_CTX_BIT5_SHIFT 5
  2860. #define TSTORM_ETH_CONN_AG_CTX_CF0_MASK 0x3
  2861. #define TSTORM_ETH_CONN_AG_CTX_CF0_SHIFT 6
  2862. u8 flags1;
  2863. #define TSTORM_ETH_CONN_AG_CTX_CF1_MASK 0x3
  2864. #define TSTORM_ETH_CONN_AG_CTX_CF1_SHIFT 0
  2865. #define TSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3
  2866. #define TSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 2
  2867. #define TSTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3
  2868. #define TSTORM_ETH_CONN_AG_CTX_CF3_SHIFT 4
  2869. #define TSTORM_ETH_CONN_AG_CTX_CF4_MASK 0x3
  2870. #define TSTORM_ETH_CONN_AG_CTX_CF4_SHIFT 6
  2871. u8 flags2;
  2872. #define TSTORM_ETH_CONN_AG_CTX_CF5_MASK 0x3
  2873. #define TSTORM_ETH_CONN_AG_CTX_CF5_SHIFT 0
  2874. #define TSTORM_ETH_CONN_AG_CTX_CF6_MASK 0x3
  2875. #define TSTORM_ETH_CONN_AG_CTX_CF6_SHIFT 2
  2876. #define TSTORM_ETH_CONN_AG_CTX_CF7_MASK 0x3
  2877. #define TSTORM_ETH_CONN_AG_CTX_CF7_SHIFT 4
  2878. #define TSTORM_ETH_CONN_AG_CTX_CF8_MASK 0x3
  2879. #define TSTORM_ETH_CONN_AG_CTX_CF8_SHIFT 6
  2880. u8 flags3;
  2881. #define TSTORM_ETH_CONN_AG_CTX_CF9_MASK 0x3
  2882. #define TSTORM_ETH_CONN_AG_CTX_CF9_SHIFT 0
  2883. #define TSTORM_ETH_CONN_AG_CTX_CF10_MASK 0x3
  2884. #define TSTORM_ETH_CONN_AG_CTX_CF10_SHIFT 2
  2885. #define TSTORM_ETH_CONN_AG_CTX_CF0EN_MASK 0x1
  2886. #define TSTORM_ETH_CONN_AG_CTX_CF0EN_SHIFT 4
  2887. #define TSTORM_ETH_CONN_AG_CTX_CF1EN_MASK 0x1
  2888. #define TSTORM_ETH_CONN_AG_CTX_CF1EN_SHIFT 5
  2889. #define TSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1
  2890. #define TSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 6
  2891. #define TSTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1
  2892. #define TSTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 7
  2893. u8 flags4;
  2894. #define TSTORM_ETH_CONN_AG_CTX_CF4EN_MASK 0x1
  2895. #define TSTORM_ETH_CONN_AG_CTX_CF4EN_SHIFT 0
  2896. #define TSTORM_ETH_CONN_AG_CTX_CF5EN_MASK 0x1
  2897. #define TSTORM_ETH_CONN_AG_CTX_CF5EN_SHIFT 1
  2898. #define TSTORM_ETH_CONN_AG_CTX_CF6EN_MASK 0x1
  2899. #define TSTORM_ETH_CONN_AG_CTX_CF6EN_SHIFT 2
  2900. #define TSTORM_ETH_CONN_AG_CTX_CF7EN_MASK 0x1
  2901. #define TSTORM_ETH_CONN_AG_CTX_CF7EN_SHIFT 3
  2902. #define TSTORM_ETH_CONN_AG_CTX_CF8EN_MASK 0x1
  2903. #define TSTORM_ETH_CONN_AG_CTX_CF8EN_SHIFT 4
  2904. #define TSTORM_ETH_CONN_AG_CTX_CF9EN_MASK 0x1
  2905. #define TSTORM_ETH_CONN_AG_CTX_CF9EN_SHIFT 5
  2906. #define TSTORM_ETH_CONN_AG_CTX_CF10EN_MASK 0x1
  2907. #define TSTORM_ETH_CONN_AG_CTX_CF10EN_SHIFT 6
  2908. #define TSTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1
  2909. #define TSTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 7
  2910. u8 flags5;
  2911. #define TSTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1
  2912. #define TSTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 0
  2913. #define TSTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1
  2914. #define TSTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 1
  2915. #define TSTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1
  2916. #define TSTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 2
  2917. #define TSTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1
  2918. #define TSTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 3
  2919. #define TSTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1
  2920. #define TSTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 4
  2921. #define TSTORM_ETH_CONN_AG_CTX_RX_BD_EN_MASK 0x1
  2922. #define TSTORM_ETH_CONN_AG_CTX_RX_BD_EN_SHIFT 5
  2923. #define TSTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1
  2924. #define TSTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 6
  2925. #define TSTORM_ETH_CONN_AG_CTX_RULE8EN_MASK 0x1
  2926. #define TSTORM_ETH_CONN_AG_CTX_RULE8EN_SHIFT 7
  2927. __le32 reg0;
  2928. __le32 reg1;
  2929. __le32 reg2;
  2930. __le32 reg3;
  2931. __le32 reg4;
  2932. __le32 reg5;
  2933. __le32 reg6;
  2934. __le32 reg7;
  2935. __le32 reg8;
  2936. u8 byte2;
  2937. u8 byte3;
  2938. __le16 rx_bd_cons;
  2939. u8 byte4;
  2940. u8 byte5;
  2941. __le16 rx_bd_prod;
  2942. __le16 word2;
  2943. __le16 word3;
  2944. __le32 reg9;
  2945. __le32 reg10;
  2946. };
  2947. struct ustorm_eth_conn_ag_ctx {
  2948. u8 byte0;
  2949. u8 byte1;
  2950. u8 flags0;
  2951. #define USTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1
  2952. #define USTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0
  2953. #define USTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1
  2954. #define USTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1
  2955. #define USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_MASK 0x3
  2956. #define USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_SHIFT 2
  2957. #define USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_MASK 0x3
  2958. #define USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_SHIFT 4
  2959. #define USTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3
  2960. #define USTORM_ETH_CONN_AG_CTX_CF2_SHIFT 6
  2961. u8 flags1;
  2962. #define USTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3
  2963. #define USTORM_ETH_CONN_AG_CTX_CF3_SHIFT 0
  2964. #define USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_MASK 0x3
  2965. #define USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_SHIFT 2
  2966. #define USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_MASK 0x3
  2967. #define USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_SHIFT 4
  2968. #define USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_MASK 0x3
  2969. #define USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_SHIFT 6
  2970. u8 flags2;
  2971. #define USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_EN_MASK 0x1
  2972. #define USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_EN_SHIFT 0
  2973. #define USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_EN_MASK 0x1
  2974. #define USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_EN_SHIFT 1
  2975. #define USTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1
  2976. #define USTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 2
  2977. #define USTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1
  2978. #define USTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 3
  2979. #define USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_EN_MASK 0x1
  2980. #define USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_EN_SHIFT 4
  2981. #define USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_EN_MASK 0x1
  2982. #define USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_EN_SHIFT 5
  2983. #define USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_MASK 0x1
  2984. #define USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_SHIFT 6
  2985. #define USTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1
  2986. #define USTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 7
  2987. u8 flags3;
  2988. #define USTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1
  2989. #define USTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 0
  2990. #define USTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1
  2991. #define USTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 1
  2992. #define USTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1
  2993. #define USTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 2
  2994. #define USTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1
  2995. #define USTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 3
  2996. #define USTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1
  2997. #define USTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 4
  2998. #define USTORM_ETH_CONN_AG_CTX_RULE6EN_MASK 0x1
  2999. #define USTORM_ETH_CONN_AG_CTX_RULE6EN_SHIFT 5
  3000. #define USTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1
  3001. #define USTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 6
  3002. #define USTORM_ETH_CONN_AG_CTX_RULE8EN_MASK 0x1
  3003. #define USTORM_ETH_CONN_AG_CTX_RULE8EN_SHIFT 7
  3004. u8 byte2;
  3005. u8 byte3;
  3006. __le16 word0;
  3007. __le16 tx_bd_cons;
  3008. __le32 reg0;
  3009. __le32 reg1;
  3010. __le32 reg2;
  3011. __le32 tx_int_coallecing_timeset;
  3012. __le16 tx_drv_bd_cons;
  3013. __le16 rx_drv_cqe_cons;
  3014. };
  3015. /* The eth storm context for the Ustorm */
  3016. struct ustorm_eth_conn_st_ctx {
  3017. __le32 reserved[40];
  3018. };
  3019. /* The eth storm context for the Mstorm */
  3020. struct mstorm_eth_conn_st_ctx {
  3021. __le32 reserved[8];
  3022. };
  3023. /* eth connection context */
  3024. struct eth_conn_context {
  3025. struct tstorm_eth_conn_st_ctx tstorm_st_context;
  3026. struct regpair tstorm_st_padding[2];
  3027. struct pstorm_eth_conn_st_ctx pstorm_st_context;
  3028. struct xstorm_eth_conn_st_ctx xstorm_st_context;
  3029. struct xstorm_eth_conn_ag_ctx xstorm_ag_context;
  3030. struct ystorm_eth_conn_st_ctx ystorm_st_context;
  3031. struct ystorm_eth_conn_ag_ctx ystorm_ag_context;
  3032. struct tstorm_eth_conn_ag_ctx tstorm_ag_context;
  3033. struct ustorm_eth_conn_ag_ctx ustorm_ag_context;
  3034. struct ustorm_eth_conn_st_ctx ustorm_st_context;
  3035. struct mstorm_eth_conn_st_ctx mstorm_st_context;
  3036. };
  3037. /* opcodes for the event ring */
  3038. enum eth_event_opcode {
  3039. ETH_EVENT_UNUSED,
  3040. ETH_EVENT_VPORT_START,
  3041. ETH_EVENT_VPORT_UPDATE,
  3042. ETH_EVENT_VPORT_STOP,
  3043. ETH_EVENT_TX_QUEUE_START,
  3044. ETH_EVENT_TX_QUEUE_STOP,
  3045. ETH_EVENT_RX_QUEUE_START,
  3046. ETH_EVENT_RX_QUEUE_UPDATE,
  3047. ETH_EVENT_RX_QUEUE_STOP,
  3048. ETH_EVENT_FILTERS_UPDATE,
  3049. ETH_EVENT_RESERVED,
  3050. ETH_EVENT_RESERVED2,
  3051. ETH_EVENT_RESERVED3,
  3052. ETH_EVENT_RX_ADD_UDP_FILTER,
  3053. ETH_EVENT_RX_DELETE_UDP_FILTER,
  3054. ETH_EVENT_RESERVED4,
  3055. ETH_EVENT_RESERVED5,
  3056. MAX_ETH_EVENT_OPCODE
  3057. };
  3058. /* Classify rule types in E2/E3 */
  3059. enum eth_filter_action {
  3060. ETH_FILTER_ACTION_UNUSED,
  3061. ETH_FILTER_ACTION_REMOVE,
  3062. ETH_FILTER_ACTION_ADD,
  3063. ETH_FILTER_ACTION_REMOVE_ALL,
  3064. MAX_ETH_FILTER_ACTION
  3065. };
  3066. /* Command for adding/removing a classification rule $$KEEP_ENDIANNESS$$ */
  3067. struct eth_filter_cmd {
  3068. u8 type;
  3069. u8 vport_id;
  3070. u8 action;
  3071. u8 reserved0;
  3072. __le32 vni;
  3073. __le16 mac_lsb;
  3074. __le16 mac_mid;
  3075. __le16 mac_msb;
  3076. __le16 vlan_id;
  3077. };
  3078. /* $$KEEP_ENDIANNESS$$ */
  3079. struct eth_filter_cmd_header {
  3080. u8 rx;
  3081. u8 tx;
  3082. u8 cmd_cnt;
  3083. u8 assert_on_error;
  3084. u8 reserved1[4];
  3085. };
  3086. /* Ethernet filter types: mac/vlan/pair */
  3087. enum eth_filter_type {
  3088. ETH_FILTER_TYPE_UNUSED,
  3089. ETH_FILTER_TYPE_MAC,
  3090. ETH_FILTER_TYPE_VLAN,
  3091. ETH_FILTER_TYPE_PAIR,
  3092. ETH_FILTER_TYPE_INNER_MAC,
  3093. ETH_FILTER_TYPE_INNER_VLAN,
  3094. ETH_FILTER_TYPE_INNER_PAIR,
  3095. ETH_FILTER_TYPE_INNER_MAC_VNI_PAIR,
  3096. ETH_FILTER_TYPE_MAC_VNI_PAIR,
  3097. ETH_FILTER_TYPE_VNI,
  3098. MAX_ETH_FILTER_TYPE
  3099. };
  3100. /* Ethernet Ramrod Command IDs */
  3101. enum eth_ramrod_cmd_id {
  3102. ETH_RAMROD_UNUSED,
  3103. ETH_RAMROD_VPORT_START,
  3104. ETH_RAMROD_VPORT_UPDATE,
  3105. ETH_RAMROD_VPORT_STOP,
  3106. ETH_RAMROD_RX_QUEUE_START,
  3107. ETH_RAMROD_RX_QUEUE_STOP,
  3108. ETH_RAMROD_TX_QUEUE_START,
  3109. ETH_RAMROD_TX_QUEUE_STOP,
  3110. ETH_RAMROD_FILTERS_UPDATE,
  3111. ETH_RAMROD_RX_QUEUE_UPDATE,
  3112. ETH_RAMROD_RX_CREATE_OPENFLOW_ACTION,
  3113. ETH_RAMROD_RX_ADD_OPENFLOW_FILTER,
  3114. ETH_RAMROD_RX_DELETE_OPENFLOW_FILTER,
  3115. ETH_RAMROD_RX_ADD_UDP_FILTER,
  3116. ETH_RAMROD_RX_DELETE_UDP_FILTER,
  3117. ETH_RAMROD_RX_CREATE_GFT_ACTION,
  3118. ETH_RAMROD_GFT_UPDATE_FILTER,
  3119. MAX_ETH_RAMROD_CMD_ID
  3120. };
  3121. /* return code from eth sp ramrods */
  3122. struct eth_return_code {
  3123. u8 value;
  3124. #define ETH_RETURN_CODE_ERR_CODE_MASK 0x1F
  3125. #define ETH_RETURN_CODE_ERR_CODE_SHIFT 0
  3126. #define ETH_RETURN_CODE_RESERVED_MASK 0x3
  3127. #define ETH_RETURN_CODE_RESERVED_SHIFT 5
  3128. #define ETH_RETURN_CODE_RX_TX_MASK 0x1
  3129. #define ETH_RETURN_CODE_RX_TX_SHIFT 7
  3130. };
  3131. /* What to do in case an error occurs */
  3132. enum eth_tx_err {
  3133. ETH_TX_ERR_DROP,
  3134. ETH_TX_ERR_ASSERT_MALICIOUS,
  3135. MAX_ETH_TX_ERR
  3136. };
  3137. /* Array of the different error type behaviors */
  3138. struct eth_tx_err_vals {
  3139. __le16 values;
  3140. #define ETH_TX_ERR_VALS_ILLEGAL_VLAN_MODE_MASK 0x1
  3141. #define ETH_TX_ERR_VALS_ILLEGAL_VLAN_MODE_SHIFT 0
  3142. #define ETH_TX_ERR_VALS_PACKET_TOO_SMALL_MASK 0x1
  3143. #define ETH_TX_ERR_VALS_PACKET_TOO_SMALL_SHIFT 1
  3144. #define ETH_TX_ERR_VALS_ANTI_SPOOFING_ERR_MASK 0x1
  3145. #define ETH_TX_ERR_VALS_ANTI_SPOOFING_ERR_SHIFT 2
  3146. #define ETH_TX_ERR_VALS_ILLEGAL_INBAND_TAGS_MASK 0x1
  3147. #define ETH_TX_ERR_VALS_ILLEGAL_INBAND_TAGS_SHIFT 3
  3148. #define ETH_TX_ERR_VALS_VLAN_INSERTION_W_INBAND_TAG_MASK 0x1
  3149. #define ETH_TX_ERR_VALS_VLAN_INSERTION_W_INBAND_TAG_SHIFT 4
  3150. #define ETH_TX_ERR_VALS_MTU_VIOLATION_MASK 0x1
  3151. #define ETH_TX_ERR_VALS_MTU_VIOLATION_SHIFT 5
  3152. #define ETH_TX_ERR_VALS_ILLEGAL_CONTROL_FRAME_MASK 0x1
  3153. #define ETH_TX_ERR_VALS_ILLEGAL_CONTROL_FRAME_SHIFT 6
  3154. #define ETH_TX_ERR_VALS_RESERVED_MASK 0x1FF
  3155. #define ETH_TX_ERR_VALS_RESERVED_SHIFT 7
  3156. };
  3157. /* vport rss configuration data */
  3158. struct eth_vport_rss_config {
  3159. __le16 capabilities;
  3160. #define ETH_VPORT_RSS_CONFIG_IPV4_CAPABILITY_MASK 0x1
  3161. #define ETH_VPORT_RSS_CONFIG_IPV4_CAPABILITY_SHIFT 0
  3162. #define ETH_VPORT_RSS_CONFIG_IPV6_CAPABILITY_MASK 0x1
  3163. #define ETH_VPORT_RSS_CONFIG_IPV6_CAPABILITY_SHIFT 1
  3164. #define ETH_VPORT_RSS_CONFIG_IPV4_TCP_CAPABILITY_MASK 0x1
  3165. #define ETH_VPORT_RSS_CONFIG_IPV4_TCP_CAPABILITY_SHIFT 2
  3166. #define ETH_VPORT_RSS_CONFIG_IPV6_TCP_CAPABILITY_MASK 0x1
  3167. #define ETH_VPORT_RSS_CONFIG_IPV6_TCP_CAPABILITY_SHIFT 3
  3168. #define ETH_VPORT_RSS_CONFIG_IPV4_UDP_CAPABILITY_MASK 0x1
  3169. #define ETH_VPORT_RSS_CONFIG_IPV4_UDP_CAPABILITY_SHIFT 4
  3170. #define ETH_VPORT_RSS_CONFIG_IPV6_UDP_CAPABILITY_MASK 0x1
  3171. #define ETH_VPORT_RSS_CONFIG_IPV6_UDP_CAPABILITY_SHIFT 5
  3172. #define ETH_VPORT_RSS_CONFIG_EN_5_TUPLE_CAPABILITY_MASK 0x1
  3173. #define ETH_VPORT_RSS_CONFIG_EN_5_TUPLE_CAPABILITY_SHIFT 6
  3174. #define ETH_VPORT_RSS_CONFIG_RESERVED0_MASK 0x1FF
  3175. #define ETH_VPORT_RSS_CONFIG_RESERVED0_SHIFT 7
  3176. u8 rss_id;
  3177. u8 rss_mode;
  3178. u8 update_rss_key;
  3179. u8 update_rss_ind_table;
  3180. u8 update_rss_capabilities;
  3181. u8 tbl_size;
  3182. __le32 reserved2[2];
  3183. __le16 indirection_table[ETH_RSS_IND_TABLE_ENTRIES_NUM];
  3184. __le32 rss_key[ETH_RSS_KEY_SIZE_REGS];
  3185. __le32 reserved3[2];
  3186. };
  3187. /* eth vport RSS mode */
  3188. enum eth_vport_rss_mode {
  3189. ETH_VPORT_RSS_MODE_DISABLED,
  3190. ETH_VPORT_RSS_MODE_REGULAR,
  3191. MAX_ETH_VPORT_RSS_MODE
  3192. };
  3193. /* Command for setting classification flags for a vport $$KEEP_ENDIANNESS$$ */
  3194. struct eth_vport_rx_mode {
  3195. __le16 state;
  3196. #define ETH_VPORT_RX_MODE_UCAST_DROP_ALL_MASK 0x1
  3197. #define ETH_VPORT_RX_MODE_UCAST_DROP_ALL_SHIFT 0
  3198. #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_ALL_MASK 0x1
  3199. #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_ALL_SHIFT 1
  3200. #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_UNMATCHED_MASK 0x1
  3201. #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_UNMATCHED_SHIFT 2
  3202. #define ETH_VPORT_RX_MODE_MCAST_DROP_ALL_MASK 0x1
  3203. #define ETH_VPORT_RX_MODE_MCAST_DROP_ALL_SHIFT 3
  3204. #define ETH_VPORT_RX_MODE_MCAST_ACCEPT_ALL_MASK 0x1
  3205. #define ETH_VPORT_RX_MODE_MCAST_ACCEPT_ALL_SHIFT 4
  3206. #define ETH_VPORT_RX_MODE_BCAST_ACCEPT_ALL_MASK 0x1
  3207. #define ETH_VPORT_RX_MODE_BCAST_ACCEPT_ALL_SHIFT 5
  3208. #define ETH_VPORT_RX_MODE_RESERVED1_MASK 0x3FF
  3209. #define ETH_VPORT_RX_MODE_RESERVED1_SHIFT 6
  3210. __le16 reserved2[3];
  3211. };
  3212. /* Command for setting tpa parameters */
  3213. struct eth_vport_tpa_param {
  3214. u8 tpa_ipv4_en_flg;
  3215. u8 tpa_ipv6_en_flg;
  3216. u8 tpa_ipv4_tunn_en_flg;
  3217. u8 tpa_ipv6_tunn_en_flg;
  3218. u8 tpa_pkt_split_flg;
  3219. u8 tpa_hdr_data_split_flg;
  3220. u8 tpa_gro_consistent_flg;
  3221. u8 tpa_max_aggs_num;
  3222. __le16 tpa_max_size;
  3223. __le16 tpa_min_size_to_start;
  3224. __le16 tpa_min_size_to_cont;
  3225. u8 max_buff_num;
  3226. u8 reserved;
  3227. };
  3228. /* Command for setting classification flags for a vport $$KEEP_ENDIANNESS$$ */
  3229. struct eth_vport_tx_mode {
  3230. __le16 state;
  3231. #define ETH_VPORT_TX_MODE_UCAST_DROP_ALL_MASK 0x1
  3232. #define ETH_VPORT_TX_MODE_UCAST_DROP_ALL_SHIFT 0
  3233. #define ETH_VPORT_TX_MODE_UCAST_ACCEPT_ALL_MASK 0x1
  3234. #define ETH_VPORT_TX_MODE_UCAST_ACCEPT_ALL_SHIFT 1
  3235. #define ETH_VPORT_TX_MODE_MCAST_DROP_ALL_MASK 0x1
  3236. #define ETH_VPORT_TX_MODE_MCAST_DROP_ALL_SHIFT 2
  3237. #define ETH_VPORT_TX_MODE_MCAST_ACCEPT_ALL_MASK 0x1
  3238. #define ETH_VPORT_TX_MODE_MCAST_ACCEPT_ALL_SHIFT 3
  3239. #define ETH_VPORT_TX_MODE_BCAST_ACCEPT_ALL_MASK 0x1
  3240. #define ETH_VPORT_TX_MODE_BCAST_ACCEPT_ALL_SHIFT 4
  3241. #define ETH_VPORT_TX_MODE_RESERVED1_MASK 0x7FF
  3242. #define ETH_VPORT_TX_MODE_RESERVED1_SHIFT 5
  3243. __le16 reserved2[3];
  3244. };
  3245. /* Ramrod data for rx queue start ramrod */
  3246. struct rx_queue_start_ramrod_data {
  3247. __le16 rx_queue_id;
  3248. __le16 num_of_pbl_pages;
  3249. __le16 bd_max_bytes;
  3250. __le16 sb_id;
  3251. u8 sb_index;
  3252. u8 vport_id;
  3253. u8 default_rss_queue_flg;
  3254. u8 complete_cqe_flg;
  3255. u8 complete_event_flg;
  3256. u8 stats_counter_id;
  3257. u8 pin_context;
  3258. u8 pxp_tph_valid_bd;
  3259. u8 pxp_tph_valid_pkt;
  3260. u8 pxp_st_hint;
  3261. __le16 pxp_st_index;
  3262. u8 pmd_mode;
  3263. u8 notify_en;
  3264. u8 toggle_val;
  3265. u8 vf_rx_prod_index;
  3266. u8 reserved[6];
  3267. __le16 reserved1;
  3268. struct regpair cqe_pbl_addr;
  3269. struct regpair bd_base;
  3270. struct regpair reserved2;
  3271. };
  3272. /* Ramrod data for rx queue start ramrod */
  3273. struct rx_queue_stop_ramrod_data {
  3274. __le16 rx_queue_id;
  3275. u8 complete_cqe_flg;
  3276. u8 complete_event_flg;
  3277. u8 vport_id;
  3278. u8 reserved[3];
  3279. };
  3280. /* Ramrod data for rx queue update ramrod */
  3281. struct rx_queue_update_ramrod_data {
  3282. __le16 rx_queue_id;
  3283. u8 complete_cqe_flg;
  3284. u8 complete_event_flg;
  3285. u8 vport_id;
  3286. u8 reserved[4];
  3287. u8 reserved1;
  3288. u8 reserved2;
  3289. u8 reserved3;
  3290. __le16 reserved4;
  3291. __le16 reserved5;
  3292. struct regpair reserved6;
  3293. };
  3294. /* Ramrod data for rx Add UDP Filter */
  3295. struct rx_udp_filter_data {
  3296. __le16 action_icid;
  3297. __le16 vlan_id;
  3298. u8 ip_type;
  3299. u8 tenant_id_exists;
  3300. __le16 reserved1;
  3301. __le32 ip_dst_addr[4];
  3302. __le32 ip_src_addr[4];
  3303. __le16 udp_dst_port;
  3304. __le16 udp_src_port;
  3305. __le32 tenant_id;
  3306. };
  3307. /* Ramrod data for rx queue start ramrod */
  3308. struct tx_queue_start_ramrod_data {
  3309. __le16 sb_id;
  3310. u8 sb_index;
  3311. u8 vport_id;
  3312. u8 reserved0;
  3313. u8 stats_counter_id;
  3314. __le16 qm_pq_id;
  3315. u8 flags;
  3316. #define TX_QUEUE_START_RAMROD_DATA_DISABLE_OPPORTUNISTIC_MASK 0x1
  3317. #define TX_QUEUE_START_RAMROD_DATA_DISABLE_OPPORTUNISTIC_SHIFT 0
  3318. #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_PKT_DUP_MASK 0x1
  3319. #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_PKT_DUP_SHIFT 1
  3320. #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_TX_DEST_MASK 0x1
  3321. #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_TX_DEST_SHIFT 2
  3322. #define TX_QUEUE_START_RAMROD_DATA_PMD_MODE_MASK 0x1
  3323. #define TX_QUEUE_START_RAMROD_DATA_PMD_MODE_SHIFT 3
  3324. #define TX_QUEUE_START_RAMROD_DATA_NOTIFY_EN_MASK 0x1
  3325. #define TX_QUEUE_START_RAMROD_DATA_NOTIFY_EN_SHIFT 4
  3326. #define TX_QUEUE_START_RAMROD_DATA_PIN_CONTEXT_MASK 0x1
  3327. #define TX_QUEUE_START_RAMROD_DATA_PIN_CONTEXT_SHIFT 5
  3328. #define TX_QUEUE_START_RAMROD_DATA_RESERVED1_MASK 0x3
  3329. #define TX_QUEUE_START_RAMROD_DATA_RESERVED1_SHIFT 6
  3330. u8 pxp_st_hint;
  3331. u8 pxp_tph_valid_bd;
  3332. u8 pxp_tph_valid_pkt;
  3333. __le16 pxp_st_index;
  3334. __le16 comp_agg_size;
  3335. __le16 queue_zone_id;
  3336. __le16 test_dup_count;
  3337. __le16 pbl_size;
  3338. __le16 tx_queue_id;
  3339. struct regpair pbl_base_addr;
  3340. struct regpair bd_cons_address;
  3341. };
  3342. /* Ramrod data for tx queue stop ramrod */
  3343. struct tx_queue_stop_ramrod_data {
  3344. __le16 reserved[4];
  3345. };
  3346. /* Ramrod data for vport update ramrod */
  3347. struct vport_filter_update_ramrod_data {
  3348. struct eth_filter_cmd_header filter_cmd_hdr;
  3349. struct eth_filter_cmd filter_cmds[ETH_FILTER_RULES_COUNT];
  3350. };
  3351. /* Ramrod data for vport start ramrod */
  3352. struct vport_start_ramrod_data {
  3353. u8 vport_id;
  3354. u8 sw_fid;
  3355. __le16 mtu;
  3356. u8 drop_ttl0_en;
  3357. u8 inner_vlan_removal_en;
  3358. struct eth_vport_rx_mode rx_mode;
  3359. struct eth_vport_tx_mode tx_mode;
  3360. struct eth_vport_tpa_param tpa_param;
  3361. __le16 default_vlan;
  3362. u8 tx_switching_en;
  3363. u8 anti_spoofing_en;
  3364. u8 default_vlan_en;
  3365. u8 handle_ptp_pkts;
  3366. u8 silent_vlan_removal_en;
  3367. u8 untagged;
  3368. struct eth_tx_err_vals tx_err_behav;
  3369. u8 zero_placement_offset;
  3370. u8 ctl_frame_mac_check_en;
  3371. u8 ctl_frame_ethtype_check_en;
  3372. u8 reserved[5];
  3373. };
  3374. /* Ramrod data for vport stop ramrod */
  3375. struct vport_stop_ramrod_data {
  3376. u8 vport_id;
  3377. u8 reserved[7];
  3378. };
  3379. /* Ramrod data for vport update ramrod */
  3380. struct vport_update_ramrod_data_cmn {
  3381. u8 vport_id;
  3382. u8 update_rx_active_flg;
  3383. u8 rx_active_flg;
  3384. u8 update_tx_active_flg;
  3385. u8 tx_active_flg;
  3386. u8 update_rx_mode_flg;
  3387. u8 update_tx_mode_flg;
  3388. u8 update_approx_mcast_flg;
  3389. u8 update_rss_flg;
  3390. u8 update_inner_vlan_removal_en_flg;
  3391. u8 inner_vlan_removal_en;
  3392. u8 update_tpa_param_flg;
  3393. u8 update_tpa_en_flg;
  3394. u8 update_tx_switching_en_flg;
  3395. u8 tx_switching_en;
  3396. u8 update_anti_spoofing_en_flg;
  3397. u8 anti_spoofing_en;
  3398. u8 update_handle_ptp_pkts;
  3399. u8 handle_ptp_pkts;
  3400. u8 update_default_vlan_en_flg;
  3401. u8 default_vlan_en;
  3402. u8 update_default_vlan_flg;
  3403. __le16 default_vlan;
  3404. u8 update_accept_any_vlan_flg;
  3405. u8 accept_any_vlan;
  3406. u8 silent_vlan_removal_en;
  3407. u8 update_mtu_flg;
  3408. __le16 mtu;
  3409. u8 reserved[2];
  3410. };
  3411. struct vport_update_ramrod_mcast {
  3412. __le32 bins[ETH_MULTICAST_MAC_BINS_IN_REGS];
  3413. };
  3414. /* Ramrod data for vport update ramrod */
  3415. struct vport_update_ramrod_data {
  3416. struct vport_update_ramrod_data_cmn common;
  3417. struct eth_vport_rx_mode rx_mode;
  3418. struct eth_vport_tx_mode tx_mode;
  3419. struct eth_vport_tpa_param tpa_param;
  3420. struct vport_update_ramrod_mcast approx_mcast;
  3421. struct eth_vport_rss_config rss_config;
  3422. };
  3423. struct mstorm_rdma_task_st_ctx {
  3424. struct regpair temp[4];
  3425. };
  3426. struct rdma_close_func_ramrod_data {
  3427. u8 cnq_start_offset;
  3428. u8 num_cnqs;
  3429. u8 vf_id;
  3430. u8 vf_valid;
  3431. u8 reserved[4];
  3432. };
  3433. struct rdma_cnq_params {
  3434. __le16 sb_num;
  3435. u8 sb_index;
  3436. u8 num_pbl_pages;
  3437. __le32 reserved;
  3438. struct regpair pbl_base_addr;
  3439. __le16 queue_zone_num;
  3440. u8 reserved1[6];
  3441. };
  3442. struct rdma_create_cq_ramrod_data {
  3443. struct regpair cq_handle;
  3444. struct regpair pbl_addr;
  3445. __le32 max_cqes;
  3446. __le16 pbl_num_pages;
  3447. __le16 dpi;
  3448. u8 is_two_level_pbl;
  3449. u8 cnq_id;
  3450. u8 pbl_log_page_size;
  3451. u8 toggle_bit;
  3452. __le16 int_timeout;
  3453. __le16 reserved1;
  3454. };
  3455. struct rdma_deregister_tid_ramrod_data {
  3456. __le32 itid;
  3457. __le32 reserved;
  3458. };
  3459. struct rdma_destroy_cq_output_params {
  3460. __le16 cnq_num;
  3461. __le16 reserved0;
  3462. __le32 reserved1;
  3463. };
  3464. struct rdma_destroy_cq_ramrod_data {
  3465. struct regpair output_params_addr;
  3466. };
  3467. enum rdma_event_opcode {
  3468. RDMA_EVENT_UNUSED,
  3469. RDMA_EVENT_FUNC_INIT,
  3470. RDMA_EVENT_FUNC_CLOSE,
  3471. RDMA_EVENT_REGISTER_MR,
  3472. RDMA_EVENT_DEREGISTER_MR,
  3473. RDMA_EVENT_CREATE_CQ,
  3474. RDMA_EVENT_RESIZE_CQ,
  3475. RDMA_EVENT_DESTROY_CQ,
  3476. RDMA_EVENT_CREATE_SRQ,
  3477. RDMA_EVENT_MODIFY_SRQ,
  3478. RDMA_EVENT_DESTROY_SRQ,
  3479. MAX_RDMA_EVENT_OPCODE
  3480. };
  3481. enum rdma_fw_return_code {
  3482. RDMA_RETURN_OK = 0,
  3483. RDMA_RETURN_REGISTER_MR_BAD_STATE_ERR,
  3484. RDMA_RETURN_DEREGISTER_MR_BAD_STATE_ERR,
  3485. RDMA_RETURN_RESIZE_CQ_ERR,
  3486. RDMA_RETURN_NIG_DRAIN_REQ,
  3487. MAX_RDMA_FW_RETURN_CODE
  3488. };
  3489. struct rdma_init_func_hdr {
  3490. u8 cnq_start_offset;
  3491. u8 num_cnqs;
  3492. u8 cq_ring_mode;
  3493. u8 cnp_vlan_priority;
  3494. __le32 cnp_send_timeout;
  3495. u8 cnp_dscp;
  3496. u8 vf_id;
  3497. u8 vf_valid;
  3498. u8 reserved[5];
  3499. };
  3500. struct rdma_init_func_ramrod_data {
  3501. struct rdma_init_func_hdr params_header;
  3502. struct rdma_cnq_params cnq_params[NUM_OF_GLOBAL_QUEUES];
  3503. };
  3504. enum rdma_ramrod_cmd_id {
  3505. RDMA_RAMROD_UNUSED,
  3506. RDMA_RAMROD_FUNC_INIT,
  3507. RDMA_RAMROD_FUNC_CLOSE,
  3508. RDMA_RAMROD_REGISTER_MR,
  3509. RDMA_RAMROD_DEREGISTER_MR,
  3510. RDMA_RAMROD_CREATE_CQ,
  3511. RDMA_RAMROD_RESIZE_CQ,
  3512. RDMA_RAMROD_DESTROY_CQ,
  3513. RDMA_RAMROD_CREATE_SRQ,
  3514. RDMA_RAMROD_MODIFY_SRQ,
  3515. RDMA_RAMROD_DESTROY_SRQ,
  3516. MAX_RDMA_RAMROD_CMD_ID
  3517. };
  3518. struct rdma_register_tid_ramrod_data {
  3519. __le32 flags;
  3520. #define RDMA_REGISTER_TID_RAMROD_DATA_MAX_ID_MASK 0x3FFFF
  3521. #define RDMA_REGISTER_TID_RAMROD_DATA_MAX_ID_SHIFT 0
  3522. #define RDMA_REGISTER_TID_RAMROD_DATA_PAGE_SIZE_LOG_MASK 0x1F
  3523. #define RDMA_REGISTER_TID_RAMROD_DATA_PAGE_SIZE_LOG_SHIFT 18
  3524. #define RDMA_REGISTER_TID_RAMROD_DATA_TWO_LEVEL_PBL_MASK 0x1
  3525. #define RDMA_REGISTER_TID_RAMROD_DATA_TWO_LEVEL_PBL_SHIFT 23
  3526. #define RDMA_REGISTER_TID_RAMROD_DATA_ZERO_BASED_MASK 0x1
  3527. #define RDMA_REGISTER_TID_RAMROD_DATA_ZERO_BASED_SHIFT 24
  3528. #define RDMA_REGISTER_TID_RAMROD_DATA_PHY_MR_MASK 0x1
  3529. #define RDMA_REGISTER_TID_RAMROD_DATA_PHY_MR_SHIFT 25
  3530. #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_READ_MASK 0x1
  3531. #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_READ_SHIFT 26
  3532. #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_WRITE_MASK 0x1
  3533. #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_WRITE_SHIFT 27
  3534. #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_ATOMIC_MASK 0x1
  3535. #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_ATOMIC_SHIFT 28
  3536. #define RDMA_REGISTER_TID_RAMROD_DATA_LOCAL_WRITE_MASK 0x1
  3537. #define RDMA_REGISTER_TID_RAMROD_DATA_LOCAL_WRITE_SHIFT 29
  3538. #define RDMA_REGISTER_TID_RAMROD_DATA_LOCAL_READ_MASK 0x1
  3539. #define RDMA_REGISTER_TID_RAMROD_DATA_LOCAL_READ_SHIFT 30
  3540. #define RDMA_REGISTER_TID_RAMROD_DATA_ENABLE_MW_BIND_MASK 0x1
  3541. #define RDMA_REGISTER_TID_RAMROD_DATA_ENABLE_MW_BIND_SHIFT 31
  3542. u8 flags1;
  3543. #define RDMA_REGISTER_TID_RAMROD_DATA_PBL_PAGE_SIZE_LOG_MASK 0x1F
  3544. #define RDMA_REGISTER_TID_RAMROD_DATA_PBL_PAGE_SIZE_LOG_SHIFT 0
  3545. #define RDMA_REGISTER_TID_RAMROD_DATA_TID_TYPE_MASK 0x7
  3546. #define RDMA_REGISTER_TID_RAMROD_DATA_TID_TYPE_SHIFT 5
  3547. u8 flags2;
  3548. #define RDMA_REGISTER_TID_RAMROD_DATA_DMA_MR_MASK 0x1
  3549. #define RDMA_REGISTER_TID_RAMROD_DATA_DMA_MR_SHIFT 0
  3550. #define RDMA_REGISTER_TID_RAMROD_DATA_DIF_ON_HOST_FLG_MASK 0x1
  3551. #define RDMA_REGISTER_TID_RAMROD_DATA_DIF_ON_HOST_FLG_SHIFT 1
  3552. #define RDMA_REGISTER_TID_RAMROD_DATA_RESERVED1_MASK 0x3F
  3553. #define RDMA_REGISTER_TID_RAMROD_DATA_RESERVED1_SHIFT 2
  3554. u8 key;
  3555. u8 length_hi;
  3556. u8 vf_id;
  3557. u8 vf_valid;
  3558. __le16 pd;
  3559. __le32 length_lo;
  3560. __le32 itid;
  3561. __le32 reserved2;
  3562. struct regpair va;
  3563. struct regpair pbl_base;
  3564. struct regpair dif_error_addr;
  3565. struct regpair dif_runt_addr;
  3566. __le32 reserved3[2];
  3567. };
  3568. struct rdma_resize_cq_output_params {
  3569. __le32 old_cq_cons;
  3570. __le32 old_cq_prod;
  3571. };
  3572. struct rdma_resize_cq_ramrod_data {
  3573. u8 flags;
  3574. #define RDMA_RESIZE_CQ_RAMROD_DATA_TOGGLE_BIT_MASK 0x1
  3575. #define RDMA_RESIZE_CQ_RAMROD_DATA_TOGGLE_BIT_SHIFT 0
  3576. #define RDMA_RESIZE_CQ_RAMROD_DATA_IS_TWO_LEVEL_PBL_MASK 0x1
  3577. #define RDMA_RESIZE_CQ_RAMROD_DATA_IS_TWO_LEVEL_PBL_SHIFT 1
  3578. #define RDMA_RESIZE_CQ_RAMROD_DATA_RESERVED_MASK 0x3F
  3579. #define RDMA_RESIZE_CQ_RAMROD_DATA_RESERVED_SHIFT 2
  3580. u8 pbl_log_page_size;
  3581. __le16 pbl_num_pages;
  3582. __le32 max_cqes;
  3583. struct regpair pbl_addr;
  3584. struct regpair output_params_addr;
  3585. };
  3586. struct rdma_srq_context {
  3587. struct regpair temp[8];
  3588. };
  3589. struct rdma_srq_create_ramrod_data {
  3590. struct regpair pbl_base_addr;
  3591. __le16 pages_in_srq_pbl;
  3592. __le16 pd_id;
  3593. struct rdma_srq_id srq_id;
  3594. __le16 page_size;
  3595. __le16 reserved1;
  3596. __le32 reserved2;
  3597. struct regpair producers_addr;
  3598. };
  3599. struct rdma_srq_destroy_ramrod_data {
  3600. struct rdma_srq_id srq_id;
  3601. __le32 reserved;
  3602. };
  3603. struct rdma_srq_modify_ramrod_data {
  3604. struct rdma_srq_id srq_id;
  3605. __le32 wqe_limit;
  3606. };
  3607. struct ystorm_rdma_task_st_ctx {
  3608. struct regpair temp[4];
  3609. };
  3610. struct ystorm_rdma_task_ag_ctx {
  3611. u8 reserved;
  3612. u8 byte1;
  3613. __le16 msem_ctx_upd_seq;
  3614. u8 flags0;
  3615. #define YSTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_MASK 0xF
  3616. #define YSTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_SHIFT 0
  3617. #define YSTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_MASK 0x1
  3618. #define YSTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_SHIFT 4
  3619. #define YSTORM_RDMA_TASK_AG_CTX_BIT1_MASK 0x1
  3620. #define YSTORM_RDMA_TASK_AG_CTX_BIT1_SHIFT 5
  3621. #define YSTORM_RDMA_TASK_AG_CTX_VALID_MASK 0x1
  3622. #define YSTORM_RDMA_TASK_AG_CTX_VALID_SHIFT 6
  3623. #define YSTORM_RDMA_TASK_AG_CTX_BIT3_MASK 0x1
  3624. #define YSTORM_RDMA_TASK_AG_CTX_BIT3_SHIFT 7
  3625. u8 flags1;
  3626. #define YSTORM_RDMA_TASK_AG_CTX_CF0_MASK 0x3
  3627. #define YSTORM_RDMA_TASK_AG_CTX_CF0_SHIFT 0
  3628. #define YSTORM_RDMA_TASK_AG_CTX_CF1_MASK 0x3
  3629. #define YSTORM_RDMA_TASK_AG_CTX_CF1_SHIFT 2
  3630. #define YSTORM_RDMA_TASK_AG_CTX_CF2SPECIAL_MASK 0x3
  3631. #define YSTORM_RDMA_TASK_AG_CTX_CF2SPECIAL_SHIFT 4
  3632. #define YSTORM_RDMA_TASK_AG_CTX_CF0EN_MASK 0x1
  3633. #define YSTORM_RDMA_TASK_AG_CTX_CF0EN_SHIFT 6
  3634. #define YSTORM_RDMA_TASK_AG_CTX_CF1EN_MASK 0x1
  3635. #define YSTORM_RDMA_TASK_AG_CTX_CF1EN_SHIFT 7
  3636. u8 flags2;
  3637. #define YSTORM_RDMA_TASK_AG_CTX_BIT4_MASK 0x1
  3638. #define YSTORM_RDMA_TASK_AG_CTX_BIT4_SHIFT 0
  3639. #define YSTORM_RDMA_TASK_AG_CTX_RULE0EN_MASK 0x1
  3640. #define YSTORM_RDMA_TASK_AG_CTX_RULE0EN_SHIFT 1
  3641. #define YSTORM_RDMA_TASK_AG_CTX_RULE1EN_MASK 0x1
  3642. #define YSTORM_RDMA_TASK_AG_CTX_RULE1EN_SHIFT 2
  3643. #define YSTORM_RDMA_TASK_AG_CTX_RULE2EN_MASK 0x1
  3644. #define YSTORM_RDMA_TASK_AG_CTX_RULE2EN_SHIFT 3
  3645. #define YSTORM_RDMA_TASK_AG_CTX_RULE3EN_MASK 0x1
  3646. #define YSTORM_RDMA_TASK_AG_CTX_RULE3EN_SHIFT 4
  3647. #define YSTORM_RDMA_TASK_AG_CTX_RULE4EN_MASK 0x1
  3648. #define YSTORM_RDMA_TASK_AG_CTX_RULE4EN_SHIFT 5
  3649. #define YSTORM_RDMA_TASK_AG_CTX_RULE5EN_MASK 0x1
  3650. #define YSTORM_RDMA_TASK_AG_CTX_RULE5EN_SHIFT 6
  3651. #define YSTORM_RDMA_TASK_AG_CTX_RULE6EN_MASK 0x1
  3652. #define YSTORM_RDMA_TASK_AG_CTX_RULE6EN_SHIFT 7
  3653. u8 key;
  3654. __le32 mw_cnt;
  3655. u8 ref_cnt_seq;
  3656. u8 ctx_upd_seq;
  3657. __le16 dif_flags;
  3658. __le16 tx_ref_count;
  3659. __le16 last_used_ltid;
  3660. __le16 parent_mr_lo;
  3661. __le16 parent_mr_hi;
  3662. __le32 fbo_lo;
  3663. __le32 fbo_hi;
  3664. };
  3665. struct mstorm_rdma_task_ag_ctx {
  3666. u8 reserved;
  3667. u8 byte1;
  3668. __le16 icid;
  3669. u8 flags0;
  3670. #define MSTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_MASK 0xF
  3671. #define MSTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_SHIFT 0
  3672. #define MSTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_MASK 0x1
  3673. #define MSTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_SHIFT 4
  3674. #define MSTORM_RDMA_TASK_AG_CTX_BIT1_MASK 0x1
  3675. #define MSTORM_RDMA_TASK_AG_CTX_BIT1_SHIFT 5
  3676. #define MSTORM_RDMA_TASK_AG_CTX_BIT2_MASK 0x1
  3677. #define MSTORM_RDMA_TASK_AG_CTX_BIT2_SHIFT 6
  3678. #define MSTORM_RDMA_TASK_AG_CTX_BIT3_MASK 0x1
  3679. #define MSTORM_RDMA_TASK_AG_CTX_BIT3_SHIFT 7
  3680. u8 flags1;
  3681. #define MSTORM_RDMA_TASK_AG_CTX_CF0_MASK 0x3
  3682. #define MSTORM_RDMA_TASK_AG_CTX_CF0_SHIFT 0
  3683. #define MSTORM_RDMA_TASK_AG_CTX_CF1_MASK 0x3
  3684. #define MSTORM_RDMA_TASK_AG_CTX_CF1_SHIFT 2
  3685. #define MSTORM_RDMA_TASK_AG_CTX_CF2_MASK 0x3
  3686. #define MSTORM_RDMA_TASK_AG_CTX_CF2_SHIFT 4
  3687. #define MSTORM_RDMA_TASK_AG_CTX_CF0EN_MASK 0x1
  3688. #define MSTORM_RDMA_TASK_AG_CTX_CF0EN_SHIFT 6
  3689. #define MSTORM_RDMA_TASK_AG_CTX_CF1EN_MASK 0x1
  3690. #define MSTORM_RDMA_TASK_AG_CTX_CF1EN_SHIFT 7
  3691. u8 flags2;
  3692. #define MSTORM_RDMA_TASK_AG_CTX_CF2EN_MASK 0x1
  3693. #define MSTORM_RDMA_TASK_AG_CTX_CF2EN_SHIFT 0
  3694. #define MSTORM_RDMA_TASK_AG_CTX_RULE0EN_MASK 0x1
  3695. #define MSTORM_RDMA_TASK_AG_CTX_RULE0EN_SHIFT 1
  3696. #define MSTORM_RDMA_TASK_AG_CTX_RULE1EN_MASK 0x1
  3697. #define MSTORM_RDMA_TASK_AG_CTX_RULE1EN_SHIFT 2
  3698. #define MSTORM_RDMA_TASK_AG_CTX_RULE2EN_MASK 0x1
  3699. #define MSTORM_RDMA_TASK_AG_CTX_RULE2EN_SHIFT 3
  3700. #define MSTORM_RDMA_TASK_AG_CTX_RULE3EN_MASK 0x1
  3701. #define MSTORM_RDMA_TASK_AG_CTX_RULE3EN_SHIFT 4
  3702. #define MSTORM_RDMA_TASK_AG_CTX_RULE4EN_MASK 0x1
  3703. #define MSTORM_RDMA_TASK_AG_CTX_RULE4EN_SHIFT 5
  3704. #define MSTORM_RDMA_TASK_AG_CTX_RULE5EN_MASK 0x1
  3705. #define MSTORM_RDMA_TASK_AG_CTX_RULE5EN_SHIFT 6
  3706. #define MSTORM_RDMA_TASK_AG_CTX_RULE6EN_MASK 0x1
  3707. #define MSTORM_RDMA_TASK_AG_CTX_RULE6EN_SHIFT 7
  3708. u8 key;
  3709. __le32 mw_cnt;
  3710. u8 ref_cnt_seq;
  3711. u8 ctx_upd_seq;
  3712. __le16 dif_flags;
  3713. __le16 tx_ref_count;
  3714. __le16 last_used_ltid;
  3715. __le16 parent_mr_lo;
  3716. __le16 parent_mr_hi;
  3717. __le32 fbo_lo;
  3718. __le32 fbo_hi;
  3719. };
  3720. struct ustorm_rdma_task_st_ctx {
  3721. struct regpair temp[2];
  3722. };
  3723. struct ustorm_rdma_task_ag_ctx {
  3724. u8 reserved;
  3725. u8 byte1;
  3726. __le16 icid;
  3727. u8 flags0;
  3728. #define USTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_MASK 0xF
  3729. #define USTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_SHIFT 0
  3730. #define USTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_MASK 0x1
  3731. #define USTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_SHIFT 4
  3732. #define USTORM_RDMA_TASK_AG_CTX_DIF_RUNT_VALID_MASK 0x1
  3733. #define USTORM_RDMA_TASK_AG_CTX_DIF_RUNT_VALID_SHIFT 5
  3734. #define USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_RESULT_CF_MASK 0x3
  3735. #define USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_RESULT_CF_SHIFT 6
  3736. u8 flags1;
  3737. #define USTORM_RDMA_TASK_AG_CTX_DIF_RESULT_TOGGLE_BIT_MASK 0x3
  3738. #define USTORM_RDMA_TASK_AG_CTX_DIF_RESULT_TOGGLE_BIT_SHIFT 0
  3739. #define USTORM_RDMA_TASK_AG_CTX_DIF_TX_IO_FLG_MASK 0x3
  3740. #define USTORM_RDMA_TASK_AG_CTX_DIF_TX_IO_FLG_SHIFT 2
  3741. #define USTORM_RDMA_TASK_AG_CTX_CF3_MASK 0x3
  3742. #define USTORM_RDMA_TASK_AG_CTX_CF3_SHIFT 4
  3743. #define USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_CF_MASK 0x3
  3744. #define USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_CF_SHIFT 6
  3745. u8 flags2;
  3746. #define USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_RESULT_CF_EN_MASK 0x1
  3747. #define USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_RESULT_CF_EN_SHIFT 0
  3748. #define USTORM_RDMA_TASK_AG_CTX_RESERVED2_MASK 0x1
  3749. #define USTORM_RDMA_TASK_AG_CTX_RESERVED2_SHIFT 1
  3750. #define USTORM_RDMA_TASK_AG_CTX_RESERVED3_MASK 0x1
  3751. #define USTORM_RDMA_TASK_AG_CTX_RESERVED3_SHIFT 2
  3752. #define USTORM_RDMA_TASK_AG_CTX_CF3EN_MASK 0x1
  3753. #define USTORM_RDMA_TASK_AG_CTX_CF3EN_SHIFT 3
  3754. #define USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_CF_EN_MASK 0x1
  3755. #define USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_CF_EN_SHIFT 4
  3756. #define USTORM_RDMA_TASK_AG_CTX_RULE0EN_MASK 0x1
  3757. #define USTORM_RDMA_TASK_AG_CTX_RULE0EN_SHIFT 5
  3758. #define USTORM_RDMA_TASK_AG_CTX_RULE1EN_MASK 0x1
  3759. #define USTORM_RDMA_TASK_AG_CTX_RULE1EN_SHIFT 6
  3760. #define USTORM_RDMA_TASK_AG_CTX_RULE2EN_MASK 0x1
  3761. #define USTORM_RDMA_TASK_AG_CTX_RULE2EN_SHIFT 7
  3762. u8 flags3;
  3763. #define USTORM_RDMA_TASK_AG_CTX_RULE3EN_MASK 0x1
  3764. #define USTORM_RDMA_TASK_AG_CTX_RULE3EN_SHIFT 0
  3765. #define USTORM_RDMA_TASK_AG_CTX_RULE4EN_MASK 0x1
  3766. #define USTORM_RDMA_TASK_AG_CTX_RULE4EN_SHIFT 1
  3767. #define USTORM_RDMA_TASK_AG_CTX_RULE5EN_MASK 0x1
  3768. #define USTORM_RDMA_TASK_AG_CTX_RULE5EN_SHIFT 2
  3769. #define USTORM_RDMA_TASK_AG_CTX_RULE6EN_MASK 0x1
  3770. #define USTORM_RDMA_TASK_AG_CTX_RULE6EN_SHIFT 3
  3771. #define USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_TYPE_MASK 0xF
  3772. #define USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_TYPE_SHIFT 4
  3773. __le32 dif_err_intervals;
  3774. __le32 dif_error_1st_interval;
  3775. __le32 reg2;
  3776. __le32 dif_runt_value;
  3777. __le32 reg4;
  3778. __le32 reg5;
  3779. };
  3780. struct rdma_task_context {
  3781. struct ystorm_rdma_task_st_ctx ystorm_st_context;
  3782. struct ystorm_rdma_task_ag_ctx ystorm_ag_context;
  3783. struct tdif_task_context tdif_context;
  3784. struct mstorm_rdma_task_ag_ctx mstorm_ag_context;
  3785. struct mstorm_rdma_task_st_ctx mstorm_st_context;
  3786. struct rdif_task_context rdif_context;
  3787. struct ustorm_rdma_task_st_ctx ustorm_st_context;
  3788. struct regpair ustorm_st_padding[2];
  3789. struct ustorm_rdma_task_ag_ctx ustorm_ag_context;
  3790. };
  3791. enum rdma_tid_type {
  3792. RDMA_TID_REGISTERED_MR,
  3793. RDMA_TID_FMR,
  3794. RDMA_TID_MW_TYPE1,
  3795. RDMA_TID_MW_TYPE2A,
  3796. MAX_RDMA_TID_TYPE
  3797. };
  3798. struct mstorm_rdma_conn_ag_ctx {
  3799. u8 byte0;
  3800. u8 byte1;
  3801. u8 flags0;
  3802. #define MSTORM_RDMA_CONN_AG_CTX_BIT0_MASK 0x1
  3803. #define MSTORM_RDMA_CONN_AG_CTX_BIT0_SHIFT 0
  3804. #define MSTORM_RDMA_CONN_AG_CTX_BIT1_MASK 0x1
  3805. #define MSTORM_RDMA_CONN_AG_CTX_BIT1_SHIFT 1
  3806. #define MSTORM_RDMA_CONN_AG_CTX_CF0_MASK 0x3
  3807. #define MSTORM_RDMA_CONN_AG_CTX_CF0_SHIFT 2
  3808. #define MSTORM_RDMA_CONN_AG_CTX_CF1_MASK 0x3
  3809. #define MSTORM_RDMA_CONN_AG_CTX_CF1_SHIFT 4
  3810. #define MSTORM_RDMA_CONN_AG_CTX_CF2_MASK 0x3
  3811. #define MSTORM_RDMA_CONN_AG_CTX_CF2_SHIFT 6
  3812. u8 flags1;
  3813. #define MSTORM_RDMA_CONN_AG_CTX_CF0EN_MASK 0x1
  3814. #define MSTORM_RDMA_CONN_AG_CTX_CF0EN_SHIFT 0
  3815. #define MSTORM_RDMA_CONN_AG_CTX_CF1EN_MASK 0x1
  3816. #define MSTORM_RDMA_CONN_AG_CTX_CF1EN_SHIFT 1
  3817. #define MSTORM_RDMA_CONN_AG_CTX_CF2EN_MASK 0x1
  3818. #define MSTORM_RDMA_CONN_AG_CTX_CF2EN_SHIFT 2
  3819. #define MSTORM_RDMA_CONN_AG_CTX_RULE0EN_MASK 0x1
  3820. #define MSTORM_RDMA_CONN_AG_CTX_RULE0EN_SHIFT 3
  3821. #define MSTORM_RDMA_CONN_AG_CTX_RULE1EN_MASK 0x1
  3822. #define MSTORM_RDMA_CONN_AG_CTX_RULE1EN_SHIFT 4
  3823. #define MSTORM_RDMA_CONN_AG_CTX_RULE2EN_MASK 0x1
  3824. #define MSTORM_RDMA_CONN_AG_CTX_RULE2EN_SHIFT 5
  3825. #define MSTORM_RDMA_CONN_AG_CTX_RULE3EN_MASK 0x1
  3826. #define MSTORM_RDMA_CONN_AG_CTX_RULE3EN_SHIFT 6
  3827. #define MSTORM_RDMA_CONN_AG_CTX_RULE4EN_MASK 0x1
  3828. #define MSTORM_RDMA_CONN_AG_CTX_RULE4EN_SHIFT 7
  3829. __le16 word0;
  3830. __le16 word1;
  3831. __le32 reg0;
  3832. __le32 reg1;
  3833. };
  3834. struct tstorm_rdma_conn_ag_ctx {
  3835. u8 reserved0;
  3836. u8 byte1;
  3837. u8 flags0;
  3838. #define TSTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
  3839. #define TSTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
  3840. #define TSTORM_RDMA_CONN_AG_CTX_BIT1_MASK 0x1
  3841. #define TSTORM_RDMA_CONN_AG_CTX_BIT1_SHIFT 1
  3842. #define TSTORM_RDMA_CONN_AG_CTX_BIT2_MASK 0x1
  3843. #define TSTORM_RDMA_CONN_AG_CTX_BIT2_SHIFT 2
  3844. #define TSTORM_RDMA_CONN_AG_CTX_BIT3_MASK 0x1
  3845. #define TSTORM_RDMA_CONN_AG_CTX_BIT3_SHIFT 3
  3846. #define TSTORM_RDMA_CONN_AG_CTX_BIT4_MASK 0x1
  3847. #define TSTORM_RDMA_CONN_AG_CTX_BIT4_SHIFT 4
  3848. #define TSTORM_RDMA_CONN_AG_CTX_BIT5_MASK 0x1
  3849. #define TSTORM_RDMA_CONN_AG_CTX_BIT5_SHIFT 5
  3850. #define TSTORM_RDMA_CONN_AG_CTX_CF0_MASK 0x3
  3851. #define TSTORM_RDMA_CONN_AG_CTX_CF0_SHIFT 6
  3852. u8 flags1;
  3853. #define TSTORM_RDMA_CONN_AG_CTX_CF1_MASK 0x3
  3854. #define TSTORM_RDMA_CONN_AG_CTX_CF1_SHIFT 0
  3855. #define TSTORM_RDMA_CONN_AG_CTX_CF2_MASK 0x3
  3856. #define TSTORM_RDMA_CONN_AG_CTX_CF2_SHIFT 2
  3857. #define TSTORM_RDMA_CONN_AG_CTX_TIMER_STOP_ALL_CF_MASK 0x3
  3858. #define TSTORM_RDMA_CONN_AG_CTX_TIMER_STOP_ALL_CF_SHIFT 4
  3859. #define TSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
  3860. #define TSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6
  3861. u8 flags2;
  3862. #define TSTORM_RDMA_CONN_AG_CTX_MSTORM_FLUSH_CF_MASK 0x3
  3863. #define TSTORM_RDMA_CONN_AG_CTX_MSTORM_FLUSH_CF_SHIFT 0
  3864. #define TSTORM_RDMA_CONN_AG_CTX_CF6_MASK 0x3
  3865. #define TSTORM_RDMA_CONN_AG_CTX_CF6_SHIFT 2
  3866. #define TSTORM_RDMA_CONN_AG_CTX_CF7_MASK 0x3
  3867. #define TSTORM_RDMA_CONN_AG_CTX_CF7_SHIFT 4
  3868. #define TSTORM_RDMA_CONN_AG_CTX_CF8_MASK 0x3
  3869. #define TSTORM_RDMA_CONN_AG_CTX_CF8_SHIFT 6
  3870. u8 flags3;
  3871. #define TSTORM_RDMA_CONN_AG_CTX_CF9_MASK 0x3
  3872. #define TSTORM_RDMA_CONN_AG_CTX_CF9_SHIFT 0
  3873. #define TSTORM_RDMA_CONN_AG_CTX_CF10_MASK 0x3
  3874. #define TSTORM_RDMA_CONN_AG_CTX_CF10_SHIFT 2
  3875. #define TSTORM_RDMA_CONN_AG_CTX_CF0EN_MASK 0x1
  3876. #define TSTORM_RDMA_CONN_AG_CTX_CF0EN_SHIFT 4
  3877. #define TSTORM_RDMA_CONN_AG_CTX_CF1EN_MASK 0x1
  3878. #define TSTORM_RDMA_CONN_AG_CTX_CF1EN_SHIFT 5
  3879. #define TSTORM_RDMA_CONN_AG_CTX_CF2EN_MASK 0x1
  3880. #define TSTORM_RDMA_CONN_AG_CTX_CF2EN_SHIFT 6
  3881. #define TSTORM_RDMA_CONN_AG_CTX_TIMER_STOP_ALL_CF_EN_MASK 0x1
  3882. #define TSTORM_RDMA_CONN_AG_CTX_TIMER_STOP_ALL_CF_EN_SHIFT 7
  3883. u8 flags4;
  3884. #define TSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
  3885. #define TSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 0
  3886. #define TSTORM_RDMA_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_MASK 0x1
  3887. #define TSTORM_RDMA_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_SHIFT 1
  3888. #define TSTORM_RDMA_CONN_AG_CTX_CF6EN_MASK 0x1
  3889. #define TSTORM_RDMA_CONN_AG_CTX_CF6EN_SHIFT 2
  3890. #define TSTORM_RDMA_CONN_AG_CTX_CF7EN_MASK 0x1
  3891. #define TSTORM_RDMA_CONN_AG_CTX_CF7EN_SHIFT 3
  3892. #define TSTORM_RDMA_CONN_AG_CTX_CF8EN_MASK 0x1
  3893. #define TSTORM_RDMA_CONN_AG_CTX_CF8EN_SHIFT 4
  3894. #define TSTORM_RDMA_CONN_AG_CTX_CF9EN_MASK 0x1
  3895. #define TSTORM_RDMA_CONN_AG_CTX_CF9EN_SHIFT 5
  3896. #define TSTORM_RDMA_CONN_AG_CTX_CF10EN_MASK 0x1
  3897. #define TSTORM_RDMA_CONN_AG_CTX_CF10EN_SHIFT 6
  3898. #define TSTORM_RDMA_CONN_AG_CTX_RULE0EN_MASK 0x1
  3899. #define TSTORM_RDMA_CONN_AG_CTX_RULE0EN_SHIFT 7
  3900. u8 flags5;
  3901. #define TSTORM_RDMA_CONN_AG_CTX_RULE1EN_MASK 0x1
  3902. #define TSTORM_RDMA_CONN_AG_CTX_RULE1EN_SHIFT 0
  3903. #define TSTORM_RDMA_CONN_AG_CTX_RULE2EN_MASK 0x1
  3904. #define TSTORM_RDMA_CONN_AG_CTX_RULE2EN_SHIFT 1
  3905. #define TSTORM_RDMA_CONN_AG_CTX_RULE3EN_MASK 0x1
  3906. #define TSTORM_RDMA_CONN_AG_CTX_RULE3EN_SHIFT 2
  3907. #define TSTORM_RDMA_CONN_AG_CTX_RULE4EN_MASK 0x1
  3908. #define TSTORM_RDMA_CONN_AG_CTX_RULE4EN_SHIFT 3
  3909. #define TSTORM_RDMA_CONN_AG_CTX_RULE5EN_MASK 0x1
  3910. #define TSTORM_RDMA_CONN_AG_CTX_RULE5EN_SHIFT 4
  3911. #define TSTORM_RDMA_CONN_AG_CTX_RULE6EN_MASK 0x1
  3912. #define TSTORM_RDMA_CONN_AG_CTX_RULE6EN_SHIFT 5
  3913. #define TSTORM_RDMA_CONN_AG_CTX_RULE7EN_MASK 0x1
  3914. #define TSTORM_RDMA_CONN_AG_CTX_RULE7EN_SHIFT 6
  3915. #define TSTORM_RDMA_CONN_AG_CTX_RULE8EN_MASK 0x1
  3916. #define TSTORM_RDMA_CONN_AG_CTX_RULE8EN_SHIFT 7
  3917. __le32 reg0;
  3918. __le32 reg1;
  3919. __le32 reg2;
  3920. __le32 reg3;
  3921. __le32 reg4;
  3922. __le32 reg5;
  3923. __le32 reg6;
  3924. __le32 reg7;
  3925. __le32 reg8;
  3926. u8 byte2;
  3927. u8 byte3;
  3928. __le16 word0;
  3929. u8 byte4;
  3930. u8 byte5;
  3931. __le16 word1;
  3932. __le16 word2;
  3933. __le16 word3;
  3934. __le32 reg9;
  3935. __le32 reg10;
  3936. };
  3937. struct tstorm_rdma_task_ag_ctx {
  3938. u8 byte0;
  3939. u8 byte1;
  3940. __le16 word0;
  3941. u8 flags0;
  3942. #define TSTORM_RDMA_TASK_AG_CTX_NIBBLE0_MASK 0xF
  3943. #define TSTORM_RDMA_TASK_AG_CTX_NIBBLE0_SHIFT 0
  3944. #define TSTORM_RDMA_TASK_AG_CTX_BIT0_MASK 0x1
  3945. #define TSTORM_RDMA_TASK_AG_CTX_BIT0_SHIFT 4
  3946. #define TSTORM_RDMA_TASK_AG_CTX_BIT1_MASK 0x1
  3947. #define TSTORM_RDMA_TASK_AG_CTX_BIT1_SHIFT 5
  3948. #define TSTORM_RDMA_TASK_AG_CTX_BIT2_MASK 0x1
  3949. #define TSTORM_RDMA_TASK_AG_CTX_BIT2_SHIFT 6
  3950. #define TSTORM_RDMA_TASK_AG_CTX_BIT3_MASK 0x1
  3951. #define TSTORM_RDMA_TASK_AG_CTX_BIT3_SHIFT 7
  3952. u8 flags1;
  3953. #define TSTORM_RDMA_TASK_AG_CTX_BIT4_MASK 0x1
  3954. #define TSTORM_RDMA_TASK_AG_CTX_BIT4_SHIFT 0
  3955. #define TSTORM_RDMA_TASK_AG_CTX_BIT5_MASK 0x1
  3956. #define TSTORM_RDMA_TASK_AG_CTX_BIT5_SHIFT 1
  3957. #define TSTORM_RDMA_TASK_AG_CTX_CF0_MASK 0x3
  3958. #define TSTORM_RDMA_TASK_AG_CTX_CF0_SHIFT 2
  3959. #define TSTORM_RDMA_TASK_AG_CTX_CF1_MASK 0x3
  3960. #define TSTORM_RDMA_TASK_AG_CTX_CF1_SHIFT 4
  3961. #define TSTORM_RDMA_TASK_AG_CTX_CF2_MASK 0x3
  3962. #define TSTORM_RDMA_TASK_AG_CTX_CF2_SHIFT 6
  3963. u8 flags2;
  3964. #define TSTORM_RDMA_TASK_AG_CTX_CF3_MASK 0x3
  3965. #define TSTORM_RDMA_TASK_AG_CTX_CF3_SHIFT 0
  3966. #define TSTORM_RDMA_TASK_AG_CTX_CF4_MASK 0x3
  3967. #define TSTORM_RDMA_TASK_AG_CTX_CF4_SHIFT 2
  3968. #define TSTORM_RDMA_TASK_AG_CTX_CF5_MASK 0x3
  3969. #define TSTORM_RDMA_TASK_AG_CTX_CF5_SHIFT 4
  3970. #define TSTORM_RDMA_TASK_AG_CTX_CF6_MASK 0x3
  3971. #define TSTORM_RDMA_TASK_AG_CTX_CF6_SHIFT 6
  3972. u8 flags3;
  3973. #define TSTORM_RDMA_TASK_AG_CTX_CF7_MASK 0x3
  3974. #define TSTORM_RDMA_TASK_AG_CTX_CF7_SHIFT 0
  3975. #define TSTORM_RDMA_TASK_AG_CTX_CF0EN_MASK 0x1
  3976. #define TSTORM_RDMA_TASK_AG_CTX_CF0EN_SHIFT 2
  3977. #define TSTORM_RDMA_TASK_AG_CTX_CF1EN_MASK 0x1
  3978. #define TSTORM_RDMA_TASK_AG_CTX_CF1EN_SHIFT 3
  3979. #define TSTORM_RDMA_TASK_AG_CTX_CF2EN_MASK 0x1
  3980. #define TSTORM_RDMA_TASK_AG_CTX_CF2EN_SHIFT 4
  3981. #define TSTORM_RDMA_TASK_AG_CTX_CF3EN_MASK 0x1
  3982. #define TSTORM_RDMA_TASK_AG_CTX_CF3EN_SHIFT 5
  3983. #define TSTORM_RDMA_TASK_AG_CTX_CF4EN_MASK 0x1
  3984. #define TSTORM_RDMA_TASK_AG_CTX_CF4EN_SHIFT 6
  3985. #define TSTORM_RDMA_TASK_AG_CTX_CF5EN_MASK 0x1
  3986. #define TSTORM_RDMA_TASK_AG_CTX_CF5EN_SHIFT 7
  3987. u8 flags4;
  3988. #define TSTORM_RDMA_TASK_AG_CTX_CF6EN_MASK 0x1
  3989. #define TSTORM_RDMA_TASK_AG_CTX_CF6EN_SHIFT 0
  3990. #define TSTORM_RDMA_TASK_AG_CTX_CF7EN_MASK 0x1
  3991. #define TSTORM_RDMA_TASK_AG_CTX_CF7EN_SHIFT 1
  3992. #define TSTORM_RDMA_TASK_AG_CTX_RULE0EN_MASK 0x1
  3993. #define TSTORM_RDMA_TASK_AG_CTX_RULE0EN_SHIFT 2
  3994. #define TSTORM_RDMA_TASK_AG_CTX_RULE1EN_MASK 0x1
  3995. #define TSTORM_RDMA_TASK_AG_CTX_RULE1EN_SHIFT 3
  3996. #define TSTORM_RDMA_TASK_AG_CTX_RULE2EN_MASK 0x1
  3997. #define TSTORM_RDMA_TASK_AG_CTX_RULE2EN_SHIFT 4
  3998. #define TSTORM_RDMA_TASK_AG_CTX_RULE3EN_MASK 0x1
  3999. #define TSTORM_RDMA_TASK_AG_CTX_RULE3EN_SHIFT 5
  4000. #define TSTORM_RDMA_TASK_AG_CTX_RULE4EN_MASK 0x1
  4001. #define TSTORM_RDMA_TASK_AG_CTX_RULE4EN_SHIFT 6
  4002. #define TSTORM_RDMA_TASK_AG_CTX_RULE5EN_MASK 0x1
  4003. #define TSTORM_RDMA_TASK_AG_CTX_RULE5EN_SHIFT 7
  4004. u8 byte2;
  4005. __le16 word1;
  4006. __le32 reg0;
  4007. u8 byte3;
  4008. u8 byte4;
  4009. __le16 word2;
  4010. __le16 word3;
  4011. __le16 word4;
  4012. __le32 reg1;
  4013. __le32 reg2;
  4014. };
  4015. struct ustorm_rdma_conn_ag_ctx {
  4016. u8 reserved;
  4017. u8 byte1;
  4018. u8 flags0;
  4019. #define USTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
  4020. #define USTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
  4021. #define USTORM_RDMA_CONN_AG_CTX_BIT1_MASK 0x1
  4022. #define USTORM_RDMA_CONN_AG_CTX_BIT1_SHIFT 1
  4023. #define USTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
  4024. #define USTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 2
  4025. #define USTORM_RDMA_CONN_AG_CTX_CF1_MASK 0x3
  4026. #define USTORM_RDMA_CONN_AG_CTX_CF1_SHIFT 4
  4027. #define USTORM_RDMA_CONN_AG_CTX_CF2_MASK 0x3
  4028. #define USTORM_RDMA_CONN_AG_CTX_CF2_SHIFT 6
  4029. u8 flags1;
  4030. #define USTORM_RDMA_CONN_AG_CTX_CF3_MASK 0x3
  4031. #define USTORM_RDMA_CONN_AG_CTX_CF3_SHIFT 0
  4032. #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_SE_CF_MASK 0x3
  4033. #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_SE_CF_SHIFT 2
  4034. #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_CF_MASK 0x3
  4035. #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_CF_SHIFT 4
  4036. #define USTORM_RDMA_CONN_AG_CTX_CF6_MASK 0x3
  4037. #define USTORM_RDMA_CONN_AG_CTX_CF6_SHIFT 6
  4038. u8 flags2;
  4039. #define USTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
  4040. #define USTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 0
  4041. #define USTORM_RDMA_CONN_AG_CTX_CF1EN_MASK 0x1
  4042. #define USTORM_RDMA_CONN_AG_CTX_CF1EN_SHIFT 1
  4043. #define USTORM_RDMA_CONN_AG_CTX_CF2EN_MASK 0x1
  4044. #define USTORM_RDMA_CONN_AG_CTX_CF2EN_SHIFT 2
  4045. #define USTORM_RDMA_CONN_AG_CTX_CF3EN_MASK 0x1
  4046. #define USTORM_RDMA_CONN_AG_CTX_CF3EN_SHIFT 3
  4047. #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_SE_CF_EN_MASK 0x1
  4048. #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_SE_CF_EN_SHIFT 4
  4049. #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_CF_EN_MASK 0x1
  4050. #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_CF_EN_SHIFT 5
  4051. #define USTORM_RDMA_CONN_AG_CTX_CF6EN_MASK 0x1
  4052. #define USTORM_RDMA_CONN_AG_CTX_CF6EN_SHIFT 6
  4053. #define USTORM_RDMA_CONN_AG_CTX_CQ_SE_EN_MASK 0x1
  4054. #define USTORM_RDMA_CONN_AG_CTX_CQ_SE_EN_SHIFT 7
  4055. u8 flags3;
  4056. #define USTORM_RDMA_CONN_AG_CTX_CQ_EN_MASK 0x1
  4057. #define USTORM_RDMA_CONN_AG_CTX_CQ_EN_SHIFT 0
  4058. #define USTORM_RDMA_CONN_AG_CTX_RULE2EN_MASK 0x1
  4059. #define USTORM_RDMA_CONN_AG_CTX_RULE2EN_SHIFT 1
  4060. #define USTORM_RDMA_CONN_AG_CTX_RULE3EN_MASK 0x1
  4061. #define USTORM_RDMA_CONN_AG_CTX_RULE3EN_SHIFT 2
  4062. #define USTORM_RDMA_CONN_AG_CTX_RULE4EN_MASK 0x1
  4063. #define USTORM_RDMA_CONN_AG_CTX_RULE4EN_SHIFT 3
  4064. #define USTORM_RDMA_CONN_AG_CTX_RULE5EN_MASK 0x1
  4065. #define USTORM_RDMA_CONN_AG_CTX_RULE5EN_SHIFT 4
  4066. #define USTORM_RDMA_CONN_AG_CTX_RULE6EN_MASK 0x1
  4067. #define USTORM_RDMA_CONN_AG_CTX_RULE6EN_SHIFT 5
  4068. #define USTORM_RDMA_CONN_AG_CTX_RULE7EN_MASK 0x1
  4069. #define USTORM_RDMA_CONN_AG_CTX_RULE7EN_SHIFT 6
  4070. #define USTORM_RDMA_CONN_AG_CTX_RULE8EN_MASK 0x1
  4071. #define USTORM_RDMA_CONN_AG_CTX_RULE8EN_SHIFT 7
  4072. u8 byte2;
  4073. u8 byte3;
  4074. __le16 conn_dpi;
  4075. __le16 word1;
  4076. __le32 cq_cons;
  4077. __le32 cq_se_prod;
  4078. __le32 cq_prod;
  4079. __le32 reg3;
  4080. __le16 int_timeout;
  4081. __le16 word3;
  4082. };
  4083. struct xstorm_roce_conn_ag_ctx_dq_ext_ld_part {
  4084. u8 reserved0;
  4085. u8 state;
  4086. u8 flags0;
  4087. #define XSTORMROCECONNAGCTXDQEXTLDPART_EXIST_IN_QM0_MASK 0x1
  4088. #define XSTORMROCECONNAGCTXDQEXTLDPART_EXIST_IN_QM0_SHIFT 0
  4089. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT1_MASK 0x1
  4090. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT1_SHIFT 1
  4091. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT2_MASK 0x1
  4092. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT2_SHIFT 2
  4093. #define XSTORMROCECONNAGCTXDQEXTLDPART_EXIST_IN_QM3_MASK 0x1
  4094. #define XSTORMROCECONNAGCTXDQEXTLDPART_EXIST_IN_QM3_SHIFT 3
  4095. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT4_MASK 0x1
  4096. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT4_SHIFT 4
  4097. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT5_MASK 0x1
  4098. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT5_SHIFT 5
  4099. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT6_MASK 0x1
  4100. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT6_SHIFT 6
  4101. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT7_MASK 0x1
  4102. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT7_SHIFT 7
  4103. u8 flags1;
  4104. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT8_MASK 0x1
  4105. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT8_SHIFT 0
  4106. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT9_MASK 0x1
  4107. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT9_SHIFT 1
  4108. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT10_MASK 0x1
  4109. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT10_SHIFT 2
  4110. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT11_MASK 0x1
  4111. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT11_SHIFT 3
  4112. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT12_MASK 0x1
  4113. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT12_SHIFT 4
  4114. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT13_MASK 0x1
  4115. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT13_SHIFT 5
  4116. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT14_MASK 0x1
  4117. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT14_SHIFT 6
  4118. #define XSTORMROCECONNAGCTXDQEXTLDPART_YSTORM_FLUSH_MASK 0x1
  4119. #define XSTORMROCECONNAGCTXDQEXTLDPART_YSTORM_FLUSH_SHIFT 7
  4120. u8 flags2;
  4121. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF0_MASK 0x3
  4122. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF0_SHIFT 0
  4123. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF1_MASK 0x3
  4124. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF1_SHIFT 2
  4125. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF2_MASK 0x3
  4126. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF2_SHIFT 4
  4127. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF3_MASK 0x3
  4128. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF3_SHIFT 6
  4129. u8 flags3;
  4130. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF4_MASK 0x3
  4131. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF4_SHIFT 0
  4132. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF5_MASK 0x3
  4133. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF5_SHIFT 2
  4134. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF6_MASK 0x3
  4135. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF6_SHIFT 4
  4136. #define XSTORMROCECONNAGCTXDQEXTLDPART_FLUSH_Q0_CF_MASK 0x3
  4137. #define XSTORMROCECONNAGCTXDQEXTLDPART_FLUSH_Q0_CF_SHIFT 6
  4138. u8 flags4;
  4139. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF8_MASK 0x3
  4140. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF8_SHIFT 0
  4141. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF9_MASK 0x3
  4142. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF9_SHIFT 2
  4143. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF10_MASK 0x3
  4144. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF10_SHIFT 4
  4145. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF11_MASK 0x3
  4146. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF11_SHIFT 6
  4147. u8 flags5;
  4148. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF12_MASK 0x3
  4149. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF12_SHIFT 0
  4150. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF13_MASK 0x3
  4151. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF13_SHIFT 2
  4152. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF14_MASK 0x3
  4153. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF14_SHIFT 4
  4154. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF15_MASK 0x3
  4155. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF15_SHIFT 6
  4156. u8 flags6;
  4157. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF16_MASK 0x3
  4158. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF16_SHIFT 0
  4159. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF17_MASK 0x3
  4160. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF17_SHIFT 2
  4161. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF18_MASK 0x3
  4162. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF18_SHIFT 4
  4163. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF19_MASK 0x3
  4164. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF19_SHIFT 6
  4165. u8 flags7;
  4166. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF20_MASK 0x3
  4167. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF20_SHIFT 0
  4168. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF21_MASK 0x3
  4169. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF21_SHIFT 2
  4170. #define XSTORMROCECONNAGCTXDQEXTLDPART_SLOW_PATH_MASK 0x3
  4171. #define XSTORMROCECONNAGCTXDQEXTLDPART_SLOW_PATH_SHIFT 4
  4172. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF0EN_MASK 0x1
  4173. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF0EN_SHIFT 6
  4174. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF1EN_MASK 0x1
  4175. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF1EN_SHIFT 7
  4176. u8 flags8;
  4177. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF2EN_MASK 0x1
  4178. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF2EN_SHIFT 0
  4179. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF3EN_MASK 0x1
  4180. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF3EN_SHIFT 1
  4181. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF4EN_MASK 0x1
  4182. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF4EN_SHIFT 2
  4183. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF5EN_MASK 0x1
  4184. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF5EN_SHIFT 3
  4185. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF6EN_MASK 0x1
  4186. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF6EN_SHIFT 4
  4187. #define XSTORMROCECONNAGCTXDQEXTLDPART_FLUSH_Q0_CF_EN_MASK 0x1
  4188. #define XSTORMROCECONNAGCTXDQEXTLDPART_FLUSH_Q0_CF_EN_SHIFT 5
  4189. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF8EN_MASK 0x1
  4190. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF8EN_SHIFT 6
  4191. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF9EN_MASK 0x1
  4192. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF9EN_SHIFT 7
  4193. u8 flags9;
  4194. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF10EN_MASK 0x1
  4195. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF10EN_SHIFT 0
  4196. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF11EN_MASK 0x1
  4197. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF11EN_SHIFT 1
  4198. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF12EN_MASK 0x1
  4199. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF12EN_SHIFT 2
  4200. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF13EN_MASK 0x1
  4201. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF13EN_SHIFT 3
  4202. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF14EN_MASK 0x1
  4203. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF14EN_SHIFT 4
  4204. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF15EN_MASK 0x1
  4205. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF15EN_SHIFT 5
  4206. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF16EN_MASK 0x1
  4207. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF16EN_SHIFT 6
  4208. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF17EN_MASK 0x1
  4209. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF17EN_SHIFT 7
  4210. u8 flags10;
  4211. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF18EN_MASK 0x1
  4212. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF18EN_SHIFT 0
  4213. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF19EN_MASK 0x1
  4214. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF19EN_SHIFT 1
  4215. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF20EN_MASK 0x1
  4216. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF20EN_SHIFT 2
  4217. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF21EN_MASK 0x1
  4218. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF21EN_SHIFT 3
  4219. #define XSTORMROCECONNAGCTXDQEXTLDPART_SLOW_PATH_EN_MASK 0x1
  4220. #define XSTORMROCECONNAGCTXDQEXTLDPART_SLOW_PATH_EN_SHIFT 4
  4221. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF23EN_MASK 0x1
  4222. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF23EN_SHIFT 5
  4223. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE0EN_MASK 0x1
  4224. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE0EN_SHIFT 6
  4225. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE1EN_MASK 0x1
  4226. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE1EN_SHIFT 7
  4227. u8 flags11;
  4228. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE2EN_MASK 0x1
  4229. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE2EN_SHIFT 0
  4230. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE3EN_MASK 0x1
  4231. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE3EN_SHIFT 1
  4232. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE4EN_MASK 0x1
  4233. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE4EN_SHIFT 2
  4234. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE5EN_MASK 0x1
  4235. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE5EN_SHIFT 3
  4236. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE6EN_MASK 0x1
  4237. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE6EN_SHIFT 4
  4238. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE7EN_MASK 0x1
  4239. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE7EN_SHIFT 5
  4240. #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED1_MASK 0x1
  4241. #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED1_SHIFT 6
  4242. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE9EN_MASK 0x1
  4243. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE9EN_SHIFT 7
  4244. u8 flags12;
  4245. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE10EN_MASK 0x1
  4246. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE10EN_SHIFT 0
  4247. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE11EN_MASK 0x1
  4248. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE11EN_SHIFT 1
  4249. #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED2_MASK 0x1
  4250. #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED2_SHIFT 2
  4251. #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED3_MASK 0x1
  4252. #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED3_SHIFT 3
  4253. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE14EN_MASK 0x1
  4254. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE14EN_SHIFT 4
  4255. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE15EN_MASK 0x1
  4256. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE15EN_SHIFT 5
  4257. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE16EN_MASK 0x1
  4258. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE16EN_SHIFT 6
  4259. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE17EN_MASK 0x1
  4260. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE17EN_SHIFT 7
  4261. u8 flags13;
  4262. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE18EN_MASK 0x1
  4263. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE18EN_SHIFT 0
  4264. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE19EN_MASK 0x1
  4265. #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE19EN_SHIFT 1
  4266. #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED4_MASK 0x1
  4267. #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED4_SHIFT 2
  4268. #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED5_MASK 0x1
  4269. #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED5_SHIFT 3
  4270. #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED6_MASK 0x1
  4271. #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED6_SHIFT 4
  4272. #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED7_MASK 0x1
  4273. #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED7_SHIFT 5
  4274. #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED8_MASK 0x1
  4275. #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED8_SHIFT 6
  4276. #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED9_MASK 0x1
  4277. #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED9_SHIFT 7
  4278. u8 flags14;
  4279. #define XSTORMROCECONNAGCTXDQEXTLDPART_MIGRATION_MASK 0x1
  4280. #define XSTORMROCECONNAGCTXDQEXTLDPART_MIGRATION_SHIFT 0
  4281. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT17_MASK 0x1
  4282. #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT17_SHIFT 1
  4283. #define XSTORMROCECONNAGCTXDQEXTLDPART_DPM_PORT_NUM_MASK 0x3
  4284. #define XSTORMROCECONNAGCTXDQEXTLDPART_DPM_PORT_NUM_SHIFT 2
  4285. #define XSTORMROCECONNAGCTXDQEXTLDPART_RESERVED_MASK 0x1
  4286. #define XSTORMROCECONNAGCTXDQEXTLDPART_RESERVED_SHIFT 4
  4287. #define XSTORMROCECONNAGCTXDQEXTLDPART_ROCE_EDPM_ENABLE_MASK 0x1
  4288. #define XSTORMROCECONNAGCTXDQEXTLDPART_ROCE_EDPM_ENABLE_SHIFT 5
  4289. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF23_MASK 0x3
  4290. #define XSTORMROCECONNAGCTXDQEXTLDPART_CF23_SHIFT 6
  4291. u8 byte2;
  4292. __le16 physical_q0;
  4293. __le16 word1;
  4294. __le16 word2;
  4295. __le16 word3;
  4296. __le16 word4;
  4297. __le16 word5;
  4298. __le16 conn_dpi;
  4299. u8 byte3;
  4300. u8 byte4;
  4301. u8 byte5;
  4302. u8 byte6;
  4303. __le32 reg0;
  4304. __le32 reg1;
  4305. __le32 reg2;
  4306. __le32 snd_nxt_psn;
  4307. __le32 reg4;
  4308. };
  4309. struct xstorm_rdma_conn_ag_ctx {
  4310. u8 reserved0;
  4311. u8 state;
  4312. u8 flags0;
  4313. #define XSTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
  4314. #define XSTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
  4315. #define XSTORM_RDMA_CONN_AG_CTX_BIT1_MASK 0x1
  4316. #define XSTORM_RDMA_CONN_AG_CTX_BIT1_SHIFT 1
  4317. #define XSTORM_RDMA_CONN_AG_CTX_BIT2_MASK 0x1
  4318. #define XSTORM_RDMA_CONN_AG_CTX_BIT2_SHIFT 2
  4319. #define XSTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
  4320. #define XSTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
  4321. #define XSTORM_RDMA_CONN_AG_CTX_BIT4_MASK 0x1
  4322. #define XSTORM_RDMA_CONN_AG_CTX_BIT4_SHIFT 4
  4323. #define XSTORM_RDMA_CONN_AG_CTX_BIT5_MASK 0x1
  4324. #define XSTORM_RDMA_CONN_AG_CTX_BIT5_SHIFT 5
  4325. #define XSTORM_RDMA_CONN_AG_CTX_BIT6_MASK 0x1
  4326. #define XSTORM_RDMA_CONN_AG_CTX_BIT6_SHIFT 6
  4327. #define XSTORM_RDMA_CONN_AG_CTX_BIT7_MASK 0x1
  4328. #define XSTORM_RDMA_CONN_AG_CTX_BIT7_SHIFT 7
  4329. u8 flags1;
  4330. #define XSTORM_RDMA_CONN_AG_CTX_BIT8_MASK 0x1
  4331. #define XSTORM_RDMA_CONN_AG_CTX_BIT8_SHIFT 0
  4332. #define XSTORM_RDMA_CONN_AG_CTX_BIT9_MASK 0x1
  4333. #define XSTORM_RDMA_CONN_AG_CTX_BIT9_SHIFT 1
  4334. #define XSTORM_RDMA_CONN_AG_CTX_BIT10_MASK 0x1
  4335. #define XSTORM_RDMA_CONN_AG_CTX_BIT10_SHIFT 2
  4336. #define XSTORM_RDMA_CONN_AG_CTX_BIT11_MASK 0x1
  4337. #define XSTORM_RDMA_CONN_AG_CTX_BIT11_SHIFT 3
  4338. #define XSTORM_RDMA_CONN_AG_CTX_BIT12_MASK 0x1
  4339. #define XSTORM_RDMA_CONN_AG_CTX_BIT12_SHIFT 4
  4340. #define XSTORM_RDMA_CONN_AG_CTX_BIT13_MASK 0x1
  4341. #define XSTORM_RDMA_CONN_AG_CTX_BIT13_SHIFT 5
  4342. #define XSTORM_RDMA_CONN_AG_CTX_BIT14_MASK 0x1
  4343. #define XSTORM_RDMA_CONN_AG_CTX_BIT14_SHIFT 6
  4344. #define XSTORM_RDMA_CONN_AG_CTX_YSTORM_FLUSH_MASK 0x1
  4345. #define XSTORM_RDMA_CONN_AG_CTX_YSTORM_FLUSH_SHIFT 7
  4346. u8 flags2;
  4347. #define XSTORM_RDMA_CONN_AG_CTX_CF0_MASK 0x3
  4348. #define XSTORM_RDMA_CONN_AG_CTX_CF0_SHIFT 0
  4349. #define XSTORM_RDMA_CONN_AG_CTX_CF1_MASK 0x3
  4350. #define XSTORM_RDMA_CONN_AG_CTX_CF1_SHIFT 2
  4351. #define XSTORM_RDMA_CONN_AG_CTX_CF2_MASK 0x3
  4352. #define XSTORM_RDMA_CONN_AG_CTX_CF2_SHIFT 4
  4353. #define XSTORM_RDMA_CONN_AG_CTX_CF3_MASK 0x3
  4354. #define XSTORM_RDMA_CONN_AG_CTX_CF3_SHIFT 6
  4355. u8 flags3;
  4356. #define XSTORM_RDMA_CONN_AG_CTX_CF4_MASK 0x3
  4357. #define XSTORM_RDMA_CONN_AG_CTX_CF4_SHIFT 0
  4358. #define XSTORM_RDMA_CONN_AG_CTX_CF5_MASK 0x3
  4359. #define XSTORM_RDMA_CONN_AG_CTX_CF5_SHIFT 2
  4360. #define XSTORM_RDMA_CONN_AG_CTX_CF6_MASK 0x3
  4361. #define XSTORM_RDMA_CONN_AG_CTX_CF6_SHIFT 4
  4362. #define XSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
  4363. #define XSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6
  4364. u8 flags4;
  4365. #define XSTORM_RDMA_CONN_AG_CTX_CF8_MASK 0x3
  4366. #define XSTORM_RDMA_CONN_AG_CTX_CF8_SHIFT 0
  4367. #define XSTORM_RDMA_CONN_AG_CTX_CF9_MASK 0x3
  4368. #define XSTORM_RDMA_CONN_AG_CTX_CF9_SHIFT 2
  4369. #define XSTORM_RDMA_CONN_AG_CTX_CF10_MASK 0x3
  4370. #define XSTORM_RDMA_CONN_AG_CTX_CF10_SHIFT 4
  4371. #define XSTORM_RDMA_CONN_AG_CTX_CF11_MASK 0x3
  4372. #define XSTORM_RDMA_CONN_AG_CTX_CF11_SHIFT 6
  4373. u8 flags5;
  4374. #define XSTORM_RDMA_CONN_AG_CTX_CF12_MASK 0x3
  4375. #define XSTORM_RDMA_CONN_AG_CTX_CF12_SHIFT 0
  4376. #define XSTORM_RDMA_CONN_AG_CTX_CF13_MASK 0x3
  4377. #define XSTORM_RDMA_CONN_AG_CTX_CF13_SHIFT 2
  4378. #define XSTORM_RDMA_CONN_AG_CTX_CF14_MASK 0x3
  4379. #define XSTORM_RDMA_CONN_AG_CTX_CF14_SHIFT 4
  4380. #define XSTORM_RDMA_CONN_AG_CTX_CF15_MASK 0x3
  4381. #define XSTORM_RDMA_CONN_AG_CTX_CF15_SHIFT 6
  4382. u8 flags6;
  4383. #define XSTORM_RDMA_CONN_AG_CTX_CF16_MASK 0x3
  4384. #define XSTORM_RDMA_CONN_AG_CTX_CF16_SHIFT 0
  4385. #define XSTORM_RDMA_CONN_AG_CTX_CF17_MASK 0x3
  4386. #define XSTORM_RDMA_CONN_AG_CTX_CF17_SHIFT 2
  4387. #define XSTORM_RDMA_CONN_AG_CTX_CF18_MASK 0x3
  4388. #define XSTORM_RDMA_CONN_AG_CTX_CF18_SHIFT 4
  4389. #define XSTORM_RDMA_CONN_AG_CTX_CF19_MASK 0x3
  4390. #define XSTORM_RDMA_CONN_AG_CTX_CF19_SHIFT 6
  4391. u8 flags7;
  4392. #define XSTORM_RDMA_CONN_AG_CTX_CF20_MASK 0x3
  4393. #define XSTORM_RDMA_CONN_AG_CTX_CF20_SHIFT 0
  4394. #define XSTORM_RDMA_CONN_AG_CTX_CF21_MASK 0x3
  4395. #define XSTORM_RDMA_CONN_AG_CTX_CF21_SHIFT 2
  4396. #define XSTORM_RDMA_CONN_AG_CTX_SLOW_PATH_MASK 0x3
  4397. #define XSTORM_RDMA_CONN_AG_CTX_SLOW_PATH_SHIFT 4
  4398. #define XSTORM_RDMA_CONN_AG_CTX_CF0EN_MASK 0x1
  4399. #define XSTORM_RDMA_CONN_AG_CTX_CF0EN_SHIFT 6
  4400. #define XSTORM_RDMA_CONN_AG_CTX_CF1EN_MASK 0x1
  4401. #define XSTORM_RDMA_CONN_AG_CTX_CF1EN_SHIFT 7
  4402. u8 flags8;
  4403. #define XSTORM_RDMA_CONN_AG_CTX_CF2EN_MASK 0x1
  4404. #define XSTORM_RDMA_CONN_AG_CTX_CF2EN_SHIFT 0
  4405. #define XSTORM_RDMA_CONN_AG_CTX_CF3EN_MASK 0x1
  4406. #define XSTORM_RDMA_CONN_AG_CTX_CF3EN_SHIFT 1
  4407. #define XSTORM_RDMA_CONN_AG_CTX_CF4EN_MASK 0x1
  4408. #define XSTORM_RDMA_CONN_AG_CTX_CF4EN_SHIFT 2
  4409. #define XSTORM_RDMA_CONN_AG_CTX_CF5EN_MASK 0x1
  4410. #define XSTORM_RDMA_CONN_AG_CTX_CF5EN_SHIFT 3
  4411. #define XSTORM_RDMA_CONN_AG_CTX_CF6EN_MASK 0x1
  4412. #define XSTORM_RDMA_CONN_AG_CTX_CF6EN_SHIFT 4
  4413. #define XSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
  4414. #define XSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 5
  4415. #define XSTORM_RDMA_CONN_AG_CTX_CF8EN_MASK 0x1
  4416. #define XSTORM_RDMA_CONN_AG_CTX_CF8EN_SHIFT 6
  4417. #define XSTORM_RDMA_CONN_AG_CTX_CF9EN_MASK 0x1
  4418. #define XSTORM_RDMA_CONN_AG_CTX_CF9EN_SHIFT 7
  4419. u8 flags9;
  4420. #define XSTORM_RDMA_CONN_AG_CTX_CF10EN_MASK 0x1
  4421. #define XSTORM_RDMA_CONN_AG_CTX_CF10EN_SHIFT 0
  4422. #define XSTORM_RDMA_CONN_AG_CTX_CF11EN_MASK 0x1
  4423. #define XSTORM_RDMA_CONN_AG_CTX_CF11EN_SHIFT 1
  4424. #define XSTORM_RDMA_CONN_AG_CTX_CF12EN_MASK 0x1
  4425. #define XSTORM_RDMA_CONN_AG_CTX_CF12EN_SHIFT 2
  4426. #define XSTORM_RDMA_CONN_AG_CTX_CF13EN_MASK 0x1
  4427. #define XSTORM_RDMA_CONN_AG_CTX_CF13EN_SHIFT 3
  4428. #define XSTORM_RDMA_CONN_AG_CTX_CF14EN_MASK 0x1
  4429. #define XSTORM_RDMA_CONN_AG_CTX_CF14EN_SHIFT 4
  4430. #define XSTORM_RDMA_CONN_AG_CTX_CF15EN_MASK 0x1
  4431. #define XSTORM_RDMA_CONN_AG_CTX_CF15EN_SHIFT 5
  4432. #define XSTORM_RDMA_CONN_AG_CTX_CF16EN_MASK 0x1
  4433. #define XSTORM_RDMA_CONN_AG_CTX_CF16EN_SHIFT 6
  4434. #define XSTORM_RDMA_CONN_AG_CTX_CF17EN_MASK 0x1
  4435. #define XSTORM_RDMA_CONN_AG_CTX_CF17EN_SHIFT 7
  4436. u8 flags10;
  4437. #define XSTORM_RDMA_CONN_AG_CTX_CF18EN_MASK 0x1
  4438. #define XSTORM_RDMA_CONN_AG_CTX_CF18EN_SHIFT 0
  4439. #define XSTORM_RDMA_CONN_AG_CTX_CF19EN_MASK 0x1
  4440. #define XSTORM_RDMA_CONN_AG_CTX_CF19EN_SHIFT 1
  4441. #define XSTORM_RDMA_CONN_AG_CTX_CF20EN_MASK 0x1
  4442. #define XSTORM_RDMA_CONN_AG_CTX_CF20EN_SHIFT 2
  4443. #define XSTORM_RDMA_CONN_AG_CTX_CF21EN_MASK 0x1
  4444. #define XSTORM_RDMA_CONN_AG_CTX_CF21EN_SHIFT 3
  4445. #define XSTORM_RDMA_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
  4446. #define XSTORM_RDMA_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
  4447. #define XSTORM_RDMA_CONN_AG_CTX_CF23EN_MASK 0x1
  4448. #define XSTORM_RDMA_CONN_AG_CTX_CF23EN_SHIFT 5
  4449. #define XSTORM_RDMA_CONN_AG_CTX_RULE0EN_MASK 0x1
  4450. #define XSTORM_RDMA_CONN_AG_CTX_RULE0EN_SHIFT 6
  4451. #define XSTORM_RDMA_CONN_AG_CTX_RULE1EN_MASK 0x1
  4452. #define XSTORM_RDMA_CONN_AG_CTX_RULE1EN_SHIFT 7
  4453. u8 flags11;
  4454. #define XSTORM_RDMA_CONN_AG_CTX_RULE2EN_MASK 0x1
  4455. #define XSTORM_RDMA_CONN_AG_CTX_RULE2EN_SHIFT 0
  4456. #define XSTORM_RDMA_CONN_AG_CTX_RULE3EN_MASK 0x1
  4457. #define XSTORM_RDMA_CONN_AG_CTX_RULE3EN_SHIFT 1
  4458. #define XSTORM_RDMA_CONN_AG_CTX_RULE4EN_MASK 0x1
  4459. #define XSTORM_RDMA_CONN_AG_CTX_RULE4EN_SHIFT 2
  4460. #define XSTORM_RDMA_CONN_AG_CTX_RULE5EN_MASK 0x1
  4461. #define XSTORM_RDMA_CONN_AG_CTX_RULE5EN_SHIFT 3
  4462. #define XSTORM_RDMA_CONN_AG_CTX_RULE6EN_MASK 0x1
  4463. #define XSTORM_RDMA_CONN_AG_CTX_RULE6EN_SHIFT 4
  4464. #define XSTORM_RDMA_CONN_AG_CTX_RULE7EN_MASK 0x1
  4465. #define XSTORM_RDMA_CONN_AG_CTX_RULE7EN_SHIFT 5
  4466. #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
  4467. #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
  4468. #define XSTORM_RDMA_CONN_AG_CTX_RULE9EN_MASK 0x1
  4469. #define XSTORM_RDMA_CONN_AG_CTX_RULE9EN_SHIFT 7
  4470. u8 flags12;
  4471. #define XSTORM_RDMA_CONN_AG_CTX_RULE10EN_MASK 0x1
  4472. #define XSTORM_RDMA_CONN_AG_CTX_RULE10EN_SHIFT 0
  4473. #define XSTORM_RDMA_CONN_AG_CTX_RULE11EN_MASK 0x1
  4474. #define XSTORM_RDMA_CONN_AG_CTX_RULE11EN_SHIFT 1
  4475. #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
  4476. #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
  4477. #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
  4478. #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
  4479. #define XSTORM_RDMA_CONN_AG_CTX_RULE14EN_MASK 0x1
  4480. #define XSTORM_RDMA_CONN_AG_CTX_RULE14EN_SHIFT 4
  4481. #define XSTORM_RDMA_CONN_AG_CTX_RULE15EN_MASK 0x1
  4482. #define XSTORM_RDMA_CONN_AG_CTX_RULE15EN_SHIFT 5
  4483. #define XSTORM_RDMA_CONN_AG_CTX_RULE16EN_MASK 0x1
  4484. #define XSTORM_RDMA_CONN_AG_CTX_RULE16EN_SHIFT 6
  4485. #define XSTORM_RDMA_CONN_AG_CTX_RULE17EN_MASK 0x1
  4486. #define XSTORM_RDMA_CONN_AG_CTX_RULE17EN_SHIFT 7
  4487. u8 flags13;
  4488. #define XSTORM_RDMA_CONN_AG_CTX_RULE18EN_MASK 0x1
  4489. #define XSTORM_RDMA_CONN_AG_CTX_RULE18EN_SHIFT 0
  4490. #define XSTORM_RDMA_CONN_AG_CTX_RULE19EN_MASK 0x1
  4491. #define XSTORM_RDMA_CONN_AG_CTX_RULE19EN_SHIFT 1
  4492. #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
  4493. #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
  4494. #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
  4495. #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
  4496. #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
  4497. #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
  4498. #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
  4499. #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
  4500. #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
  4501. #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
  4502. #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
  4503. #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
  4504. u8 flags14;
  4505. #define XSTORM_RDMA_CONN_AG_CTX_MIGRATION_MASK 0x1
  4506. #define XSTORM_RDMA_CONN_AG_CTX_MIGRATION_SHIFT 0
  4507. #define XSTORM_RDMA_CONN_AG_CTX_BIT17_MASK 0x1
  4508. #define XSTORM_RDMA_CONN_AG_CTX_BIT17_SHIFT 1
  4509. #define XSTORM_RDMA_CONN_AG_CTX_DPM_PORT_NUM_MASK 0x3
  4510. #define XSTORM_RDMA_CONN_AG_CTX_DPM_PORT_NUM_SHIFT 2
  4511. #define XSTORM_RDMA_CONN_AG_CTX_RESERVED_MASK 0x1
  4512. #define XSTORM_RDMA_CONN_AG_CTX_RESERVED_SHIFT 4
  4513. #define XSTORM_RDMA_CONN_AG_CTX_ROCE_EDPM_ENABLE_MASK 0x1
  4514. #define XSTORM_RDMA_CONN_AG_CTX_ROCE_EDPM_ENABLE_SHIFT 5
  4515. #define XSTORM_RDMA_CONN_AG_CTX_CF23_MASK 0x3
  4516. #define XSTORM_RDMA_CONN_AG_CTX_CF23_SHIFT 6
  4517. u8 byte2;
  4518. __le16 physical_q0;
  4519. __le16 word1;
  4520. __le16 word2;
  4521. __le16 word3;
  4522. __le16 word4;
  4523. __le16 word5;
  4524. __le16 conn_dpi;
  4525. u8 byte3;
  4526. u8 byte4;
  4527. u8 byte5;
  4528. u8 byte6;
  4529. __le32 reg0;
  4530. __le32 reg1;
  4531. __le32 reg2;
  4532. __le32 snd_nxt_psn;
  4533. __le32 reg4;
  4534. __le32 reg5;
  4535. __le32 reg6;
  4536. };
  4537. struct ystorm_rdma_conn_ag_ctx {
  4538. u8 byte0;
  4539. u8 byte1;
  4540. u8 flags0;
  4541. #define YSTORM_RDMA_CONN_AG_CTX_BIT0_MASK 0x1
  4542. #define YSTORM_RDMA_CONN_AG_CTX_BIT0_SHIFT 0
  4543. #define YSTORM_RDMA_CONN_AG_CTX_BIT1_MASK 0x1
  4544. #define YSTORM_RDMA_CONN_AG_CTX_BIT1_SHIFT 1
  4545. #define YSTORM_RDMA_CONN_AG_CTX_CF0_MASK 0x3
  4546. #define YSTORM_RDMA_CONN_AG_CTX_CF0_SHIFT 2
  4547. #define YSTORM_RDMA_CONN_AG_CTX_CF1_MASK 0x3
  4548. #define YSTORM_RDMA_CONN_AG_CTX_CF1_SHIFT 4
  4549. #define YSTORM_RDMA_CONN_AG_CTX_CF2_MASK 0x3
  4550. #define YSTORM_RDMA_CONN_AG_CTX_CF2_SHIFT 6
  4551. u8 flags1;
  4552. #define YSTORM_RDMA_CONN_AG_CTX_CF0EN_MASK 0x1
  4553. #define YSTORM_RDMA_CONN_AG_CTX_CF0EN_SHIFT 0
  4554. #define YSTORM_RDMA_CONN_AG_CTX_CF1EN_MASK 0x1
  4555. #define YSTORM_RDMA_CONN_AG_CTX_CF1EN_SHIFT 1
  4556. #define YSTORM_RDMA_CONN_AG_CTX_CF2EN_MASK 0x1
  4557. #define YSTORM_RDMA_CONN_AG_CTX_CF2EN_SHIFT 2
  4558. #define YSTORM_RDMA_CONN_AG_CTX_RULE0EN_MASK 0x1
  4559. #define YSTORM_RDMA_CONN_AG_CTX_RULE0EN_SHIFT 3
  4560. #define YSTORM_RDMA_CONN_AG_CTX_RULE1EN_MASK 0x1
  4561. #define YSTORM_RDMA_CONN_AG_CTX_RULE1EN_SHIFT 4
  4562. #define YSTORM_RDMA_CONN_AG_CTX_RULE2EN_MASK 0x1
  4563. #define YSTORM_RDMA_CONN_AG_CTX_RULE2EN_SHIFT 5
  4564. #define YSTORM_RDMA_CONN_AG_CTX_RULE3EN_MASK 0x1
  4565. #define YSTORM_RDMA_CONN_AG_CTX_RULE3EN_SHIFT 6
  4566. #define YSTORM_RDMA_CONN_AG_CTX_RULE4EN_MASK 0x1
  4567. #define YSTORM_RDMA_CONN_AG_CTX_RULE4EN_SHIFT 7
  4568. u8 byte2;
  4569. u8 byte3;
  4570. __le16 word0;
  4571. __le32 reg0;
  4572. __le32 reg1;
  4573. __le16 word1;
  4574. __le16 word2;
  4575. __le16 word3;
  4576. __le16 word4;
  4577. __le32 reg2;
  4578. __le32 reg3;
  4579. };
  4580. struct mstorm_roce_conn_st_ctx {
  4581. struct regpair temp[6];
  4582. };
  4583. struct pstorm_roce_conn_st_ctx {
  4584. struct regpair temp[16];
  4585. };
  4586. struct ystorm_roce_conn_st_ctx {
  4587. struct regpair temp[2];
  4588. };
  4589. struct xstorm_roce_conn_st_ctx {
  4590. struct regpair temp[22];
  4591. };
  4592. struct tstorm_roce_conn_st_ctx {
  4593. struct regpair temp[30];
  4594. };
  4595. struct ustorm_roce_conn_st_ctx {
  4596. struct regpair temp[12];
  4597. };
  4598. struct roce_conn_context {
  4599. struct ystorm_roce_conn_st_ctx ystorm_st_context;
  4600. struct regpair ystorm_st_padding[2];
  4601. struct pstorm_roce_conn_st_ctx pstorm_st_context;
  4602. struct xstorm_roce_conn_st_ctx xstorm_st_context;
  4603. struct regpair xstorm_st_padding[2];
  4604. struct xstorm_rdma_conn_ag_ctx xstorm_ag_context;
  4605. struct tstorm_rdma_conn_ag_ctx tstorm_ag_context;
  4606. struct timers_context timer_context;
  4607. struct ustorm_rdma_conn_ag_ctx ustorm_ag_context;
  4608. struct tstorm_roce_conn_st_ctx tstorm_st_context;
  4609. struct mstorm_roce_conn_st_ctx mstorm_st_context;
  4610. struct ustorm_roce_conn_st_ctx ustorm_st_context;
  4611. struct regpair ustorm_st_padding[2];
  4612. };
  4613. struct roce_create_qp_req_ramrod_data {
  4614. __le16 flags;
  4615. #define ROCE_CREATE_QP_REQ_RAMROD_DATA_ROCE_FLAVOR_MASK 0x3
  4616. #define ROCE_CREATE_QP_REQ_RAMROD_DATA_ROCE_FLAVOR_SHIFT 0
  4617. #define ROCE_CREATE_QP_REQ_RAMROD_DATA_FMR_AND_RESERVED_EN_MASK 0x1
  4618. #define ROCE_CREATE_QP_REQ_RAMROD_DATA_FMR_AND_RESERVED_EN_SHIFT 2
  4619. #define ROCE_CREATE_QP_REQ_RAMROD_DATA_SIGNALED_COMP_MASK 0x1
  4620. #define ROCE_CREATE_QP_REQ_RAMROD_DATA_SIGNALED_COMP_SHIFT 3
  4621. #define ROCE_CREATE_QP_REQ_RAMROD_DATA_PRI_MASK 0x7
  4622. #define ROCE_CREATE_QP_REQ_RAMROD_DATA_PRI_SHIFT 4
  4623. #define ROCE_CREATE_QP_REQ_RAMROD_DATA_RESERVED_MASK 0x1
  4624. #define ROCE_CREATE_QP_REQ_RAMROD_DATA_RESERVED_SHIFT 7
  4625. #define ROCE_CREATE_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_MASK 0xF
  4626. #define ROCE_CREATE_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_SHIFT 8
  4627. #define ROCE_CREATE_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_MASK 0xF
  4628. #define ROCE_CREATE_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_SHIFT 12
  4629. u8 max_ord;
  4630. u8 traffic_class;
  4631. u8 hop_limit;
  4632. u8 orq_num_pages;
  4633. __le16 p_key;
  4634. __le32 flow_label;
  4635. __le32 dst_qp_id;
  4636. __le32 ack_timeout_val;
  4637. __le32 initial_psn;
  4638. __le16 mtu;
  4639. __le16 pd;
  4640. __le16 sq_num_pages;
  4641. __le16 reseved2;
  4642. struct regpair sq_pbl_addr;
  4643. struct regpair orq_pbl_addr;
  4644. __le16 local_mac_addr[3];
  4645. __le16 remote_mac_addr[3];
  4646. __le16 vlan_id;
  4647. __le16 udp_src_port;
  4648. __le32 src_gid[4];
  4649. __le32 dst_gid[4];
  4650. struct regpair qp_handle_for_cqe;
  4651. struct regpair qp_handle_for_async;
  4652. u8 stats_counter_id;
  4653. u8 reserved3[7];
  4654. __le32 cq_cid;
  4655. __le16 physical_queue0;
  4656. __le16 dpi;
  4657. };
  4658. struct roce_create_qp_resp_ramrod_data {
  4659. __le16 flags;
  4660. #define ROCE_CREATE_QP_RESP_RAMROD_DATA_ROCE_FLAVOR_MASK 0x3
  4661. #define ROCE_CREATE_QP_RESP_RAMROD_DATA_ROCE_FLAVOR_SHIFT 0
  4662. #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RDMA_RD_EN_MASK 0x1
  4663. #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RDMA_RD_EN_SHIFT 2
  4664. #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RDMA_WR_EN_MASK 0x1
  4665. #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RDMA_WR_EN_SHIFT 3
  4666. #define ROCE_CREATE_QP_RESP_RAMROD_DATA_ATOMIC_EN_MASK 0x1
  4667. #define ROCE_CREATE_QP_RESP_RAMROD_DATA_ATOMIC_EN_SHIFT 4
  4668. #define ROCE_CREATE_QP_RESP_RAMROD_DATA_SRQ_FLG_MASK 0x1
  4669. #define ROCE_CREATE_QP_RESP_RAMROD_DATA_SRQ_FLG_SHIFT 5
  4670. #define ROCE_CREATE_QP_RESP_RAMROD_DATA_E2E_FLOW_CONTROL_EN_MASK 0x1
  4671. #define ROCE_CREATE_QP_RESP_RAMROD_DATA_E2E_FLOW_CONTROL_EN_SHIFT 6
  4672. #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RESERVED0_MASK 0x1
  4673. #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RESERVED0_SHIFT 7
  4674. #define ROCE_CREATE_QP_RESP_RAMROD_DATA_PRI_MASK 0x7
  4675. #define ROCE_CREATE_QP_RESP_RAMROD_DATA_PRI_SHIFT 8
  4676. #define ROCE_CREATE_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_MASK 0x1F
  4677. #define ROCE_CREATE_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_SHIFT 11
  4678. u8 max_ird;
  4679. u8 traffic_class;
  4680. u8 hop_limit;
  4681. u8 irq_num_pages;
  4682. __le16 p_key;
  4683. __le32 flow_label;
  4684. __le32 dst_qp_id;
  4685. u8 stats_counter_id;
  4686. u8 reserved1;
  4687. __le16 mtu;
  4688. __le32 initial_psn;
  4689. __le16 pd;
  4690. __le16 rq_num_pages;
  4691. struct rdma_srq_id srq_id;
  4692. struct regpair rq_pbl_addr;
  4693. struct regpair irq_pbl_addr;
  4694. __le16 local_mac_addr[3];
  4695. __le16 remote_mac_addr[3];
  4696. __le16 vlan_id;
  4697. __le16 udp_src_port;
  4698. __le32 src_gid[4];
  4699. __le32 dst_gid[4];
  4700. struct regpair qp_handle_for_cqe;
  4701. struct regpair qp_handle_for_async;
  4702. __le32 reserved2[2];
  4703. __le32 cq_cid;
  4704. __le16 physical_queue0;
  4705. __le16 dpi;
  4706. };
  4707. struct roce_destroy_qp_req_output_params {
  4708. __le32 num_bound_mw;
  4709. __le32 reserved;
  4710. };
  4711. struct roce_destroy_qp_req_ramrod_data {
  4712. struct regpair output_params_addr;
  4713. };
  4714. struct roce_destroy_qp_resp_output_params {
  4715. __le32 num_invalidated_mw;
  4716. __le32 reserved;
  4717. };
  4718. struct roce_destroy_qp_resp_ramrod_data {
  4719. struct regpair output_params_addr;
  4720. };
  4721. enum roce_event_opcode {
  4722. ROCE_EVENT_CREATE_QP = 11,
  4723. ROCE_EVENT_MODIFY_QP,
  4724. ROCE_EVENT_QUERY_QP,
  4725. ROCE_EVENT_DESTROY_QP,
  4726. MAX_ROCE_EVENT_OPCODE
  4727. };
  4728. struct roce_modify_qp_req_ramrod_data {
  4729. __le16 flags;
  4730. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MOVE_TO_ERR_FLG_MASK 0x1
  4731. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MOVE_TO_ERR_FLG_SHIFT 0
  4732. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MOVE_TO_SQD_FLG_MASK 0x1
  4733. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MOVE_TO_SQD_FLG_SHIFT 1
  4734. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_EN_SQD_ASYNC_NOTIFY_MASK 0x1
  4735. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_EN_SQD_ASYNC_NOTIFY_SHIFT 2
  4736. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_P_KEY_FLG_MASK 0x1
  4737. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_P_KEY_FLG_SHIFT 3
  4738. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ADDRESS_VECTOR_FLG_MASK 0x1
  4739. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ADDRESS_VECTOR_FLG_SHIFT 4
  4740. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MAX_ORD_FLG_MASK 0x1
  4741. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MAX_ORD_FLG_SHIFT 5
  4742. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_FLG_MASK 0x1
  4743. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_FLG_SHIFT 6
  4744. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_FLG_MASK 0x1
  4745. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_FLG_SHIFT 7
  4746. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ACK_TIMEOUT_FLG_MASK 0x1
  4747. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ACK_TIMEOUT_FLG_SHIFT 8
  4748. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_FLG_MASK 0x1
  4749. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_FLG_SHIFT 9
  4750. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_MASK 0x7
  4751. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_SHIFT 10
  4752. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RESERVED1_MASK 0x7
  4753. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RESERVED1_SHIFT 13
  4754. u8 fields;
  4755. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_MASK 0xF
  4756. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_SHIFT 0
  4757. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_MASK 0xF
  4758. #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_SHIFT 4
  4759. u8 max_ord;
  4760. u8 traffic_class;
  4761. u8 hop_limit;
  4762. __le16 p_key;
  4763. __le32 flow_label;
  4764. __le32 ack_timeout_val;
  4765. __le16 mtu;
  4766. __le16 reserved2;
  4767. __le32 reserved3[3];
  4768. __le32 src_gid[4];
  4769. __le32 dst_gid[4];
  4770. };
  4771. struct roce_modify_qp_resp_ramrod_data {
  4772. __le16 flags;
  4773. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MOVE_TO_ERR_FLG_MASK 0x1
  4774. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MOVE_TO_ERR_FLG_SHIFT 0
  4775. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_RD_EN_MASK 0x1
  4776. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_RD_EN_SHIFT 1
  4777. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_WR_EN_MASK 0x1
  4778. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_WR_EN_SHIFT 2
  4779. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_ATOMIC_EN_MASK 0x1
  4780. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_ATOMIC_EN_SHIFT 3
  4781. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_P_KEY_FLG_MASK 0x1
  4782. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_P_KEY_FLG_SHIFT 4
  4783. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_ADDRESS_VECTOR_FLG_MASK 0x1
  4784. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_ADDRESS_VECTOR_FLG_SHIFT 5
  4785. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MAX_IRD_FLG_MASK 0x1
  4786. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MAX_IRD_FLG_SHIFT 6
  4787. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PRI_FLG_MASK 0x1
  4788. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PRI_FLG_SHIFT 7
  4789. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_FLG_MASK 0x1
  4790. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_FLG_SHIFT 8
  4791. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_OPS_EN_FLG_MASK 0x1
  4792. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_OPS_EN_FLG_SHIFT 9
  4793. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RESERVED1_MASK 0x3F
  4794. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RESERVED1_SHIFT 10
  4795. u8 fields;
  4796. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PRI_MASK 0x7
  4797. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PRI_SHIFT 0
  4798. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_MASK 0x1F
  4799. #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_SHIFT 3
  4800. u8 max_ird;
  4801. u8 traffic_class;
  4802. u8 hop_limit;
  4803. __le16 p_key;
  4804. __le32 flow_label;
  4805. __le16 mtu;
  4806. __le16 reserved2;
  4807. __le32 src_gid[4];
  4808. __le32 dst_gid[4];
  4809. };
  4810. struct roce_query_qp_req_output_params {
  4811. __le32 psn;
  4812. __le32 flags;
  4813. #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_ERR_FLG_MASK 0x1
  4814. #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_ERR_FLG_SHIFT 0
  4815. #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_SQ_DRAINING_FLG_MASK 0x1
  4816. #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_SQ_DRAINING_FLG_SHIFT 1
  4817. #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_RESERVED0_MASK 0x3FFFFFFF
  4818. #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_RESERVED0_SHIFT 2
  4819. };
  4820. struct roce_query_qp_req_ramrod_data {
  4821. struct regpair output_params_addr;
  4822. };
  4823. struct roce_query_qp_resp_output_params {
  4824. __le32 psn;
  4825. __le32 err_flag;
  4826. #define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_ERROR_FLG_MASK 0x1
  4827. #define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_ERROR_FLG_SHIFT 0
  4828. #define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_RESERVED0_MASK 0x7FFFFFFF
  4829. #define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_RESERVED0_SHIFT 1
  4830. };
  4831. struct roce_query_qp_resp_ramrod_data {
  4832. struct regpair output_params_addr;
  4833. };
  4834. enum roce_ramrod_cmd_id {
  4835. ROCE_RAMROD_CREATE_QP = 11,
  4836. ROCE_RAMROD_MODIFY_QP,
  4837. ROCE_RAMROD_QUERY_QP,
  4838. ROCE_RAMROD_DESTROY_QP,
  4839. MAX_ROCE_RAMROD_CMD_ID
  4840. };
  4841. struct mstorm_roce_req_conn_ag_ctx {
  4842. u8 byte0;
  4843. u8 byte1;
  4844. u8 flags0;
  4845. #define MSTORM_ROCE_REQ_CONN_AG_CTX_BIT0_MASK 0x1
  4846. #define MSTORM_ROCE_REQ_CONN_AG_CTX_BIT0_SHIFT 0
  4847. #define MSTORM_ROCE_REQ_CONN_AG_CTX_BIT1_MASK 0x1
  4848. #define MSTORM_ROCE_REQ_CONN_AG_CTX_BIT1_SHIFT 1
  4849. #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF0_MASK 0x3
  4850. #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF0_SHIFT 2
  4851. #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF1_MASK 0x3
  4852. #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF1_SHIFT 4
  4853. #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF2_MASK 0x3
  4854. #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF2_SHIFT 6
  4855. u8 flags1;
  4856. #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_MASK 0x1
  4857. #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_SHIFT 0
  4858. #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_MASK 0x1
  4859. #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_SHIFT 1
  4860. #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_MASK 0x1
  4861. #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_SHIFT 2
  4862. #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_MASK 0x1
  4863. #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_SHIFT 3
  4864. #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1
  4865. #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 4
  4866. #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_MASK 0x1
  4867. #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_SHIFT 5
  4868. #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1
  4869. #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 6
  4870. #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1
  4871. #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_SHIFT 7
  4872. __le16 word0;
  4873. __le16 word1;
  4874. __le32 reg0;
  4875. __le32 reg1;
  4876. };
  4877. struct mstorm_roce_resp_conn_ag_ctx {
  4878. u8 byte0;
  4879. u8 byte1;
  4880. u8 flags0;
  4881. #define MSTORM_ROCE_RESP_CONN_AG_CTX_BIT0_MASK 0x1
  4882. #define MSTORM_ROCE_RESP_CONN_AG_CTX_BIT0_SHIFT 0
  4883. #define MSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_MASK 0x1
  4884. #define MSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_SHIFT 1
  4885. #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF0_MASK 0x3
  4886. #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF0_SHIFT 2
  4887. #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF1_MASK 0x3
  4888. #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF1_SHIFT 4
  4889. #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF2_MASK 0x3
  4890. #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF2_SHIFT 6
  4891. u8 flags1;
  4892. #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_MASK 0x1
  4893. #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_SHIFT 0
  4894. #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_MASK 0x1
  4895. #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_SHIFT 1
  4896. #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_MASK 0x1
  4897. #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_SHIFT 2
  4898. #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_MASK 0x1
  4899. #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_SHIFT 3
  4900. #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_MASK 0x1
  4901. #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_SHIFT 4
  4902. #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_MASK 0x1
  4903. #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_SHIFT 5
  4904. #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_MASK 0x1
  4905. #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_SHIFT 6
  4906. #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_MASK 0x1
  4907. #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_SHIFT 7
  4908. __le16 word0;
  4909. __le16 word1;
  4910. __le32 reg0;
  4911. __le32 reg1;
  4912. };
  4913. enum roce_flavor {
  4914. PLAIN_ROCE /* RoCE v1 */ ,
  4915. RROCE_IPV4 /* RoCE v2 (Routable RoCE) over ipv4 */ ,
  4916. RROCE_IPV6 /* RoCE v2 (Routable RoCE) over ipv6 */ ,
  4917. MAX_ROCE_FLAVOR
  4918. };
  4919. struct tstorm_roce_req_conn_ag_ctx {
  4920. u8 reserved0;
  4921. u8 state;
  4922. u8 flags0;
  4923. #define TSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
  4924. #define TSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
  4925. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_OCCURED_MASK 0x1
  4926. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_OCCURED_SHIFT 1
  4927. #define TSTORM_ROCE_REQ_CONN_AG_CTX_TX_CQE_ERROR_OCCURED_MASK 0x1
  4928. #define TSTORM_ROCE_REQ_CONN_AG_CTX_TX_CQE_ERROR_OCCURED_SHIFT 2
  4929. #define TSTORM_ROCE_REQ_CONN_AG_CTX_BIT3_MASK 0x1
  4930. #define TSTORM_ROCE_REQ_CONN_AG_CTX_BIT3_SHIFT 3
  4931. #define TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_MASK 0x1
  4932. #define TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_SHIFT 4
  4933. #define TSTORM_ROCE_REQ_CONN_AG_CTX_CACHED_ORQ_MASK 0x1
  4934. #define TSTORM_ROCE_REQ_CONN_AG_CTX_CACHED_ORQ_SHIFT 5
  4935. #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_CF_MASK 0x3
  4936. #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_CF_SHIFT 6
  4937. u8 flags1;
  4938. #define TSTORM_ROCE_REQ_CONN_AG_CTX_CF1_MASK 0x3
  4939. #define TSTORM_ROCE_REQ_CONN_AG_CTX_CF1_SHIFT 0
  4940. #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_SQ_CF_MASK 0x3
  4941. #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_SQ_CF_SHIFT 2
  4942. #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_STOP_ALL_CF_MASK 0x3
  4943. #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_STOP_ALL_CF_SHIFT 4
  4944. #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
  4945. #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6
  4946. u8 flags2;
  4947. #define TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_CF_MASK 0x3
  4948. #define TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_CF_SHIFT 0
  4949. #define TSTORM_ROCE_REQ_CONN_AG_CTX_SET_TIMER_CF_MASK 0x3
  4950. #define TSTORM_ROCE_REQ_CONN_AG_CTX_SET_TIMER_CF_SHIFT 2
  4951. #define TSTORM_ROCE_REQ_CONN_AG_CTX_TX_ASYNC_ERROR_CF_MASK 0x3
  4952. #define TSTORM_ROCE_REQ_CONN_AG_CTX_TX_ASYNC_ERROR_CF_SHIFT 4
  4953. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RXMIT_DONE_CF_MASK 0x3
  4954. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RXMIT_DONE_CF_SHIFT 6
  4955. u8 flags3;
  4956. #define TSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_SCAN_COMPLETED_CF_MASK 0x3
  4957. #define TSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_SCAN_COMPLETED_CF_SHIFT 0
  4958. #define TSTORM_ROCE_REQ_CONN_AG_CTX_SQ_DRAIN_COMPLETED_CF_MASK 0x3
  4959. #define TSTORM_ROCE_REQ_CONN_AG_CTX_SQ_DRAIN_COMPLETED_CF_SHIFT 2
  4960. #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_CF_EN_MASK 0x1
  4961. #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_CF_EN_SHIFT 4
  4962. #define TSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_MASK 0x1
  4963. #define TSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_SHIFT 5
  4964. #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_SQ_CF_EN_MASK 0x1
  4965. #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_SQ_CF_EN_SHIFT 6
  4966. #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_STOP_ALL_CF_EN_MASK 0x1
  4967. #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_STOP_ALL_CF_EN_SHIFT 7
  4968. u8 flags4;
  4969. #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
  4970. #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 0
  4971. #define TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_MASK 0x1
  4972. #define TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_SHIFT 1
  4973. #define TSTORM_ROCE_REQ_CONN_AG_CTX_SET_TIMER_CF_EN_MASK 0x1
  4974. #define TSTORM_ROCE_REQ_CONN_AG_CTX_SET_TIMER_CF_EN_SHIFT 2
  4975. #define TSTORM_ROCE_REQ_CONN_AG_CTX_TX_ASYNC_ERROR_CF_EN_MASK 0x1
  4976. #define TSTORM_ROCE_REQ_CONN_AG_CTX_TX_ASYNC_ERROR_CF_EN_SHIFT 3
  4977. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RXMIT_DONE_CF_EN_MASK 0x1
  4978. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RXMIT_DONE_CF_EN_SHIFT 4
  4979. #define TSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_SCAN_COMPLETED_CF_EN_MASK 0x1
  4980. #define TSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_SCAN_COMPLETED_CF_EN_SHIFT 5
  4981. #define TSTORM_ROCE_REQ_CONN_AG_CTX_SQ_DRAIN_COMPLETED_CF_EN_MASK 0x1
  4982. #define TSTORM_ROCE_REQ_CONN_AG_CTX_SQ_DRAIN_COMPLETED_CF_EN_SHIFT 6
  4983. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_MASK 0x1
  4984. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_SHIFT 7
  4985. u8 flags5;
  4986. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1
  4987. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 0
  4988. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_MASK 0x1
  4989. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_SHIFT 1
  4990. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1
  4991. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 2
  4992. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1
  4993. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_SHIFT 3
  4994. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_MASK 0x1
  4995. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_SHIFT 4
  4996. #define TSTORM_ROCE_REQ_CONN_AG_CTX_SND_SQ_CONS_EN_MASK 0x1
  4997. #define TSTORM_ROCE_REQ_CONN_AG_CTX_SND_SQ_CONS_EN_SHIFT 5
  4998. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE7EN_MASK 0x1
  4999. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE7EN_SHIFT 6
  5000. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE8EN_MASK 0x1
  5001. #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE8EN_SHIFT 7
  5002. __le32 reg0;
  5003. __le32 snd_nxt_psn;
  5004. __le32 snd_max_psn;
  5005. __le32 orq_prod;
  5006. __le32 reg4;
  5007. __le32 reg5;
  5008. __le32 reg6;
  5009. __le32 reg7;
  5010. __le32 reg8;
  5011. u8 tx_cqe_error_type;
  5012. u8 orq_cache_idx;
  5013. __le16 snd_sq_cons_th;
  5014. u8 byte4;
  5015. u8 byte5;
  5016. __le16 snd_sq_cons;
  5017. __le16 word2;
  5018. __le16 word3;
  5019. __le32 reg9;
  5020. __le32 reg10;
  5021. };
  5022. struct tstorm_roce_resp_conn_ag_ctx {
  5023. u8 byte0;
  5024. u8 state;
  5025. u8 flags0;
  5026. #define TSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
  5027. #define TSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
  5028. #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_MASK 0x1
  5029. #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_SHIFT 1
  5030. #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT2_MASK 0x1
  5031. #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT2_SHIFT 2
  5032. #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT3_MASK 0x1
  5033. #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT3_SHIFT 3
  5034. #define TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_MASK 0x1
  5035. #define TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_SHIFT 4
  5036. #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT5_MASK 0x1
  5037. #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT5_SHIFT 5
  5038. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF0_MASK 0x3
  5039. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF0_SHIFT 6
  5040. u8 flags1;
  5041. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_MASK 0x3
  5042. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_SHIFT 0
  5043. #define TSTORM_ROCE_RESP_CONN_AG_CTX_TX_ERROR_CF_MASK 0x3
  5044. #define TSTORM_ROCE_RESP_CONN_AG_CTX_TX_ERROR_CF_SHIFT 2
  5045. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF3_MASK 0x3
  5046. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF3_SHIFT 4
  5047. #define TSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
  5048. #define TSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6
  5049. u8 flags2;
  5050. #define TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_CF_MASK 0x3
  5051. #define TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_CF_SHIFT 0
  5052. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF6_MASK 0x3
  5053. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF6_SHIFT 2
  5054. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF7_MASK 0x3
  5055. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF7_SHIFT 4
  5056. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF8_MASK 0x3
  5057. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF8_SHIFT 6
  5058. u8 flags3;
  5059. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF9_MASK 0x3
  5060. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF9_SHIFT 0
  5061. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF10_MASK 0x3
  5062. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF10_SHIFT 2
  5063. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_MASK 0x1
  5064. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_SHIFT 4
  5065. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_EN_MASK 0x1
  5066. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_EN_SHIFT 5
  5067. #define TSTORM_ROCE_RESP_CONN_AG_CTX_TX_ERROR_CF_EN_MASK 0x1
  5068. #define TSTORM_ROCE_RESP_CONN_AG_CTX_TX_ERROR_CF_EN_SHIFT 6
  5069. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_MASK 0x1
  5070. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_SHIFT 7
  5071. u8 flags4;
  5072. #define TSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
  5073. #define TSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 0
  5074. #define TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_MASK 0x1
  5075. #define TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_SHIFT 1
  5076. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF6EN_MASK 0x1
  5077. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF6EN_SHIFT 2
  5078. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF7EN_MASK 0x1
  5079. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF7EN_SHIFT 3
  5080. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF8EN_MASK 0x1
  5081. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF8EN_SHIFT 4
  5082. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF9EN_MASK 0x1
  5083. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF9EN_SHIFT 5
  5084. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF10EN_MASK 0x1
  5085. #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF10EN_SHIFT 6
  5086. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_MASK 0x1
  5087. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_SHIFT 7
  5088. u8 flags5;
  5089. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_MASK 0x1
  5090. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_SHIFT 0
  5091. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_MASK 0x1
  5092. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_SHIFT 1
  5093. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_MASK 0x1
  5094. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_SHIFT 2
  5095. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_MASK 0x1
  5096. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_SHIFT 3
  5097. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_MASK 0x1
  5098. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_SHIFT 4
  5099. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RQ_RULE_EN_MASK 0x1
  5100. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RQ_RULE_EN_SHIFT 5
  5101. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_MASK 0x1
  5102. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_SHIFT 6
  5103. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE8EN_MASK 0x1
  5104. #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE8EN_SHIFT 7
  5105. __le32 psn_and_rxmit_id_echo;
  5106. __le32 reg1;
  5107. __le32 reg2;
  5108. __le32 reg3;
  5109. __le32 reg4;
  5110. __le32 reg5;
  5111. __le32 reg6;
  5112. __le32 reg7;
  5113. __le32 reg8;
  5114. u8 tx_async_error_type;
  5115. u8 byte3;
  5116. __le16 rq_cons;
  5117. u8 byte4;
  5118. u8 byte5;
  5119. __le16 rq_prod;
  5120. __le16 conn_dpi;
  5121. __le16 irq_cons;
  5122. __le32 num_invlidated_mw;
  5123. __le32 reg10;
  5124. };
  5125. struct ustorm_roce_req_conn_ag_ctx {
  5126. u8 byte0;
  5127. u8 byte1;
  5128. u8 flags0;
  5129. #define USTORM_ROCE_REQ_CONN_AG_CTX_BIT0_MASK 0x1
  5130. #define USTORM_ROCE_REQ_CONN_AG_CTX_BIT0_SHIFT 0
  5131. #define USTORM_ROCE_REQ_CONN_AG_CTX_BIT1_MASK 0x1
  5132. #define USTORM_ROCE_REQ_CONN_AG_CTX_BIT1_SHIFT 1
  5133. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF0_MASK 0x3
  5134. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF0_SHIFT 2
  5135. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF1_MASK 0x3
  5136. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF1_SHIFT 4
  5137. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF2_MASK 0x3
  5138. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF2_SHIFT 6
  5139. u8 flags1;
  5140. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF3_MASK 0x3
  5141. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF3_SHIFT 0
  5142. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF4_MASK 0x3
  5143. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF4_SHIFT 2
  5144. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF5_MASK 0x3
  5145. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF5_SHIFT 4
  5146. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF6_MASK 0x3
  5147. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF6_SHIFT 6
  5148. u8 flags2;
  5149. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_MASK 0x1
  5150. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_SHIFT 0
  5151. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_MASK 0x1
  5152. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_SHIFT 1
  5153. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_MASK 0x1
  5154. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_SHIFT 2
  5155. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF3EN_MASK 0x1
  5156. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF3EN_SHIFT 3
  5157. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF4EN_MASK 0x1
  5158. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF4EN_SHIFT 4
  5159. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF5EN_MASK 0x1
  5160. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF5EN_SHIFT 5
  5161. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF6EN_MASK 0x1
  5162. #define USTORM_ROCE_REQ_CONN_AG_CTX_CF6EN_SHIFT 6
  5163. #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_MASK 0x1
  5164. #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_SHIFT 7
  5165. u8 flags3;
  5166. #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1
  5167. #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 0
  5168. #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_MASK 0x1
  5169. #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_SHIFT 1
  5170. #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1
  5171. #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 2
  5172. #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1
  5173. #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_SHIFT 3
  5174. #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_MASK 0x1
  5175. #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_SHIFT 4
  5176. #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE6EN_MASK 0x1
  5177. #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE6EN_SHIFT 5
  5178. #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE7EN_MASK 0x1
  5179. #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE7EN_SHIFT 6
  5180. #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE8EN_MASK 0x1
  5181. #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE8EN_SHIFT 7
  5182. u8 byte2;
  5183. u8 byte3;
  5184. __le16 word0;
  5185. __le16 word1;
  5186. __le32 reg0;
  5187. __le32 reg1;
  5188. __le32 reg2;
  5189. __le32 reg3;
  5190. __le16 word2;
  5191. __le16 word3;
  5192. };
  5193. struct ustorm_roce_resp_conn_ag_ctx {
  5194. u8 byte0;
  5195. u8 byte1;
  5196. u8 flags0;
  5197. #define USTORM_ROCE_RESP_CONN_AG_CTX_BIT0_MASK 0x1
  5198. #define USTORM_ROCE_RESP_CONN_AG_CTX_BIT0_SHIFT 0
  5199. #define USTORM_ROCE_RESP_CONN_AG_CTX_BIT1_MASK 0x1
  5200. #define USTORM_ROCE_RESP_CONN_AG_CTX_BIT1_SHIFT 1
  5201. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF0_MASK 0x3
  5202. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF0_SHIFT 2
  5203. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF1_MASK 0x3
  5204. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF1_SHIFT 4
  5205. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF2_MASK 0x3
  5206. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF2_SHIFT 6
  5207. u8 flags1;
  5208. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF3_MASK 0x3
  5209. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF3_SHIFT 0
  5210. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF4_MASK 0x3
  5211. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF4_SHIFT 2
  5212. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF5_MASK 0x3
  5213. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF5_SHIFT 4
  5214. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF6_MASK 0x3
  5215. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF6_SHIFT 6
  5216. u8 flags2;
  5217. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_MASK 0x1
  5218. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_SHIFT 0
  5219. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_MASK 0x1
  5220. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_SHIFT 1
  5221. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_MASK 0x1
  5222. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_SHIFT 2
  5223. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_MASK 0x1
  5224. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_SHIFT 3
  5225. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF4EN_MASK 0x1
  5226. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF4EN_SHIFT 4
  5227. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF5EN_MASK 0x1
  5228. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF5EN_SHIFT 5
  5229. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF6EN_MASK 0x1
  5230. #define USTORM_ROCE_RESP_CONN_AG_CTX_CF6EN_SHIFT 6
  5231. #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_MASK 0x1
  5232. #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_SHIFT 7
  5233. u8 flags3;
  5234. #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_MASK 0x1
  5235. #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_SHIFT 0
  5236. #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_MASK 0x1
  5237. #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_SHIFT 1
  5238. #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_MASK 0x1
  5239. #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_SHIFT 2
  5240. #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_MASK 0x1
  5241. #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_SHIFT 3
  5242. #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_MASK 0x1
  5243. #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_SHIFT 4
  5244. #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE6EN_MASK 0x1
  5245. #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE6EN_SHIFT 5
  5246. #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_MASK 0x1
  5247. #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_SHIFT 6
  5248. #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE8EN_MASK 0x1
  5249. #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE8EN_SHIFT 7
  5250. u8 byte2;
  5251. u8 byte3;
  5252. __le16 word0;
  5253. __le16 word1;
  5254. __le32 reg0;
  5255. __le32 reg1;
  5256. __le32 reg2;
  5257. __le32 reg3;
  5258. __le16 word2;
  5259. __le16 word3;
  5260. };
  5261. struct xstorm_roce_req_conn_ag_ctx {
  5262. u8 reserved0;
  5263. u8 state;
  5264. u8 flags0;
  5265. #define XSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
  5266. #define XSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
  5267. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED1_MASK 0x1
  5268. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED1_SHIFT 1
  5269. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED2_MASK 0x1
  5270. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED2_SHIFT 2
  5271. #define XSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
  5272. #define XSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
  5273. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED3_MASK 0x1
  5274. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED3_SHIFT 4
  5275. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED4_MASK 0x1
  5276. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED4_SHIFT 5
  5277. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED5_MASK 0x1
  5278. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED5_SHIFT 6
  5279. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED6_MASK 0x1
  5280. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED6_SHIFT 7
  5281. u8 flags1;
  5282. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED7_MASK 0x1
  5283. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED7_SHIFT 0
  5284. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED8_MASK 0x1
  5285. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED8_SHIFT 1
  5286. #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT10_MASK 0x1
  5287. #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT10_SHIFT 2
  5288. #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT11_MASK 0x1
  5289. #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT11_SHIFT 3
  5290. #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT12_MASK 0x1
  5291. #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT12_SHIFT 4
  5292. #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT13_MASK 0x1
  5293. #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT13_SHIFT 5
  5294. #define XSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_STATE_MASK 0x1
  5295. #define XSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_STATE_SHIFT 6
  5296. #define XSTORM_ROCE_REQ_CONN_AG_CTX_YSTORM_FLUSH_MASK 0x1
  5297. #define XSTORM_ROCE_REQ_CONN_AG_CTX_YSTORM_FLUSH_SHIFT 7
  5298. u8 flags2;
  5299. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF0_MASK 0x3
  5300. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF0_SHIFT 0
  5301. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF1_MASK 0x3
  5302. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF1_SHIFT 2
  5303. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF2_MASK 0x3
  5304. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF2_SHIFT 4
  5305. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF3_MASK 0x3
  5306. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF3_SHIFT 6
  5307. u8 flags3;
  5308. #define XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_FLUSH_CF_MASK 0x3
  5309. #define XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_FLUSH_CF_SHIFT 0
  5310. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_CF_MASK 0x3
  5311. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_CF_SHIFT 2
  5312. #define XSTORM_ROCE_REQ_CONN_AG_CTX_SND_RXMIT_CF_MASK 0x3
  5313. #define XSTORM_ROCE_REQ_CONN_AG_CTX_SND_RXMIT_CF_SHIFT 4
  5314. #define XSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
  5315. #define XSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6
  5316. u8 flags4;
  5317. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF8_MASK 0x3
  5318. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF8_SHIFT 0
  5319. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF9_MASK 0x3
  5320. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF9_SHIFT 2
  5321. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF10_MASK 0x3
  5322. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF10_SHIFT 4
  5323. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF11_MASK 0x3
  5324. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF11_SHIFT 6
  5325. u8 flags5;
  5326. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF12_MASK 0x3
  5327. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF12_SHIFT 0
  5328. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF13_MASK 0x3
  5329. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF13_SHIFT 2
  5330. #define XSTORM_ROCE_REQ_CONN_AG_CTX_FMR_ENDED_CF_MASK 0x3
  5331. #define XSTORM_ROCE_REQ_CONN_AG_CTX_FMR_ENDED_CF_SHIFT 4
  5332. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF15_MASK 0x3
  5333. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF15_SHIFT 6
  5334. u8 flags6;
  5335. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF16_MASK 0x3
  5336. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF16_SHIFT 0
  5337. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF17_MASK 0x3
  5338. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF17_SHIFT 2
  5339. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF18_MASK 0x3
  5340. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF18_SHIFT 4
  5341. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF19_MASK 0x3
  5342. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF19_SHIFT 6
  5343. u8 flags7;
  5344. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF20_MASK 0x3
  5345. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF20_SHIFT 0
  5346. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF21_MASK 0x3
  5347. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF21_SHIFT 2
  5348. #define XSTORM_ROCE_REQ_CONN_AG_CTX_SLOW_PATH_MASK 0x3
  5349. #define XSTORM_ROCE_REQ_CONN_AG_CTX_SLOW_PATH_SHIFT 4
  5350. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_MASK 0x1
  5351. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_SHIFT 6
  5352. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_MASK 0x1
  5353. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_SHIFT 7
  5354. u8 flags8;
  5355. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_MASK 0x1
  5356. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_SHIFT 0
  5357. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF3EN_MASK 0x1
  5358. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF3EN_SHIFT 1
  5359. #define XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_FLUSH_CF_EN_MASK 0x1
  5360. #define XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_FLUSH_CF_EN_SHIFT 2
  5361. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_CF_EN_MASK 0x1
  5362. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_CF_EN_SHIFT 3
  5363. #define XSTORM_ROCE_REQ_CONN_AG_CTX_SND_RXMIT_CF_EN_MASK 0x1
  5364. #define XSTORM_ROCE_REQ_CONN_AG_CTX_SND_RXMIT_CF_EN_SHIFT 4
  5365. #define XSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
  5366. #define XSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 5
  5367. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF8EN_MASK 0x1
  5368. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF8EN_SHIFT 6
  5369. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF9EN_MASK 0x1
  5370. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF9EN_SHIFT 7
  5371. u8 flags9;
  5372. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF10EN_MASK 0x1
  5373. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF10EN_SHIFT 0
  5374. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF11EN_MASK 0x1
  5375. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF11EN_SHIFT 1
  5376. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF12EN_MASK 0x1
  5377. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF12EN_SHIFT 2
  5378. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF13EN_MASK 0x1
  5379. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF13EN_SHIFT 3
  5380. #define XSTORM_ROCE_REQ_CONN_AG_CTX_FME_ENDED_CF_EN_MASK 0x1
  5381. #define XSTORM_ROCE_REQ_CONN_AG_CTX_FME_ENDED_CF_EN_SHIFT 4
  5382. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF15EN_MASK 0x1
  5383. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF15EN_SHIFT 5
  5384. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF16EN_MASK 0x1
  5385. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF16EN_SHIFT 6
  5386. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF17EN_MASK 0x1
  5387. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF17EN_SHIFT 7
  5388. u8 flags10;
  5389. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF18EN_MASK 0x1
  5390. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF18EN_SHIFT 0
  5391. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF19EN_MASK 0x1
  5392. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF19EN_SHIFT 1
  5393. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF20EN_MASK 0x1
  5394. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF20EN_SHIFT 2
  5395. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF21EN_MASK 0x1
  5396. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF21EN_SHIFT 3
  5397. #define XSTORM_ROCE_REQ_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
  5398. #define XSTORM_ROCE_REQ_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
  5399. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF23EN_MASK 0x1
  5400. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF23EN_SHIFT 5
  5401. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_MASK 0x1
  5402. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_SHIFT 6
  5403. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1
  5404. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 7
  5405. u8 flags11;
  5406. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_MASK 0x1
  5407. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_SHIFT 0
  5408. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1
  5409. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 1
  5410. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1
  5411. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_SHIFT 2
  5412. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_MASK 0x1
  5413. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_SHIFT 3
  5414. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE6EN_MASK 0x1
  5415. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE6EN_SHIFT 4
  5416. #define XSTORM_ROCE_REQ_CONN_AG_CTX_E2E_CREDIT_RULE_EN_MASK 0x1
  5417. #define XSTORM_ROCE_REQ_CONN_AG_CTX_E2E_CREDIT_RULE_EN_SHIFT 5
  5418. #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
  5419. #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
  5420. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE9EN_MASK 0x1
  5421. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE9EN_SHIFT 7
  5422. u8 flags12;
  5423. #define XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_PROD_EN_MASK 0x1
  5424. #define XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_PROD_EN_SHIFT 0
  5425. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE11EN_MASK 0x1
  5426. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE11EN_SHIFT 1
  5427. #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
  5428. #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
  5429. #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
  5430. #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
  5431. #define XSTORM_ROCE_REQ_CONN_AG_CTX_INV_FENCE_RULE_EN_MASK 0x1
  5432. #define XSTORM_ROCE_REQ_CONN_AG_CTX_INV_FENCE_RULE_EN_SHIFT 4
  5433. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE15EN_MASK 0x1
  5434. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE15EN_SHIFT 5
  5435. #define XSTORM_ROCE_REQ_CONN_AG_CTX_ORQ_FENCE_RULE_EN_MASK 0x1
  5436. #define XSTORM_ROCE_REQ_CONN_AG_CTX_ORQ_FENCE_RULE_EN_SHIFT 6
  5437. #define XSTORM_ROCE_REQ_CONN_AG_CTX_MAX_ORD_RULE_EN_MASK 0x1
  5438. #define XSTORM_ROCE_REQ_CONN_AG_CTX_MAX_ORD_RULE_EN_SHIFT 7
  5439. u8 flags13;
  5440. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE18EN_MASK 0x1
  5441. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE18EN_SHIFT 0
  5442. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE19EN_MASK 0x1
  5443. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE19EN_SHIFT 1
  5444. #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
  5445. #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
  5446. #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
  5447. #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
  5448. #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
  5449. #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
  5450. #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
  5451. #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
  5452. #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
  5453. #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
  5454. #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
  5455. #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
  5456. u8 flags14;
  5457. #define XSTORM_ROCE_REQ_CONN_AG_CTX_MIGRATION_FLAG_MASK 0x1
  5458. #define XSTORM_ROCE_REQ_CONN_AG_CTX_MIGRATION_FLAG_SHIFT 0
  5459. #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT17_MASK 0x1
  5460. #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT17_SHIFT 1
  5461. #define XSTORM_ROCE_REQ_CONN_AG_CTX_DPM_PORT_NUM_MASK 0x3
  5462. #define XSTORM_ROCE_REQ_CONN_AG_CTX_DPM_PORT_NUM_SHIFT 2
  5463. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED_MASK 0x1
  5464. #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED_SHIFT 4
  5465. #define XSTORM_ROCE_REQ_CONN_AG_CTX_ROCE_EDPM_ENABLE_MASK 0x1
  5466. #define XSTORM_ROCE_REQ_CONN_AG_CTX_ROCE_EDPM_ENABLE_SHIFT 5
  5467. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF23_MASK 0x3
  5468. #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF23_SHIFT 6
  5469. u8 byte2;
  5470. __le16 physical_q0;
  5471. __le16 word1;
  5472. __le16 sq_cmp_cons;
  5473. __le16 sq_cons;
  5474. __le16 sq_prod;
  5475. __le16 word5;
  5476. __le16 conn_dpi;
  5477. u8 byte3;
  5478. u8 byte4;
  5479. u8 byte5;
  5480. u8 byte6;
  5481. __le32 lsn;
  5482. __le32 ssn;
  5483. __le32 snd_una_psn;
  5484. __le32 snd_nxt_psn;
  5485. __le32 reg4;
  5486. __le32 orq_cons_th;
  5487. __le32 orq_cons;
  5488. };
  5489. struct xstorm_roce_resp_conn_ag_ctx {
  5490. u8 reserved0;
  5491. u8 state;
  5492. u8 flags0;
  5493. #define XSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
  5494. #define XSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
  5495. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED1_MASK 0x1
  5496. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED1_SHIFT 1
  5497. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED2_MASK 0x1
  5498. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED2_SHIFT 2
  5499. #define XSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
  5500. #define XSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
  5501. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED3_MASK 0x1
  5502. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED3_SHIFT 4
  5503. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED4_MASK 0x1
  5504. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED4_SHIFT 5
  5505. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED5_MASK 0x1
  5506. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED5_SHIFT 6
  5507. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED6_MASK 0x1
  5508. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED6_SHIFT 7
  5509. u8 flags1;
  5510. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED7_MASK 0x1
  5511. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED7_SHIFT 0
  5512. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED8_MASK 0x1
  5513. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED8_SHIFT 1
  5514. #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT10_MASK 0x1
  5515. #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT10_SHIFT 2
  5516. #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT11_MASK 0x1
  5517. #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT11_SHIFT 3
  5518. #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT12_MASK 0x1
  5519. #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT12_SHIFT 4
  5520. #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT13_MASK 0x1
  5521. #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT13_SHIFT 5
  5522. #define XSTORM_ROCE_RESP_CONN_AG_CTX_ERROR_STATE_MASK 0x1
  5523. #define XSTORM_ROCE_RESP_CONN_AG_CTX_ERROR_STATE_SHIFT 6
  5524. #define XSTORM_ROCE_RESP_CONN_AG_CTX_YSTORM_FLUSH_MASK 0x1
  5525. #define XSTORM_ROCE_RESP_CONN_AG_CTX_YSTORM_FLUSH_SHIFT 7
  5526. u8 flags2;
  5527. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF0_MASK 0x3
  5528. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF0_SHIFT 0
  5529. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF1_MASK 0x3
  5530. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF1_SHIFT 2
  5531. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF2_MASK 0x3
  5532. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF2_SHIFT 4
  5533. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF3_MASK 0x3
  5534. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF3_SHIFT 6
  5535. u8 flags3;
  5536. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RXMIT_CF_MASK 0x3
  5537. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RXMIT_CF_SHIFT 0
  5538. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_MASK 0x3
  5539. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_SHIFT 2
  5540. #define XSTORM_ROCE_RESP_CONN_AG_CTX_FORCE_ACK_CF_MASK 0x3
  5541. #define XSTORM_ROCE_RESP_CONN_AG_CTX_FORCE_ACK_CF_SHIFT 4
  5542. #define XSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3
  5543. #define XSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6
  5544. u8 flags4;
  5545. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF8_MASK 0x3
  5546. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF8_SHIFT 0
  5547. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF9_MASK 0x3
  5548. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF9_SHIFT 2
  5549. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF10_MASK 0x3
  5550. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF10_SHIFT 4
  5551. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF11_MASK 0x3
  5552. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF11_SHIFT 6
  5553. u8 flags5;
  5554. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF12_MASK 0x3
  5555. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF12_SHIFT 0
  5556. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF13_MASK 0x3
  5557. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF13_SHIFT 2
  5558. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF14_MASK 0x3
  5559. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF14_SHIFT 4
  5560. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF15_MASK 0x3
  5561. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF15_SHIFT 6
  5562. u8 flags6;
  5563. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF16_MASK 0x3
  5564. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF16_SHIFT 0
  5565. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF17_MASK 0x3
  5566. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF17_SHIFT 2
  5567. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF18_MASK 0x3
  5568. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF18_SHIFT 4
  5569. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF19_MASK 0x3
  5570. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF19_SHIFT 6
  5571. u8 flags7;
  5572. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF20_MASK 0x3
  5573. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF20_SHIFT 0
  5574. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF21_MASK 0x3
  5575. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF21_SHIFT 2
  5576. #define XSTORM_ROCE_RESP_CONN_AG_CTX_SLOW_PATH_MASK 0x3
  5577. #define XSTORM_ROCE_RESP_CONN_AG_CTX_SLOW_PATH_SHIFT 4
  5578. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_MASK 0x1
  5579. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_SHIFT 6
  5580. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_MASK 0x1
  5581. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_SHIFT 7
  5582. u8 flags8;
  5583. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_MASK 0x1
  5584. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_SHIFT 0
  5585. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_MASK 0x1
  5586. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_SHIFT 1
  5587. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RXMIT_CF_EN_MASK 0x1
  5588. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RXMIT_CF_EN_SHIFT 2
  5589. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_EN_MASK 0x1
  5590. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_EN_SHIFT 3
  5591. #define XSTORM_ROCE_RESP_CONN_AG_CTX_FORCE_ACK_CF_EN_MASK 0x1
  5592. #define XSTORM_ROCE_RESP_CONN_AG_CTX_FORCE_ACK_CF_EN_SHIFT 4
  5593. #define XSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1
  5594. #define XSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 5
  5595. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF8EN_MASK 0x1
  5596. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF8EN_SHIFT 6
  5597. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF9EN_MASK 0x1
  5598. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF9EN_SHIFT 7
  5599. u8 flags9;
  5600. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF10EN_MASK 0x1
  5601. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF10EN_SHIFT 0
  5602. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF11EN_MASK 0x1
  5603. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF11EN_SHIFT 1
  5604. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF12EN_MASK 0x1
  5605. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF12EN_SHIFT 2
  5606. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF13EN_MASK 0x1
  5607. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF13EN_SHIFT 3
  5608. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF14EN_MASK 0x1
  5609. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF14EN_SHIFT 4
  5610. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF15EN_MASK 0x1
  5611. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF15EN_SHIFT 5
  5612. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF16EN_MASK 0x1
  5613. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF16EN_SHIFT 6
  5614. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF17EN_MASK 0x1
  5615. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF17EN_SHIFT 7
  5616. u8 flags10;
  5617. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF18EN_MASK 0x1
  5618. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF18EN_SHIFT 0
  5619. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF19EN_MASK 0x1
  5620. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF19EN_SHIFT 1
  5621. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF20EN_MASK 0x1
  5622. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF20EN_SHIFT 2
  5623. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF21EN_MASK 0x1
  5624. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF21EN_SHIFT 3
  5625. #define XSTORM_ROCE_RESP_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
  5626. #define XSTORM_ROCE_RESP_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
  5627. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF23EN_MASK 0x1
  5628. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF23EN_SHIFT 5
  5629. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_MASK 0x1
  5630. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_SHIFT 6
  5631. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_MASK 0x1
  5632. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_SHIFT 7
  5633. u8 flags11;
  5634. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_MASK 0x1
  5635. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_SHIFT 0
  5636. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_MASK 0x1
  5637. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_SHIFT 1
  5638. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_MASK 0x1
  5639. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_SHIFT 2
  5640. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_MASK 0x1
  5641. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_SHIFT 3
  5642. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE6EN_MASK 0x1
  5643. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE6EN_SHIFT 4
  5644. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_MASK 0x1
  5645. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_SHIFT 5
  5646. #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
  5647. #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
  5648. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE9EN_MASK 0x1
  5649. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE9EN_SHIFT 7
  5650. u8 flags12;
  5651. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE10EN_MASK 0x1
  5652. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE10EN_SHIFT 0
  5653. #define XSTORM_ROCE_RESP_CONN_AG_CTX_IRQ_PROD_RULE_EN_MASK 0x1
  5654. #define XSTORM_ROCE_RESP_CONN_AG_CTX_IRQ_PROD_RULE_EN_SHIFT 1
  5655. #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
  5656. #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
  5657. #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
  5658. #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
  5659. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE14EN_MASK 0x1
  5660. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE14EN_SHIFT 4
  5661. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE15EN_MASK 0x1
  5662. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE15EN_SHIFT 5
  5663. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE16EN_MASK 0x1
  5664. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE16EN_SHIFT 6
  5665. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE17EN_MASK 0x1
  5666. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE17EN_SHIFT 7
  5667. u8 flags13;
  5668. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE18EN_MASK 0x1
  5669. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE18EN_SHIFT 0
  5670. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE19EN_MASK 0x1
  5671. #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE19EN_SHIFT 1
  5672. #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
  5673. #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
  5674. #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
  5675. #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
  5676. #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
  5677. #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
  5678. #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
  5679. #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
  5680. #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
  5681. #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
  5682. #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
  5683. #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
  5684. u8 flags14;
  5685. #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT16_MASK 0x1
  5686. #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT16_SHIFT 0
  5687. #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT17_MASK 0x1
  5688. #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT17_SHIFT 1
  5689. #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT18_MASK 0x1
  5690. #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT18_SHIFT 2
  5691. #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT19_MASK 0x1
  5692. #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT19_SHIFT 3
  5693. #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT20_MASK 0x1
  5694. #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT20_SHIFT 4
  5695. #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT21_MASK 0x1
  5696. #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT21_SHIFT 5
  5697. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF23_MASK 0x3
  5698. #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF23_SHIFT 6
  5699. u8 byte2;
  5700. __le16 physical_q0;
  5701. __le16 word1;
  5702. __le16 irq_prod;
  5703. __le16 word3;
  5704. __le16 word4;
  5705. __le16 word5;
  5706. __le16 irq_cons;
  5707. u8 rxmit_opcode;
  5708. u8 byte4;
  5709. u8 byte5;
  5710. u8 byte6;
  5711. __le32 rxmit_psn_and_id;
  5712. __le32 rxmit_bytes_length;
  5713. __le32 psn;
  5714. __le32 reg3;
  5715. __le32 reg4;
  5716. __le32 reg5;
  5717. __le32 msn_and_syndrome;
  5718. };
  5719. struct ystorm_roce_req_conn_ag_ctx {
  5720. u8 byte0;
  5721. u8 byte1;
  5722. u8 flags0;
  5723. #define YSTORM_ROCE_REQ_CONN_AG_CTX_BIT0_MASK 0x1
  5724. #define YSTORM_ROCE_REQ_CONN_AG_CTX_BIT0_SHIFT 0
  5725. #define YSTORM_ROCE_REQ_CONN_AG_CTX_BIT1_MASK 0x1
  5726. #define YSTORM_ROCE_REQ_CONN_AG_CTX_BIT1_SHIFT 1
  5727. #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF0_MASK 0x3
  5728. #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF0_SHIFT 2
  5729. #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF1_MASK 0x3
  5730. #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF1_SHIFT 4
  5731. #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF2_MASK 0x3
  5732. #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF2_SHIFT 6
  5733. u8 flags1;
  5734. #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_MASK 0x1
  5735. #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_SHIFT 0
  5736. #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_MASK 0x1
  5737. #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_SHIFT 1
  5738. #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_MASK 0x1
  5739. #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_SHIFT 2
  5740. #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_MASK 0x1
  5741. #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_SHIFT 3
  5742. #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1
  5743. #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 4
  5744. #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_MASK 0x1
  5745. #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_SHIFT 5
  5746. #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1
  5747. #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 6
  5748. #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1
  5749. #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_SHIFT 7
  5750. u8 byte2;
  5751. u8 byte3;
  5752. __le16 word0;
  5753. __le32 reg0;
  5754. __le32 reg1;
  5755. __le16 word1;
  5756. __le16 word2;
  5757. __le16 word3;
  5758. __le16 word4;
  5759. __le32 reg2;
  5760. __le32 reg3;
  5761. };
  5762. struct ystorm_roce_resp_conn_ag_ctx {
  5763. u8 byte0;
  5764. u8 byte1;
  5765. u8 flags0;
  5766. #define YSTORM_ROCE_RESP_CONN_AG_CTX_BIT0_MASK 0x1
  5767. #define YSTORM_ROCE_RESP_CONN_AG_CTX_BIT0_SHIFT 0
  5768. #define YSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_MASK 0x1
  5769. #define YSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_SHIFT 1
  5770. #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF0_MASK 0x3
  5771. #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF0_SHIFT 2
  5772. #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF1_MASK 0x3
  5773. #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF1_SHIFT 4
  5774. #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF2_MASK 0x3
  5775. #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF2_SHIFT 6
  5776. u8 flags1;
  5777. #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_MASK 0x1
  5778. #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_SHIFT 0
  5779. #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_MASK 0x1
  5780. #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_SHIFT 1
  5781. #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_MASK 0x1
  5782. #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_SHIFT 2
  5783. #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_MASK 0x1
  5784. #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_SHIFT 3
  5785. #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_MASK 0x1
  5786. #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_SHIFT 4
  5787. #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_MASK 0x1
  5788. #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_SHIFT 5
  5789. #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_MASK 0x1
  5790. #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_SHIFT 6
  5791. #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_MASK 0x1
  5792. #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_SHIFT 7
  5793. u8 byte2;
  5794. u8 byte3;
  5795. __le16 word0;
  5796. __le32 reg0;
  5797. __le32 reg1;
  5798. __le16 word1;
  5799. __le16 word2;
  5800. __le16 word3;
  5801. __le16 word4;
  5802. __le32 reg2;
  5803. __le32 reg3;
  5804. };
  5805. struct ystorm_iscsi_conn_st_ctx {
  5806. __le32 reserved[4];
  5807. };
  5808. struct pstorm_iscsi_tcp_conn_st_ctx {
  5809. __le32 tcp[32];
  5810. __le32 iscsi[4];
  5811. };
  5812. struct xstorm_iscsi_tcp_conn_st_ctx {
  5813. __le32 reserved_iscsi[40];
  5814. __le32 reserved_tcp[4];
  5815. };
  5816. struct xstorm_iscsi_conn_ag_ctx {
  5817. u8 cdu_validation;
  5818. u8 state;
  5819. u8 flags0;
  5820. #define XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
  5821. #define XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
  5822. #define XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM1_MASK 0x1
  5823. #define XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM1_SHIFT 1
  5824. #define XSTORM_ISCSI_CONN_AG_CTX_RESERVED1_MASK 0x1
  5825. #define XSTORM_ISCSI_CONN_AG_CTX_RESERVED1_SHIFT 2
  5826. #define XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1
  5827. #define XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3
  5828. #define XSTORM_ISCSI_CONN_AG_CTX_BIT4_MASK 0x1
  5829. #define XSTORM_ISCSI_CONN_AG_CTX_BIT4_SHIFT 4
  5830. #define XSTORM_ISCSI_CONN_AG_CTX_RESERVED2_MASK 0x1
  5831. #define XSTORM_ISCSI_CONN_AG_CTX_RESERVED2_SHIFT 5
  5832. #define XSTORM_ISCSI_CONN_AG_CTX_BIT6_MASK 0x1
  5833. #define XSTORM_ISCSI_CONN_AG_CTX_BIT6_SHIFT 6
  5834. #define XSTORM_ISCSI_CONN_AG_CTX_BIT7_MASK 0x1
  5835. #define XSTORM_ISCSI_CONN_AG_CTX_BIT7_SHIFT 7
  5836. u8 flags1;
  5837. #define XSTORM_ISCSI_CONN_AG_CTX_BIT8_MASK 0x1
  5838. #define XSTORM_ISCSI_CONN_AG_CTX_BIT8_SHIFT 0
  5839. #define XSTORM_ISCSI_CONN_AG_CTX_BIT9_MASK 0x1
  5840. #define XSTORM_ISCSI_CONN_AG_CTX_BIT9_SHIFT 1
  5841. #define XSTORM_ISCSI_CONN_AG_CTX_BIT10_MASK 0x1
  5842. #define XSTORM_ISCSI_CONN_AG_CTX_BIT10_SHIFT 2
  5843. #define XSTORM_ISCSI_CONN_AG_CTX_BIT11_MASK 0x1
  5844. #define XSTORM_ISCSI_CONN_AG_CTX_BIT11_SHIFT 3
  5845. #define XSTORM_ISCSI_CONN_AG_CTX_BIT12_MASK 0x1
  5846. #define XSTORM_ISCSI_CONN_AG_CTX_BIT12_SHIFT 4
  5847. #define XSTORM_ISCSI_CONN_AG_CTX_BIT13_MASK 0x1
  5848. #define XSTORM_ISCSI_CONN_AG_CTX_BIT13_SHIFT 5
  5849. #define XSTORM_ISCSI_CONN_AG_CTX_BIT14_MASK 0x1
  5850. #define XSTORM_ISCSI_CONN_AG_CTX_BIT14_SHIFT 6
  5851. #define XSTORM_ISCSI_CONN_AG_CTX_TX_TRUNCATE_MASK 0x1
  5852. #define XSTORM_ISCSI_CONN_AG_CTX_TX_TRUNCATE_SHIFT 7
  5853. u8 flags2;
  5854. #define XSTORM_ISCSI_CONN_AG_CTX_CF0_MASK 0x3
  5855. #define XSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT 0
  5856. #define XSTORM_ISCSI_CONN_AG_CTX_CF1_MASK 0x3
  5857. #define XSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT 2
  5858. #define XSTORM_ISCSI_CONN_AG_CTX_CF2_MASK 0x3
  5859. #define XSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT 4
  5860. #define XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_MASK 0x3
  5861. #define XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT 6
  5862. u8 flags3;
  5863. #define XSTORM_ISCSI_CONN_AG_CTX_CF4_MASK 0x3
  5864. #define XSTORM_ISCSI_CONN_AG_CTX_CF4_SHIFT 0
  5865. #define XSTORM_ISCSI_CONN_AG_CTX_CF5_MASK 0x3
  5866. #define XSTORM_ISCSI_CONN_AG_CTX_CF5_SHIFT 2
  5867. #define XSTORM_ISCSI_CONN_AG_CTX_CF6_MASK 0x3
  5868. #define XSTORM_ISCSI_CONN_AG_CTX_CF6_SHIFT 4
  5869. #define XSTORM_ISCSI_CONN_AG_CTX_CF7_MASK 0x3
  5870. #define XSTORM_ISCSI_CONN_AG_CTX_CF7_SHIFT 6
  5871. u8 flags4;
  5872. #define XSTORM_ISCSI_CONN_AG_CTX_CF8_MASK 0x3
  5873. #define XSTORM_ISCSI_CONN_AG_CTX_CF8_SHIFT 0
  5874. #define XSTORM_ISCSI_CONN_AG_CTX_CF9_MASK 0x3
  5875. #define XSTORM_ISCSI_CONN_AG_CTX_CF9_SHIFT 2
  5876. #define XSTORM_ISCSI_CONN_AG_CTX_CF10_MASK 0x3
  5877. #define XSTORM_ISCSI_CONN_AG_CTX_CF10_SHIFT 4
  5878. #define XSTORM_ISCSI_CONN_AG_CTX_CF11_MASK 0x3
  5879. #define XSTORM_ISCSI_CONN_AG_CTX_CF11_SHIFT 6
  5880. u8 flags5;
  5881. #define XSTORM_ISCSI_CONN_AG_CTX_CF12_MASK 0x3
  5882. #define XSTORM_ISCSI_CONN_AG_CTX_CF12_SHIFT 0
  5883. #define XSTORM_ISCSI_CONN_AG_CTX_CF13_MASK 0x3
  5884. #define XSTORM_ISCSI_CONN_AG_CTX_CF13_SHIFT 2
  5885. #define XSTORM_ISCSI_CONN_AG_CTX_CF14_MASK 0x3
  5886. #define XSTORM_ISCSI_CONN_AG_CTX_CF14_SHIFT 4
  5887. #define XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_MASK 0x3
  5888. #define XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_SHIFT 6
  5889. u8 flags6;
  5890. #define XSTORM_ISCSI_CONN_AG_CTX_CF16_MASK 0x3
  5891. #define XSTORM_ISCSI_CONN_AG_CTX_CF16_SHIFT 0
  5892. #define XSTORM_ISCSI_CONN_AG_CTX_CF17_MASK 0x3
  5893. #define XSTORM_ISCSI_CONN_AG_CTX_CF17_SHIFT 2
  5894. #define XSTORM_ISCSI_CONN_AG_CTX_CF18_MASK 0x3
  5895. #define XSTORM_ISCSI_CONN_AG_CTX_CF18_SHIFT 4
  5896. #define XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_MASK 0x3
  5897. #define XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_SHIFT 6
  5898. u8 flags7;
  5899. #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_MASK 0x3
  5900. #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_SHIFT 0
  5901. #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q1_MASK 0x3
  5902. #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q1_SHIFT 2
  5903. #define XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_MASK 0x3
  5904. #define XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_SHIFT 4
  5905. #define XSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK 0x1
  5906. #define XSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT 6
  5907. #define XSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK 0x1
  5908. #define XSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT 7
  5909. u8 flags8;
  5910. #define XSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK 0x1
  5911. #define XSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT 0
  5912. #define XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK 0x1
  5913. #define XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT 1
  5914. #define XSTORM_ISCSI_CONN_AG_CTX_CF4EN_MASK 0x1
  5915. #define XSTORM_ISCSI_CONN_AG_CTX_CF4EN_SHIFT 2
  5916. #define XSTORM_ISCSI_CONN_AG_CTX_CF5EN_MASK 0x1
  5917. #define XSTORM_ISCSI_CONN_AG_CTX_CF5EN_SHIFT 3
  5918. #define XSTORM_ISCSI_CONN_AG_CTX_CF6EN_MASK 0x1
  5919. #define XSTORM_ISCSI_CONN_AG_CTX_CF6EN_SHIFT 4
  5920. #define XSTORM_ISCSI_CONN_AG_CTX_CF7EN_MASK 0x1
  5921. #define XSTORM_ISCSI_CONN_AG_CTX_CF7EN_SHIFT 5
  5922. #define XSTORM_ISCSI_CONN_AG_CTX_CF8EN_MASK 0x1
  5923. #define XSTORM_ISCSI_CONN_AG_CTX_CF8EN_SHIFT 6
  5924. #define XSTORM_ISCSI_CONN_AG_CTX_CF9EN_MASK 0x1
  5925. #define XSTORM_ISCSI_CONN_AG_CTX_CF9EN_SHIFT 7
  5926. u8 flags9;
  5927. #define XSTORM_ISCSI_CONN_AG_CTX_CF10EN_MASK 0x1
  5928. #define XSTORM_ISCSI_CONN_AG_CTX_CF10EN_SHIFT 0
  5929. #define XSTORM_ISCSI_CONN_AG_CTX_CF11EN_MASK 0x1
  5930. #define XSTORM_ISCSI_CONN_AG_CTX_CF11EN_SHIFT 1
  5931. #define XSTORM_ISCSI_CONN_AG_CTX_CF12EN_MASK 0x1
  5932. #define XSTORM_ISCSI_CONN_AG_CTX_CF12EN_SHIFT 2
  5933. #define XSTORM_ISCSI_CONN_AG_CTX_CF13EN_MASK 0x1
  5934. #define XSTORM_ISCSI_CONN_AG_CTX_CF13EN_SHIFT 3
  5935. #define XSTORM_ISCSI_CONN_AG_CTX_CF14EN_MASK 0x1
  5936. #define XSTORM_ISCSI_CONN_AG_CTX_CF14EN_SHIFT 4
  5937. #define XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_EN_MASK 0x1
  5938. #define XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_EN_SHIFT 5
  5939. #define XSTORM_ISCSI_CONN_AG_CTX_CF16EN_MASK 0x1
  5940. #define XSTORM_ISCSI_CONN_AG_CTX_CF16EN_SHIFT 6
  5941. #define XSTORM_ISCSI_CONN_AG_CTX_CF17EN_MASK 0x1
  5942. #define XSTORM_ISCSI_CONN_AG_CTX_CF17EN_SHIFT 7
  5943. u8 flags10;
  5944. #define XSTORM_ISCSI_CONN_AG_CTX_CF18EN_MASK 0x1
  5945. #define XSTORM_ISCSI_CONN_AG_CTX_CF18EN_SHIFT 0
  5946. #define XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_EN_MASK 0x1
  5947. #define XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_EN_SHIFT 1
  5948. #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1
  5949. #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2
  5950. #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q1_EN_MASK 0x1
  5951. #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q1_EN_SHIFT 3
  5952. #define XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1
  5953. #define XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4
  5954. #define XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_EN_MASK 0x1
  5955. #define XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_EN_SHIFT 5
  5956. #define XSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK 0x1
  5957. #define XSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 6
  5958. #define XSTORM_ISCSI_CONN_AG_CTX_MORE_TO_SEND_DEC_RULE_EN_MASK 0x1
  5959. #define XSTORM_ISCSI_CONN_AG_CTX_MORE_TO_SEND_DEC_RULE_EN_SHIFT 7
  5960. u8 flags11;
  5961. #define XSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK 0x1
  5962. #define XSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 0
  5963. #define XSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK 0x1
  5964. #define XSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 1
  5965. #define XSTORM_ISCSI_CONN_AG_CTX_RESERVED3_MASK 0x1
  5966. #define XSTORM_ISCSI_CONN_AG_CTX_RESERVED3_SHIFT 2
  5967. #define XSTORM_ISCSI_CONN_AG_CTX_RULE5EN_MASK 0x1
  5968. #define XSTORM_ISCSI_CONN_AG_CTX_RULE5EN_SHIFT 3
  5969. #define XSTORM_ISCSI_CONN_AG_CTX_RULE6EN_MASK 0x1
  5970. #define XSTORM_ISCSI_CONN_AG_CTX_RULE6EN_SHIFT 4
  5971. #define XSTORM_ISCSI_CONN_AG_CTX_RULE7EN_MASK 0x1
  5972. #define XSTORM_ISCSI_CONN_AG_CTX_RULE7EN_SHIFT 5
  5973. #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED1_MASK 0x1
  5974. #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED1_SHIFT 6
  5975. #define XSTORM_ISCSI_CONN_AG_CTX_RULE9EN_MASK 0x1
  5976. #define XSTORM_ISCSI_CONN_AG_CTX_RULE9EN_SHIFT 7
  5977. u8 flags12;
  5978. #define XSTORM_ISCSI_CONN_AG_CTX_SQ_DEC_RULE_EN_MASK 0x1
  5979. #define XSTORM_ISCSI_CONN_AG_CTX_SQ_DEC_RULE_EN_SHIFT 0
  5980. #define XSTORM_ISCSI_CONN_AG_CTX_RULE11EN_MASK 0x1
  5981. #define XSTORM_ISCSI_CONN_AG_CTX_RULE11EN_SHIFT 1
  5982. #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED2_MASK 0x1
  5983. #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED2_SHIFT 2
  5984. #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED3_MASK 0x1
  5985. #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED3_SHIFT 3
  5986. #define XSTORM_ISCSI_CONN_AG_CTX_RULE14EN_MASK 0x1
  5987. #define XSTORM_ISCSI_CONN_AG_CTX_RULE14EN_SHIFT 4
  5988. #define XSTORM_ISCSI_CONN_AG_CTX_RULE15EN_MASK 0x1
  5989. #define XSTORM_ISCSI_CONN_AG_CTX_RULE15EN_SHIFT 5
  5990. #define XSTORM_ISCSI_CONN_AG_CTX_RULE16EN_MASK 0x1
  5991. #define XSTORM_ISCSI_CONN_AG_CTX_RULE16EN_SHIFT 6
  5992. #define XSTORM_ISCSI_CONN_AG_CTX_RULE17EN_MASK 0x1
  5993. #define XSTORM_ISCSI_CONN_AG_CTX_RULE17EN_SHIFT 7
  5994. u8 flags13;
  5995. #define XSTORM_ISCSI_CONN_AG_CTX_R2TQ_DEC_RULE_EN_MASK 0x1
  5996. #define XSTORM_ISCSI_CONN_AG_CTX_R2TQ_DEC_RULE_EN_SHIFT 0
  5997. #define XSTORM_ISCSI_CONN_AG_CTX_HQ_DEC_RULE_EN_MASK 0x1
  5998. #define XSTORM_ISCSI_CONN_AG_CTX_HQ_DEC_RULE_EN_SHIFT 1
  5999. #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED4_MASK 0x1
  6000. #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED4_SHIFT 2
  6001. #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED5_MASK 0x1
  6002. #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED5_SHIFT 3
  6003. #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED6_MASK 0x1
  6004. #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED6_SHIFT 4
  6005. #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED7_MASK 0x1
  6006. #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED7_SHIFT 5
  6007. #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED8_MASK 0x1
  6008. #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED8_SHIFT 6
  6009. #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED9_MASK 0x1
  6010. #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED9_SHIFT 7
  6011. u8 flags14;
  6012. #define XSTORM_ISCSI_CONN_AG_CTX_BIT16_MASK 0x1
  6013. #define XSTORM_ISCSI_CONN_AG_CTX_BIT16_SHIFT 0
  6014. #define XSTORM_ISCSI_CONN_AG_CTX_BIT17_MASK 0x1
  6015. #define XSTORM_ISCSI_CONN_AG_CTX_BIT17_SHIFT 1
  6016. #define XSTORM_ISCSI_CONN_AG_CTX_BIT18_MASK 0x1
  6017. #define XSTORM_ISCSI_CONN_AG_CTX_BIT18_SHIFT 2
  6018. #define XSTORM_ISCSI_CONN_AG_CTX_BIT19_MASK 0x1
  6019. #define XSTORM_ISCSI_CONN_AG_CTX_BIT19_SHIFT 3
  6020. #define XSTORM_ISCSI_CONN_AG_CTX_BIT20_MASK 0x1
  6021. #define XSTORM_ISCSI_CONN_AG_CTX_BIT20_SHIFT 4
  6022. #define XSTORM_ISCSI_CONN_AG_CTX_DUMMY_READ_DONE_MASK 0x1
  6023. #define XSTORM_ISCSI_CONN_AG_CTX_DUMMY_READ_DONE_SHIFT 5
  6024. #define XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_MASK 0x3
  6025. #define XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_SHIFT 6
  6026. u8 byte2;
  6027. __le16 physical_q0;
  6028. __le16 physical_q1;
  6029. __le16 dummy_dorq_var;
  6030. __le16 sq_cons;
  6031. __le16 sq_prod;
  6032. __le16 word5;
  6033. __le16 slow_io_total_data_tx_update;
  6034. u8 byte3;
  6035. u8 byte4;
  6036. u8 byte5;
  6037. u8 byte6;
  6038. __le32 reg0;
  6039. __le32 reg1;
  6040. __le32 reg2;
  6041. __le32 more_to_send_seq;
  6042. __le32 reg4;
  6043. __le32 reg5;
  6044. __le32 hq_scan_next_relevant_ack;
  6045. __le16 r2tq_prod;
  6046. __le16 r2tq_cons;
  6047. __le16 hq_prod;
  6048. __le16 hq_cons;
  6049. __le32 remain_seq;
  6050. __le32 bytes_to_next_pdu;
  6051. __le32 hq_tcp_seq;
  6052. u8 byte7;
  6053. u8 byte8;
  6054. u8 byte9;
  6055. u8 byte10;
  6056. u8 byte11;
  6057. u8 byte12;
  6058. u8 byte13;
  6059. u8 byte14;
  6060. u8 byte15;
  6061. u8 byte16;
  6062. __le16 word11;
  6063. __le32 reg10;
  6064. __le32 reg11;
  6065. __le32 exp_stat_sn;
  6066. __le32 reg13;
  6067. __le32 reg14;
  6068. __le32 reg15;
  6069. __le32 reg16;
  6070. __le32 reg17;
  6071. };
  6072. struct tstorm_iscsi_conn_ag_ctx {
  6073. u8 reserved0;
  6074. u8 state;
  6075. u8 flags0;
  6076. #define TSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1
  6077. #define TSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0
  6078. #define TSTORM_ISCSI_CONN_AG_CTX_BIT1_MASK 0x1
  6079. #define TSTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT 1
  6080. #define TSTORM_ISCSI_CONN_AG_CTX_BIT2_MASK 0x1
  6081. #define TSTORM_ISCSI_CONN_AG_CTX_BIT2_SHIFT 2
  6082. #define TSTORM_ISCSI_CONN_AG_CTX_BIT3_MASK 0x1
  6083. #define TSTORM_ISCSI_CONN_AG_CTX_BIT3_SHIFT 3
  6084. #define TSTORM_ISCSI_CONN_AG_CTX_BIT4_MASK 0x1
  6085. #define TSTORM_ISCSI_CONN_AG_CTX_BIT4_SHIFT 4
  6086. #define TSTORM_ISCSI_CONN_AG_CTX_BIT5_MASK 0x1
  6087. #define TSTORM_ISCSI_CONN_AG_CTX_BIT5_SHIFT 5
  6088. #define TSTORM_ISCSI_CONN_AG_CTX_CF0_MASK 0x3
  6089. #define TSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT 6
  6090. u8 flags1;
  6091. #define TSTORM_ISCSI_CONN_AG_CTX_CF1_MASK 0x3
  6092. #define TSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT 0
  6093. #define TSTORM_ISCSI_CONN_AG_CTX_CF2_MASK 0x3
  6094. #define TSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT 2
  6095. #define TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_MASK 0x3
  6096. #define TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT 4
  6097. #define TSTORM_ISCSI_CONN_AG_CTX_CF4_MASK 0x3
  6098. #define TSTORM_ISCSI_CONN_AG_CTX_CF4_SHIFT 6
  6099. u8 flags2;
  6100. #define TSTORM_ISCSI_CONN_AG_CTX_CF5_MASK 0x3
  6101. #define TSTORM_ISCSI_CONN_AG_CTX_CF5_SHIFT 0
  6102. #define TSTORM_ISCSI_CONN_AG_CTX_CF6_MASK 0x3
  6103. #define TSTORM_ISCSI_CONN_AG_CTX_CF6_SHIFT 2
  6104. #define TSTORM_ISCSI_CONN_AG_CTX_CF7_MASK 0x3
  6105. #define TSTORM_ISCSI_CONN_AG_CTX_CF7_SHIFT 4
  6106. #define TSTORM_ISCSI_CONN_AG_CTX_CF8_MASK 0x3
  6107. #define TSTORM_ISCSI_CONN_AG_CTX_CF8_SHIFT 6
  6108. u8 flags3;
  6109. #define TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_MASK 0x3
  6110. #define TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_SHIFT 0
  6111. #define TSTORM_ISCSI_CONN_AG_CTX_CF10_MASK 0x3
  6112. #define TSTORM_ISCSI_CONN_AG_CTX_CF10_SHIFT 2
  6113. #define TSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK 0x1
  6114. #define TSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT 4
  6115. #define TSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK 0x1
  6116. #define TSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT 5
  6117. #define TSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK 0x1
  6118. #define TSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT 6
  6119. #define TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK 0x1
  6120. #define TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT 7
  6121. u8 flags4;
  6122. #define TSTORM_ISCSI_CONN_AG_CTX_CF4EN_MASK 0x1
  6123. #define TSTORM_ISCSI_CONN_AG_CTX_CF4EN_SHIFT 0
  6124. #define TSTORM_ISCSI_CONN_AG_CTX_CF5EN_MASK 0x1
  6125. #define TSTORM_ISCSI_CONN_AG_CTX_CF5EN_SHIFT 1
  6126. #define TSTORM_ISCSI_CONN_AG_CTX_CF6EN_MASK 0x1
  6127. #define TSTORM_ISCSI_CONN_AG_CTX_CF6EN_SHIFT 2
  6128. #define TSTORM_ISCSI_CONN_AG_CTX_CF7EN_MASK 0x1
  6129. #define TSTORM_ISCSI_CONN_AG_CTX_CF7EN_SHIFT 3
  6130. #define TSTORM_ISCSI_CONN_AG_CTX_CF8EN_MASK 0x1
  6131. #define TSTORM_ISCSI_CONN_AG_CTX_CF8EN_SHIFT 4
  6132. #define TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1
  6133. #define TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 5
  6134. #define TSTORM_ISCSI_CONN_AG_CTX_CF10EN_MASK 0x1
  6135. #define TSTORM_ISCSI_CONN_AG_CTX_CF10EN_SHIFT 6
  6136. #define TSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK 0x1
  6137. #define TSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 7
  6138. u8 flags5;
  6139. #define TSTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK 0x1
  6140. #define TSTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 0
  6141. #define TSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK 0x1
  6142. #define TSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 1
  6143. #define TSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK 0x1
  6144. #define TSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 2
  6145. #define TSTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK 0x1
  6146. #define TSTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 3
  6147. #define TSTORM_ISCSI_CONN_AG_CTX_RULE5EN_MASK 0x1
  6148. #define TSTORM_ISCSI_CONN_AG_CTX_RULE5EN_SHIFT 4
  6149. #define TSTORM_ISCSI_CONN_AG_CTX_RULE6EN_MASK 0x1
  6150. #define TSTORM_ISCSI_CONN_AG_CTX_RULE6EN_SHIFT 5
  6151. #define TSTORM_ISCSI_CONN_AG_CTX_RULE7EN_MASK 0x1
  6152. #define TSTORM_ISCSI_CONN_AG_CTX_RULE7EN_SHIFT 6
  6153. #define TSTORM_ISCSI_CONN_AG_CTX_RULE8EN_MASK 0x1
  6154. #define TSTORM_ISCSI_CONN_AG_CTX_RULE8EN_SHIFT 7
  6155. __le32 reg0;
  6156. __le32 reg1;
  6157. __le32 reg2;
  6158. __le32 reg3;
  6159. __le32 reg4;
  6160. __le32 reg5;
  6161. __le32 reg6;
  6162. __le32 reg7;
  6163. __le32 reg8;
  6164. u8 byte2;
  6165. u8 byte3;
  6166. __le16 word0;
  6167. };
  6168. struct ustorm_iscsi_conn_ag_ctx {
  6169. u8 byte0;
  6170. u8 byte1;
  6171. u8 flags0;
  6172. #define USTORM_ISCSI_CONN_AG_CTX_BIT0_MASK 0x1
  6173. #define USTORM_ISCSI_CONN_AG_CTX_BIT0_SHIFT 0
  6174. #define USTORM_ISCSI_CONN_AG_CTX_BIT1_MASK 0x1
  6175. #define USTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT 1
  6176. #define USTORM_ISCSI_CONN_AG_CTX_CF0_MASK 0x3
  6177. #define USTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT 2
  6178. #define USTORM_ISCSI_CONN_AG_CTX_CF1_MASK 0x3
  6179. #define USTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT 4
  6180. #define USTORM_ISCSI_CONN_AG_CTX_CF2_MASK 0x3
  6181. #define USTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT 6
  6182. u8 flags1;
  6183. #define USTORM_ISCSI_CONN_AG_CTX_CF3_MASK 0x3
  6184. #define USTORM_ISCSI_CONN_AG_CTX_CF3_SHIFT 0
  6185. #define USTORM_ISCSI_CONN_AG_CTX_CF4_MASK 0x3
  6186. #define USTORM_ISCSI_CONN_AG_CTX_CF4_SHIFT 2
  6187. #define USTORM_ISCSI_CONN_AG_CTX_CF5_MASK 0x3
  6188. #define USTORM_ISCSI_CONN_AG_CTX_CF5_SHIFT 4
  6189. #define USTORM_ISCSI_CONN_AG_CTX_CF6_MASK 0x3
  6190. #define USTORM_ISCSI_CONN_AG_CTX_CF6_SHIFT 6
  6191. u8 flags2;
  6192. #define USTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK 0x1
  6193. #define USTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT 0
  6194. #define USTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK 0x1
  6195. #define USTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT 1
  6196. #define USTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK 0x1
  6197. #define USTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT 2
  6198. #define USTORM_ISCSI_CONN_AG_CTX_CF3EN_MASK 0x1
  6199. #define USTORM_ISCSI_CONN_AG_CTX_CF3EN_SHIFT 3
  6200. #define USTORM_ISCSI_CONN_AG_CTX_CF4EN_MASK 0x1
  6201. #define USTORM_ISCSI_CONN_AG_CTX_CF4EN_SHIFT 4
  6202. #define USTORM_ISCSI_CONN_AG_CTX_CF5EN_MASK 0x1
  6203. #define USTORM_ISCSI_CONN_AG_CTX_CF5EN_SHIFT 5
  6204. #define USTORM_ISCSI_CONN_AG_CTX_CF6EN_MASK 0x1
  6205. #define USTORM_ISCSI_CONN_AG_CTX_CF6EN_SHIFT 6
  6206. #define USTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK 0x1
  6207. #define USTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 7
  6208. u8 flags3;
  6209. #define USTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK 0x1
  6210. #define USTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 0
  6211. #define USTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK 0x1
  6212. #define USTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 1
  6213. #define USTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK 0x1
  6214. #define USTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 2
  6215. #define USTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK 0x1
  6216. #define USTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 3
  6217. #define USTORM_ISCSI_CONN_AG_CTX_RULE5EN_MASK 0x1
  6218. #define USTORM_ISCSI_CONN_AG_CTX_RULE5EN_SHIFT 4
  6219. #define USTORM_ISCSI_CONN_AG_CTX_RULE6EN_MASK 0x1
  6220. #define USTORM_ISCSI_CONN_AG_CTX_RULE6EN_SHIFT 5
  6221. #define USTORM_ISCSI_CONN_AG_CTX_RULE7EN_MASK 0x1
  6222. #define USTORM_ISCSI_CONN_AG_CTX_RULE7EN_SHIFT 6
  6223. #define USTORM_ISCSI_CONN_AG_CTX_RULE8EN_MASK 0x1
  6224. #define USTORM_ISCSI_CONN_AG_CTX_RULE8EN_SHIFT 7
  6225. u8 byte2;
  6226. u8 byte3;
  6227. __le16 word0;
  6228. __le16 word1;
  6229. __le32 reg0;
  6230. __le32 reg1;
  6231. __le32 reg2;
  6232. __le32 reg3;
  6233. __le16 word2;
  6234. __le16 word3;
  6235. };
  6236. struct tstorm_iscsi_conn_st_ctx {
  6237. __le32 reserved[40];
  6238. };
  6239. struct mstorm_iscsi_conn_ag_ctx {
  6240. u8 reserved;
  6241. u8 state;
  6242. u8 flags0;
  6243. #define MSTORM_ISCSI_CONN_AG_CTX_BIT0_MASK 0x1
  6244. #define MSTORM_ISCSI_CONN_AG_CTX_BIT0_SHIFT 0
  6245. #define MSTORM_ISCSI_CONN_AG_CTX_BIT1_MASK 0x1
  6246. #define MSTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT 1
  6247. #define MSTORM_ISCSI_CONN_AG_CTX_CF0_MASK 0x3
  6248. #define MSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT 2
  6249. #define MSTORM_ISCSI_CONN_AG_CTX_CF1_MASK 0x3
  6250. #define MSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT 4
  6251. #define MSTORM_ISCSI_CONN_AG_CTX_CF2_MASK 0x3
  6252. #define MSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT 6
  6253. u8 flags1;
  6254. #define MSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK 0x1
  6255. #define MSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT 0
  6256. #define MSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK 0x1
  6257. #define MSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT 1
  6258. #define MSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK 0x1
  6259. #define MSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT 2
  6260. #define MSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK 0x1
  6261. #define MSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 3
  6262. #define MSTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK 0x1
  6263. #define MSTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 4
  6264. #define MSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK 0x1
  6265. #define MSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 5
  6266. #define MSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK 0x1
  6267. #define MSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 6
  6268. #define MSTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK 0x1
  6269. #define MSTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 7
  6270. __le16 word0;
  6271. __le16 word1;
  6272. __le32 reg0;
  6273. __le32 reg1;
  6274. };
  6275. struct mstorm_iscsi_tcp_conn_st_ctx {
  6276. __le32 reserved_tcp[20];
  6277. __le32 reserved_iscsi[8];
  6278. };
  6279. struct ustorm_iscsi_conn_st_ctx {
  6280. __le32 reserved[52];
  6281. };
  6282. struct iscsi_conn_context {
  6283. struct ystorm_iscsi_conn_st_ctx ystorm_st_context;
  6284. struct regpair ystorm_st_padding[2];
  6285. struct pstorm_iscsi_tcp_conn_st_ctx pstorm_st_context;
  6286. struct regpair pstorm_st_padding[2];
  6287. struct pb_context xpb2_context;
  6288. struct xstorm_iscsi_tcp_conn_st_ctx xstorm_st_context;
  6289. struct regpair xstorm_st_padding[2];
  6290. struct xstorm_iscsi_conn_ag_ctx xstorm_ag_context;
  6291. struct tstorm_iscsi_conn_ag_ctx tstorm_ag_context;
  6292. struct regpair tstorm_ag_padding[2];
  6293. struct timers_context timer_context;
  6294. struct ustorm_iscsi_conn_ag_ctx ustorm_ag_context;
  6295. struct pb_context upb_context;
  6296. struct tstorm_iscsi_conn_st_ctx tstorm_st_context;
  6297. struct regpair tstorm_st_padding[2];
  6298. struct mstorm_iscsi_conn_ag_ctx mstorm_ag_context;
  6299. struct mstorm_iscsi_tcp_conn_st_ctx mstorm_st_context;
  6300. struct ustorm_iscsi_conn_st_ctx ustorm_st_context;
  6301. };
  6302. struct iscsi_init_ramrod_params {
  6303. struct iscsi_spe_func_init iscsi_init_spe;
  6304. struct tcp_init_params tcp_init;
  6305. };
  6306. struct ystorm_iscsi_conn_ag_ctx {
  6307. u8 byte0;
  6308. u8 byte1;
  6309. u8 flags0;
  6310. #define YSTORM_ISCSI_CONN_AG_CTX_BIT0_MASK 0x1
  6311. #define YSTORM_ISCSI_CONN_AG_CTX_BIT0_SHIFT 0
  6312. #define YSTORM_ISCSI_CONN_AG_CTX_BIT1_MASK 0x1
  6313. #define YSTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT 1
  6314. #define YSTORM_ISCSI_CONN_AG_CTX_CF0_MASK 0x3
  6315. #define YSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT 2
  6316. #define YSTORM_ISCSI_CONN_AG_CTX_CF1_MASK 0x3
  6317. #define YSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT 4
  6318. #define YSTORM_ISCSI_CONN_AG_CTX_CF2_MASK 0x3
  6319. #define YSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT 6
  6320. u8 flags1;
  6321. #define YSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK 0x1
  6322. #define YSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT 0
  6323. #define YSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK 0x1
  6324. #define YSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT 1
  6325. #define YSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK 0x1
  6326. #define YSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT 2
  6327. #define YSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK 0x1
  6328. #define YSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 3
  6329. #define YSTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK 0x1
  6330. #define YSTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 4
  6331. #define YSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK 0x1
  6332. #define YSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 5
  6333. #define YSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK 0x1
  6334. #define YSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 6
  6335. #define YSTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK 0x1
  6336. #define YSTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 7
  6337. u8 byte2;
  6338. u8 byte3;
  6339. __le16 word0;
  6340. __le32 reg0;
  6341. __le32 reg1;
  6342. __le16 word1;
  6343. __le16 word2;
  6344. __le16 word3;
  6345. __le16 word4;
  6346. __le32 reg2;
  6347. __le32 reg3;
  6348. };
  6349. #define VF_MAX_STATIC 192
  6350. #define MCP_GLOB_PATH_MAX 2
  6351. #define MCP_PORT_MAX 2
  6352. #define MCP_GLOB_PORT_MAX 4
  6353. #define MCP_GLOB_FUNC_MAX 16
  6354. /* Offset from the beginning of the MCP scratchpad */
  6355. #define OFFSIZE_OFFSET_SHIFT 0
  6356. #define OFFSIZE_OFFSET_MASK 0x0000ffff
  6357. /* Size of specific element (not the whole array if any) */
  6358. #define OFFSIZE_SIZE_SHIFT 16
  6359. #define OFFSIZE_SIZE_MASK 0xffff0000
  6360. #define SECTION_OFFSET(_offsize) ((((_offsize & \
  6361. OFFSIZE_OFFSET_MASK) >> \
  6362. OFFSIZE_OFFSET_SHIFT) << 2))
  6363. #define QED_SECTION_SIZE(_offsize) (((_offsize & \
  6364. OFFSIZE_SIZE_MASK) >> \
  6365. OFFSIZE_SIZE_SHIFT) << 2)
  6366. #define SECTION_ADDR(_offsize, idx) (MCP_REG_SCRATCH + \
  6367. SECTION_OFFSET(_offsize) + \
  6368. (QED_SECTION_SIZE(_offsize) * idx))
  6369. #define SECTION_OFFSIZE_ADDR(_pub_base, _section) \
  6370. (_pub_base + offsetof(struct mcp_public_data, sections[_section]))
  6371. /* PHY configuration */
  6372. struct eth_phy_cfg {
  6373. u32 speed;
  6374. #define ETH_SPEED_AUTONEG 0
  6375. #define ETH_SPEED_SMARTLINQ 0x8
  6376. u32 pause;
  6377. #define ETH_PAUSE_NONE 0x0
  6378. #define ETH_PAUSE_AUTONEG 0x1
  6379. #define ETH_PAUSE_RX 0x2
  6380. #define ETH_PAUSE_TX 0x4
  6381. u32 adv_speed;
  6382. u32 loopback_mode;
  6383. #define ETH_LOOPBACK_NONE (0)
  6384. #define ETH_LOOPBACK_INT_PHY (1)
  6385. #define ETH_LOOPBACK_EXT_PHY (2)
  6386. #define ETH_LOOPBACK_EXT (3)
  6387. #define ETH_LOOPBACK_MAC (4)
  6388. u32 feature_config_flags;
  6389. #define ETH_EEE_MODE_ADV_LPI (1 << 0)
  6390. };
  6391. struct port_mf_cfg {
  6392. u32 dynamic_cfg;
  6393. #define PORT_MF_CFG_OV_TAG_MASK 0x0000ffff
  6394. #define PORT_MF_CFG_OV_TAG_SHIFT 0
  6395. #define PORT_MF_CFG_OV_TAG_DEFAULT PORT_MF_CFG_OV_TAG_MASK
  6396. u32 reserved[1];
  6397. };
  6398. struct eth_stats {
  6399. u64 r64;
  6400. u64 r127;
  6401. u64 r255;
  6402. u64 r511;
  6403. u64 r1023;
  6404. u64 r1518;
  6405. u64 r1522;
  6406. u64 r2047;
  6407. u64 r4095;
  6408. u64 r9216;
  6409. u64 r16383;
  6410. u64 rfcs;
  6411. u64 rxcf;
  6412. u64 rxpf;
  6413. u64 rxpp;
  6414. u64 raln;
  6415. u64 rfcr;
  6416. u64 rovr;
  6417. u64 rjbr;
  6418. u64 rund;
  6419. u64 rfrg;
  6420. u64 t64;
  6421. u64 t127;
  6422. u64 t255;
  6423. u64 t511;
  6424. u64 t1023;
  6425. u64 t1518;
  6426. u64 t2047;
  6427. u64 t4095;
  6428. u64 t9216;
  6429. u64 t16383;
  6430. u64 txpf;
  6431. u64 txpp;
  6432. u64 tlpiec;
  6433. u64 tncl;
  6434. u64 rbyte;
  6435. u64 rxuca;
  6436. u64 rxmca;
  6437. u64 rxbca;
  6438. u64 rxpok;
  6439. u64 tbyte;
  6440. u64 txuca;
  6441. u64 txmca;
  6442. u64 txbca;
  6443. u64 txcf;
  6444. };
  6445. struct brb_stats {
  6446. u64 brb_truncate[8];
  6447. u64 brb_discard[8];
  6448. };
  6449. struct port_stats {
  6450. struct brb_stats brb;
  6451. struct eth_stats eth;
  6452. };
  6453. struct couple_mode_teaming {
  6454. u8 port_cmt[MCP_GLOB_PORT_MAX];
  6455. #define PORT_CMT_IN_TEAM (1 << 0)
  6456. #define PORT_CMT_PORT_ROLE (1 << 1)
  6457. #define PORT_CMT_PORT_INACTIVE (0 << 1)
  6458. #define PORT_CMT_PORT_ACTIVE (1 << 1)
  6459. #define PORT_CMT_TEAM_MASK (1 << 2)
  6460. #define PORT_CMT_TEAM0 (0 << 2)
  6461. #define PORT_CMT_TEAM1 (1 << 2)
  6462. };
  6463. #define LLDP_CHASSIS_ID_STAT_LEN 4
  6464. #define LLDP_PORT_ID_STAT_LEN 4
  6465. #define DCBX_MAX_APP_PROTOCOL 32
  6466. #define MAX_SYSTEM_LLDP_TLV_DATA 32
  6467. enum _lldp_agent {
  6468. LLDP_NEAREST_BRIDGE = 0,
  6469. LLDP_NEAREST_NON_TPMR_BRIDGE,
  6470. LLDP_NEAREST_CUSTOMER_BRIDGE,
  6471. LLDP_MAX_LLDP_AGENTS
  6472. };
  6473. struct lldp_config_params_s {
  6474. u32 config;
  6475. #define LLDP_CONFIG_TX_INTERVAL_MASK 0x000000ff
  6476. #define LLDP_CONFIG_TX_INTERVAL_SHIFT 0
  6477. #define LLDP_CONFIG_HOLD_MASK 0x00000f00
  6478. #define LLDP_CONFIG_HOLD_SHIFT 8
  6479. #define LLDP_CONFIG_MAX_CREDIT_MASK 0x0000f000
  6480. #define LLDP_CONFIG_MAX_CREDIT_SHIFT 12
  6481. #define LLDP_CONFIG_ENABLE_RX_MASK 0x40000000
  6482. #define LLDP_CONFIG_ENABLE_RX_SHIFT 30
  6483. #define LLDP_CONFIG_ENABLE_TX_MASK 0x80000000
  6484. #define LLDP_CONFIG_ENABLE_TX_SHIFT 31
  6485. u32 local_chassis_id[LLDP_CHASSIS_ID_STAT_LEN];
  6486. u32 local_port_id[LLDP_PORT_ID_STAT_LEN];
  6487. };
  6488. struct lldp_status_params_s {
  6489. u32 prefix_seq_num;
  6490. u32 status;
  6491. u32 peer_chassis_id[LLDP_CHASSIS_ID_STAT_LEN];
  6492. u32 peer_port_id[LLDP_PORT_ID_STAT_LEN];
  6493. u32 suffix_seq_num;
  6494. };
  6495. struct dcbx_ets_feature {
  6496. u32 flags;
  6497. #define DCBX_ETS_ENABLED_MASK 0x00000001
  6498. #define DCBX_ETS_ENABLED_SHIFT 0
  6499. #define DCBX_ETS_WILLING_MASK 0x00000002
  6500. #define DCBX_ETS_WILLING_SHIFT 1
  6501. #define DCBX_ETS_ERROR_MASK 0x00000004
  6502. #define DCBX_ETS_ERROR_SHIFT 2
  6503. #define DCBX_ETS_CBS_MASK 0x00000008
  6504. #define DCBX_ETS_CBS_SHIFT 3
  6505. #define DCBX_ETS_MAX_TCS_MASK 0x000000f0
  6506. #define DCBX_ETS_MAX_TCS_SHIFT 4
  6507. #define DCBX_ISCSI_OOO_TC_MASK 0x00000f00
  6508. #define DCBX_ISCSI_OOO_TC_SHIFT 8
  6509. u32 pri_tc_tbl[1];
  6510. #define DCBX_ISCSI_OOO_TC (4)
  6511. #define NIG_ETS_ISCSI_OOO_CLIENT_OFFSET (DCBX_ISCSI_OOO_TC + 1)
  6512. #define DCBX_CEE_STRICT_PRIORITY 0xf
  6513. u32 tc_bw_tbl[2];
  6514. u32 tc_tsa_tbl[2];
  6515. #define DCBX_ETS_TSA_STRICT 0
  6516. #define DCBX_ETS_TSA_CBS 1
  6517. #define DCBX_ETS_TSA_ETS 2
  6518. };
  6519. struct dcbx_app_priority_entry {
  6520. u32 entry;
  6521. #define DCBX_APP_PRI_MAP_MASK 0x000000ff
  6522. #define DCBX_APP_PRI_MAP_SHIFT 0
  6523. #define DCBX_APP_PRI_0 0x01
  6524. #define DCBX_APP_PRI_1 0x02
  6525. #define DCBX_APP_PRI_2 0x04
  6526. #define DCBX_APP_PRI_3 0x08
  6527. #define DCBX_APP_PRI_4 0x10
  6528. #define DCBX_APP_PRI_5 0x20
  6529. #define DCBX_APP_PRI_6 0x40
  6530. #define DCBX_APP_PRI_7 0x80
  6531. #define DCBX_APP_SF_MASK 0x00000300
  6532. #define DCBX_APP_SF_SHIFT 8
  6533. #define DCBX_APP_SF_ETHTYPE 0
  6534. #define DCBX_APP_SF_PORT 1
  6535. #define DCBX_APP_SF_IEEE_MASK 0x0000f000
  6536. #define DCBX_APP_SF_IEEE_SHIFT 12
  6537. #define DCBX_APP_SF_IEEE_RESERVED 0
  6538. #define DCBX_APP_SF_IEEE_ETHTYPE 1
  6539. #define DCBX_APP_SF_IEEE_TCP_PORT 2
  6540. #define DCBX_APP_SF_IEEE_UDP_PORT 3
  6541. #define DCBX_APP_SF_IEEE_TCP_UDP_PORT 4
  6542. #define DCBX_APP_PROTOCOL_ID_MASK 0xffff0000
  6543. #define DCBX_APP_PROTOCOL_ID_SHIFT 16
  6544. };
  6545. struct dcbx_app_priority_feature {
  6546. u32 flags;
  6547. #define DCBX_APP_ENABLED_MASK 0x00000001
  6548. #define DCBX_APP_ENABLED_SHIFT 0
  6549. #define DCBX_APP_WILLING_MASK 0x00000002
  6550. #define DCBX_APP_WILLING_SHIFT 1
  6551. #define DCBX_APP_ERROR_MASK 0x00000004
  6552. #define DCBX_APP_ERROR_SHIFT 2
  6553. #define DCBX_APP_MAX_TCS_MASK 0x0000f000
  6554. #define DCBX_APP_MAX_TCS_SHIFT 12
  6555. #define DCBX_APP_NUM_ENTRIES_MASK 0x00ff0000
  6556. #define DCBX_APP_NUM_ENTRIES_SHIFT 16
  6557. struct dcbx_app_priority_entry app_pri_tbl[DCBX_MAX_APP_PROTOCOL];
  6558. };
  6559. struct dcbx_features {
  6560. struct dcbx_ets_feature ets;
  6561. u32 pfc;
  6562. #define DCBX_PFC_PRI_EN_BITMAP_MASK 0x000000ff
  6563. #define DCBX_PFC_PRI_EN_BITMAP_SHIFT 0
  6564. #define DCBX_PFC_PRI_EN_BITMAP_PRI_0 0x01
  6565. #define DCBX_PFC_PRI_EN_BITMAP_PRI_1 0x02
  6566. #define DCBX_PFC_PRI_EN_BITMAP_PRI_2 0x04
  6567. #define DCBX_PFC_PRI_EN_BITMAP_PRI_3 0x08
  6568. #define DCBX_PFC_PRI_EN_BITMAP_PRI_4 0x10
  6569. #define DCBX_PFC_PRI_EN_BITMAP_PRI_5 0x20
  6570. #define DCBX_PFC_PRI_EN_BITMAP_PRI_6 0x40
  6571. #define DCBX_PFC_PRI_EN_BITMAP_PRI_7 0x80
  6572. #define DCBX_PFC_FLAGS_MASK 0x0000ff00
  6573. #define DCBX_PFC_FLAGS_SHIFT 8
  6574. #define DCBX_PFC_CAPS_MASK 0x00000f00
  6575. #define DCBX_PFC_CAPS_SHIFT 8
  6576. #define DCBX_PFC_MBC_MASK 0x00004000
  6577. #define DCBX_PFC_MBC_SHIFT 14
  6578. #define DCBX_PFC_WILLING_MASK 0x00008000
  6579. #define DCBX_PFC_WILLING_SHIFT 15
  6580. #define DCBX_PFC_ENABLED_MASK 0x00010000
  6581. #define DCBX_PFC_ENABLED_SHIFT 16
  6582. #define DCBX_PFC_ERROR_MASK 0x00020000
  6583. #define DCBX_PFC_ERROR_SHIFT 17
  6584. struct dcbx_app_priority_feature app;
  6585. };
  6586. struct dcbx_local_params {
  6587. u32 config;
  6588. #define DCBX_CONFIG_VERSION_MASK 0x00000007
  6589. #define DCBX_CONFIG_VERSION_SHIFT 0
  6590. #define DCBX_CONFIG_VERSION_DISABLED 0
  6591. #define DCBX_CONFIG_VERSION_IEEE 1
  6592. #define DCBX_CONFIG_VERSION_CEE 2
  6593. #define DCBX_CONFIG_VERSION_STATIC 4
  6594. u32 flags;
  6595. struct dcbx_features features;
  6596. };
  6597. struct dcbx_mib {
  6598. u32 prefix_seq_num;
  6599. u32 flags;
  6600. struct dcbx_features features;
  6601. u32 suffix_seq_num;
  6602. };
  6603. struct lldp_system_tlvs_buffer_s {
  6604. u16 valid;
  6605. u16 length;
  6606. u32 data[MAX_SYSTEM_LLDP_TLV_DATA];
  6607. };
  6608. struct dcb_dscp_map {
  6609. u32 flags;
  6610. #define DCB_DSCP_ENABLE_MASK 0x1
  6611. #define DCB_DSCP_ENABLE_SHIFT 0
  6612. #define DCB_DSCP_ENABLE 1
  6613. u32 dscp_pri_map[8];
  6614. };
  6615. struct public_global {
  6616. u32 max_path;
  6617. u32 max_ports;
  6618. u32 debug_mb_offset;
  6619. u32 phymod_dbg_mb_offset;
  6620. struct couple_mode_teaming cmt;
  6621. s32 internal_temperature;
  6622. u32 mfw_ver;
  6623. u32 running_bundle_id;
  6624. s32 external_temperature;
  6625. u32 mdump_reason;
  6626. };
  6627. struct fw_flr_mb {
  6628. u32 aggint;
  6629. u32 opgen_addr;
  6630. u32 accum_ack;
  6631. };
  6632. struct public_path {
  6633. struct fw_flr_mb flr_mb;
  6634. u32 mcp_vf_disabled[VF_MAX_STATIC / 32];
  6635. u32 process_kill;
  6636. #define PROCESS_KILL_COUNTER_MASK 0x0000ffff
  6637. #define PROCESS_KILL_COUNTER_SHIFT 0
  6638. #define PROCESS_KILL_GLOB_AEU_BIT_MASK 0xffff0000
  6639. #define PROCESS_KILL_GLOB_AEU_BIT_SHIFT 16
  6640. #define GLOBAL_AEU_BIT(aeu_reg_id, aeu_bit) (aeu_reg_id * 32 + aeu_bit)
  6641. };
  6642. struct public_port {
  6643. u32 validity_map;
  6644. u32 link_status;
  6645. #define LINK_STATUS_LINK_UP 0x00000001
  6646. #define LINK_STATUS_SPEED_AND_DUPLEX_MASK 0x0000001e
  6647. #define LINK_STATUS_SPEED_AND_DUPLEX_1000THD (1 << 1)
  6648. #define LINK_STATUS_SPEED_AND_DUPLEX_1000TFD (2 << 1)
  6649. #define LINK_STATUS_SPEED_AND_DUPLEX_10G (3 << 1)
  6650. #define LINK_STATUS_SPEED_AND_DUPLEX_20G (4 << 1)
  6651. #define LINK_STATUS_SPEED_AND_DUPLEX_40G (5 << 1)
  6652. #define LINK_STATUS_SPEED_AND_DUPLEX_50G (6 << 1)
  6653. #define LINK_STATUS_SPEED_AND_DUPLEX_100G (7 << 1)
  6654. #define LINK_STATUS_SPEED_AND_DUPLEX_25G (8 << 1)
  6655. #define LINK_STATUS_AUTO_NEGOTIATE_ENABLED 0x00000020
  6656. #define LINK_STATUS_AUTO_NEGOTIATE_COMPLETE 0x00000040
  6657. #define LINK_STATUS_PARALLEL_DETECTION_USED 0x00000080
  6658. #define LINK_STATUS_PFC_ENABLED 0x00000100
  6659. #define LINK_STATUS_LINK_PARTNER_1000TFD_CAPABLE 0x00000200
  6660. #define LINK_STATUS_LINK_PARTNER_1000THD_CAPABLE 0x00000400
  6661. #define LINK_STATUS_LINK_PARTNER_10G_CAPABLE 0x00000800
  6662. #define LINK_STATUS_LINK_PARTNER_20G_CAPABLE 0x00001000
  6663. #define LINK_STATUS_LINK_PARTNER_40G_CAPABLE 0x00002000
  6664. #define LINK_STATUS_LINK_PARTNER_50G_CAPABLE 0x00004000
  6665. #define LINK_STATUS_LINK_PARTNER_100G_CAPABLE 0x00008000
  6666. #define LINK_STATUS_LINK_PARTNER_25G_CAPABLE 0x00010000
  6667. #define LINK_STATUS_LINK_PARTNER_FLOW_CONTROL_MASK 0x000C0000
  6668. #define LINK_STATUS_LINK_PARTNER_NOT_PAUSE_CAPABLE (0 << 18)
  6669. #define LINK_STATUS_LINK_PARTNER_SYMMETRIC_PAUSE (1 << 18)
  6670. #define LINK_STATUS_LINK_PARTNER_ASYMMETRIC_PAUSE (2 << 18)
  6671. #define LINK_STATUS_LINK_PARTNER_BOTH_PAUSE (3 << 18)
  6672. #define LINK_STATUS_SFP_TX_FAULT 0x00100000
  6673. #define LINK_STATUS_TX_FLOW_CONTROL_ENABLED 0x00200000
  6674. #define LINK_STATUS_RX_FLOW_CONTROL_ENABLED 0x00400000
  6675. #define LINK_STATUS_RX_SIGNAL_PRESENT 0x00800000
  6676. #define LINK_STATUS_MAC_LOCAL_FAULT 0x01000000
  6677. #define LINK_STATUS_MAC_REMOTE_FAULT 0x02000000
  6678. #define LINK_STATUS_UNSUPPORTED_SPD_REQ 0x04000000
  6679. u32 link_status1;
  6680. u32 ext_phy_fw_version;
  6681. u32 drv_phy_cfg_addr;
  6682. u32 port_stx;
  6683. u32 stat_nig_timer;
  6684. struct port_mf_cfg port_mf_config;
  6685. struct port_stats stats;
  6686. u32 media_type;
  6687. #define MEDIA_UNSPECIFIED 0x0
  6688. #define MEDIA_SFPP_10G_FIBER 0x1
  6689. #define MEDIA_XFP_FIBER 0x2
  6690. #define MEDIA_DA_TWINAX 0x3
  6691. #define MEDIA_BASE_T 0x4
  6692. #define MEDIA_SFP_1G_FIBER 0x5
  6693. #define MEDIA_MODULE_FIBER 0x6
  6694. #define MEDIA_KR 0xf0
  6695. #define MEDIA_NOT_PRESENT 0xff
  6696. u32 lfa_status;
  6697. u32 link_change_count;
  6698. struct lldp_config_params_s lldp_config_params[LLDP_MAX_LLDP_AGENTS];
  6699. struct lldp_status_params_s lldp_status_params[LLDP_MAX_LLDP_AGENTS];
  6700. struct lldp_system_tlvs_buffer_s system_lldp_tlvs_buf;
  6701. /* DCBX related MIB */
  6702. struct dcbx_local_params local_admin_dcbx_mib;
  6703. struct dcbx_mib remote_dcbx_mib;
  6704. struct dcbx_mib operational_dcbx_mib;
  6705. u32 reserved[2];
  6706. u32 transceiver_data;
  6707. #define ETH_TRANSCEIVER_STATE_MASK 0x000000FF
  6708. #define ETH_TRANSCEIVER_STATE_SHIFT 0x00000000
  6709. #define ETH_TRANSCEIVER_STATE_UNPLUGGED 0x00000000
  6710. #define ETH_TRANSCEIVER_STATE_PRESENT 0x00000001
  6711. #define ETH_TRANSCEIVER_STATE_VALID 0x00000003
  6712. #define ETH_TRANSCEIVER_STATE_UPDATING 0x00000008
  6713. u32 wol_info;
  6714. u32 wol_pkt_len;
  6715. u32 wol_pkt_details;
  6716. struct dcb_dscp_map dcb_dscp_map;
  6717. };
  6718. struct public_func {
  6719. u32 reserved0[2];
  6720. u32 mtu_size;
  6721. u32 reserved[7];
  6722. u32 config;
  6723. #define FUNC_MF_CFG_FUNC_HIDE 0x00000001
  6724. #define FUNC_MF_CFG_PAUSE_ON_HOST_RING 0x00000002
  6725. #define FUNC_MF_CFG_PAUSE_ON_HOST_RING_SHIFT 0x00000001
  6726. #define FUNC_MF_CFG_PROTOCOL_MASK 0x000000f0
  6727. #define FUNC_MF_CFG_PROTOCOL_SHIFT 4
  6728. #define FUNC_MF_CFG_PROTOCOL_ETHERNET 0x00000000
  6729. #define FUNC_MF_CFG_PROTOCOL_ISCSI 0x00000010
  6730. #define FUNC_MF_CFG_PROTOCOL_ROCE 0x00000030
  6731. #define FUNC_MF_CFG_PROTOCOL_MAX 0x00000030
  6732. #define FUNC_MF_CFG_MIN_BW_MASK 0x0000ff00
  6733. #define FUNC_MF_CFG_MIN_BW_SHIFT 8
  6734. #define FUNC_MF_CFG_MIN_BW_DEFAULT 0x00000000
  6735. #define FUNC_MF_CFG_MAX_BW_MASK 0x00ff0000
  6736. #define FUNC_MF_CFG_MAX_BW_SHIFT 16
  6737. #define FUNC_MF_CFG_MAX_BW_DEFAULT 0x00640000
  6738. u32 status;
  6739. #define FUNC_STATUS_VLINK_DOWN 0x00000001
  6740. u32 mac_upper;
  6741. #define FUNC_MF_CFG_UPPERMAC_MASK 0x0000ffff
  6742. #define FUNC_MF_CFG_UPPERMAC_SHIFT 0
  6743. #define FUNC_MF_CFG_UPPERMAC_DEFAULT FUNC_MF_CFG_UPPERMAC_MASK
  6744. u32 mac_lower;
  6745. #define FUNC_MF_CFG_LOWERMAC_DEFAULT 0xffffffff
  6746. u32 fcoe_wwn_port_name_upper;
  6747. u32 fcoe_wwn_port_name_lower;
  6748. u32 fcoe_wwn_node_name_upper;
  6749. u32 fcoe_wwn_node_name_lower;
  6750. u32 ovlan_stag;
  6751. #define FUNC_MF_CFG_OV_STAG_MASK 0x0000ffff
  6752. #define FUNC_MF_CFG_OV_STAG_SHIFT 0
  6753. #define FUNC_MF_CFG_OV_STAG_DEFAULT FUNC_MF_CFG_OV_STAG_MASK
  6754. u32 pf_allocation;
  6755. u32 preserve_data;
  6756. u32 driver_last_activity_ts;
  6757. u32 drv_ack_vf_disabled[VF_MAX_STATIC / 32];
  6758. u32 drv_id;
  6759. #define DRV_ID_PDA_COMP_VER_MASK 0x0000ffff
  6760. #define DRV_ID_PDA_COMP_VER_SHIFT 0
  6761. #define DRV_ID_MCP_HSI_VER_MASK 0x00ff0000
  6762. #define DRV_ID_MCP_HSI_VER_SHIFT 16
  6763. #define DRV_ID_MCP_HSI_VER_CURRENT (1 << DRV_ID_MCP_HSI_VER_SHIFT)
  6764. #define DRV_ID_DRV_TYPE_MASK 0x7f000000
  6765. #define DRV_ID_DRV_TYPE_SHIFT 24
  6766. #define DRV_ID_DRV_TYPE_UNKNOWN (0 << DRV_ID_DRV_TYPE_SHIFT)
  6767. #define DRV_ID_DRV_TYPE_LINUX (1 << DRV_ID_DRV_TYPE_SHIFT)
  6768. #define DRV_ID_DRV_INIT_HW_MASK 0x80000000
  6769. #define DRV_ID_DRV_INIT_HW_SHIFT 31
  6770. #define DRV_ID_DRV_INIT_HW_FLAG (1 << DRV_ID_DRV_INIT_HW_SHIFT)
  6771. };
  6772. struct mcp_mac {
  6773. u32 mac_upper;
  6774. u32 mac_lower;
  6775. };
  6776. struct mcp_val64 {
  6777. u32 lo;
  6778. u32 hi;
  6779. };
  6780. struct mcp_file_att {
  6781. u32 nvm_start_addr;
  6782. u32 len;
  6783. };
  6784. struct bist_nvm_image_att {
  6785. u32 return_code;
  6786. u32 image_type;
  6787. u32 nvm_start_addr;
  6788. u32 len;
  6789. };
  6790. #define MCP_DRV_VER_STR_SIZE 16
  6791. #define MCP_DRV_VER_STR_SIZE_DWORD (MCP_DRV_VER_STR_SIZE / sizeof(u32))
  6792. #define MCP_DRV_NVM_BUF_LEN 32
  6793. struct drv_version_stc {
  6794. u32 version;
  6795. u8 name[MCP_DRV_VER_STR_SIZE - 4];
  6796. };
  6797. struct lan_stats_stc {
  6798. u64 ucast_rx_pkts;
  6799. u64 ucast_tx_pkts;
  6800. u32 fcs_err;
  6801. u32 rserved;
  6802. };
  6803. struct ocbb_data_stc {
  6804. u32 ocbb_host_addr;
  6805. u32 ocsd_host_addr;
  6806. u32 ocsd_req_update_interval;
  6807. };
  6808. #define MAX_NUM_OF_SENSORS 7
  6809. struct temperature_status_stc {
  6810. u32 num_of_sensors;
  6811. u32 sensor[MAX_NUM_OF_SENSORS];
  6812. };
  6813. /* crash dump configuration header */
  6814. struct mdump_config_stc {
  6815. u32 version;
  6816. u32 config;
  6817. u32 epoc;
  6818. u32 num_of_logs;
  6819. u32 valid_logs;
  6820. };
  6821. union drv_union_data {
  6822. u32 ver_str[MCP_DRV_VER_STR_SIZE_DWORD];
  6823. struct mcp_mac wol_mac;
  6824. struct eth_phy_cfg drv_phy_cfg;
  6825. struct mcp_val64 val64;
  6826. u8 raw_data[MCP_DRV_NVM_BUF_LEN];
  6827. struct mcp_file_att file_att;
  6828. u32 ack_vf_disabled[VF_MAX_STATIC / 32];
  6829. struct drv_version_stc drv_version;
  6830. struct lan_stats_stc lan_stats;
  6831. u64 reserved_stats[11];
  6832. struct ocbb_data_stc ocbb_info;
  6833. struct temperature_status_stc temp_info;
  6834. struct bist_nvm_image_att nvm_image_att;
  6835. struct mdump_config_stc mdump_config;
  6836. };
  6837. struct public_drv_mb {
  6838. u32 drv_mb_header;
  6839. #define DRV_MSG_CODE_MASK 0xffff0000
  6840. #define DRV_MSG_CODE_LOAD_REQ 0x10000000
  6841. #define DRV_MSG_CODE_LOAD_DONE 0x11000000
  6842. #define DRV_MSG_CODE_INIT_HW 0x12000000
  6843. #define DRV_MSG_CODE_UNLOAD_REQ 0x20000000
  6844. #define DRV_MSG_CODE_UNLOAD_DONE 0x21000000
  6845. #define DRV_MSG_CODE_INIT_PHY 0x22000000
  6846. #define DRV_MSG_CODE_LINK_RESET 0x23000000
  6847. #define DRV_MSG_CODE_SET_DCBX 0x25000000
  6848. #define DRV_MSG_CODE_BW_UPDATE_ACK 0x32000000
  6849. #define DRV_MSG_CODE_NIG_DRAIN 0x30000000
  6850. #define DRV_MSG_CODE_VF_DISABLED_DONE 0xc0000000
  6851. #define DRV_MSG_CODE_CFG_VF_MSIX 0xc0010000
  6852. #define DRV_MSG_CODE_MCP_RESET 0x00090000
  6853. #define DRV_MSG_CODE_SET_VERSION 0x000f0000
  6854. #define DRV_MSG_CODE_BIST_TEST 0x001e0000
  6855. #define DRV_MSG_CODE_SET_LED_MODE 0x00200000
  6856. #define DRV_MSG_SEQ_NUMBER_MASK 0x0000ffff
  6857. u32 drv_mb_param;
  6858. #define DRV_MB_PARAM_UNLOAD_WOL_MCP 0x00000001
  6859. #define DRV_MB_PARAM_DCBX_NOTIFY_MASK 0x000000FF
  6860. #define DRV_MB_PARAM_DCBX_NOTIFY_SHIFT 3
  6861. #define DRV_MB_PARAM_CFG_VF_MSIX_VF_ID_SHIFT 0
  6862. #define DRV_MB_PARAM_CFG_VF_MSIX_VF_ID_MASK 0x000000FF
  6863. #define DRV_MB_PARAM_CFG_VF_MSIX_SB_NUM_SHIFT 8
  6864. #define DRV_MB_PARAM_CFG_VF_MSIX_SB_NUM_MASK 0x0000FF00
  6865. #define DRV_MB_PARAM_LLDP_SEND_MASK 0x00000001
  6866. #define DRV_MB_PARAM_LLDP_SEND_SHIFT 0
  6867. #define DRV_MB_PARAM_SET_LED_MODE_OPER 0x0
  6868. #define DRV_MB_PARAM_SET_LED_MODE_ON 0x1
  6869. #define DRV_MB_PARAM_SET_LED_MODE_OFF 0x2
  6870. #define DRV_MB_PARAM_BIST_REGISTER_TEST 1
  6871. #define DRV_MB_PARAM_BIST_CLOCK_TEST 2
  6872. #define DRV_MB_PARAM_BIST_RC_UNKNOWN 0
  6873. #define DRV_MB_PARAM_BIST_RC_PASSED 1
  6874. #define DRV_MB_PARAM_BIST_RC_FAILED 2
  6875. #define DRV_MB_PARAM_BIST_RC_INVALID_PARAMETER 3
  6876. #define DRV_MB_PARAM_BIST_TEST_INDEX_SHIFT 0
  6877. #define DRV_MB_PARAM_BIST_TEST_INDEX_MASK 0x000000FF
  6878. u32 fw_mb_header;
  6879. #define FW_MSG_CODE_MASK 0xffff0000
  6880. #define FW_MSG_CODE_DRV_LOAD_ENGINE 0x10100000
  6881. #define FW_MSG_CODE_DRV_LOAD_PORT 0x10110000
  6882. #define FW_MSG_CODE_DRV_LOAD_FUNCTION 0x10120000
  6883. #define FW_MSG_CODE_DRV_LOAD_REFUSED_PDA 0x10200000
  6884. #define FW_MSG_CODE_DRV_LOAD_REFUSED_HSI 0x10210000
  6885. #define FW_MSG_CODE_DRV_LOAD_REFUSED_DIAG 0x10220000
  6886. #define FW_MSG_CODE_DRV_LOAD_DONE 0x11100000
  6887. #define FW_MSG_CODE_DRV_UNLOAD_ENGINE 0x20110000
  6888. #define FW_MSG_CODE_DRV_UNLOAD_PORT 0x20120000
  6889. #define FW_MSG_CODE_DRV_UNLOAD_FUNCTION 0x20130000
  6890. #define FW_MSG_CODE_DRV_UNLOAD_DONE 0x21100000
  6891. #define FW_MSG_CODE_DRV_CFG_VF_MSIX_DONE 0xb0010000
  6892. #define FW_MSG_CODE_OK 0x00160000
  6893. #define FW_MSG_SEQ_NUMBER_MASK 0x0000ffff
  6894. u32 fw_mb_param;
  6895. u32 drv_pulse_mb;
  6896. #define DRV_PULSE_SEQ_MASK 0x00007fff
  6897. #define DRV_PULSE_SYSTEM_TIME_MASK 0xffff0000
  6898. #define DRV_PULSE_ALWAYS_ALIVE 0x00008000
  6899. u32 mcp_pulse_mb;
  6900. #define MCP_PULSE_SEQ_MASK 0x00007fff
  6901. #define MCP_PULSE_ALWAYS_ALIVE 0x00008000
  6902. #define MCP_EVENT_MASK 0xffff0000
  6903. #define MCP_EVENT_OTHER_DRIVER_RESET_REQ 0x00010000
  6904. union drv_union_data union_data;
  6905. };
  6906. enum MFW_DRV_MSG_TYPE {
  6907. MFW_DRV_MSG_LINK_CHANGE,
  6908. MFW_DRV_MSG_FLR_FW_ACK_FAILED,
  6909. MFW_DRV_MSG_VF_DISABLED,
  6910. MFW_DRV_MSG_LLDP_DATA_UPDATED,
  6911. MFW_DRV_MSG_DCBX_REMOTE_MIB_UPDATED,
  6912. MFW_DRV_MSG_DCBX_OPERATIONAL_MIB_UPDATED,
  6913. MFW_DRV_MSG_RESERVED4,
  6914. MFW_DRV_MSG_BW_UPDATE,
  6915. MFW_DRV_MSG_BW_UPDATE5,
  6916. MFW_DRV_MSG_BW_UPDATE6,
  6917. MFW_DRV_MSG_BW_UPDATE7,
  6918. MFW_DRV_MSG_BW_UPDATE8,
  6919. MFW_DRV_MSG_BW_UPDATE9,
  6920. MFW_DRV_MSG_BW_UPDATE10,
  6921. MFW_DRV_MSG_TRANSCEIVER_STATE_CHANGE,
  6922. MFW_DRV_MSG_BW_UPDATE11,
  6923. MFW_DRV_MSG_MAX
  6924. };
  6925. #define MFW_DRV_MSG_MAX_DWORDS(msgs) (((msgs - 1) >> 2) + 1)
  6926. #define MFW_DRV_MSG_DWORD(msg_id) (msg_id >> 2)
  6927. #define MFW_DRV_MSG_OFFSET(msg_id) ((msg_id & 0x3) << 3)
  6928. #define MFW_DRV_MSG_MASK(msg_id) (0xff << MFW_DRV_MSG_OFFSET(msg_id))
  6929. struct public_mfw_mb {
  6930. u32 sup_msgs;
  6931. u32 msg[MFW_DRV_MSG_MAX_DWORDS(MFW_DRV_MSG_MAX)];
  6932. u32 ack[MFW_DRV_MSG_MAX_DWORDS(MFW_DRV_MSG_MAX)];
  6933. };
  6934. enum public_sections {
  6935. PUBLIC_DRV_MB,
  6936. PUBLIC_MFW_MB,
  6937. PUBLIC_GLOBAL,
  6938. PUBLIC_PATH,
  6939. PUBLIC_PORT,
  6940. PUBLIC_FUNC,
  6941. PUBLIC_MAX_SECTIONS
  6942. };
  6943. struct mcp_public_data {
  6944. u32 num_sections;
  6945. u32 sections[PUBLIC_MAX_SECTIONS];
  6946. struct public_drv_mb drv_mb[MCP_GLOB_FUNC_MAX];
  6947. struct public_mfw_mb mfw_mb[MCP_GLOB_FUNC_MAX];
  6948. struct public_global global;
  6949. struct public_path path[MCP_GLOB_PATH_MAX];
  6950. struct public_port port[MCP_GLOB_PORT_MAX];
  6951. struct public_func func[MCP_GLOB_FUNC_MAX];
  6952. };
  6953. struct nvm_cfg_mac_address {
  6954. u32 mac_addr_hi;
  6955. #define NVM_CFG_MAC_ADDRESS_HI_MASK 0x0000FFFF
  6956. #define NVM_CFG_MAC_ADDRESS_HI_OFFSET 0
  6957. u32 mac_addr_lo;
  6958. };
  6959. struct nvm_cfg1_glob {
  6960. u32 generic_cont0;
  6961. #define NVM_CFG1_GLOB_MF_MODE_MASK 0x00000FF0
  6962. #define NVM_CFG1_GLOB_MF_MODE_OFFSET 4
  6963. #define NVM_CFG1_GLOB_MF_MODE_MF_ALLOWED 0x0
  6964. #define NVM_CFG1_GLOB_MF_MODE_DEFAULT 0x1
  6965. #define NVM_CFG1_GLOB_MF_MODE_SPIO4 0x2
  6966. #define NVM_CFG1_GLOB_MF_MODE_NPAR1_0 0x3
  6967. #define NVM_CFG1_GLOB_MF_MODE_NPAR1_5 0x4
  6968. #define NVM_CFG1_GLOB_MF_MODE_NPAR2_0 0x5
  6969. #define NVM_CFG1_GLOB_MF_MODE_BD 0x6
  6970. #define NVM_CFG1_GLOB_MF_MODE_UFP 0x7
  6971. u32 engineering_change[3];
  6972. u32 manufacturing_id;
  6973. u32 serial_number[4];
  6974. u32 pcie_cfg;
  6975. u32 mgmt_traffic;
  6976. u32 core_cfg;
  6977. #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_MASK 0x000000FF
  6978. #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_OFFSET 0
  6979. #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_BB_2X40G 0x0
  6980. #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_2X50G 0x1
  6981. #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_BB_1X100G 0x2
  6982. #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_4X10G_F 0x3
  6983. #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_BB_4X10G_E 0x4
  6984. #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_BB_4X20G 0x5
  6985. #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_1X40G 0xB
  6986. #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_2X25G 0xC
  6987. #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_1X25G 0xD
  6988. #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_4X25G 0xE
  6989. u32 e_lane_cfg1;
  6990. u32 e_lane_cfg2;
  6991. u32 f_lane_cfg1;
  6992. u32 f_lane_cfg2;
  6993. u32 mps10_preemphasis;
  6994. u32 mps10_driver_current;
  6995. u32 mps25_preemphasis;
  6996. u32 mps25_driver_current;
  6997. u32 pci_id;
  6998. u32 pci_subsys_id;
  6999. u32 bar;
  7000. u32 mps10_txfir_main;
  7001. u32 mps10_txfir_post;
  7002. u32 mps25_txfir_main;
  7003. u32 mps25_txfir_post;
  7004. u32 manufacture_ver;
  7005. u32 manufacture_time;
  7006. u32 led_global_settings;
  7007. u32 generic_cont1;
  7008. u32 mbi_version;
  7009. u32 mbi_date;
  7010. u32 misc_sig;
  7011. u32 device_capabilities;
  7012. #define NVM_CFG1_GLOB_DEVICE_CAPABILITIES_ETHERNET 0x1
  7013. #define NVM_CFG1_GLOB_DEVICE_CAPABILITIES_ISCSI 0x4
  7014. #define NVM_CFG1_GLOB_DEVICE_CAPABILITIES_ROCE 0x8
  7015. u32 power_dissipated;
  7016. u32 power_consumed;
  7017. u32 efi_version;
  7018. u32 multi_network_modes_capability;
  7019. u32 reserved[41];
  7020. };
  7021. struct nvm_cfg1_path {
  7022. u32 reserved[30];
  7023. };
  7024. struct nvm_cfg1_port {
  7025. u32 reserved__m_relocated_to_option_123;
  7026. u32 reserved__m_relocated_to_option_124;
  7027. u32 generic_cont0;
  7028. #define NVM_CFG1_PORT_DCBX_MODE_MASK 0x000F0000
  7029. #define NVM_CFG1_PORT_DCBX_MODE_OFFSET 16
  7030. #define NVM_CFG1_PORT_DCBX_MODE_DISABLED 0x0
  7031. #define NVM_CFG1_PORT_DCBX_MODE_IEEE 0x1
  7032. #define NVM_CFG1_PORT_DCBX_MODE_CEE 0x2
  7033. #define NVM_CFG1_PORT_DCBX_MODE_DYNAMIC 0x3
  7034. #define NVM_CFG1_PORT_DEFAULT_ENABLED_PROTOCOLS_MASK 0x00F00000
  7035. #define NVM_CFG1_PORT_DEFAULT_ENABLED_PROTOCOLS_OFFSET 20
  7036. #define NVM_CFG1_PORT_DEFAULT_ENABLED_PROTOCOLS_ETHERNET 0x1
  7037. #define NVM_CFG1_PORT_DEFAULT_ENABLED_PROTOCOLS_FCOE 0x2
  7038. #define NVM_CFG1_PORT_DEFAULT_ENABLED_PROTOCOLS_ISCSI 0x4
  7039. u32 pcie_cfg;
  7040. u32 features;
  7041. u32 speed_cap_mask;
  7042. #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_MASK 0x0000FFFF
  7043. #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_OFFSET 0
  7044. #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_1G 0x1
  7045. #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_10G 0x2
  7046. #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_25G 0x8
  7047. #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_40G 0x10
  7048. #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_50G 0x20
  7049. #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_BB_100G 0x40
  7050. u32 link_settings;
  7051. #define NVM_CFG1_PORT_DRV_LINK_SPEED_MASK 0x0000000F
  7052. #define NVM_CFG1_PORT_DRV_LINK_SPEED_OFFSET 0
  7053. #define NVM_CFG1_PORT_DRV_LINK_SPEED_AUTONEG 0x0
  7054. #define NVM_CFG1_PORT_DRV_LINK_SPEED_1G 0x1
  7055. #define NVM_CFG1_PORT_DRV_LINK_SPEED_10G 0x2
  7056. #define NVM_CFG1_PORT_DRV_LINK_SPEED_25G 0x4
  7057. #define NVM_CFG1_PORT_DRV_LINK_SPEED_40G 0x5
  7058. #define NVM_CFG1_PORT_DRV_LINK_SPEED_50G 0x6
  7059. #define NVM_CFG1_PORT_DRV_LINK_SPEED_BB_100G 0x7
  7060. #define NVM_CFG1_PORT_DRV_LINK_SPEED_SMARTLINQ 0x8
  7061. #define NVM_CFG1_PORT_DRV_FLOW_CONTROL_MASK 0x00000070
  7062. #define NVM_CFG1_PORT_DRV_FLOW_CONTROL_OFFSET 4
  7063. #define NVM_CFG1_PORT_DRV_FLOW_CONTROL_AUTONEG 0x1
  7064. #define NVM_CFG1_PORT_DRV_FLOW_CONTROL_RX 0x2
  7065. #define NVM_CFG1_PORT_DRV_FLOW_CONTROL_TX 0x4
  7066. u32 phy_cfg;
  7067. u32 mgmt_traffic;
  7068. u32 ext_phy;
  7069. u32 mba_cfg1;
  7070. u32 mba_cfg2;
  7071. u32 vf_cfg;
  7072. struct nvm_cfg_mac_address lldp_mac_address;
  7073. u32 led_port_settings;
  7074. u32 transceiver_00;
  7075. u32 device_ids;
  7076. u32 board_cfg;
  7077. u32 mnm_10g_cap;
  7078. u32 mnm_10g_ctrl;
  7079. u32 mnm_10g_misc;
  7080. u32 mnm_25g_cap;
  7081. u32 mnm_25g_ctrl;
  7082. u32 mnm_25g_misc;
  7083. u32 mnm_40g_cap;
  7084. u32 mnm_40g_ctrl;
  7085. u32 mnm_40g_misc;
  7086. u32 mnm_50g_cap;
  7087. u32 mnm_50g_ctrl;
  7088. u32 mnm_50g_misc;
  7089. u32 mnm_100g_cap;
  7090. u32 mnm_100g_ctrl;
  7091. u32 mnm_100g_misc;
  7092. u32 reserved[116];
  7093. };
  7094. struct nvm_cfg1_func {
  7095. struct nvm_cfg_mac_address mac_address;
  7096. u32 rsrv1;
  7097. u32 rsrv2;
  7098. u32 device_id;
  7099. u32 cmn_cfg;
  7100. u32 pci_cfg;
  7101. struct nvm_cfg_mac_address fcoe_node_wwn_mac_addr;
  7102. struct nvm_cfg_mac_address fcoe_port_wwn_mac_addr;
  7103. u32 preboot_generic_cfg;
  7104. u32 reserved[8];
  7105. };
  7106. struct nvm_cfg1 {
  7107. struct nvm_cfg1_glob glob;
  7108. struct nvm_cfg1_path path[MCP_GLOB_PATH_MAX];
  7109. struct nvm_cfg1_port port[MCP_GLOB_PORT_MAX];
  7110. struct nvm_cfg1_func func[MCP_GLOB_FUNC_MAX];
  7111. };
  7112. #endif