12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276 |
- /* SPDX-License-Identifier: GPL-2.0
- *
- * Copyright (C) 2020 Marvell International Ltd.
- *
- * https://spdx.org/licenses
- */
- #ifndef __CSRS_RVU_H__
- #define __CSRS_RVU_H__
- /**
- * @file
- *
- * Configuration and status register (CSR) address and type definitions for
- * RVU.
- *
- * This file is auto generated. Do not edit.
- *
- */
- /**
- * Enumeration rvu_af_int_vec_e
- *
- * RVU Admin Function Interrupt Vector Enumeration Enumerates the MSI-X
- * interrupt vectors. Internal: RVU maintains the state of these vectors
- * internally, and generates GIB messages for it without accessing the
- * MSI-X table region in LLC/DRAM.
- */
- #define RVU_AF_INT_VEC_E_GEN (3)
- #define RVU_AF_INT_VEC_E_MBOX (4)
- #define RVU_AF_INT_VEC_E_PFFLR (1)
- #define RVU_AF_INT_VEC_E_PFME (2)
- #define RVU_AF_INT_VEC_E_POISON (0)
- /**
- * Enumeration rvu_bar_e
- *
- * RVU Base Address Register Enumeration Enumerates the base address
- * registers. Internal: For documentation only.
- */
- #define RVU_BAR_E_RVU_PFX_BAR0(a) (0x840000000000ll + 0x1000000000ll * (a))
- #define RVU_BAR_E_RVU_PFX_BAR0_SIZE 0x10000000ull
- #define RVU_BAR_E_RVU_PFX_FUNCX_BAR2(a, b) \
- (0x840200000000ll + 0x1000000000ll * (a) + 0x2000000ll * (b))
- #define RVU_BAR_E_RVU_PFX_FUNCX_BAR2_SIZE 0x100000ull
- #define RVU_BAR_E_RVU_PFX_FUNCX_BAR4(a, b) \
- (0x840400000000ll + 0x1000000000ll * (a) + 0x2000000ll * (b))
- #define RVU_BAR_E_RVU_PFX_FUNCX_BAR4_SIZE 0x10000ull
- /**
- * Enumeration rvu_block_addr_e
- *
- * RVU Block Address Enumeration Enumerates addressing of RVU resource
- * blocks within each RVU BAR, i.e. values of RVU_FUNC_ADDR_S[BLOCK] and
- * RVU_AF_ADDR_S[BLOCK]. CNXXXX may not implement all enumerated blocks.
- * Software can read RVU_PF/RVU_VF_BLOCK_ADDR()_DISC[IMP] to discover
- * which blocks are implemented and enabled.
- */
- #define RVU_BLOCK_ADDR_E_CPTX(a) (0xa + (a))
- #define RVU_BLOCK_ADDR_E_LMT (1)
- #define RVU_BLOCK_ADDR_E_NDCX(a) (0xc + (a))
- #define RVU_BLOCK_ADDR_E_NIXX(a) (4 + (a))
- #define RVU_BLOCK_ADDR_E_NPA (3)
- #define RVU_BLOCK_ADDR_E_NPC (6)
- #define RVU_BLOCK_ADDR_E_RX(a) (0 + (a))
- #define RVU_BLOCK_ADDR_E_REEX(a) (0x14 + (a))
- #define RVU_BLOCK_ADDR_E_RVUM (0)
- #define RVU_BLOCK_ADDR_E_SSO (7)
- #define RVU_BLOCK_ADDR_E_SSOW (8)
- #define RVU_BLOCK_ADDR_E_TIM (9)
- /**
- * Enumeration rvu_block_type_e
- *
- * RVU Block Type Enumeration Enumerates values of
- * RVU_PF/RVU_VF_BLOCK_ADDR()_DISC[BTYPE].
- */
- #define RVU_BLOCK_TYPE_E_CPT (9)
- #define RVU_BLOCK_TYPE_E_DDF (0xb)
- #define RVU_BLOCK_TYPE_E_LMT (2)
- #define RVU_BLOCK_TYPE_E_NDC (0xa)
- #define RVU_BLOCK_TYPE_E_NIX (3)
- #define RVU_BLOCK_TYPE_E_NPA (4)
- #define RVU_BLOCK_TYPE_E_NPC (5)
- #define RVU_BLOCK_TYPE_E_RAD (0xd)
- #define RVU_BLOCK_TYPE_E_REE (0xe)
- #define RVU_BLOCK_TYPE_E_RVUM (0)
- #define RVU_BLOCK_TYPE_E_SSO (6)
- #define RVU_BLOCK_TYPE_E_SSOW (7)
- #define RVU_BLOCK_TYPE_E_TIM (8)
- #define RVU_BLOCK_TYPE_E_ZIP (0xc)
- /**
- * Enumeration rvu_bus_lf_e
- *
- * INTERNAL: RVU Bus LF Range Enumeration Enumerates the LF range for
- * the RVU bus. Internal: This is an enum used in csr3 virtual equations.
- */
- #define RVU_BUS_LF_E_RVU_BUS_LFX(a) (0 + 0x2000000 * (a))
- /**
- * Enumeration rvu_bus_lf_slot_e
- *
- * INTERNAL: RVU Bus LF Slot Range Enumeration Enumerates the LF and
- * Slot range for the RVU bus. Internal: This is an enum used in csr3
- * virtual equations.
- */
- #define RVU_BUS_LF_SLOT_E_RVU_BUS_LFX_SLOTX(a, b) \
- (0 + 0x2000000 * (a) + 0x1000 * (b))
- /**
- * Enumeration rvu_bus_pf_e
- *
- * INTERNAL: RVU Bus PF Range Enumeration Enumerates the PF range for
- * the RVU bus. Internal: This is an enum used in csr3 virtual equations.
- */
- #define RVU_BUS_PF_E_RVU_BUS_PFX(a) (0ll + 0x1000000000ll * (a))
- /**
- * Enumeration rvu_bus_pfvf_e
- *
- * INTERNAL: RVU Bus PFVF Range Enumeration Enumerates the PF and VF
- * ranges for the RVU bus. Internal: This is an enum used in csr3 virtual
- * equations.
- */
- #define RVU_BUS_PFVF_E_RVU_BUS_PFX(a) (0 + 0x2000000 * (a))
- #define RVU_BUS_PFVF_E_RVU_BUS_VFX(a) (0 + 0x2000000 * (a))
- /**
- * Enumeration rvu_busbar_e
- *
- * INTERNAL: RVU Bus Base Address Region Enumeration Enumerates the base
- * address region for the RVU bus. Internal: This is an enum used in csr3
- * virtual equations.
- */
- #define RVU_BUSBAR_E_RVU_BUSBAR0 (0)
- #define RVU_BUSBAR_E_RVU_BUSBAR2 (0x200000000ll)
- /**
- * Enumeration rvu_busdid_e
- *
- * INTERNAL: RVU Bus DID Enumeration Enumerates the DID offset for the
- * RVU bus. Internal: This is an enum used in csr3 virtual equations.
- */
- #define RVU_BUSDID_E_RVU_BUSDID (0x840000000000ll)
- /**
- * Enumeration rvu_pf_int_vec_e
- *
- * RVU PF Interrupt Vector Enumeration Enumerates the MSI-X interrupt
- * vectors.
- */
- #define RVU_PF_INT_VEC_E_AFPF_MBOX (6)
- #define RVU_PF_INT_VEC_E_VFFLRX(a) (0 + (a))
- #define RVU_PF_INT_VEC_E_VFMEX(a) (2 + (a))
- #define RVU_PF_INT_VEC_E_VFPF_MBOXX(a) (4 + (a))
- /**
- * Enumeration rvu_vf_int_vec_e
- *
- * RVU VF Interrupt Vector Enumeration Enumerates the MSI-X interrupt
- * vectors.
- */
- #define RVU_VF_INT_VEC_E_MBOX (0)
- /**
- * Structure rvu_af_addr_s
- *
- * RVU Admin Function Register Address Structure Address format for
- * accessing shared Admin Function (AF) registers in RVU PF BAR0. These
- * registers may be accessed by all RVU PFs whose
- * RVU_PRIV_PF()_CFG[AF_ENA] bit is set.
- */
- union rvu_af_addr_s {
- u64 u;
- struct rvu_af_addr_s_s {
- u64 addr : 28;
- u64 block : 5;
- u64 reserved_33_63 : 31;
- } s;
- /* struct rvu_af_addr_s_s cn; */
- };
- /**
- * Structure rvu_func_addr_s
- *
- * RVU Function-unique Address Structure Address format for accessing
- * function-unique registers in RVU PF/FUNC BAR2.
- */
- union rvu_func_addr_s {
- u32 u;
- struct rvu_func_addr_s_s {
- u32 addr : 12;
- u32 lf_slot : 8;
- u32 block : 5;
- u32 reserved_25_31 : 7;
- } s;
- /* struct rvu_func_addr_s_s cn; */
- };
- /**
- * Structure rvu_msix_vec_s
- *
- * RVU MSI-X Vector Structure Format of entries in the RVU MSI-X table
- * region in LLC/DRAM. See RVU_PRIV_PF()_MSIX_CFG.
- */
- union rvu_msix_vec_s {
- u64 u[2];
- struct rvu_msix_vec_s_s {
- u64 addr : 64;
- u64 data : 32;
- u64 mask : 1;
- u64 pend : 1;
- u64 reserved_98_127 : 30;
- } s;
- /* struct rvu_msix_vec_s_s cn; */
- };
- /**
- * Structure rvu_pf_func_s
- *
- * RVU PF Function Identification Structure Identifies an RVU PF/VF, and
- * format of *_PRIV_LF()_CFG[PF_FUNC] in RVU resource blocks, e.g.
- * NPA_PRIV_LF()_CFG[PF_FUNC]. Internal: Also used for PF/VF
- * identification on inter-coprocessor hardware interfaces (NPA, SSO,
- * CPT, ...).
- */
- union rvu_pf_func_s {
- u32 u;
- struct rvu_pf_func_s_s {
- u32 func : 10;
- u32 pf : 6;
- u32 reserved_16_31 : 16;
- } s;
- /* struct rvu_pf_func_s_s cn; */
- };
- /**
- * Register (RVU_PF_BAR0) rvu_af_afpf#_mbox#
- *
- * RVU Admin Function AF/PF Mailbox Registers
- */
- union rvu_af_afpfx_mboxx {
- u64 u;
- struct rvu_af_afpfx_mboxx_s {
- u64 data : 64;
- } s;
- /* struct rvu_af_afpfx_mboxx_s cn; */
- };
- static inline u64 RVU_AF_AFPFX_MBOXX(u64 a, u64 b)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_AFPFX_MBOXX(u64 a, u64 b)
- {
- return 0x2000 + 0x10 * a + 8 * b;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_bar2_alias#
- *
- * INTERNAL: RVU Admin Function BAR2 Alias Registers These registers
- * alias to the RVU BAR2 registers for the PF and function selected by
- * RVU_AF_BAR2_SEL[PF_FUNC]. Internal: Not implemented. Placeholder for
- * bug33464.
- */
- union rvu_af_bar2_aliasx {
- u64 u;
- struct rvu_af_bar2_aliasx_s {
- u64 data : 64;
- } s;
- /* struct rvu_af_bar2_aliasx_s cn; */
- };
- static inline u64 RVU_AF_BAR2_ALIASX(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_BAR2_ALIASX(u64 a)
- {
- return 0x9100000 + 8 * a;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_bar2_sel
- *
- * INTERNAL: RVU Admin Function BAR2 Select Register This register
- * configures BAR2 accesses from the RVU_AF_BAR2_ALIAS() registers in
- * BAR0. Internal: Not implemented. Placeholder for bug33464.
- */
- union rvu_af_bar2_sel {
- u64 u;
- struct rvu_af_bar2_sel_s {
- u64 alias_pf_func : 16;
- u64 alias_ena : 1;
- u64 reserved_17_63 : 47;
- } s;
- /* struct rvu_af_bar2_sel_s cn; */
- };
- static inline u64 RVU_AF_BAR2_SEL(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_BAR2_SEL(void)
- {
- return 0x9000000;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_blk_rst
- *
- * RVU Master Admin Function Block Reset Register
- */
- union rvu_af_blk_rst {
- u64 u;
- struct rvu_af_blk_rst_s {
- u64 rst : 1;
- u64 reserved_1_62 : 62;
- u64 busy : 1;
- } s;
- /* struct rvu_af_blk_rst_s cn; */
- };
- static inline u64 RVU_AF_BLK_RST(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_BLK_RST(void)
- {
- return 0x30;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_bp_test
- *
- * INTERNAL: RVUM Backpressure Test Registers
- */
- union rvu_af_bp_test {
- u64 u;
- struct rvu_af_bp_test_s {
- u64 lfsr_freq : 12;
- u64 reserved_12_15 : 4;
- u64 bp_cfg : 16;
- u64 enable : 8;
- u64 reserved_40_63 : 24;
- } s;
- /* struct rvu_af_bp_test_s cn; */
- };
- static inline u64 RVU_AF_BP_TEST(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_BP_TEST(void)
- {
- return 0x4000;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_eco
- *
- * INTERNAL: RVU Admin Function ECO Register
- */
- union rvu_af_eco {
- u64 u;
- struct rvu_af_eco_s {
- u64 eco_rw : 32;
- u64 reserved_32_63 : 32;
- } s;
- /* struct rvu_af_eco_s cn; */
- };
- static inline u64 RVU_AF_ECO(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_ECO(void)
- {
- return 0x20;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_gen_int
- *
- * RVU Admin Function General Interrupt Register This register contains
- * General interrupt summary bits.
- */
- union rvu_af_gen_int {
- u64 u;
- struct rvu_af_gen_int_s {
- u64 unmapped : 1;
- u64 msix_fault : 1;
- u64 reserved_2_63 : 62;
- } s;
- /* struct rvu_af_gen_int_s cn; */
- };
- static inline u64 RVU_AF_GEN_INT(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_GEN_INT(void)
- {
- return 0x120;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_gen_int_ena_w1c
- *
- * RVU Admin Function General Interrupt Enable Clear Register This
- * register clears interrupt enable bits.
- */
- union rvu_af_gen_int_ena_w1c {
- u64 u;
- struct rvu_af_gen_int_ena_w1c_s {
- u64 unmapped : 1;
- u64 msix_fault : 1;
- u64 reserved_2_63 : 62;
- } s;
- /* struct rvu_af_gen_int_ena_w1c_s cn; */
- };
- static inline u64 RVU_AF_GEN_INT_ENA_W1C(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_GEN_INT_ENA_W1C(void)
- {
- return 0x138;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_gen_int_ena_w1s
- *
- * RVU Admin Function General Interrupt Enable Set Register This register
- * sets interrupt enable bits.
- */
- union rvu_af_gen_int_ena_w1s {
- u64 u;
- struct rvu_af_gen_int_ena_w1s_s {
- u64 unmapped : 1;
- u64 msix_fault : 1;
- u64 reserved_2_63 : 62;
- } s;
- /* struct rvu_af_gen_int_ena_w1s_s cn; */
- };
- static inline u64 RVU_AF_GEN_INT_ENA_W1S(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_GEN_INT_ENA_W1S(void)
- {
- return 0x130;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_gen_int_w1s
- *
- * RVU Admin Function General Interrupt Set Register This register sets
- * interrupt bits.
- */
- union rvu_af_gen_int_w1s {
- u64 u;
- struct rvu_af_gen_int_w1s_s {
- u64 unmapped : 1;
- u64 msix_fault : 1;
- u64 reserved_2_63 : 62;
- } s;
- /* struct rvu_af_gen_int_w1s_s cn; */
- };
- static inline u64 RVU_AF_GEN_INT_W1S(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_GEN_INT_W1S(void)
- {
- return 0x128;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_hwvf_rst
- *
- * RVU Admin Function Hardware VF Reset Register
- */
- union rvu_af_hwvf_rst {
- u64 u;
- struct rvu_af_hwvf_rst_s {
- u64 hwvf : 8;
- u64 reserved_8_11 : 4;
- u64 exec : 1;
- u64 reserved_13_63 : 51;
- } s;
- /* struct rvu_af_hwvf_rst_s cn; */
- };
- static inline u64 RVU_AF_HWVF_RST(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_HWVF_RST(void)
- {
- return 0x2850;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_msixtr_base
- *
- * RVU Admin Function MSI-X Table Region Base-Address Register
- */
- union rvu_af_msixtr_base {
- u64 u;
- struct rvu_af_msixtr_base_s {
- u64 reserved_0_6 : 7;
- u64 addr : 46;
- u64 reserved_53_63 : 11;
- } s;
- /* struct rvu_af_msixtr_base_s cn; */
- };
- static inline u64 RVU_AF_MSIXTR_BASE(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_MSIXTR_BASE(void)
- {
- return 0x10;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_pf#_vf_bar4_addr
- *
- * RVU Admin Function PF/VF BAR4 Address Registers
- */
- union rvu_af_pfx_vf_bar4_addr {
- u64 u;
- struct rvu_af_pfx_vf_bar4_addr_s {
- u64 reserved_0_15 : 16;
- u64 addr : 48;
- } s;
- /* struct rvu_af_pfx_vf_bar4_addr_s cn; */
- };
- static inline u64 RVU_AF_PFX_VF_BAR4_ADDR(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_PFX_VF_BAR4_ADDR(u64 a)
- {
- return 0x1000 + 0x10 * a;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_pf_bar4_addr
- *
- * RVU Admin Function PF BAR4 Address Registers
- */
- union rvu_af_pf_bar4_addr {
- u64 u;
- struct rvu_af_pf_bar4_addr_s {
- u64 reserved_0_15 : 16;
- u64 addr : 48;
- } s;
- /* struct rvu_af_pf_bar4_addr_s cn; */
- };
- static inline u64 RVU_AF_PF_BAR4_ADDR(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_PF_BAR4_ADDR(void)
- {
- return 0x40;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_pf_rst
- *
- * RVU Admin Function PF Reset Register
- */
- union rvu_af_pf_rst {
- u64 u;
- struct rvu_af_pf_rst_s {
- u64 pf : 4;
- u64 reserved_4_11 : 8;
- u64 exec : 1;
- u64 reserved_13_63 : 51;
- } s;
- /* struct rvu_af_pf_rst_s cn; */
- };
- static inline u64 RVU_AF_PF_RST(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_PF_RST(void)
- {
- return 0x2840;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_pfaf_mbox_int
- *
- * RVU Admin Function PF to AF Mailbox Interrupt Registers
- */
- union rvu_af_pfaf_mbox_int {
- u64 u;
- struct rvu_af_pfaf_mbox_int_s {
- u64 mbox : 16;
- u64 reserved_16_63 : 48;
- } s;
- /* struct rvu_af_pfaf_mbox_int_s cn; */
- };
- static inline u64 RVU_AF_PFAF_MBOX_INT(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_PFAF_MBOX_INT(void)
- {
- return 0x2880;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_pfaf_mbox_int_ena_w1c
- *
- * RVU Admin Function PF to AF Mailbox Interrupt Enable Clear Registers
- * This register clears interrupt enable bits.
- */
- union rvu_af_pfaf_mbox_int_ena_w1c {
- u64 u;
- struct rvu_af_pfaf_mbox_int_ena_w1c_s {
- u64 mbox : 16;
- u64 reserved_16_63 : 48;
- } s;
- /* struct rvu_af_pfaf_mbox_int_ena_w1c_s cn; */
- };
- static inline u64 RVU_AF_PFAF_MBOX_INT_ENA_W1C(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_PFAF_MBOX_INT_ENA_W1C(void)
- {
- return 0x2898;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_pfaf_mbox_int_ena_w1s
- *
- * RVU Admin Function PF to AF Mailbox Interrupt Enable Set Registers
- * This register sets interrupt enable bits.
- */
- union rvu_af_pfaf_mbox_int_ena_w1s {
- u64 u;
- struct rvu_af_pfaf_mbox_int_ena_w1s_s {
- u64 mbox : 16;
- u64 reserved_16_63 : 48;
- } s;
- /* struct rvu_af_pfaf_mbox_int_ena_w1s_s cn; */
- };
- static inline u64 RVU_AF_PFAF_MBOX_INT_ENA_W1S(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_PFAF_MBOX_INT_ENA_W1S(void)
- {
- return 0x2890;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_pfaf_mbox_int_w1s
- *
- * RVU Admin Function PF to AF Mailbox Interrupt Set Registers This
- * register sets interrupt bits.
- */
- union rvu_af_pfaf_mbox_int_w1s {
- u64 u;
- struct rvu_af_pfaf_mbox_int_w1s_s {
- u64 mbox : 16;
- u64 reserved_16_63 : 48;
- } s;
- /* struct rvu_af_pfaf_mbox_int_w1s_s cn; */
- };
- static inline u64 RVU_AF_PFAF_MBOX_INT_W1S(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_PFAF_MBOX_INT_W1S(void)
- {
- return 0x2888;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_pfflr_int
- *
- * RVU Admin Function PF Function Level Reset Interrupt Registers
- */
- union rvu_af_pfflr_int {
- u64 u;
- struct rvu_af_pfflr_int_s {
- u64 flr : 16;
- u64 reserved_16_63 : 48;
- } s;
- /* struct rvu_af_pfflr_int_s cn; */
- };
- static inline u64 RVU_AF_PFFLR_INT(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_PFFLR_INT(void)
- {
- return 0x28a0;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_pfflr_int_ena_w1c
- *
- * RVU Admin Function PF Function Level Reset Interrupt Enable Clear
- * Registers This register clears interrupt enable bits.
- */
- union rvu_af_pfflr_int_ena_w1c {
- u64 u;
- struct rvu_af_pfflr_int_ena_w1c_s {
- u64 flr : 16;
- u64 reserved_16_63 : 48;
- } s;
- /* struct rvu_af_pfflr_int_ena_w1c_s cn; */
- };
- static inline u64 RVU_AF_PFFLR_INT_ENA_W1C(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_PFFLR_INT_ENA_W1C(void)
- {
- return 0x28b8;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_pfflr_int_ena_w1s
- *
- * RVU Admin Function PF Function Level Reset Interrupt Enable Set
- * Registers This register sets interrupt enable bits.
- */
- union rvu_af_pfflr_int_ena_w1s {
- u64 u;
- struct rvu_af_pfflr_int_ena_w1s_s {
- u64 flr : 16;
- u64 reserved_16_63 : 48;
- } s;
- /* struct rvu_af_pfflr_int_ena_w1s_s cn; */
- };
- static inline u64 RVU_AF_PFFLR_INT_ENA_W1S(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_PFFLR_INT_ENA_W1S(void)
- {
- return 0x28b0;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_pfflr_int_w1s
- *
- * RVU Admin Function PF Function Level Reset Interrupt Set Registers
- * This register sets interrupt bits.
- */
- union rvu_af_pfflr_int_w1s {
- u64 u;
- struct rvu_af_pfflr_int_w1s_s {
- u64 flr : 16;
- u64 reserved_16_63 : 48;
- } s;
- /* struct rvu_af_pfflr_int_w1s_s cn; */
- };
- static inline u64 RVU_AF_PFFLR_INT_W1S(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_PFFLR_INT_W1S(void)
- {
- return 0x28a8;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_pfme_int
- *
- * RVU Admin Function PF Bus Master Enable Interrupt Registers
- */
- union rvu_af_pfme_int {
- u64 u;
- struct rvu_af_pfme_int_s {
- u64 me : 16;
- u64 reserved_16_63 : 48;
- } s;
- /* struct rvu_af_pfme_int_s cn; */
- };
- static inline u64 RVU_AF_PFME_INT(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_PFME_INT(void)
- {
- return 0x28c0;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_pfme_int_ena_w1c
- *
- * RVU Admin Function PF Bus Master Enable Interrupt Enable Clear
- * Registers This register clears interrupt enable bits.
- */
- union rvu_af_pfme_int_ena_w1c {
- u64 u;
- struct rvu_af_pfme_int_ena_w1c_s {
- u64 me : 16;
- u64 reserved_16_63 : 48;
- } s;
- /* struct rvu_af_pfme_int_ena_w1c_s cn; */
- };
- static inline u64 RVU_AF_PFME_INT_ENA_W1C(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_PFME_INT_ENA_W1C(void)
- {
- return 0x28d8;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_pfme_int_ena_w1s
- *
- * RVU Admin Function PF Bus Master Enable Interrupt Enable Set Registers
- * This register sets interrupt enable bits.
- */
- union rvu_af_pfme_int_ena_w1s {
- u64 u;
- struct rvu_af_pfme_int_ena_w1s_s {
- u64 me : 16;
- u64 reserved_16_63 : 48;
- } s;
- /* struct rvu_af_pfme_int_ena_w1s_s cn; */
- };
- static inline u64 RVU_AF_PFME_INT_ENA_W1S(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_PFME_INT_ENA_W1S(void)
- {
- return 0x28d0;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_pfme_int_w1s
- *
- * RVU Admin Function PF Bus Master Enable Interrupt Set Registers This
- * register sets interrupt bits.
- */
- union rvu_af_pfme_int_w1s {
- u64 u;
- struct rvu_af_pfme_int_w1s_s {
- u64 me : 16;
- u64 reserved_16_63 : 48;
- } s;
- /* struct rvu_af_pfme_int_w1s_s cn; */
- };
- static inline u64 RVU_AF_PFME_INT_W1S(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_PFME_INT_W1S(void)
- {
- return 0x28c8;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_pfme_status
- *
- * RVU Admin Function PF Bus Master Enable Status Registers
- */
- union rvu_af_pfme_status {
- u64 u;
- struct rvu_af_pfme_status_s {
- u64 me : 16;
- u64 reserved_16_63 : 48;
- } s;
- /* struct rvu_af_pfme_status_s cn; */
- };
- static inline u64 RVU_AF_PFME_STATUS(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_PFME_STATUS(void)
- {
- return 0x2800;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_pftrpend
- *
- * RVU Admin Function PF Transaction Pending Registers
- */
- union rvu_af_pftrpend {
- u64 u;
- struct rvu_af_pftrpend_s {
- u64 trpend : 16;
- u64 reserved_16_63 : 48;
- } s;
- /* struct rvu_af_pftrpend_s cn; */
- };
- static inline u64 RVU_AF_PFTRPEND(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_PFTRPEND(void)
- {
- return 0x2810;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_pftrpend_w1s
- *
- * RVU Admin Function PF Transaction Pending Set Registers This register
- * reads or sets bits.
- */
- union rvu_af_pftrpend_w1s {
- u64 u;
- struct rvu_af_pftrpend_w1s_s {
- u64 trpend : 16;
- u64 reserved_16_63 : 48;
- } s;
- /* struct rvu_af_pftrpend_w1s_s cn; */
- };
- static inline u64 RVU_AF_PFTRPEND_W1S(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_PFTRPEND_W1S(void)
- {
- return 0x2820;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_ras
- *
- * RVU Admin Function RAS Interrupt Register This register is intended
- * for delivery of RAS events to the SCP, so should be ignored by OS
- * drivers.
- */
- union rvu_af_ras {
- u64 u;
- struct rvu_af_ras_s {
- u64 msix_poison : 1;
- u64 reserved_1_63 : 63;
- } s;
- /* struct rvu_af_ras_s cn; */
- };
- static inline u64 RVU_AF_RAS(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_RAS(void)
- {
- return 0x100;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_ras_ena_w1c
- *
- * RVU Admin Function RAS Interrupt Enable Clear Register This register
- * clears interrupt enable bits.
- */
- union rvu_af_ras_ena_w1c {
- u64 u;
- struct rvu_af_ras_ena_w1c_s {
- u64 msix_poison : 1;
- u64 reserved_1_63 : 63;
- } s;
- /* struct rvu_af_ras_ena_w1c_s cn; */
- };
- static inline u64 RVU_AF_RAS_ENA_W1C(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_RAS_ENA_W1C(void)
- {
- return 0x118;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_ras_ena_w1s
- *
- * RVU Admin Function RAS Interrupt Enable Set Register This register
- * sets interrupt enable bits.
- */
- union rvu_af_ras_ena_w1s {
- u64 u;
- struct rvu_af_ras_ena_w1s_s {
- u64 msix_poison : 1;
- u64 reserved_1_63 : 63;
- } s;
- /* struct rvu_af_ras_ena_w1s_s cn; */
- };
- static inline u64 RVU_AF_RAS_ENA_W1S(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_RAS_ENA_W1S(void)
- {
- return 0x110;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_af_ras_w1s
- *
- * RVU Admin Function RAS Interrupt Set Register This register sets
- * interrupt bits.
- */
- union rvu_af_ras_w1s {
- u64 u;
- struct rvu_af_ras_w1s_s {
- u64 msix_poison : 1;
- u64 reserved_1_63 : 63;
- } s;
- /* struct rvu_af_ras_w1s_s cn; */
- };
- static inline u64 RVU_AF_RAS_W1S(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_AF_RAS_W1S(void)
- {
- return 0x108;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_block_addr#_disc
- *
- * RVU PF Block Address Discovery Registers These registers allow each PF
- * driver to discover block resources that are provisioned to its PF. The
- * register's BLOCK_ADDR index is enumerated by RVU_BLOCK_ADDR_E.
- */
- union rvu_pf_block_addrx_disc {
- u64 u;
- struct rvu_pf_block_addrx_disc_s {
- u64 num_lfs : 9;
- u64 reserved_9_10 : 2;
- u64 imp : 1;
- u64 rid : 8;
- u64 btype : 8;
- u64 reserved_28_63 : 36;
- } s;
- /* struct rvu_pf_block_addrx_disc_s cn; */
- };
- static inline u64 RVU_PF_BLOCK_ADDRX_DISC(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_BLOCK_ADDRX_DISC(u64 a)
- {
- return 0x200 + 8 * a;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_int
- *
- * RVU PF Interrupt Registers
- */
- union rvu_pf_int {
- u64 u;
- struct rvu_pf_int_s {
- u64 mbox : 1;
- u64 reserved_1_63 : 63;
- } s;
- /* struct rvu_pf_int_s cn; */
- };
- static inline u64 RVU_PF_INT(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_INT(void)
- {
- return 0xc20;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_int_ena_w1c
- *
- * RVU PF Interrupt Enable Clear Register This register clears interrupt
- * enable bits.
- */
- union rvu_pf_int_ena_w1c {
- u64 u;
- struct rvu_pf_int_ena_w1c_s {
- u64 mbox : 1;
- u64 reserved_1_63 : 63;
- } s;
- /* struct rvu_pf_int_ena_w1c_s cn; */
- };
- static inline u64 RVU_PF_INT_ENA_W1C(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_INT_ENA_W1C(void)
- {
- return 0xc38;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_int_ena_w1s
- *
- * RVU PF Interrupt Enable Set Register This register sets interrupt
- * enable bits.
- */
- union rvu_pf_int_ena_w1s {
- u64 u;
- struct rvu_pf_int_ena_w1s_s {
- u64 mbox : 1;
- u64 reserved_1_63 : 63;
- } s;
- /* struct rvu_pf_int_ena_w1s_s cn; */
- };
- static inline u64 RVU_PF_INT_ENA_W1S(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_INT_ENA_W1S(void)
- {
- return 0xc30;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_int_w1s
- *
- * RVU PF Interrupt Set Register This register sets interrupt bits.
- */
- union rvu_pf_int_w1s {
- u64 u;
- struct rvu_pf_int_w1s_s {
- u64 mbox : 1;
- u64 reserved_1_63 : 63;
- } s;
- /* struct rvu_pf_int_w1s_s cn; */
- };
- static inline u64 RVU_PF_INT_W1S(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_INT_W1S(void)
- {
- return 0xc28;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_msix_pba#
- *
- * RVU PF MSI-X Pending-Bit-Array Registers This register is the MSI-X PF
- * PBA table.
- */
- union rvu_pf_msix_pbax {
- u64 u;
- struct rvu_pf_msix_pbax_s {
- u64 pend : 64;
- } s;
- /* struct rvu_pf_msix_pbax_s cn; */
- };
- static inline u64 RVU_PF_MSIX_PBAX(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_MSIX_PBAX(u64 a)
- {
- return 0xf0000 + 8 * a;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_msix_vec#_addr
- *
- * RVU PF MSI-X Vector-Table Address Registers These registers and
- * RVU_PF_MSIX_VEC()_CTL form the PF MSI-X vector table. The number of
- * MSI-X vectors for a given PF is specified by
- * RVU_PRIV_PF()_MSIX_CFG[PF_MSIXT_SIZEM1] (plus 1). Software must do a
- * read after any writes to the MSI-X vector table to ensure that the
- * writes have completed before interrupts are generated to the modified
- * vectors.
- */
- union rvu_pf_msix_vecx_addr {
- u64 u;
- struct rvu_pf_msix_vecx_addr_s {
- u64 secvec : 1;
- u64 reserved_1 : 1;
- u64 addr : 51;
- u64 reserved_53_63 : 11;
- } s;
- /* struct rvu_pf_msix_vecx_addr_s cn; */
- };
- static inline u64 RVU_PF_MSIX_VECX_ADDR(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_MSIX_VECX_ADDR(u64 a)
- {
- return 0x80000 + 0x10 * a;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_msix_vec#_ctl
- *
- * RVU PF MSI-X Vector-Table Control and Data Registers These registers
- * and RVU_PF_MSIX_VEC()_ADDR form the PF MSI-X vector table.
- */
- union rvu_pf_msix_vecx_ctl {
- u64 u;
- struct rvu_pf_msix_vecx_ctl_s {
- u64 data : 32;
- u64 mask : 1;
- u64 reserved_33_63 : 31;
- } s;
- /* struct rvu_pf_msix_vecx_ctl_s cn; */
- };
- static inline u64 RVU_PF_MSIX_VECX_CTL(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_MSIX_VECX_CTL(u64 a)
- {
- return 0x80008 + 0x10 * a;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_pfaf_mbox#
- *
- * RVU PF/AF Mailbox Registers
- */
- union rvu_pf_pfaf_mboxx {
- u64 u;
- struct rvu_pf_pfaf_mboxx_s {
- u64 data : 64;
- } s;
- /* struct rvu_pf_pfaf_mboxx_s cn; */
- };
- static inline u64 RVU_PF_PFAF_MBOXX(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_PFAF_MBOXX(u64 a)
- {
- return 0xc00 + 8 * a;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_vf#_pfvf_mbox#
- *
- * RVU PF/VF Mailbox Registers
- */
- union rvu_pf_vfx_pfvf_mboxx {
- u64 u;
- struct rvu_pf_vfx_pfvf_mboxx_s {
- u64 data : 64;
- } s;
- /* struct rvu_pf_vfx_pfvf_mboxx_s cn; */
- };
- static inline u64 RVU_PF_VFX_PFVF_MBOXX(u64 a, u64 b)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_VFX_PFVF_MBOXX(u64 a, u64 b)
- {
- return 0 + 0x1000 * a + 8 * b;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_vf_bar4_addr
- *
- * RVU PF VF BAR4 Address Registers
- */
- union rvu_pf_vf_bar4_addr {
- u64 u;
- struct rvu_pf_vf_bar4_addr_s {
- u64 reserved_0_15 : 16;
- u64 addr : 48;
- } s;
- /* struct rvu_pf_vf_bar4_addr_s cn; */
- };
- static inline u64 RVU_PF_VF_BAR4_ADDR(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_VF_BAR4_ADDR(void)
- {
- return 0x10;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_vfflr_int#
- *
- * RVU PF VF Function Level Reset Interrupt Registers
- */
- union rvu_pf_vfflr_intx {
- u64 u;
- struct rvu_pf_vfflr_intx_s {
- u64 flr : 64;
- } s;
- /* struct rvu_pf_vfflr_intx_s cn; */
- };
- static inline u64 RVU_PF_VFFLR_INTX(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_VFFLR_INTX(u64 a)
- {
- return 0x900 + 8 * a;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_vfflr_int_ena_w1c#
- *
- * RVU PF VF Function Level Reset Interrupt Enable Clear Registers This
- * register clears interrupt enable bits.
- */
- union rvu_pf_vfflr_int_ena_w1cx {
- u64 u;
- struct rvu_pf_vfflr_int_ena_w1cx_s {
- u64 flr : 64;
- } s;
- /* struct rvu_pf_vfflr_int_ena_w1cx_s cn; */
- };
- static inline u64 RVU_PF_VFFLR_INT_ENA_W1CX(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_VFFLR_INT_ENA_W1CX(u64 a)
- {
- return 0x960 + 8 * a;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_vfflr_int_ena_w1s#
- *
- * RVU PF VF Function Level Reset Interrupt Enable Set Registers This
- * register sets interrupt enable bits.
- */
- union rvu_pf_vfflr_int_ena_w1sx {
- u64 u;
- struct rvu_pf_vfflr_int_ena_w1sx_s {
- u64 flr : 64;
- } s;
- /* struct rvu_pf_vfflr_int_ena_w1sx_s cn; */
- };
- static inline u64 RVU_PF_VFFLR_INT_ENA_W1SX(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_VFFLR_INT_ENA_W1SX(u64 a)
- {
- return 0x940 + 8 * a;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_vfflr_int_w1s#
- *
- * RVU PF VF Function Level Reset Interrupt Set Registers This register
- * sets interrupt bits.
- */
- union rvu_pf_vfflr_int_w1sx {
- u64 u;
- struct rvu_pf_vfflr_int_w1sx_s {
- u64 flr : 64;
- } s;
- /* struct rvu_pf_vfflr_int_w1sx_s cn; */
- };
- static inline u64 RVU_PF_VFFLR_INT_W1SX(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_VFFLR_INT_W1SX(u64 a)
- {
- return 0x920 + 8 * a;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_vfme_int#
- *
- * RVU PF VF Bus Master Enable Interrupt Registers
- */
- union rvu_pf_vfme_intx {
- u64 u;
- struct rvu_pf_vfme_intx_s {
- u64 me : 64;
- } s;
- /* struct rvu_pf_vfme_intx_s cn; */
- };
- static inline u64 RVU_PF_VFME_INTX(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_VFME_INTX(u64 a)
- {
- return 0x980 + 8 * a;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_vfme_int_ena_w1c#
- *
- * RVU PF VF Bus Master Enable Interrupt Enable Clear Registers This
- * register clears interrupt enable bits.
- */
- union rvu_pf_vfme_int_ena_w1cx {
- u64 u;
- struct rvu_pf_vfme_int_ena_w1cx_s {
- u64 me : 64;
- } s;
- /* struct rvu_pf_vfme_int_ena_w1cx_s cn; */
- };
- static inline u64 RVU_PF_VFME_INT_ENA_W1CX(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_VFME_INT_ENA_W1CX(u64 a)
- {
- return 0x9e0 + 8 * a;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_vfme_int_ena_w1s#
- *
- * RVU PF VF Bus Master Enable Interrupt Enable Set Registers This
- * register sets interrupt enable bits.
- */
- union rvu_pf_vfme_int_ena_w1sx {
- u64 u;
- struct rvu_pf_vfme_int_ena_w1sx_s {
- u64 me : 64;
- } s;
- /* struct rvu_pf_vfme_int_ena_w1sx_s cn; */
- };
- static inline u64 RVU_PF_VFME_INT_ENA_W1SX(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_VFME_INT_ENA_W1SX(u64 a)
- {
- return 0x9c0 + 8 * a;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_vfme_int_w1s#
- *
- * RVU PF VF Bus Master Enable Interrupt Set Registers This register sets
- * interrupt bits.
- */
- union rvu_pf_vfme_int_w1sx {
- u64 u;
- struct rvu_pf_vfme_int_w1sx_s {
- u64 me : 64;
- } s;
- /* struct rvu_pf_vfme_int_w1sx_s cn; */
- };
- static inline u64 RVU_PF_VFME_INT_W1SX(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_VFME_INT_W1SX(u64 a)
- {
- return 0x9a0 + 8 * a;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_vfme_status#
- *
- * RVU PF VF Bus Master Enable Status Registers
- */
- union rvu_pf_vfme_statusx {
- u64 u;
- struct rvu_pf_vfme_statusx_s {
- u64 me : 64;
- } s;
- /* struct rvu_pf_vfme_statusx_s cn; */
- };
- static inline u64 RVU_PF_VFME_STATUSX(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_VFME_STATUSX(u64 a)
- {
- return 0x800 + 8 * a;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_vfpf_mbox_int#
- *
- * RVU VF to PF Mailbox Interrupt Registers
- */
- union rvu_pf_vfpf_mbox_intx {
- u64 u;
- struct rvu_pf_vfpf_mbox_intx_s {
- u64 mbox : 64;
- } s;
- /* struct rvu_pf_vfpf_mbox_intx_s cn; */
- };
- static inline u64 RVU_PF_VFPF_MBOX_INTX(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_VFPF_MBOX_INTX(u64 a)
- {
- return 0x880 + 8 * a;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_vfpf_mbox_int_ena_w1c#
- *
- * RVU VF to PF Mailbox Interrupt Enable Clear Registers This register
- * clears interrupt enable bits.
- */
- union rvu_pf_vfpf_mbox_int_ena_w1cx {
- u64 u;
- struct rvu_pf_vfpf_mbox_int_ena_w1cx_s {
- u64 mbox : 64;
- } s;
- /* struct rvu_pf_vfpf_mbox_int_ena_w1cx_s cn; */
- };
- static inline u64 RVU_PF_VFPF_MBOX_INT_ENA_W1CX(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_VFPF_MBOX_INT_ENA_W1CX(u64 a)
- {
- return 0x8e0 + 8 * a;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_vfpf_mbox_int_ena_w1s#
- *
- * RVU VF to PF Mailbox Interrupt Enable Set Registers This register sets
- * interrupt enable bits.
- */
- union rvu_pf_vfpf_mbox_int_ena_w1sx {
- u64 u;
- struct rvu_pf_vfpf_mbox_int_ena_w1sx_s {
- u64 mbox : 64;
- } s;
- /* struct rvu_pf_vfpf_mbox_int_ena_w1sx_s cn; */
- };
- static inline u64 RVU_PF_VFPF_MBOX_INT_ENA_W1SX(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_VFPF_MBOX_INT_ENA_W1SX(u64 a)
- {
- return 0x8c0 + 8 * a;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_vfpf_mbox_int_w1s#
- *
- * RVU VF to PF Mailbox Interrupt Set Registers This register sets
- * interrupt bits.
- */
- union rvu_pf_vfpf_mbox_int_w1sx {
- u64 u;
- struct rvu_pf_vfpf_mbox_int_w1sx_s {
- u64 mbox : 64;
- } s;
- /* struct rvu_pf_vfpf_mbox_int_w1sx_s cn; */
- };
- static inline u64 RVU_PF_VFPF_MBOX_INT_W1SX(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_VFPF_MBOX_INT_W1SX(u64 a)
- {
- return 0x8a0 + 8 * a;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_vftrpend#
- *
- * RVU PF VF Transaction Pending Registers
- */
- union rvu_pf_vftrpendx {
- u64 u;
- struct rvu_pf_vftrpendx_s {
- u64 trpend : 64;
- } s;
- /* struct rvu_pf_vftrpendx_s cn; */
- };
- static inline u64 RVU_PF_VFTRPENDX(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_VFTRPENDX(u64 a)
- {
- return 0x820 + 8 * a;
- }
- /**
- * Register (RVU_PF_BAR2) rvu_pf_vftrpend_w1s#
- *
- * RVU PF VF Transaction Pending Set Registers This register reads or
- * sets bits.
- */
- union rvu_pf_vftrpend_w1sx {
- u64 u;
- struct rvu_pf_vftrpend_w1sx_s {
- u64 trpend : 64;
- } s;
- /* struct rvu_pf_vftrpend_w1sx_s cn; */
- };
- static inline u64 RVU_PF_VFTRPEND_W1SX(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PF_VFTRPEND_W1SX(u64 a)
- {
- return 0x840 + 8 * a;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_active_pc
- *
- * RVU Active Program Counter Register
- */
- union rvu_priv_active_pc {
- u64 u;
- struct rvu_priv_active_pc_s {
- u64 active_pc : 64;
- } s;
- /* struct rvu_priv_active_pc_s cn; */
- };
- static inline u64 RVU_PRIV_ACTIVE_PC(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_ACTIVE_PC(void)
- {
- return 0x8000030;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_block_type#_rev
- *
- * RVU Privileged Block Type Revision Registers These registers are used
- * by configuration software to specify the revision ID of each block
- * type enumerated by RVU_BLOCK_TYPE_E, to assist VF/PF software
- * discovery.
- */
- union rvu_priv_block_typex_rev {
- u64 u;
- struct rvu_priv_block_typex_rev_s {
- u64 rid : 8;
- u64 reserved_8_63 : 56;
- } s;
- /* struct rvu_priv_block_typex_rev_s cn; */
- };
- static inline u64 RVU_PRIV_BLOCK_TYPEX_REV(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_BLOCK_TYPEX_REV(u64 a)
- {
- return 0x8000400 + 8 * a;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_clk_cfg
- *
- * RVU Privileged General Configuration Register
- */
- union rvu_priv_clk_cfg {
- u64 u;
- struct rvu_priv_clk_cfg_s {
- u64 blk_clken : 1;
- u64 ncbi_clken : 1;
- u64 reserved_2_63 : 62;
- } s;
- /* struct rvu_priv_clk_cfg_s cn; */
- };
- static inline u64 RVU_PRIV_CLK_CFG(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_CLK_CFG(void)
- {
- return 0x8000020;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_const
- *
- * RVU Privileged Constants Register This register contains constants for
- * software discovery.
- */
- union rvu_priv_const {
- u64 u;
- struct rvu_priv_const_s {
- u64 max_msix : 20;
- u64 hwvfs : 12;
- u64 pfs : 8;
- u64 max_vfs_per_pf : 8;
- u64 reserved_48_63 : 16;
- } s;
- /* struct rvu_priv_const_s cn; */
- };
- static inline u64 RVU_PRIV_CONST(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_CONST(void)
- {
- return 0x8000000;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_gen_cfg
- *
- * RVU Privileged General Configuration Register
- */
- union rvu_priv_gen_cfg {
- u64 u;
- struct rvu_priv_gen_cfg_s {
- u64 lock : 1;
- u64 reserved_1_63 : 63;
- } s;
- /* struct rvu_priv_gen_cfg_s cn; */
- };
- static inline u64 RVU_PRIV_GEN_CFG(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_GEN_CFG(void)
- {
- return 0x8000010;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_hwvf#_cpt#_cfg
- *
- * RVU Privileged Hardware VF CPT Configuration Registers Similar to
- * RVU_PRIV_HWVF()_NIX()_CFG, but for CPT({a}) block.
- */
- union rvu_priv_hwvfx_cptx_cfg {
- u64 u;
- struct rvu_priv_hwvfx_cptx_cfg_s {
- u64 num_lfs : 9;
- u64 reserved_9_63 : 55;
- } s;
- /* struct rvu_priv_hwvfx_cptx_cfg_s cn; */
- };
- static inline u64 RVU_PRIV_HWVFX_CPTX_CFG(u64 a, u64 b)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_HWVFX_CPTX_CFG(u64 a, u64 b)
- {
- return 0x8001350 + 0x10000 * a + 8 * b;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_hwvf#_int_cfg
- *
- * RVU Privileged Hardware VF Interrupt Configuration Registers
- */
- union rvu_priv_hwvfx_int_cfg {
- u64 u;
- struct rvu_priv_hwvfx_int_cfg_s {
- u64 msix_offset : 11;
- u64 reserved_11 : 1;
- u64 msix_size : 8;
- u64 reserved_20_63 : 44;
- } s;
- /* struct rvu_priv_hwvfx_int_cfg_s cn; */
- };
- static inline u64 RVU_PRIV_HWVFX_INT_CFG(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_HWVFX_INT_CFG(u64 a)
- {
- return 0x8001280 + 0x10000 * a;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_hwvf#_nix#_cfg
- *
- * RVU Privileged Hardware VF NIX Configuration Registers These registers
- * are used to assist VF software discovery. For each HWVF, if the HWVF
- * is mapped to a VF by RVU_PRIV_PF()_CFG[FIRST_HWVF,NVF], software
- * writes NIX block's resource configuration for the VF in this register.
- * The VF driver can read RVU_VF_BLOCK_ADDR()_DISC to discover the
- * configuration.
- */
- union rvu_priv_hwvfx_nixx_cfg {
- u64 u;
- struct rvu_priv_hwvfx_nixx_cfg_s {
- u64 has_lf : 1;
- u64 reserved_1_63 : 63;
- } s;
- /* struct rvu_priv_hwvfx_nixx_cfg_s cn; */
- };
- static inline u64 RVU_PRIV_HWVFX_NIXX_CFG(u64 a, u64 b)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_HWVFX_NIXX_CFG(u64 a, u64 b)
- {
- return 0x8001300 + 0x10000 * a + 8 * b;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_hwvf#_npa_cfg
- *
- * RVU Privileged Hardware VF NPA Configuration Registers Similar to
- * RVU_PRIV_HWVF()_NIX()_CFG, but for NPA block.
- */
- union rvu_priv_hwvfx_npa_cfg {
- u64 u;
- struct rvu_priv_hwvfx_npa_cfg_s {
- u64 has_lf : 1;
- u64 reserved_1_63 : 63;
- } s;
- /* struct rvu_priv_hwvfx_npa_cfg_s cn; */
- };
- static inline u64 RVU_PRIV_HWVFX_NPA_CFG(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_HWVFX_NPA_CFG(u64 a)
- {
- return 0x8001310 + 0x10000 * a;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_hwvf#_sso_cfg
- *
- * RVU Privileged Hardware VF SSO Configuration Registers Similar to
- * RVU_PRIV_HWVF()_NIX()_CFG, but for SSO block.
- */
- union rvu_priv_hwvfx_sso_cfg {
- u64 u;
- struct rvu_priv_hwvfx_sso_cfg_s {
- u64 num_lfs : 9;
- u64 reserved_9_63 : 55;
- } s;
- /* struct rvu_priv_hwvfx_sso_cfg_s cn; */
- };
- static inline u64 RVU_PRIV_HWVFX_SSO_CFG(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_HWVFX_SSO_CFG(u64 a)
- {
- return 0x8001320 + 0x10000 * a;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_hwvf#_ssow_cfg
- *
- * RVU Privileged Hardware VF SSO Work Slot Configuration Registers
- * Similar to RVU_PRIV_HWVF()_NIX()_CFG, but for SSOW block.
- */
- union rvu_priv_hwvfx_ssow_cfg {
- u64 u;
- struct rvu_priv_hwvfx_ssow_cfg_s {
- u64 num_lfs : 9;
- u64 reserved_9_63 : 55;
- } s;
- /* struct rvu_priv_hwvfx_ssow_cfg_s cn; */
- };
- static inline u64 RVU_PRIV_HWVFX_SSOW_CFG(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_HWVFX_SSOW_CFG(u64 a)
- {
- return 0x8001330 + 0x10000 * a;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_hwvf#_tim_cfg
- *
- * RVU Privileged Hardware VF SSO Work Slot Configuration Registers
- * Similar to RVU_PRIV_HWVF()_NIX()_CFG, but for TIM block.
- */
- union rvu_priv_hwvfx_tim_cfg {
- u64 u;
- struct rvu_priv_hwvfx_tim_cfg_s {
- u64 num_lfs : 9;
- u64 reserved_9_63 : 55;
- } s;
- /* struct rvu_priv_hwvfx_tim_cfg_s cn; */
- };
- static inline u64 RVU_PRIV_HWVFX_TIM_CFG(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_HWVFX_TIM_CFG(u64 a)
- {
- return 0x8001340 + 0x10000 * a;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_pf#_cfg
- *
- * RVU Privileged PF Configuration Registers
- */
- union rvu_priv_pfx_cfg {
- u64 u;
- struct rvu_priv_pfx_cfg_s {
- u64 first_hwvf : 12;
- u64 nvf : 8;
- u64 ena : 1;
- u64 af_ena : 1;
- u64 me_flr_ena : 1;
- u64 pf_vf_io_bar4 : 1;
- u64 reserved_24_63 : 40;
- } s;
- struct rvu_priv_pfx_cfg_cn96xxp1 {
- u64 first_hwvf : 12;
- u64 nvf : 8;
- u64 ena : 1;
- u64 af_ena : 1;
- u64 me_flr_ena : 1;
- u64 reserved_23_63 : 41;
- } cn96xxp1;
- /* struct rvu_priv_pfx_cfg_s cn96xxp3; */
- /* struct rvu_priv_pfx_cfg_cn96xxp1 cnf95xx; */
- };
- static inline u64 RVU_PRIV_PFX_CFG(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_PFX_CFG(u64 a)
- {
- return 0x8000100 + 0x10000 * a;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_pf#_cpt#_cfg
- *
- * RVU Privileged PF CPT Configuration Registers Similar to
- * RVU_PRIV_PF()_NIX()_CFG, but for CPT({a}) block.
- */
- union rvu_priv_pfx_cptx_cfg {
- u64 u;
- struct rvu_priv_pfx_cptx_cfg_s {
- u64 num_lfs : 9;
- u64 reserved_9_63 : 55;
- } s;
- /* struct rvu_priv_pfx_cptx_cfg_s cn; */
- };
- static inline u64 RVU_PRIV_PFX_CPTX_CFG(u64 a, u64 b)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_PFX_CPTX_CFG(u64 a, u64 b)
- {
- return 0x8000350 + 0x10000 * a + 8 * b;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_pf#_id_cfg
- *
- * RVU Privileged PF ID Configuration Registers
- */
- union rvu_priv_pfx_id_cfg {
- u64 u;
- struct rvu_priv_pfx_id_cfg_s {
- u64 pf_devid : 8;
- u64 vf_devid : 8;
- u64 class_code : 24;
- u64 reserved_40_63 : 24;
- } s;
- /* struct rvu_priv_pfx_id_cfg_s cn; */
- };
- static inline u64 RVU_PRIV_PFX_ID_CFG(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_PFX_ID_CFG(u64 a)
- {
- return 0x8000120 + 0x10000 * a;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_pf#_int_cfg
- *
- * RVU Privileged PF Interrupt Configuration Registers
- */
- union rvu_priv_pfx_int_cfg {
- u64 u;
- struct rvu_priv_pfx_int_cfg_s {
- u64 msix_offset : 11;
- u64 reserved_11 : 1;
- u64 msix_size : 8;
- u64 reserved_20_63 : 44;
- } s;
- /* struct rvu_priv_pfx_int_cfg_s cn; */
- };
- static inline u64 RVU_PRIV_PFX_INT_CFG(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_PFX_INT_CFG(u64 a)
- {
- return 0x8000200 + 0x10000 * a;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_pf#_msix_cfg
- *
- * RVU Privileged PF MSI-X Configuration Registers These registers
- * specify MSI-X table sizes and locations for RVU PFs and associated
- * VFs. Hardware maintains all RVU MSI-X tables in a contiguous memory
- * region in LLC/DRAM called the MSI-X table region. The table region's
- * base AF IOVA is specified by RVU_AF_MSIXTR_BASE, and its size as a
- * multiple of 16-byte RVU_MSIX_VEC_S structures must be less than or
- * equal to RVU_PRIV_CONST[MAX_MSIX]. A PF's MSI-X table consists of the
- * following range of RVU_MSIX_VEC_S structures in the table region: *
- * First index: [PF_MSIXT_OFFSET]. * Last index: [PF_MSIXT_OFFSET] +
- * [PF_MSIXT_SIZEM1]. If a PF has enabled VFs (associated
- * RVU_PRIV_PF()_CFG[NVF] is nonzero), then each VF's MSI-X table
- * consumes the following range of RVU_MSIX_VEC_S structures: * First
- * index: [VF_MSIXT_OFFSET] + N*([VF_MSIXT_SIZEM1] + 1). * Last index:
- * [VF_MSIXT_OFFSET] + N*([VF_MSIXT_SIZEM1] + 1) + [VF_MSIXT_SIZEM1].
- * N=0 for the first VF, N=1 for the second VF, etc. Different PFs and
- * VFs must have non-overlapping vector ranges, and the last index of any
- * range must be less than RVU_PRIV_CONST[MAX_MSIX].
- */
- union rvu_priv_pfx_msix_cfg {
- u64 u;
- struct rvu_priv_pfx_msix_cfg_s {
- u64 vf_msixt_sizem1 : 12;
- u64 vf_msixt_offset : 20;
- u64 pf_msixt_sizem1 : 12;
- u64 pf_msixt_offset : 20;
- } s;
- /* struct rvu_priv_pfx_msix_cfg_s cn; */
- };
- static inline u64 RVU_PRIV_PFX_MSIX_CFG(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_PFX_MSIX_CFG(u64 a)
- {
- return 0x8000110 + 0x10000 * a;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_pf#_nix#_cfg
- *
- * RVU Privileged PF NIX Configuration Registers These registers are used
- * to assist PF software discovery. For each enabled RVU PF, software
- * writes the block's resource configuration for the PF in this register.
- * The PF driver can read RVU_PF_BLOCK_ADDR()_DISC to discover the
- * configuration.
- */
- union rvu_priv_pfx_nixx_cfg {
- u64 u;
- struct rvu_priv_pfx_nixx_cfg_s {
- u64 has_lf : 1;
- u64 reserved_1_63 : 63;
- } s;
- /* struct rvu_priv_pfx_nixx_cfg_s cn; */
- };
- static inline u64 RVU_PRIV_PFX_NIXX_CFG(u64 a, u64 b)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_PFX_NIXX_CFG(u64 a, u64 b)
- {
- return 0x8000300 + 0x10000 * a + 8 * b;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_pf#_npa_cfg
- *
- * RVU Privileged PF NPA Configuration Registers Similar to
- * RVU_PRIV_PF()_NIX()_CFG, but for NPA block.
- */
- union rvu_priv_pfx_npa_cfg {
- u64 u;
- struct rvu_priv_pfx_npa_cfg_s {
- u64 has_lf : 1;
- u64 reserved_1_63 : 63;
- } s;
- /* struct rvu_priv_pfx_npa_cfg_s cn; */
- };
- static inline u64 RVU_PRIV_PFX_NPA_CFG(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_PFX_NPA_CFG(u64 a)
- {
- return 0x8000310 + 0x10000 * a;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_pf#_sso_cfg
- *
- * RVU Privileged PF SSO Configuration Registers Similar to
- * RVU_PRIV_PF()_NIX()_CFG, but for SSO block.
- */
- union rvu_priv_pfx_sso_cfg {
- u64 u;
- struct rvu_priv_pfx_sso_cfg_s {
- u64 num_lfs : 9;
- u64 reserved_9_63 : 55;
- } s;
- /* struct rvu_priv_pfx_sso_cfg_s cn; */
- };
- static inline u64 RVU_PRIV_PFX_SSO_CFG(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_PFX_SSO_CFG(u64 a)
- {
- return 0x8000320 + 0x10000 * a;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_pf#_ssow_cfg
- *
- * RVU Privileged PF SSO Work Slot Configuration Registers Similar to
- * RVU_PRIV_PF()_NIX()_CFG, but for SSOW block.
- */
- union rvu_priv_pfx_ssow_cfg {
- u64 u;
- struct rvu_priv_pfx_ssow_cfg_s {
- u64 num_lfs : 9;
- u64 reserved_9_63 : 55;
- } s;
- /* struct rvu_priv_pfx_ssow_cfg_s cn; */
- };
- static inline u64 RVU_PRIV_PFX_SSOW_CFG(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_PFX_SSOW_CFG(u64 a)
- {
- return 0x8000330 + 0x10000 * a;
- }
- /**
- * Register (RVU_PF_BAR0) rvu_priv_pf#_tim_cfg
- *
- * RVU Privileged PF SSO Work Slot Configuration Registers Similar to
- * RVU_PRIV_PF()_NIX()_CFG, but for TIM block.
- */
- union rvu_priv_pfx_tim_cfg {
- u64 u;
- struct rvu_priv_pfx_tim_cfg_s {
- u64 num_lfs : 9;
- u64 reserved_9_63 : 55;
- } s;
- /* struct rvu_priv_pfx_tim_cfg_s cn; */
- };
- static inline u64 RVU_PRIV_PFX_TIM_CFG(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_PRIV_PFX_TIM_CFG(u64 a)
- {
- return 0x8000340 + 0x10000 * a;
- }
- /**
- * Register (RVU_VF_BAR2) rvu_vf_block_addr#_disc
- *
- * RVU VF Block Address Discovery Registers These registers allow each VF
- * driver to discover block resources that are provisioned to its VF. The
- * register's BLOCK_ADDR index is enumerated by RVU_BLOCK_ADDR_E.
- */
- union rvu_vf_block_addrx_disc {
- u64 u;
- struct rvu_vf_block_addrx_disc_s {
- u64 num_lfs : 9;
- u64 reserved_9_10 : 2;
- u64 imp : 1;
- u64 rid : 8;
- u64 btype : 8;
- u64 reserved_28_63 : 36;
- } s;
- /* struct rvu_vf_block_addrx_disc_s cn; */
- };
- static inline u64 RVU_VF_BLOCK_ADDRX_DISC(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_VF_BLOCK_ADDRX_DISC(u64 a)
- {
- return 0x200 + 8 * a;
- }
- /**
- * Register (RVU_VF_BAR2) rvu_vf_int
- *
- * RVU VF Interrupt Registers
- */
- union rvu_vf_int {
- u64 u;
- struct rvu_vf_int_s {
- u64 mbox : 1;
- u64 reserved_1_63 : 63;
- } s;
- /* struct rvu_vf_int_s cn; */
- };
- static inline u64 RVU_VF_INT(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_VF_INT(void)
- {
- return 0x20;
- }
- /**
- * Register (RVU_VF_BAR2) rvu_vf_int_ena_w1c
- *
- * RVU VF Interrupt Enable Clear Register This register clears interrupt
- * enable bits.
- */
- union rvu_vf_int_ena_w1c {
- u64 u;
- struct rvu_vf_int_ena_w1c_s {
- u64 mbox : 1;
- u64 reserved_1_63 : 63;
- } s;
- /* struct rvu_vf_int_ena_w1c_s cn; */
- };
- static inline u64 RVU_VF_INT_ENA_W1C(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_VF_INT_ENA_W1C(void)
- {
- return 0x38;
- }
- /**
- * Register (RVU_VF_BAR2) rvu_vf_int_ena_w1s
- *
- * RVU VF Interrupt Enable Set Register This register sets interrupt
- * enable bits.
- */
- union rvu_vf_int_ena_w1s {
- u64 u;
- struct rvu_vf_int_ena_w1s_s {
- u64 mbox : 1;
- u64 reserved_1_63 : 63;
- } s;
- /* struct rvu_vf_int_ena_w1s_s cn; */
- };
- static inline u64 RVU_VF_INT_ENA_W1S(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_VF_INT_ENA_W1S(void)
- {
- return 0x30;
- }
- /**
- * Register (RVU_VF_BAR2) rvu_vf_int_w1s
- *
- * RVU VF Interrupt Set Register This register sets interrupt bits.
- */
- union rvu_vf_int_w1s {
- u64 u;
- struct rvu_vf_int_w1s_s {
- u64 mbox : 1;
- u64 reserved_1_63 : 63;
- } s;
- /* struct rvu_vf_int_w1s_s cn; */
- };
- static inline u64 RVU_VF_INT_W1S(void)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_VF_INT_W1S(void)
- {
- return 0x28;
- }
- /**
- * Register (RVU_VF_BAR2) rvu_vf_msix_pba#
- *
- * RVU VF MSI-X Pending-Bit-Array Registers This register is the MSI-X VF
- * PBA table.
- */
- union rvu_vf_msix_pbax {
- u64 u;
- struct rvu_vf_msix_pbax_s {
- u64 pend : 64;
- } s;
- /* struct rvu_vf_msix_pbax_s cn; */
- };
- static inline u64 RVU_VF_MSIX_PBAX(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_VF_MSIX_PBAX(u64 a)
- {
- return 0xf0000 + 8 * a;
- }
- /**
- * Register (RVU_VF_BAR2) rvu_vf_msix_vec#_addr
- *
- * RVU VF MSI-X Vector-Table Address Registers These registers and
- * RVU_VF_MSIX_VEC()_CTL form the VF MSI-X vector table. The number of
- * MSI-X vectors for a given VF is specified by
- * RVU_PRIV_PF()_MSIX_CFG[VF_MSIXT_SIZEM1] (plus 1). Software must do a
- * read after any writes to the MSI-X vector table to ensure that the
- * writes have completed before interrupts are generated to the modified
- * vectors.
- */
- union rvu_vf_msix_vecx_addr {
- u64 u;
- struct rvu_vf_msix_vecx_addr_s {
- u64 secvec : 1;
- u64 reserved_1 : 1;
- u64 addr : 51;
- u64 reserved_53_63 : 11;
- } s;
- /* struct rvu_vf_msix_vecx_addr_s cn; */
- };
- static inline u64 RVU_VF_MSIX_VECX_ADDR(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_VF_MSIX_VECX_ADDR(u64 a)
- {
- return 0x80000 + 0x10 * a;
- }
- /**
- * Register (RVU_VF_BAR2) rvu_vf_msix_vec#_ctl
- *
- * RVU VF MSI-X Vector-Table Control and Data Registers These registers
- * and RVU_VF_MSIX_VEC()_ADDR form the VF MSI-X vector table.
- */
- union rvu_vf_msix_vecx_ctl {
- u64 u;
- struct rvu_vf_msix_vecx_ctl_s {
- u64 data : 32;
- u64 mask : 1;
- u64 reserved_33_63 : 31;
- } s;
- /* struct rvu_vf_msix_vecx_ctl_s cn; */
- };
- static inline u64 RVU_VF_MSIX_VECX_CTL(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_VF_MSIX_VECX_CTL(u64 a)
- {
- return 0x80008 + 0x10 * a;
- }
- /**
- * Register (RVU_VF_BAR2) rvu_vf_vfpf_mbox#
- *
- * RVU VF/PF Mailbox Registers
- */
- union rvu_vf_vfpf_mboxx {
- u64 u;
- struct rvu_vf_vfpf_mboxx_s {
- u64 data : 64;
- } s;
- /* struct rvu_vf_vfpf_mboxx_s cn; */
- };
- static inline u64 RVU_VF_VFPF_MBOXX(u64 a)
- __attribute__ ((pure, always_inline));
- static inline u64 RVU_VF_VFPF_MBOXX(u64 a)
- {
- return 0 + 8 * a;
- }
- #endif /* __CSRS_RVU_H__ */
|