1/* SPDX-License-Identifier:    GPL-2.0
2 *
3 * Copyright (C) 2020 Marvell International Ltd.
4 *
5 * https://spdx.org/licenses
6 */
7#ifndef __CSRS_NPA_H__
8#define __CSRS_NPA_H__
9
10/**
11 * @file
12 *
13 * Configuration and status register (CSR) address and type definitions for
14 * NPA.
15 *
16 * This file is auto generated.  Do not edit.
17 *
18 */
19
20/**
21 * Enumeration npa_af_int_vec_e
22 *
23 * NPA Admin Function Interrupt Vector Enumeration Enumerates the NPA AF
24 * MSI-X interrupt vectors.
25 */
26#define NPA_AF_INT_VEC_E_AF_ERR (3)
27#define NPA_AF_INT_VEC_E_AQ_DONE (2)
28#define NPA_AF_INT_VEC_E_GEN (1)
29#define NPA_AF_INT_VEC_E_POISON (4)
30#define NPA_AF_INT_VEC_E_RVU (0)
31
32/**
33 * Enumeration npa_aq_comp_e
34 *
35 * NPA Admin Queue Completion Enumeration Enumerates the values of
36 * NPA_AQ_RES_S[COMPCODE].
37 */
38#define NPA_AQ_COMP_E_CTX_FAULT (4)
39#define NPA_AQ_COMP_E_CTX_POISON (3)
40#define NPA_AQ_COMP_E_GOOD (1)
41#define NPA_AQ_COMP_E_LOCKERR (5)
42#define NPA_AQ_COMP_E_NOTDONE (0)
43#define NPA_AQ_COMP_E_SWERR (2)
44
45/**
46 * Enumeration npa_aq_ctype_e
47 *
48 * NPA Admin Queue Context Type Enumeration Enumerates
49 * NPA_AQ_INST_S[CTYPE] values.
50 */
51#define NPA_AQ_CTYPE_E_AURA (0)
52#define NPA_AQ_CTYPE_E_POOL (1)
53
54/**
55 * Enumeration npa_aq_instop_e
56 *
57 * NPA Admin Queue Opcode Enumeration Enumerates NPA_AQ_INST_S[OP]
58 * values.
59 */
60#define NPA_AQ_INSTOP_E_INIT (1)
61#define NPA_AQ_INSTOP_E_LOCK (4)
62#define NPA_AQ_INSTOP_E_NOP (0)
63#define NPA_AQ_INSTOP_E_READ (3)
64#define NPA_AQ_INSTOP_E_UNLOCK (5)
65#define NPA_AQ_INSTOP_E_WRITE (2)
66
67/**
68 * Enumeration npa_aura_err_int_e
69 *
70 * NPA Aura Error Interrupt Enumeration Enumerates the bit index of
71 * NPA_AURA_S[ERR_INT], and NPA_AURA_S[ERR_INT_ENA].
72 */
73#define NPA_AURA_ERR_INT_E_AURA_ADD_OVER (1)
74#define NPA_AURA_ERR_INT_E_AURA_ADD_UNDER (2)
75#define NPA_AURA_ERR_INT_E_AURA_FREE_UNDER (0)
76#define NPA_AURA_ERR_INT_E_POOL_DIS (3)
77#define NPA_AURA_ERR_INT_E_RX(a) (0 + (a))
78
79/**
80 * Enumeration npa_bpintf_e
81 *
82 * NPA Backpressure Interface Enumeration Enumerates index of
83 * NPA_AURA_S[BP_ENA].
84 */
85#define NPA_BPINTF_E_NIXX_RX(a) (0 + (a))
86
87/**
88 * Enumeration npa_inpq_e
89 *
90 * NPA Input Queue Enumeration Enumerates ALLOC/FREE input queues from
91 * coprocessors.
92 */
93#define NPA_INPQ_E_AURA_OP (0xe)
94#define NPA_INPQ_E_BPHY (7)
95#define NPA_INPQ_E_DPI (6)
96#define NPA_INPQ_E_INTERNAL_RSV (0xf)
97#define NPA_INPQ_E_NIXX_RX(a) (0 + 2 * (a))
98#define NPA_INPQ_E_NIXX_TX(a) (1 + 2 * (a))
99#define NPA_INPQ_E_RX(a) (0 + (a))
100#define NPA_INPQ_E_SSO (4)
101#define NPA_INPQ_E_TIM (5)
102
103/**
104 * Enumeration npa_lf_int_vec_e
105 *
106 * NPA Local Function Interrupt Vector Enumeration Enumerates the NPA
107 * MSI-X interrupt vectors per LF.
108 */
109#define NPA_LF_INT_VEC_E_ERR_INT (0x40)
110#define NPA_LF_INT_VEC_E_POISON (0x41)
111#define NPA_LF_INT_VEC_E_QINTX(a) (0 + (a))
112
113/**
114 * Enumeration npa_ndc0_port_e
115 *
116 * NPA NDC0 Port Enumeration Enumerates NPA NDC0 (NDC_IDX_E::NPA_U(0))
117 * ports and the PORT index of NDC_AF_PORT()_RT()_RW()_REQ_PC and
118 * NDC_AF_PORT()_RT()_RW()_LAT_PC.
119 */
120#define NPA_NDC0_PORT_E_AURA0 (0)
121#define NPA_NDC0_PORT_E_AURA1 (1)
122#define NPA_NDC0_PORT_E_POOL0 (2)
123#define NPA_NDC0_PORT_E_POOL1 (3)
124#define NPA_NDC0_PORT_E_STACK0 (4)
125#define NPA_NDC0_PORT_E_STACK1 (5)
126
127/**
128 * Enumeration npa_pool_err_int_e
129 *
130 * NPA Pool Error Interrupt Enumeration Enumerates the bit index of
131 * NPA_POOL_S[ERR_INT] and NPA_POOL_S[ERR_INT_ENA].
132 */
133#define NPA_POOL_ERR_INT_E_OVFLS (0)
134#define NPA_POOL_ERR_INT_E_PERR (2)
135#define NPA_POOL_ERR_INT_E_RX(a) (0 + (a))
136#define NPA_POOL_ERR_INT_E_RANGE (1)
137
138/**
139 * Structure npa_aq_inst_s
140 *
141 * NPA Admin Queue Instruction Structure This structure specifies the AQ
142 * instruction. Instructions and associated software structures are
143 * stored in memory as little-endian unless NPA_AF_GEN_CFG[AF_BE] is set.
144 * Hardware reads of NPA_AQ_INST_S do not allocate into LLC.  Hardware
145 * reads and writes of the context structure selected by [CTYPE], [LF]
146 * and [CINDEX] use the NDC and LLC caching style configured for that
147 * context, i.e.: * NPA_AURA_HW_S reads and writes use
148 * NPA_AF_LF()_AURAS_CFG[CACHING] and NPA_AF_LF()_AURAS_CFG[WAY_MASK]. *
149 * NPA_POOL_HW_S reads and writes use NPA_AURA_HW_S[POOL_CACHING] and
150 * NPA_AURA_HW_S[POOL_WAY_MASK].
151 */
152union npa_aq_inst_s {
153	u64 u[2];
154	struct npa_aq_inst_s_s {
155		u64 op                               : 4;
156		u64 ctype                            : 4;
157		u64 lf                               : 9;
158		u64 reserved_17_23                   : 7;
159		u64 cindex                           : 20;
160		u64 reserved_44_62                   : 19;
161		u64 doneint                          : 1;
162		u64 res_addr                         : 64;
163	} s;
164	/* struct npa_aq_inst_s_s cn; */
165};
166
167/**
168 * Structure npa_aq_res_s
169 *
170 * NPA Admin Queue Result Structure NPA writes this structure after it
171 * completes the NPA_AQ_INST_S instruction. The result structure is
172 * exactly 16 bytes, and each instruction completion produces exactly one
173 * result structure.  Results and associated software structures are
174 * stored in memory as little-endian unless NPA_AF_GEN_CFG[AF_BE] is set.
175 * When [OP] = NPA_AQ_INSTOP_E::INIT, WRITE or READ, this structure is
176 * immediately followed by context read or write data. See
177 * NPA_AQ_INSTOP_E.  Hardware writes of NPA_AQ_RES_S and context data
178 * always allocate into LLC. Hardware reads of context data do not
179 * allocate into LLC.
180 */
181union npa_aq_res_s {
182	u64 u[2];
183	struct npa_aq_res_s_s {
184		u64 op                               : 4;
185		u64 ctype                            : 4;
186		u64 compcode                         : 8;
187		u64 doneint                          : 1;
188		u64 reserved_17_63                   : 47;
189		u64 reserved_64_127                  : 64;
190	} s;
191	/* struct npa_aq_res_s_s cn; */
192};
193
194/**
195 * Structure npa_aura_op_wdata_s
196 *
197 * NPA Aura Operation Write Data Structure This structure specifies the
198 * write data format of a 64-bit atomic load-and-add to
199 * NPA_LF_AURA_OP_ALLOC() and NPA_LF_POOL_OP_PC, and a 128-bit atomic
200 * CASP operation to NPA_LF_AURA_OP_ALLOC().
201 */
202union npa_aura_op_wdata_s {
203	u64 u;
204	struct npa_aura_op_wdata_s_s {
205		u64 aura                             : 20;
206		u64 reserved_20_62                   : 43;
207		u64 drop                             : 1;
208	} s;
209	/* struct npa_aura_op_wdata_s_s cn; */
210};
211
212/**
213 * Structure npa_aura_s
214 *
215 * NPA Aura Context Structure This structure specifies the format used by
216 * software with the NPA admin queue to read and write an aura's
217 * NPA_AURA_HW_S structure maintained by hardware in LLC/DRAM.
218 */
219union npa_aura_s {
220	u64 u[8];
221	struct npa_aura_s_s {
222		u64 pool_addr                        : 64;
223		u64 ena                              : 1;
224		u64 reserved_65_66                   : 2;
225		u64 pool_caching                     : 1;
226		u64 pool_way_mask                    : 16;
227		u64 avg_con                          : 9;
228		u64 reserved_93                      : 1;
229		u64 pool_drop_ena                    : 1;
230		u64 aura_drop_ena                    : 1;
231		u64 bp_ena                           : 2;
232		u64 reserved_98_103                  : 6;
233		u64 aura_drop                        : 8;
234		u64 shift                            : 6;
235		u64 reserved_118_119                 : 2;
236		u64 avg_level                        : 8;
237		u64 count                            : 36;
238		u64 reserved_164_167                 : 4;
239		u64 nix0_bpid                        : 9;
240		u64 reserved_177_179                 : 3;
241		u64 nix1_bpid                        : 9;
242		u64 reserved_189_191                 : 3;
243		u64 limit                            : 36;
244		u64 reserved_228_231                 : 4;
245		u64 bp                               : 8;
246		u64 reserved_240_243                 : 4;
247		u64 fc_ena                           : 1;
248		u64 fc_up_crossing                   : 1;
249		u64 fc_stype                         : 2;
250		u64 fc_hyst_bits                     : 4;
251		u64 reserved_252_255                 : 4;
252		u64 fc_addr                          : 64;
253		u64 pool_drop                        : 8;
254		u64 update_time                      : 16;
255		u64 err_int                          : 8;
256		u64 err_int_ena                      : 8;
257		u64 thresh_int                       : 1;
258		u64 thresh_int_ena                   : 1;
259		u64 thresh_up                        : 1;
260		u64 reserved_363                     : 1;
261		u64 thresh_qint_idx                  : 7;
262		u64 reserved_371                     : 1;
263		u64 err_qint_idx                     : 7;
264		u64 reserved_379_383                 : 5;
265		u64 thresh                           : 36;
266		u64 reserved_420_447                 : 28;
267		u64 reserved_448_511                 : 64;
268	} s;
269	/* struct npa_aura_s_s cn; */
270};
271
272/**
273 * Structure npa_pool_s
274 *
275 * NPA Pool Context Structure This structure specifies the format used by
276 * software with the NPA admin queue to read and write a pool's
277 * NPA_POOL_HW_S structure maintained by hardware in LLC/DRAM.
278 */
279union npa_pool_s {
280	u64 u[16];
281	struct npa_pool_s_s {
282		u64 stack_base                       : 64;
283		u64 ena                              : 1;
284		u64 nat_align                        : 1;
285		u64 reserved_66_67                   : 2;
286		u64 stack_caching                    : 1;
287		u64 reserved_69_71                   : 3;
288		u64 stack_way_mask                   : 16;
289		u64 buf_offset                       : 12;
290		u64 reserved_100_103                 : 4;
291		u64 buf_size                         : 11;
292		u64 reserved_115_127                 : 13;
293		u64 stack_max_pages                  : 32;
294		u64 stack_pages                      : 32;
295		u64 op_pc                            : 48;
296		u64 reserved_240_255                 : 16;
297		u64 stack_offset                     : 4;
298		u64 reserved_260_263                 : 4;
299		u64 shift                            : 6;
300		u64 reserved_270_271                 : 2;
301		u64 avg_level                        : 8;
302		u64 avg_con                          : 9;
303		u64 fc_ena                           : 1;
304		u64 fc_stype                         : 2;
305		u64 fc_hyst_bits                     : 4;
306		u64 fc_up_crossing                   : 1;
307		u64 reserved_297_299                 : 3;
308		u64 update_time                      : 16;
309		u64 reserved_316_319                 : 4;
310		u64 fc_addr                          : 64;
311		u64 ptr_start                        : 64;
312		u64 ptr_end                          : 64;
313		u64 reserved_512_535                 : 24;
314		u64 err_int                          : 8;
315		u64 err_int_ena                      : 8;
316		u64 thresh_int                       : 1;
317		u64 thresh_int_ena                   : 1;
318		u64 thresh_up                        : 1;
319		u64 reserved_555                     : 1;
320		u64 thresh_qint_idx                  : 7;
321		u64 reserved_563                     : 1;
322		u64 err_qint_idx                     : 7;
323		u64 reserved_571_575                 : 5;
324		u64 thresh                           : 36;
325		u64 reserved_612_639                 : 28;
326		u64 reserved_640_703                 : 64;
327		u64 reserved_704_767                 : 64;
328		u64 reserved_768_831                 : 64;
329		u64 reserved_832_895                 : 64;
330		u64 reserved_896_959                 : 64;
331		u64 reserved_960_1023                : 64;
332	} s;
333	/* struct npa_pool_s_s cn; */
334};
335
336/**
337 * Structure npa_qint_hw_s
338 *
339 * NPA Queue Interrupt Context Hardware Structure This structure contains
340 * context state maintained by hardware for each queue interrupt (QINT)
341 * in NDC/LLC/DRAM. Software accesses this structure with the
342 * NPA_LF_QINT()_* registers. Hardware maintains a table of
343 * NPA_AF_CONST[QINTS] contiguous NPA_QINT_HW_S structures per LF
344 * starting at IOVA NPA_AF_LF()_QINTS_BASE. Always stored in byte
345 * invariant little-endian format (LE8).
346 */
347union npa_qint_hw_s {
348	u32 u;
349	struct npa_qint_hw_s_s {
350		u32 count                            : 22;
351		u32 reserved_22_30                   : 9;
352		u32 ena                              : 1;
353	} s;
354	/* struct npa_qint_hw_s_s cn; */
355};
356
357/**
358 * Register (RVU_PF_BAR0) npa_af_active_cycles_pc
359 *
360 * NPA AF Active Cycles Register
361 */
362union npa_af_active_cycles_pc {
363	u64 u;
364	struct npa_af_active_cycles_pc_s {
365		u64 act_cyc                          : 64;
366	} s;
367	/* struct npa_af_active_cycles_pc_s cn; */
368};
369
370static inline u64 NPA_AF_ACTIVE_CYCLES_PC(void)
371	__attribute__ ((pure, always_inline));
372static inline u64 NPA_AF_ACTIVE_CYCLES_PC(void)
373{
374	return 0xf0;
375}
376
377/**
378 * Register (RVU_PF_BAR0) npa_af_aq_base
379 *
380 * NPA AF Admin Queue Base Address Register
381 */
382union npa_af_aq_base {
383	u64 u;
384	struct npa_af_aq_base_s {
385		u64 reserved_0_6                     : 7;
386		u64 base_addr                        : 46;
387		u64 reserved_53_63                   : 11;
388	} s;
389	/* struct npa_af_aq_base_s cn; */
390};
391
392static inline u64 NPA_AF_AQ_BASE(void)
393	__attribute__ ((pure, always_inline));
394static inline u64 NPA_AF_AQ_BASE(void)
395{
396	return 0x610;
397}
398
399/**
400 * Register (RVU_PF_BAR0) npa_af_aq_cfg
401 *
402 * NPA AF Admin Queue Configuration Register
403 */
404union npa_af_aq_cfg {
405	u64 u;
406	struct npa_af_aq_cfg_s {
407		u64 qsize                            : 4;
408		u64 reserved_4_63                    : 60;
409	} s;
410	/* struct npa_af_aq_cfg_s cn; */
411};
412
413static inline u64 NPA_AF_AQ_CFG(void)
414	__attribute__ ((pure, always_inline));
415static inline u64 NPA_AF_AQ_CFG(void)
416{
417	return 0x600;
418}
419
420/**
421 * Register (RVU_PF_BAR0) npa_af_aq_done
422 *
423 * NPA AF AQ Done Count Register
424 */
425union npa_af_aq_done {
426	u64 u;
427	struct npa_af_aq_done_s {
428		u64 done                             : 20;
429		u64 reserved_20_63                   : 44;
430	} s;
431	/* struct npa_af_aq_done_s cn; */
432};
433
434static inline u64 NPA_AF_AQ_DONE(void)
435	__attribute__ ((pure, always_inline));
436static inline u64 NPA_AF_AQ_DONE(void)
437{
438	return 0x650;
439}
440
441/**
442 * Register (RVU_PF_BAR0) npa_af_aq_done_ack
443 *
444 * NPA AF AQ Done Count Ack Register This register is written by software
445 * to acknowledge interrupts.
446 */
447union npa_af_aq_done_ack {
448	u64 u;
449	struct npa_af_aq_done_ack_s {
450		u64 done_ack                         : 20;
451		u64 reserved_20_63                   : 44;
452	} s;
453	/* struct npa_af_aq_done_ack_s cn; */
454};
455
456static inline u64 NPA_AF_AQ_DONE_ACK(void)
457	__attribute__ ((pure, always_inline));
458static inline u64 NPA_AF_AQ_DONE_ACK(void)
459{
460	return 0x660;
461}
462
463/**
464 * Register (RVU_PF_BAR0) npa_af_aq_done_ena_w1c
465 *
466 * NPA AF AQ Done Interrupt Enable Clear Register This register clears
467 * interrupt enable bits.
468 */
469union npa_af_aq_done_ena_w1c {
470	u64 u;
471	struct npa_af_aq_done_ena_w1c_s {
472		u64 done                             : 1;
473		u64 reserved_1_63                    : 63;
474	} s;
475	/* struct npa_af_aq_done_ena_w1c_s cn; */
476};
477
478static inline u64 NPA_AF_AQ_DONE_ENA_W1C(void)
479	__attribute__ ((pure, always_inline));
480static inline u64 NPA_AF_AQ_DONE_ENA_W1C(void)
481{
482	return 0x698;
483}
484
485/**
486 * Register (RVU_PF_BAR0) npa_af_aq_done_ena_w1s
487 *
488 * NPA AF AQ Done Interrupt Enable Set Register This register sets
489 * interrupt enable bits.
490 */
491union npa_af_aq_done_ena_w1s {
492	u64 u;
493	struct npa_af_aq_done_ena_w1s_s {
494		u64 done                             : 1;
495		u64 reserved_1_63                    : 63;
496	} s;
497	/* struct npa_af_aq_done_ena_w1s_s cn; */
498};
499
500static inline u64 NPA_AF_AQ_DONE_ENA_W1S(void)
501	__attribute__ ((pure, always_inline));
502static inline u64 NPA_AF_AQ_DONE_ENA_W1S(void)
503{
504	return 0x690;
505}
506
507/**
508 * Register (RVU_PF_BAR0) npa_af_aq_done_int
509 *
510 * NPA AF AQ Done Interrupt Register
511 */
512union npa_af_aq_done_int {
513	u64 u;
514	struct npa_af_aq_done_int_s {
515		u64 done                             : 1;
516		u64 reserved_1_63                    : 63;
517	} s;
518	/* struct npa_af_aq_done_int_s cn; */
519};
520
521static inline u64 NPA_AF_AQ_DONE_INT(void)
522	__attribute__ ((pure, always_inline));
523static inline u64 NPA_AF_AQ_DONE_INT(void)
524{
525	return 0x680;
526}
527
528/**
529 * Register (RVU_PF_BAR0) npa_af_aq_done_int_w1s
530 *
531 * INTERNAL: NPA AF AQ Done Interrupt Set Register
532 */
533union npa_af_aq_done_int_w1s {
534	u64 u;
535	struct npa_af_aq_done_int_w1s_s {
536		u64 done                             : 1;
537		u64 reserved_1_63                    : 63;
538	} s;
539	/* struct npa_af_aq_done_int_w1s_s cn; */
540};
541
542static inline u64 NPA_AF_AQ_DONE_INT_W1S(void)
543	__attribute__ ((pure, always_inline));
544static inline u64 NPA_AF_AQ_DONE_INT_W1S(void)
545{
546	return 0x688;
547}
548
549/**
550 * Register (RVU_PF_BAR0) npa_af_aq_done_timer
551 *
552 * NPA AF Admin Queue Done Interrupt Timer Register Used to debug the
553 * queue interrupt coalescing timer.
554 */
555union npa_af_aq_done_timer {
556	u64 u;
557	struct npa_af_aq_done_timer_s {
558		u64 count                            : 16;
559		u64 reserved_16_63                   : 48;
560	} s;
561	/* struct npa_af_aq_done_timer_s cn; */
562};
563
564static inline u64 NPA_AF_AQ_DONE_TIMER(void)
565	__attribute__ ((pure, always_inline));
566static inline u64 NPA_AF_AQ_DONE_TIMER(void)
567{
568	return 0x670;
569}
570
571/**
572 * Register (RVU_PF_BAR0) npa_af_aq_done_wait
573 *
574 * NPA AF AQ Done Interrupt Coalescing Wait Register Specifies the queue
575 * interrupt coalescing settings.
576 */
577union npa_af_aq_done_wait {
578	u64 u;
579	struct npa_af_aq_done_wait_s {
580		u64 num_wait                         : 20;
581		u64 reserved_20_31                   : 12;
582		u64 time_wait                        : 16;
583		u64 reserved_48_63                   : 16;
584	} s;
585	/* struct npa_af_aq_done_wait_s cn; */
586};
587
588static inline u64 NPA_AF_AQ_DONE_WAIT(void)
589	__attribute__ ((pure, always_inline));
590static inline u64 NPA_AF_AQ_DONE_WAIT(void)
591{
592	return 0x640;
593}
594
595/**
596 * Register (RVU_PF_BAR0) npa_af_aq_door
597 *
598 * NPA AF Admin Queue Doorbell Register Software writes to this register
599 * to enqueue one or more entries to AQ.
600 */
601union npa_af_aq_door {
602	u64 u;
603	struct npa_af_aq_door_s {
604		u64 count                            : 16;
605		u64 reserved_16_63                   : 48;
606	} s;
607	/* struct npa_af_aq_door_s cn; */
608};
609
610static inline u64 NPA_AF_AQ_DOOR(void)
611	__attribute__ ((pure, always_inline));
612static inline u64 NPA_AF_AQ_DOOR(void)
613{
614	return 0x630;
615}
616
617/**
618 * Register (RVU_PF_BAR0) npa_af_aq_status
619 *
620 * NPA AF Admin Queue Status Register
621 */
622union npa_af_aq_status {
623	u64 u;
624	struct npa_af_aq_status_s {
625		u64 reserved_0_3                     : 4;
626		u64 head_ptr                         : 20;
627		u64 reserved_24_35                   : 12;
628		u64 tail_ptr                         : 20;
629		u64 reserved_56_61                   : 6;
630		u64 aq_busy                          : 1;
631		u64 aq_err                           : 1;
632	} s;
633	struct npa_af_aq_status_cn {
634		u64 reserved_0_3                     : 4;
635		u64 head_ptr                         : 20;
636		u64 reserved_24_31                   : 8;
637		u64 reserved_32_35                   : 4;
638		u64 tail_ptr                         : 20;
639		u64 reserved_56_61                   : 6;
640		u64 aq_busy                          : 1;
641		u64 aq_err                           : 1;
642	} cn;
643};
644
645static inline u64 NPA_AF_AQ_STATUS(void)
646	__attribute__ ((pure, always_inline));
647static inline u64 NPA_AF_AQ_STATUS(void)
648{
649	return 0x620;
650}
651
652/**
653 * Register (RVU_PF_BAR0) npa_af_avg_delay
654 *
655 * NPA AF Queue Average Delay Register
656 */
657union npa_af_avg_delay {
658	u64 u;
659	struct npa_af_avg_delay_s {
660		u64 avg_dly                          : 19;
661		u64 reserved_19_23                   : 5;
662		u64 avg_timer                        : 16;
663		u64 reserved_40_62                   : 23;
664		u64 avg_timer_dis                    : 1;
665	} s;
666	/* struct npa_af_avg_delay_s cn; */
667};
668
669static inline u64 NPA_AF_AVG_DELAY(void)
670	__attribute__ ((pure, always_inline));
671static inline u64 NPA_AF_AVG_DELAY(void)
672{
673	return 0x100;
674}
675
676/**
677 * Register (RVU_PF_BAR0) npa_af_bar2_alias#
678 *
679 * INTERNAL: NPA Admin Function  BAR2 Alias Registers  These registers
680 * alias to the NPA BAR2 registers for the PF and function selected by
681 * NPA_AF_BAR2_SEL[PF_FUNC].  Internal: Not implemented. Placeholder for
682 * bug33464.
683 */
684union npa_af_bar2_aliasx {
685	u64 u;
686	struct npa_af_bar2_aliasx_s {
687		u64 data                             : 64;
688	} s;
689	/* struct npa_af_bar2_aliasx_s cn; */
690};
691
692static inline u64 NPA_AF_BAR2_ALIASX(u64 a)
693	__attribute__ ((pure, always_inline));
694static inline u64 NPA_AF_BAR2_ALIASX(u64 a)
695{
696	return 0x9100000 + 8 * a;
697}
698
699/**
700 * Register (RVU_PF_BAR0) npa_af_bar2_sel
701 *
702 * INTERNAL: NPA Admin Function BAR2 Select Register  This register
703 * configures BAR2 accesses from the NPA_AF_BAR2_ALIAS() registers in
704 * BAR0. Internal: Not implemented. Placeholder for bug33464.
705 */
706union npa_af_bar2_sel {
707	u64 u;
708	struct npa_af_bar2_sel_s {
709		u64 alias_pf_func                    : 16;
710		u64 alias_ena                        : 1;
711		u64 reserved_17_63                   : 47;
712	} s;
713	/* struct npa_af_bar2_sel_s cn; */
714};
715
716static inline u64 NPA_AF_BAR2_SEL(void)
717	__attribute__ ((pure, always_inline));
718static inline u64 NPA_AF_BAR2_SEL(void)
719{
720	return 0x9000000;
721}
722
723/**
724 * Register (RVU_PF_BAR0) npa_af_blk_rst
725 *
726 * NPA AF Block Reset Register
727 */
728union npa_af_blk_rst {
729	u64 u;
730	struct npa_af_blk_rst_s {
731		u64 rst                              : 1;
732		u64 reserved_1_62                    : 62;
733		u64 busy                             : 1;
734	} s;
735	/* struct npa_af_blk_rst_s cn; */
736};
737
738static inline u64 NPA_AF_BLK_RST(void)
739	__attribute__ ((pure, always_inline));
740static inline u64 NPA_AF_BLK_RST(void)
741{
742	return 0;
743}
744
745/**
746 * Register (RVU_PF_BAR0) npa_af_bp_test
747 *
748 * INTERNAL: NPA AF Backpressure Test Register
749 */
750union npa_af_bp_test {
751	u64 u;
752	struct npa_af_bp_test_s {
753		u64 lfsr_freq                        : 12;
754		u64 reserved_12_15                   : 4;
755		u64 bp_cfg                           : 32;
756		u64 enable                           : 16;
757	} s;
758	/* struct npa_af_bp_test_s cn; */
759};
760
761static inline u64 NPA_AF_BP_TEST(void)
762	__attribute__ ((pure, always_inline));
763static inline u64 NPA_AF_BP_TEST(void)
764{
765	return 0x200;
766}
767
768/**
769 * Register (RVU_PF_BAR0) npa_af_const
770 *
771 * NPA AF Constants Register This register contains constants for
772 * software discovery.
773 */
774union npa_af_const {
775	u64 u;
776	struct npa_af_const_s {
777		u64 stack_page_bytes                 : 8;
778		u64 stack_page_ptrs                  : 8;
779		u64 lfs                              : 12;
780		u64 qints                            : 12;
781		u64 num_ndc                          : 3;
782		u64 reserved_43_63                   : 21;
783	} s;
784	/* struct npa_af_const_s cn; */
785};
786
787static inline u64 NPA_AF_CONST(void)
788	__attribute__ ((pure, always_inline));
789static inline u64 NPA_AF_CONST(void)
790{
791	return 0x10;
792}
793
794/**
795 * Register (RVU_PF_BAR0) npa_af_const1
796 *
797 * NPA AF Constants Register 1 This register contains constants for
798 * software discovery.
799 */
800union npa_af_const1 {
801	u64 u;
802	struct npa_af_const1_s {
803		u64 aura_log2bytes                   : 4;
804		u64 pool_log2bytes                   : 4;
805		u64 qint_log2bytes                   : 4;
806		u64 reserved_12_63                   : 52;
807	} s;
808	/* struct npa_af_const1_s cn; */
809};
810
811static inline u64 NPA_AF_CONST1(void)
812	__attribute__ ((pure, always_inline));
813static inline u64 NPA_AF_CONST1(void)
814{
815	return 0x18;
816}
817
818/**
819 * Register (RVU_PF_BAR0) npa_af_dtx_filter_ctl
820 *
821 * NPA AF DTX LF Filter Control Register
822 */
823union npa_af_dtx_filter_ctl {
824	u64 u;
825	struct npa_af_dtx_filter_ctl_s {
826		u64 ena                              : 1;
827		u64 reserved_1_3                     : 3;
828		u64 lf                               : 7;
829		u64 reserved_11_63                   : 53;
830	} s;
831	/* struct npa_af_dtx_filter_ctl_s cn; */
832};
833
834static inline u64 NPA_AF_DTX_FILTER_CTL(void)
835	__attribute__ ((pure, always_inline));
836static inline u64 NPA_AF_DTX_FILTER_CTL(void)
837{
838	return 0x10040;
839}
840
841/**
842 * Register (RVU_PF_BAR0) npa_af_eco
843 *
844 * INTERNAL: NPA AF ECO Register
845 */
846union npa_af_eco {
847	u64 u;
848	struct npa_af_eco_s {
849		u64 eco_rw                           : 32;
850		u64 reserved_32_63                   : 32;
851	} s;
852	/* struct npa_af_eco_s cn; */
853};
854
855static inline u64 NPA_AF_ECO(void)
856	__attribute__ ((pure, always_inline));
857static inline u64 NPA_AF_ECO(void)
858{
859	return 0x300;
860}
861
862/**
863 * Register (RVU_PF_BAR0) npa_af_err_int
864 *
865 * NPA Admin Function Error Interrupt Register
866 */
867union npa_af_err_int {
868	u64 u;
869	struct npa_af_err_int_s {
870		u64 reserved_0_11                    : 12;
871		u64 aq_door_err                      : 1;
872		u64 aq_res_fault                     : 1;
873		u64 aq_inst_fault                    : 1;
874		u64 reserved_15_63                   : 49;
875	} s;
876	/* struct npa_af_err_int_s cn; */
877};
878
879static inline u64 NPA_AF_ERR_INT(void)
880	__attribute__ ((pure, always_inline));
881static inline u64 NPA_AF_ERR_INT(void)
882{
883	return 0x180;
884}
885
886/**
887 * Register (RVU_PF_BAR0) npa_af_err_int_ena_w1c
888 *
889 * NPA Admin Function Error Interrupt Enable Clear Register This register
890 * clears interrupt enable bits.
891 */
892union npa_af_err_int_ena_w1c {
893	u64 u;
894	struct npa_af_err_int_ena_w1c_s {
895		u64 reserved_0_11                    : 12;
896		u64 aq_door_err                      : 1;
897		u64 aq_res_fault                     : 1;
898		u64 aq_inst_fault                    : 1;
899		u64 reserved_15_63                   : 49;
900	} s;
901	/* struct npa_af_err_int_ena_w1c_s cn; */
902};
903
904static inline u64 NPA_AF_ERR_INT_ENA_W1C(void)
905	__attribute__ ((pure, always_inline));
906static inline u64 NPA_AF_ERR_INT_ENA_W1C(void)
907{
908	return 0x198;
909}
910
911/**
912 * Register (RVU_PF_BAR0) npa_af_err_int_ena_w1s
913 *
914 * NPA Admin Function Error Interrupt Enable Set Register This register
915 * sets interrupt enable bits.
916 */
917union npa_af_err_int_ena_w1s {
918	u64 u;
919	struct npa_af_err_int_ena_w1s_s {
920		u64 reserved_0_11                    : 12;
921		u64 aq_door_err                      : 1;
922		u64 aq_res_fault                     : 1;
923		u64 aq_inst_fault                    : 1;
924		u64 reserved_15_63                   : 49;
925	} s;
926	/* struct npa_af_err_int_ena_w1s_s cn; */
927};
928
929static inline u64 NPA_AF_ERR_INT_ENA_W1S(void)
930	__attribute__ ((pure, always_inline));
931static inline u64 NPA_AF_ERR_INT_ENA_W1S(void)
932{
933	return 0x190;
934}
935
936/**
937 * Register (RVU_PF_BAR0) npa_af_err_int_w1s
938 *
939 * NPA Admin Function Error Interrupt Set Register This register sets
940 * interrupt bits.
941 */
942union npa_af_err_int_w1s {
943	u64 u;
944	struct npa_af_err_int_w1s_s {
945		u64 reserved_0_11                    : 12;
946		u64 aq_door_err                      : 1;
947		u64 aq_res_fault                     : 1;
948		u64 aq_inst_fault                    : 1;
949		u64 reserved_15_63                   : 49;
950	} s;
951	/* struct npa_af_err_int_w1s_s cn; */
952};
953
954static inline u64 NPA_AF_ERR_INT_W1S(void)
955	__attribute__ ((pure, always_inline));
956static inline u64 NPA_AF_ERR_INT_W1S(void)
957{
958	return 0x188;
959}
960
961/**
962 * Register (RVU_PF_BAR0) npa_af_gen_cfg
963 *
964 * NPA AF General Configuration Register This register provides NPA
965 * control and status information.
966 */
967union npa_af_gen_cfg {
968	u64 u;
969	struct npa_af_gen_cfg_s {
970		u64 reserved_0                       : 1;
971		u64 af_be                            : 1;
972		u64 reserved_2                       : 1;
973		u64 force_cond_clk_en                : 1;
974		u64 force_intf_clk_en                : 1;
975		u64 reserved_5_9                     : 5;
976		u64 ocla_bp                          : 1;
977		u64 reserved_11                      : 1;
978		u64 ratem1                           : 4;
979		u64 reserved_16_63                   : 48;
980	} s;
981	/* struct npa_af_gen_cfg_s cn; */
982};
983
984static inline u64 NPA_AF_GEN_CFG(void)
985	__attribute__ ((pure, always_inline));
986static inline u64 NPA_AF_GEN_CFG(void)
987{
988	return 0x30;
989}
990
991/**
992 * Register (RVU_PF_BAR0) npa_af_gen_int
993 *
994 * NPA AF General Interrupt Register This register contains general error
995 * interrupt summary bits.
996 */
997union npa_af_gen_int {
998	u64 u;
999	struct npa_af_gen_int_s {
1000		u64 free_dis                         : 16;
1001		u64 alloc_dis                        : 16;
1002		u64 unmapped_pf_func                 : 1;
1003		u64 reserved_33_63                   : 31;
1004	} s;
1005	/* struct npa_af_gen_int_s cn; */
1006};
1007
1008static inline u64 NPA_AF_GEN_INT(void)
1009	__attribute__ ((pure, always_inline));
1010static inline u64 NPA_AF_GEN_INT(void)
1011{
1012	return 0x140;
1013}
1014
1015/**
1016 * Register (RVU_PF_BAR0) npa_af_gen_int_ena_w1c
1017 *
1018 * NPA AF General Interrupt Enable Clear Register This register clears
1019 * interrupt enable bits.
1020 */
1021union npa_af_gen_int_ena_w1c {
1022	u64 u;
1023	struct npa_af_gen_int_ena_w1c_s {
1024		u64 free_dis                         : 16;
1025		u64 alloc_dis                        : 16;
1026		u64 unmapped_pf_func                 : 1;
1027		u64 reserved_33_63                   : 31;
1028	} s;
1029	/* struct npa_af_gen_int_ena_w1c_s cn; */
1030};
1031
1032static inline u64 NPA_AF_GEN_INT_ENA_W1C(void)
1033	__attribute__ ((pure, always_inline));
1034static inline u64 NPA_AF_GEN_INT_ENA_W1C(void)
1035{
1036	return 0x158;
1037}
1038
1039/**
1040 * Register (RVU_PF_BAR0) npa_af_gen_int_ena_w1s
1041 *
1042 * NPA AF General Interrupt Enable Set Register This register sets
1043 * interrupt enable bits.
1044 */
1045union npa_af_gen_int_ena_w1s {
1046	u64 u;
1047	struct npa_af_gen_int_ena_w1s_s {
1048		u64 free_dis                         : 16;
1049		u64 alloc_dis                        : 16;
1050		u64 unmapped_pf_func                 : 1;
1051		u64 reserved_33_63                   : 31;
1052	} s;
1053	/* struct npa_af_gen_int_ena_w1s_s cn; */
1054};
1055
1056static inline u64 NPA_AF_GEN_INT_ENA_W1S(void)
1057	__attribute__ ((pure, always_inline));
1058static inline u64 NPA_AF_GEN_INT_ENA_W1S(void)
1059{
1060	return 0x150;
1061}
1062
1063/**
1064 * Register (RVU_PF_BAR0) npa_af_gen_int_w1s
1065 *
1066 * NPA AF General Interrupt Set Register This register sets interrupt
1067 * bits.
1068 */
1069union npa_af_gen_int_w1s {
1070	u64 u;
1071	struct npa_af_gen_int_w1s_s {
1072		u64 free_dis                         : 16;
1073		u64 alloc_dis                        : 16;
1074		u64 unmapped_pf_func                 : 1;
1075		u64 reserved_33_63                   : 31;
1076	} s;
1077	/* struct npa_af_gen_int_w1s_s cn; */
1078};
1079
1080static inline u64 NPA_AF_GEN_INT_W1S(void)
1081	__attribute__ ((pure, always_inline));
1082static inline u64 NPA_AF_GEN_INT_W1S(void)
1083{
1084	return 0x148;
1085}
1086
1087/**
1088 * Register (RVU_PF_BAR0) npa_af_inp_ctl
1089 *
1090 * NPA AF Input Control Register
1091 */
1092union npa_af_inp_ctl {
1093	u64 u;
1094	struct npa_af_inp_ctl_s {
1095		u64 free_dis                         : 16;
1096		u64 alloc_dis                        : 16;
1097		u64 reserved_32_63                   : 32;
1098	} s;
1099	/* struct npa_af_inp_ctl_s cn; */
1100};
1101
1102static inline u64 NPA_AF_INP_CTL(void)
1103	__attribute__ ((pure, always_inline));
1104static inline u64 NPA_AF_INP_CTL(void)
1105{
1106	return 0xd0;
1107}
1108
1109/**
1110 * Register (RVU_PF_BAR0) npa_af_lf#_auras_cfg
1111 *
1112 * NPA AF Local Function Auras Configuration Registers
1113 */
1114union npa_af_lfx_auras_cfg {
1115	u64 u;
1116	struct npa_af_lfx_auras_cfg_s {
1117		u64 way_mask                         : 16;
1118		u64 loc_aura_size                    : 4;
1119		u64 loc_aura_offset                  : 14;
1120		u64 caching                          : 1;
1121		u64 be                               : 1;
1122		u64 rmt_aura_size                    : 4;
1123		u64 rmt_aura_offset                  : 14;
1124		u64 rmt_lf                           : 7;
1125		u64 reserved_61_63                   : 3;
1126	} s;
1127	struct npa_af_lfx_auras_cfg_cn96xxp1 {
1128		u64 way_mask                         : 16;
1129		u64 loc_aura_size                    : 4;
1130		u64 loc_aura_offset                  : 14;
1131		u64 caching                          : 1;
1132		u64 reserved_35                      : 1;
1133		u64 rmt_aura_size                    : 4;
1134		u64 rmt_aura_offset                  : 14;
1135		u64 rmt_lf                           : 7;
1136		u64 reserved_61_63                   : 3;
1137	} cn96xxp1;
1138	/* struct npa_af_lfx_auras_cfg_s cn96xxp3; */
1139	/* struct npa_af_lfx_auras_cfg_s cnf95xx; */
1140};
1141
1142static inline u64 NPA_AF_LFX_AURAS_CFG(u64 a)
1143	__attribute__ ((pure, always_inline));
1144static inline u64 NPA_AF_LFX_AURAS_CFG(u64 a)
1145{
1146	return 0x4000 + 0x40000 * a;
1147}
1148
1149/**
1150 * Register (RVU_PF_BAR0) npa_af_lf#_loc_auras_base
1151 *
1152 * NPA AF Local Function Auras Base Registers
1153 */
1154union npa_af_lfx_loc_auras_base {
1155	u64 u;
1156	struct npa_af_lfx_loc_auras_base_s {
1157		u64 reserved_0_6                     : 7;
1158		u64 addr                             : 46;
1159		u64 reserved_53_63                   : 11;
1160	} s;
1161	/* struct npa_af_lfx_loc_auras_base_s cn; */
1162};
1163
1164static inline u64 NPA_AF_LFX_LOC_AURAS_BASE(u64 a)
1165	__attribute__ ((pure, always_inline));
1166static inline u64 NPA_AF_LFX_LOC_AURAS_BASE(u64 a)
1167{
1168	return 0x4010 + 0x40000 * a;
1169}
1170
1171/**
1172 * Register (RVU_PF_BAR0) npa_af_lf#_qints_base
1173 *
1174 * NPA AF Local Function Queue Interrupts Base Registers
1175 */
1176union npa_af_lfx_qints_base {
1177	u64 u;
1178	struct npa_af_lfx_qints_base_s {
1179		u64 reserved_0_6                     : 7;
1180		u64 addr                             : 46;
1181		u64 reserved_53_63                   : 11;
1182	} s;
1183	/* struct npa_af_lfx_qints_base_s cn; */
1184};
1185
1186static inline u64 NPA_AF_LFX_QINTS_BASE(u64 a)
1187	__attribute__ ((pure, always_inline));
1188static inline u64 NPA_AF_LFX_QINTS_BASE(u64 a)
1189{
1190	return 0x4110 + 0x40000 * a;
1191}
1192
1193/**
1194 * Register (RVU_PF_BAR0) npa_af_lf#_qints_cfg
1195 *
1196 * NPA AF Local Function Queue Interrupts Configuration Registers This
1197 * register controls access to the LF's queue interrupt context table in
1198 * LLC/DRAM. The table consists of NPA_AF_CONST[QINTS] contiguous
1199 * NPA_QINT_HW_S structures. The size of each structure is 1 \<\<
1200 * NPA_AF_CONST1[QINT_LOG2BYTES] bytes.
1201 */
1202union npa_af_lfx_qints_cfg {
1203	u64 u;
1204	struct npa_af_lfx_qints_cfg_s {
1205		u64 reserved_0_19                    : 20;
1206		u64 way_mask                         : 16;
1207		u64 caching                          : 2;
1208		u64 reserved_38_63                   : 26;
1209	} s;
1210	/* struct npa_af_lfx_qints_cfg_s cn; */
1211};
1212
1213static inline u64 NPA_AF_LFX_QINTS_CFG(u64 a)
1214	__attribute__ ((pure, always_inline));
1215static inline u64 NPA_AF_LFX_QINTS_CFG(u64 a)
1216{
1217	return 0x4100 + 0x40000 * a;
1218}
1219
1220/**
1221 * Register (RVU_PF_BAR0) npa_af_lf_rst
1222 *
1223 * NPA Admin Function LF Reset Register
1224 */
1225union npa_af_lf_rst {
1226	u64 u;
1227	struct npa_af_lf_rst_s {
1228		u64 lf                               : 8;
1229		u64 reserved_8_11                    : 4;
1230		u64 exec                             : 1;
1231		u64 reserved_13_63                   : 51;
1232	} s;
1233	/* struct npa_af_lf_rst_s cn; */
1234};
1235
1236static inline u64 NPA_AF_LF_RST(void)
1237	__attribute__ ((pure, always_inline));
1238static inline u64 NPA_AF_LF_RST(void)
1239{
1240	return 0x20;
1241}
1242
1243/**
1244 * Register (RVU_PF_BAR0) npa_af_ndc_cfg
1245 *
1246 * NDC AF General Configuration Register This register provides NDC
1247 * control.
1248 */
1249union npa_af_ndc_cfg {
1250	u64 u;
1251	struct npa_af_ndc_cfg_s {
1252		u64 ndc_bypass                       : 1;
1253		u64 ndc_ign_pois                     : 1;
1254		u64 byp_aura                         : 1;
1255		u64 byp_pool                         : 1;
1256		u64 byp_stack                        : 1;
1257		u64 byp_qint                         : 1;
1258		u64 reserved_6_63                    : 58;
1259	} s;
1260	/* struct npa_af_ndc_cfg_s cn; */
1261};
1262
1263static inline u64 NPA_AF_NDC_CFG(void)
1264	__attribute__ ((pure, always_inline));
1265static inline u64 NPA_AF_NDC_CFG(void)
1266{
1267	return 0x40;
1268}
1269
1270/**
1271 * Register (RVU_PF_BAR0) npa_af_ndc_sync
1272 *
1273 * NPA AF NDC Sync Register Used to synchronize the NPA NDC.
1274 */
1275union npa_af_ndc_sync {
1276	u64 u;
1277	struct npa_af_ndc_sync_s {
1278		u64 lf                               : 8;
1279		u64 reserved_8_11                    : 4;
1280		u64 exec                             : 1;
1281		u64 reserved_13_63                   : 51;
1282	} s;
1283	/* struct npa_af_ndc_sync_s cn; */
1284};
1285
1286static inline u64 NPA_AF_NDC_SYNC(void)
1287	__attribute__ ((pure, always_inline));
1288static inline u64 NPA_AF_NDC_SYNC(void)
1289{
1290	return 0x50;
1291}
1292
1293/**
1294 * Register (RVU_PF_BAR0) npa_af_ras
1295 *
1296 * NPA AF RAS Interrupt Register This register is intended for delivery
1297 * of RAS events to the SCP, so should be ignored by OS drivers.
1298 */
1299union npa_af_ras {
1300	u64 u;
1301	struct npa_af_ras_s {
1302		u64 reserved_0_31                    : 32;
1303		u64 aq_ctx_poison                    : 1;
1304		u64 aq_res_poison                    : 1;
1305		u64 aq_inst_poison                   : 1;
1306		u64 reserved_35_63                   : 29;
1307	} s;
1308	/* struct npa_af_ras_s cn; */
1309};
1310
1311static inline u64 NPA_AF_RAS(void)
1312	__attribute__ ((pure, always_inline));
1313static inline u64 NPA_AF_RAS(void)
1314{
1315	return 0x1a0;
1316}
1317
1318/**
1319 * Register (RVU_PF_BAR0) npa_af_ras_ena_w1c
1320 *
1321 * NPA AF RAS Interrupt Enable Clear Register This register clears
1322 * interrupt enable bits.
1323 */
1324union npa_af_ras_ena_w1c {
1325	u64 u;
1326	struct npa_af_ras_ena_w1c_s {
1327		u64 reserved_0_31                    : 32;
1328		u64 aq_ctx_poison                    : 1;
1329		u64 aq_res_poison                    : 1;
1330		u64 aq_inst_poison                   : 1;
1331		u64 reserved_35_63                   : 29;
1332	} s;
1333	/* struct npa_af_ras_ena_w1c_s cn; */
1334};
1335
1336static inline u64 NPA_AF_RAS_ENA_W1C(void)
1337	__attribute__ ((pure, always_inline));
1338static inline u64 NPA_AF_RAS_ENA_W1C(void)
1339{
1340	return 0x1b8;
1341}
1342
1343/**
1344 * Register (RVU_PF_BAR0) npa_af_ras_ena_w1s
1345 *
1346 * NPA AF RAS Interrupt Enable Set Register This register sets interrupt
1347 * enable bits.
1348 */
1349union npa_af_ras_ena_w1s {
1350	u64 u;
1351	struct npa_af_ras_ena_w1s_s {
1352		u64 reserved_0_31                    : 32;
1353		u64 aq_ctx_poison                    : 1;
1354		u64 aq_res_poison                    : 1;
1355		u64 aq_inst_poison                   : 1;
1356		u64 reserved_35_63                   : 29;
1357	} s;
1358	/* struct npa_af_ras_ena_w1s_s cn; */
1359};
1360
1361static inline u64 NPA_AF_RAS_ENA_W1S(void)
1362	__attribute__ ((pure, always_inline));
1363static inline u64 NPA_AF_RAS_ENA_W1S(void)
1364{
1365	return 0x1b0;
1366}
1367
1368/**
1369 * Register (RVU_PF_BAR0) npa_af_ras_w1s
1370 *
1371 * NPA AF RAS Interrupt Set Register This register sets interrupt bits.
1372 */
1373union npa_af_ras_w1s {
1374	u64 u;
1375	struct npa_af_ras_w1s_s {
1376		u64 reserved_0_31                    : 32;
1377		u64 aq_ctx_poison                    : 1;
1378		u64 aq_res_poison                    : 1;
1379		u64 aq_inst_poison                   : 1;
1380		u64 reserved_35_63                   : 29;
1381	} s;
1382	/* struct npa_af_ras_w1s_s cn; */
1383};
1384
1385static inline u64 NPA_AF_RAS_W1S(void)
1386	__attribute__ ((pure, always_inline));
1387static inline u64 NPA_AF_RAS_W1S(void)
1388{
1389	return 0x1a8;
1390}
1391
1392/**
1393 * Register (RVU_PF_BAR0) npa_af_rvu_int
1394 *
1395 * NPA AF RVU Interrupt Register This register contains RVU error
1396 * interrupt summary bits.
1397 */
1398union npa_af_rvu_int {
1399	u64 u;
1400	struct npa_af_rvu_int_s {
1401		u64 unmapped_slot                    : 1;
1402		u64 reserved_1_63                    : 63;
1403	} s;
1404	/* struct npa_af_rvu_int_s cn; */
1405};
1406
1407static inline u64 NPA_AF_RVU_INT(void)
1408	__attribute__ ((pure, always_inline));
1409static inline u64 NPA_AF_RVU_INT(void)
1410{
1411	return 0x160;
1412}
1413
1414/**
1415 * Register (RVU_PF_BAR0) npa_af_rvu_int_ena_w1c
1416 *
1417 * NPA AF RVU Interrupt Enable Clear Register This register clears
1418 * interrupt enable bits.
1419 */
1420union npa_af_rvu_int_ena_w1c {
1421	u64 u;
1422	struct npa_af_rvu_int_ena_w1c_s {
1423		u64 unmapped_slot                    : 1;
1424		u64 reserved_1_63                    : 63;
1425	} s;
1426	/* struct npa_af_rvu_int_ena_w1c_s cn; */
1427};
1428
1429static inline u64 NPA_AF_RVU_INT_ENA_W1C(void)
1430	__attribute__ ((pure, always_inline));
1431static inline u64 NPA_AF_RVU_INT_ENA_W1C(void)
1432{
1433	return 0x178;
1434}
1435
1436/**
1437 * Register (RVU_PF_BAR0) npa_af_rvu_int_ena_w1s
1438 *
1439 * NPA AF RVU Interrupt Enable Set Register This register sets interrupt
1440 * enable bits.
1441 */
1442union npa_af_rvu_int_ena_w1s {
1443	u64 u;
1444	struct npa_af_rvu_int_ena_w1s_s {
1445		u64 unmapped_slot                    : 1;
1446		u64 reserved_1_63                    : 63;
1447	} s;
1448	/* struct npa_af_rvu_int_ena_w1s_s cn; */
1449};
1450
1451static inline u64 NPA_AF_RVU_INT_ENA_W1S(void)
1452	__attribute__ ((pure, always_inline));
1453static inline u64 NPA_AF_RVU_INT_ENA_W1S(void)
1454{
1455	return 0x170;
1456}
1457
1458/**
1459 * Register (RVU_PF_BAR0) npa_af_rvu_int_w1s
1460 *
1461 * NPA AF RVU Interrupt Set Register This register sets interrupt bits.
1462 */
1463union npa_af_rvu_int_w1s {
1464	u64 u;
1465	struct npa_af_rvu_int_w1s_s {
1466		u64 unmapped_slot                    : 1;
1467		u64 reserved_1_63                    : 63;
1468	} s;
1469	/* struct npa_af_rvu_int_w1s_s cn; */
1470};
1471
1472static inline u64 NPA_AF_RVU_INT_W1S(void)
1473	__attribute__ ((pure, always_inline));
1474static inline u64 NPA_AF_RVU_INT_W1S(void)
1475{
1476	return 0x168;
1477}
1478
1479/**
1480 * Register (RVU_PF_BAR0) npa_af_rvu_lf_cfg_debug
1481 *
1482 * NPA Privileged LF Configuration Debug Register This debug register
1483 * allows software to lookup the reverse mapping from VF/PF slot to LF.
1484 * The forward mapping is programmed with NPA_PRIV_LF()_CFG.
1485 */
1486union npa_af_rvu_lf_cfg_debug {
1487	u64 u;
1488	struct npa_af_rvu_lf_cfg_debug_s {
1489		u64 lf                               : 12;
1490		u64 lf_valid                         : 1;
1491		u64 exec                             : 1;
1492		u64 reserved_14_15                   : 2;
1493		u64 slot                             : 8;
1494		u64 pf_func                          : 16;
1495		u64 reserved_40_63                   : 24;
1496	} s;
1497	/* struct npa_af_rvu_lf_cfg_debug_s cn; */
1498};
1499
1500static inline u64 NPA_AF_RVU_LF_CFG_DEBUG(void)
1501	__attribute__ ((pure, always_inline));
1502static inline u64 NPA_AF_RVU_LF_CFG_DEBUG(void)
1503{
1504	return 0x10030;
1505}
1506
1507/**
1508 * Register (RVU_PFVF_BAR2) npa_lf_aura_op_alloc#
1509 *
1510 * NPA Aura Allocate Operation Registers These registers are used to
1511 * allocate one or two pointers from a given aura's pool. A 64-bit atomic
1512 * load-and-add to NPA_LF_AURA_OP_ALLOC(0) allocates a single pointer. A
1513 * 128-bit atomic CASP operation to NPA_LF_AURA_OP_ALLOC(0..1) allocates
1514 * two pointers. The atomic write data format is NPA_AURA_OP_WDATA_S. For
1515 * CASP, the first SWAP word in the write data contains
1516 * NPA_AURA_OP_WDATA_S and the remaining write data words are ignored.
1517 * All other accesses to this register (e.g. reads and writes) are
1518 * RAZ/WI.  RSL accesses to this register are RAZ/WI.
1519 */
1520union npa_lf_aura_op_allocx {
1521	u64 u;
1522	struct npa_lf_aura_op_allocx_s {
1523		u64 addr                             : 64;
1524	} s;
1525	/* struct npa_lf_aura_op_allocx_s cn; */
1526};
1527
1528static inline u64 NPA_LF_AURA_OP_ALLOCX(u64 a)
1529	__attribute__ ((pure, always_inline));
1530static inline u64 NPA_LF_AURA_OP_ALLOCX(u64 a)
1531{
1532	return 0x10 + 8 * a;
1533}
1534
1535/**
1536 * Register (RVU_PFVF_BAR2) npa_lf_aura_op_cnt
1537 *
1538 * NPA LF Aura Count Register A 64-bit atomic load-and-add to this
1539 * register returns a given aura's count. A write sets or adds the aura's
1540 * count. A read is RAZ.  RSL accesses to this register are RAZ/WI.
1541 */
1542union npa_lf_aura_op_cnt {
1543	u64 u;
1544	struct npa_lf_aura_op_cnt_s {
1545		u64 count                            : 36;
1546		u64 reserved_36_41                   : 6;
1547		u64 op_err                           : 1;
1548		u64 cnt_add                          : 1;
1549		u64 aura                             : 20;
1550	} s;
1551	/* struct npa_lf_aura_op_cnt_s cn; */
1552};
1553
1554static inline u64 NPA_LF_AURA_OP_CNT(void)
1555	__attribute__ ((pure, always_inline));
1556static inline u64 NPA_LF_AURA_OP_CNT(void)
1557{
1558	return 0x30;
1559}
1560
1561/**
1562 * Register (RVU_PFVF_BAR2) npa_lf_aura_op_free0
1563 *
1564 * NPA LF Aura Free Operation Register 0 A 128-bit write (STP) to
1565 * NPA_LF_AURA_OP_FREE0 and NPA_LF_AURA_OP_FREE1 frees a pointer into a
1566 * given aura's pool. All other accesses to these registers (e.g. reads
1567 * and 64-bit writes) are RAZ/WI.  RSL accesses to this register are
1568 * RAZ/WI.
1569 */
1570union npa_lf_aura_op_free0 {
1571	u64 u;
1572	struct npa_lf_aura_op_free0_s {
1573		u64 addr                             : 64;
1574	} s;
1575	/* struct npa_lf_aura_op_free0_s cn; */
1576};
1577
1578static inline u64 NPA_LF_AURA_OP_FREE0(void)
1579	__attribute__ ((pure, always_inline));
1580static inline u64 NPA_LF_AURA_OP_FREE0(void)
1581{
1582	return 0x20;
1583}
1584
1585/**
1586 * Register (RVU_PFVF_BAR2) npa_lf_aura_op_free1
1587 *
1588 * NPA LF Aura Free Operation Register 1 See NPA_LF_AURA_OP_FREE0.  RSL
1589 * accesses to this register are RAZ/WI.
1590 */
1591union npa_lf_aura_op_free1 {
1592	u64 u;
1593	struct npa_lf_aura_op_free1_s {
1594		u64 aura                             : 20;
1595		u64 reserved_20_62                   : 43;
1596		u64 fabs                             : 1;
1597	} s;
1598	/* struct npa_lf_aura_op_free1_s cn; */
1599};
1600
1601static inline u64 NPA_LF_AURA_OP_FREE1(void)
1602	__attribute__ ((pure, always_inline));
1603static inline u64 NPA_LF_AURA_OP_FREE1(void)
1604{
1605	return 0x28;
1606}
1607
1608/**
1609 * Register (RVU_PFVF_BAR2) npa_lf_aura_op_int
1610 *
1611 * NPA LF Aura Interrupt Operation Register A 64-bit atomic load-and-add
1612 * to this register reads
1613 * NPA_AURA_HW_S[ERR_INT,ERR_INT_ENA,THRESH_INT,THRESH_INT_ENA]. A write
1614 * optionally sets or clears these fields. A read is RAZ.  RSL accesses
1615 * to this register are RAZ/WI.
1616 */
1617union npa_lf_aura_op_int {
1618	u64 u;
1619	struct npa_lf_aura_op_int_s {
1620		u64 err_int                          : 8;
1621		u64 err_int_ena                      : 8;
1622		u64 thresh_int                       : 1;
1623		u64 thresh_int_ena                   : 1;
1624		u64 reserved_18_41                   : 24;
1625		u64 op_err                           : 1;
1626		u64 setop                            : 1;
1627		u64 aura                             : 20;
1628	} s;
1629	/* struct npa_lf_aura_op_int_s cn; */
1630};
1631
1632static inline u64 NPA_LF_AURA_OP_INT(void)
1633	__attribute__ ((pure, always_inline));
1634static inline u64 NPA_LF_AURA_OP_INT(void)
1635{
1636	return 0x60;
1637}
1638
1639/**
1640 * Register (RVU_PFVF_BAR2) npa_lf_aura_op_limit
1641 *
1642 * NPA LF Aura Allocation Limit Register A 64-bit atomic load-and-add to
1643 * this register returns a given aura's limit. A write sets the aura's
1644 * limit. A read is RAZ.  RSL accesses to this register are RAZ/WI.
1645 */
1646union npa_lf_aura_op_limit {
1647	u64 u;
1648	struct npa_lf_aura_op_limit_s {
1649		u64 limit                            : 36;
1650		u64 reserved_36_41                   : 6;
1651		u64 op_err                           : 1;
1652		u64 reserved_43                      : 1;
1653		u64 aura                             : 20;
1654	} s;
1655	/* struct npa_lf_aura_op_limit_s cn; */
1656};
1657
1658static inline u64 NPA_LF_AURA_OP_LIMIT(void)
1659	__attribute__ ((pure, always_inline));
1660static inline u64 NPA_LF_AURA_OP_LIMIT(void)
1661{
1662	return 0x50;
1663}
1664
1665/**
1666 * Register (RVU_PFVF_BAR2) npa_lf_aura_op_thresh
1667 *
1668 * NPA LF Aura Threshold Operation Register A 64-bit atomic load-and-add
1669 * to this register reads NPA_AURA_HW_S[THRESH_UP,THRESH]. A write to the
1670 * register writes NPA_AURA_HW_S[THRESH_UP,THRESH] and recomputes
1671 * NPA_AURA_HW_S[THRESH_INT]. A read is RAZ.  RSL accesses to this
1672 * register are RAZ/WI.
1673 */
1674union npa_lf_aura_op_thresh {
1675	u64 u;
1676	struct npa_lf_aura_op_thresh_s {
1677		u64 thresh                           : 36;
1678		u64 reserved_36_41                   : 6;
1679		u64 op_err                           : 1;
1680		u64 thresh_up                        : 1;
1681		u64 aura                             : 20;
1682	} s;
1683	/* struct npa_lf_aura_op_thresh_s cn; */
1684};
1685
1686static inline u64 NPA_LF_AURA_OP_THRESH(void)
1687	__attribute__ ((pure, always_inline));
1688static inline u64 NPA_LF_AURA_OP_THRESH(void)
1689{
1690	return 0x70;
1691}
1692
1693/**
1694 * Register (RVU_PFVF_BAR2) npa_lf_err_int
1695 *
1696 * NPA LF Error Interrupt Register
1697 */
1698union npa_lf_err_int {
1699	u64 u;
1700	struct npa_lf_err_int_s {
1701		u64 aura_dis                         : 1;
1702		u64 aura_oor                         : 1;
1703		u64 reserved_2                       : 1;
1704		u64 rmt_req_oor                      : 1;
1705		u64 reserved_4_11                    : 8;
1706		u64 aura_fault                       : 1;
1707		u64 pool_fault                       : 1;
1708		u64 stack_fault                      : 1;
1709		u64 qint_fault                       : 1;
1710		u64 reserved_16_63                   : 48;
1711	} s;
1712	/* struct npa_lf_err_int_s cn; */
1713};
1714
1715static inline u64 NPA_LF_ERR_INT(void)
1716	__attribute__ ((pure, always_inline));
1717static inline u64 NPA_LF_ERR_INT(void)
1718{
1719	return 0x200;
1720}
1721
1722/**
1723 * Register (RVU_PFVF_BAR2) npa_lf_err_int_ena_w1c
1724 *
1725 * NPA LF Error Interrupt Enable Clear Register This register clears
1726 * interrupt enable bits.
1727 */
1728union npa_lf_err_int_ena_w1c {
1729	u64 u;
1730	struct npa_lf_err_int_ena_w1c_s {
1731		u64 aura_dis                         : 1;
1732		u64 aura_oor                         : 1;
1733		u64 reserved_2                       : 1;
1734		u64 rmt_req_oor                      : 1;
1735		u64 reserved_4_11                    : 8;
1736		u64 aura_fault                       : 1;
1737		u64 pool_fault                       : 1;
1738		u64 stack_fault                      : 1;
1739		u64 qint_fault                       : 1;
1740		u64 reserved_16_63                   : 48;
1741	} s;
1742	/* struct npa_lf_err_int_ena_w1c_s cn; */
1743};
1744
1745static inline u64 NPA_LF_ERR_INT_ENA_W1C(void)
1746	__attribute__ ((pure, always_inline));
1747static inline u64 NPA_LF_ERR_INT_ENA_W1C(void)
1748{
1749	return 0x210;
1750}
1751
1752/**
1753 * Register (RVU_PFVF_BAR2) npa_lf_err_int_ena_w1s
1754 *
1755 * NPA LF Error Interrupt Enable Set Register This register sets
1756 * interrupt enable bits.
1757 */
1758union npa_lf_err_int_ena_w1s {
1759	u64 u;
1760	struct npa_lf_err_int_ena_w1s_s {
1761		u64 aura_dis                         : 1;
1762		u64 aura_oor                         : 1;
1763		u64 reserved_2                       : 1;
1764		u64 rmt_req_oor                      : 1;
1765		u64 reserved_4_11                    : 8;
1766		u64 aura_fault                       : 1;
1767		u64 pool_fault                       : 1;
1768		u64 stack_fault                      : 1;
1769		u64 qint_fault                       : 1;
1770		u64 reserved_16_63                   : 48;
1771	} s;
1772	/* struct npa_lf_err_int_ena_w1s_s cn; */
1773};
1774
1775static inline u64 NPA_LF_ERR_INT_ENA_W1S(void)
1776	__attribute__ ((pure, always_inline));
1777static inline u64 NPA_LF_ERR_INT_ENA_W1S(void)
1778{
1779	return 0x218;
1780}
1781
1782/**
1783 * Register (RVU_PFVF_BAR2) npa_lf_err_int_w1s
1784 *
1785 * NPA LF Error Interrupt Set Register This register sets interrupt bits.
1786 */
1787union npa_lf_err_int_w1s {
1788	u64 u;
1789	struct npa_lf_err_int_w1s_s {
1790		u64 aura_dis                         : 1;
1791		u64 aura_oor                         : 1;
1792		u64 reserved_2                       : 1;
1793		u64 rmt_req_oor                      : 1;
1794		u64 reserved_4_11                    : 8;
1795		u64 aura_fault                       : 1;
1796		u64 pool_fault                       : 1;
1797		u64 stack_fault                      : 1;
1798		u64 qint_fault                       : 1;
1799		u64 reserved_16_63                   : 48;
1800	} s;
1801	/* struct npa_lf_err_int_w1s_s cn; */
1802};
1803
1804static inline u64 NPA_LF_ERR_INT_W1S(void)
1805	__attribute__ ((pure, always_inline));
1806static inline u64 NPA_LF_ERR_INT_W1S(void)
1807{
1808	return 0x208;
1809}
1810
1811/**
1812 * Register (RVU_PFVF_BAR2) npa_lf_pool_op_available
1813 *
1814 * NPA LF Pool Available Count Operation Register A 64-bit atomic load-
1815 * and-add to this register returns a given pool's free pointer count.
1816 * Reads and writes are RAZ/WI.  RSL accesses to this register are
1817 * RAZ/WI.
1818 */
1819union npa_lf_pool_op_available {
1820	u64 u;
1821	struct npa_lf_pool_op_available_s {
1822		u64 count                            : 36;
1823		u64 reserved_36_41                   : 6;
1824		u64 op_err                           : 1;
1825		u64 reserved_43                      : 1;
1826		u64 aura                             : 20;
1827	} s;
1828	/* struct npa_lf_pool_op_available_s cn; */
1829};
1830
1831static inline u64 NPA_LF_POOL_OP_AVAILABLE(void)
1832	__attribute__ ((pure, always_inline));
1833static inline u64 NPA_LF_POOL_OP_AVAILABLE(void)
1834{
1835	return 0x110;
1836}
1837
1838/**
1839 * Register (RVU_PFVF_BAR2) npa_lf_pool_op_int
1840 *
1841 * NPA LF Pool Interrupt Operation Register A 64-bit atomic load-and-add
1842 * to this register reads
1843 * NPA_POOL_S[ERR_INT,ERR_INT_ENA,THRESH_INT,THRESH_INT_ENA]. A write
1844 * optionally sets or clears these fields. A read is RAZ.  RSL accesses
1845 * to this register are RAZ/WI.
1846 */
1847union npa_lf_pool_op_int {
1848	u64 u;
1849	struct npa_lf_pool_op_int_s {
1850		u64 err_int                          : 8;
1851		u64 err_int_ena                      : 8;
1852		u64 thresh_int                       : 1;
1853		u64 thresh_int_ena                   : 1;
1854		u64 reserved_18_41                   : 24;
1855		u64 op_err                           : 1;
1856		u64 setop                            : 1;
1857		u64 aura                             : 20;
1858	} s;
1859	/* struct npa_lf_pool_op_int_s cn; */
1860};
1861
1862static inline u64 NPA_LF_POOL_OP_INT(void)
1863	__attribute__ ((pure, always_inline));
1864static inline u64 NPA_LF_POOL_OP_INT(void)
1865{
1866	return 0x160;
1867}
1868
1869/**
1870 * Register (RVU_PFVF_BAR2) npa_lf_pool_op_pc
1871 *
1872 * NPA LF Pool Performance Count Register A 64-bit atomic load-and-add to
1873 * this register reads NPA_POOL_S[OP_PC] from a given aura's pool. The
1874 * aura is selected by the atomic write data, whose format is
1875 * NPA_AURA_OP_WDATA_S. Reads and writes are RAZ/WI.  RSL accesses to
1876 * this register are RAZ/WI.
1877 */
1878union npa_lf_pool_op_pc {
1879	u64 u;
1880	struct npa_lf_pool_op_pc_s {
1881		u64 op_pc                            : 48;
1882		u64 op_err                           : 1;
1883		u64 reserved_49_63                   : 15;
1884	} s;
1885	/* struct npa_lf_pool_op_pc_s cn; */
1886};
1887
1888static inline u64 NPA_LF_POOL_OP_PC(void)
1889	__attribute__ ((pure, always_inline));
1890static inline u64 NPA_LF_POOL_OP_PC(void)
1891{
1892	return 0x100;
1893}
1894
1895/**
1896 * Register (RVU_PFVF_BAR2) npa_lf_pool_op_ptr_end0
1897 *
1898 * NPA LF Pool Pointer End Operation Register 0 A 128-bit write (STP) to
1899 * the NPA_LF_POOL_OP_PTR_END0 and NPA_LF_POOL_OP_PTR_END1 registers
1900 * writes to a given pool's pointer end value. All other accesses to
1901 * these registers (e.g. reads and 64-bit writes) are RAZ/WI.  RSL
1902 * accesses to this register are RAZ/WI.
1903 */
1904union npa_lf_pool_op_ptr_end0 {
1905	u64 u;
1906	struct npa_lf_pool_op_ptr_end0_s {
1907		u64 ptr_end                          : 64;
1908	} s;
1909	/* struct npa_lf_pool_op_ptr_end0_s cn; */
1910};
1911
1912static inline u64 NPA_LF_POOL_OP_PTR_END0(void)
1913	__attribute__ ((pure, always_inline));
1914static inline u64 NPA_LF_POOL_OP_PTR_END0(void)
1915{
1916	return 0x130;
1917}
1918
1919/**
1920 * Register (RVU_PFVF_BAR2) npa_lf_pool_op_ptr_end1
1921 *
1922 * NPA LF Pool Pointer End Operation Register 1 See
1923 * NPA_LF_POOL_OP_PTR_END0.  RSL accesses to this register are RAZ/WI.
1924 */
1925union npa_lf_pool_op_ptr_end1 {
1926	u64 u;
1927	struct npa_lf_pool_op_ptr_end1_s {
1928		u64 aura                             : 20;
1929		u64 reserved_20_63                   : 44;
1930	} s;
1931	/* struct npa_lf_pool_op_ptr_end1_s cn; */
1932};
1933
1934static inline u64 NPA_LF_POOL_OP_PTR_END1(void)
1935	__attribute__ ((pure, always_inline));
1936static inline u64 NPA_LF_POOL_OP_PTR_END1(void)
1937{
1938	return 0x138;
1939}
1940
1941/**
1942 * Register (RVU_PFVF_BAR2) npa_lf_pool_op_ptr_start0
1943 *
1944 * NPA LF Pool Pointer Start Operation Register 0 A 128-bit write (STP)
1945 * to the NPA_LF_POOL_OP_PTR_START0 and NPA_LF_POOL_OP_PTR_START1
1946 * registers writes to a given pool's pointer start value. All other
1947 * accesses to these registers (e.g. reads and 64-bit writes) are RAZ/WI.
1948 * RSL accesses to this register are RAZ/WI.
1949 */
1950union npa_lf_pool_op_ptr_start0 {
1951	u64 u;
1952	struct npa_lf_pool_op_ptr_start0_s {
1953		u64 ptr_start                        : 64;
1954	} s;
1955	/* struct npa_lf_pool_op_ptr_start0_s cn; */
1956};
1957
1958static inline u64 NPA_LF_POOL_OP_PTR_START0(void)
1959	__attribute__ ((pure, always_inline));
1960static inline u64 NPA_LF_POOL_OP_PTR_START0(void)
1961{
1962	return 0x120;
1963}
1964
1965/**
1966 * Register (RVU_PFVF_BAR2) npa_lf_pool_op_ptr_start1
1967 *
1968 * NPA LF Pool Pointer Start Operation Register 1 See
1969 * NPA_LF_POOL_OP_PTR_START0.  RSL accesses to this register are RAZ/WI.
1970 */
1971union npa_lf_pool_op_ptr_start1 {
1972	u64 u;
1973	struct npa_lf_pool_op_ptr_start1_s {
1974		u64 aura                             : 20;
1975		u64 reserved_20_63                   : 44;
1976	} s;
1977	/* struct npa_lf_pool_op_ptr_start1_s cn; */
1978};
1979
1980static inline u64 NPA_LF_POOL_OP_PTR_START1(void)
1981	__attribute__ ((pure, always_inline));
1982static inline u64 NPA_LF_POOL_OP_PTR_START1(void)
1983{
1984	return 0x128;
1985}
1986
1987/**
1988 * Register (RVU_PFVF_BAR2) npa_lf_pool_op_thresh
1989 *
1990 * NPA LF Pool Threshold Operation Register A 64-bit atomic load-and-add
1991 * to this register reads NPA_POOL_S[THRESH_UP,THRESH]. A write to the
1992 * register writes NPA_POOL_S[THRESH_UP,THRESH]. A read is RAZ.  RSL
1993 * accesses to this register are RAZ/WI.
1994 */
1995union npa_lf_pool_op_thresh {
1996	u64 u;
1997	struct npa_lf_pool_op_thresh_s {
1998		u64 thresh                           : 36;
1999		u64 reserved_36_41                   : 6;
2000		u64 op_err                           : 1;
2001		u64 thresh_up                        : 1;
2002		u64 aura                             : 20;
2003	} s;
2004	/* struct npa_lf_pool_op_thresh_s cn; */
2005};
2006
2007static inline u64 NPA_LF_POOL_OP_THRESH(void)
2008	__attribute__ ((pure, always_inline));
2009static inline u64 NPA_LF_POOL_OP_THRESH(void)
2010{
2011	return 0x170;
2012}
2013
2014/**
2015 * Register (RVU_PFVF_BAR2) npa_lf_qint#_cnt
2016 *
2017 * NPA LF Queue Interrupt Count Registers
2018 */
2019union npa_lf_qintx_cnt {
2020	u64 u;
2021	struct npa_lf_qintx_cnt_s {
2022		u64 count                            : 22;
2023		u64 reserved_22_63                   : 42;
2024	} s;
2025	/* struct npa_lf_qintx_cnt_s cn; */
2026};
2027
2028static inline u64 NPA_LF_QINTX_CNT(u64 a)
2029	__attribute__ ((pure, always_inline));
2030static inline u64 NPA_LF_QINTX_CNT(u64 a)
2031{
2032	return 0x300 + 0x1000 * a;
2033}
2034
2035/**
2036 * Register (RVU_PFVF_BAR2) npa_lf_qint#_ena_w1c
2037 *
2038 * NPA LF Queue Interrupt Enable Clear Registers This register clears
2039 * interrupt enable bits.
2040 */
2041union npa_lf_qintx_ena_w1c {
2042	u64 u;
2043	struct npa_lf_qintx_ena_w1c_s {
2044		u64 intr                             : 1;
2045		u64 reserved_1_63                    : 63;
2046	} s;
2047	/* struct npa_lf_qintx_ena_w1c_s cn; */
2048};
2049
2050static inline u64 NPA_LF_QINTX_ENA_W1C(u64 a)
2051	__attribute__ ((pure, always_inline));
2052static inline u64 NPA_LF_QINTX_ENA_W1C(u64 a)
2053{
2054	return 0x330 + 0x1000 * a;
2055}
2056
2057/**
2058 * Register (RVU_PFVF_BAR2) npa_lf_qint#_ena_w1s
2059 *
2060 * NPA LF Queue Interrupt Enable Set Registers This register sets
2061 * interrupt enable bits.
2062 */
2063union npa_lf_qintx_ena_w1s {
2064	u64 u;
2065	struct npa_lf_qintx_ena_w1s_s {
2066		u64 intr                             : 1;
2067		u64 reserved_1_63                    : 63;
2068	} s;
2069	/* struct npa_lf_qintx_ena_w1s_s cn; */
2070};
2071
2072static inline u64 NPA_LF_QINTX_ENA_W1S(u64 a)
2073	__attribute__ ((pure, always_inline));
2074static inline u64 NPA_LF_QINTX_ENA_W1S(u64 a)
2075{
2076	return 0x320 + 0x1000 * a;
2077}
2078
2079/**
2080 * Register (RVU_PFVF_BAR2) npa_lf_qint#_int
2081 *
2082 * NPA LF Queue Interrupt Registers
2083 */
2084union npa_lf_qintx_int {
2085	u64 u;
2086	struct npa_lf_qintx_int_s {
2087		u64 intr                             : 1;
2088		u64 reserved_1_63                    : 63;
2089	} s;
2090	/* struct npa_lf_qintx_int_s cn; */
2091};
2092
2093static inline u64 NPA_LF_QINTX_INT(u64 a)
2094	__attribute__ ((pure, always_inline));
2095static inline u64 NPA_LF_QINTX_INT(u64 a)
2096{
2097	return 0x310 + 0x1000 * a;
2098}
2099
2100/**
2101 * Register (RVU_PFVF_BAR2) npa_lf_qint#_int_w1s
2102 *
2103 * INTERNAL: NPA LF Queue Interrupt Set Registers
2104 */
2105union npa_lf_qintx_int_w1s {
2106	u64 u;
2107	struct npa_lf_qintx_int_w1s_s {
2108		u64 intr                             : 1;
2109		u64 reserved_1_63                    : 63;
2110	} s;
2111	/* struct npa_lf_qintx_int_w1s_s cn; */
2112};
2113
2114static inline u64 NPA_LF_QINTX_INT_W1S(u64 a)
2115	__attribute__ ((pure, always_inline));
2116static inline u64 NPA_LF_QINTX_INT_W1S(u64 a)
2117{
2118	return 0x318 + 0x1000 * a;
2119}
2120
2121/**
2122 * Register (RVU_PFVF_BAR2) npa_lf_ras
2123 *
2124 * NPA LF RAS Interrupt Register
2125 */
2126union npa_lf_ras {
2127	u64 u;
2128	struct npa_lf_ras_s {
2129		u64 aura_poison                      : 1;
2130		u64 pool_poison                      : 1;
2131		u64 stack_poison                     : 1;
2132		u64 qint_poison                      : 1;
2133		u64 reserved_4_63                    : 60;
2134	} s;
2135	/* struct npa_lf_ras_s cn; */
2136};
2137
2138static inline u64 NPA_LF_RAS(void)
2139	__attribute__ ((pure, always_inline));
2140static inline u64 NPA_LF_RAS(void)
2141{
2142	return 0x220;
2143}
2144
2145/**
2146 * Register (RVU_PFVF_BAR2) npa_lf_ras_ena_w1c
2147 *
2148 * NPA LF RAS Interrupt Enable Clear Register This register clears
2149 * interrupt enable bits.
2150 */
2151union npa_lf_ras_ena_w1c {
2152	u64 u;
2153	struct npa_lf_ras_ena_w1c_s {
2154		u64 aura_poison                      : 1;
2155		u64 pool_poison                      : 1;
2156		u64 stack_poison                     : 1;
2157		u64 qint_poison                      : 1;
2158		u64 reserved_4_63                    : 60;
2159	} s;
2160	/* struct npa_lf_ras_ena_w1c_s cn; */
2161};
2162
2163static inline u64 NPA_LF_RAS_ENA_W1C(void)
2164	__attribute__ ((pure, always_inline));
2165static inline u64 NPA_LF_RAS_ENA_W1C(void)
2166{
2167	return 0x230;
2168}
2169
2170/**
2171 * Register (RVU_PFVF_BAR2) npa_lf_ras_ena_w1s
2172 *
2173 * NPA LF RAS Interrupt Enable Set Register This register sets interrupt
2174 * enable bits.
2175 */
2176union npa_lf_ras_ena_w1s {
2177	u64 u;
2178	struct npa_lf_ras_ena_w1s_s {
2179		u64 aura_poison                      : 1;
2180		u64 pool_poison                      : 1;
2181		u64 stack_poison                     : 1;
2182		u64 qint_poison                      : 1;
2183		u64 reserved_4_63                    : 60;
2184	} s;
2185	/* struct npa_lf_ras_ena_w1s_s cn; */
2186};
2187
2188static inline u64 NPA_LF_RAS_ENA_W1S(void)
2189	__attribute__ ((pure, always_inline));
2190static inline u64 NPA_LF_RAS_ENA_W1S(void)
2191{
2192	return 0x238;
2193}
2194
2195/**
2196 * Register (RVU_PFVF_BAR2) npa_lf_ras_w1s
2197 *
2198 * NPA LF RAS Interrupt Set Register This register sets interrupt bits.
2199 */
2200union npa_lf_ras_w1s {
2201	u64 u;
2202	struct npa_lf_ras_w1s_s {
2203		u64 aura_poison                      : 1;
2204		u64 pool_poison                      : 1;
2205		u64 stack_poison                     : 1;
2206		u64 qint_poison                      : 1;
2207		u64 reserved_4_63                    : 60;
2208	} s;
2209	/* struct npa_lf_ras_w1s_s cn; */
2210};
2211
2212static inline u64 NPA_LF_RAS_W1S(void)
2213	__attribute__ ((pure, always_inline));
2214static inline u64 NPA_LF_RAS_W1S(void)
2215{
2216	return 0x228;
2217}
2218
2219/**
2220 * Register (RVU_PF_BAR0) npa_priv_af_int_cfg
2221 *
2222 * NPA Privileged AF Interrupt Configuration Register
2223 */
2224union npa_priv_af_int_cfg {
2225	u64 u;
2226	struct npa_priv_af_int_cfg_s {
2227		u64 msix_offset                      : 11;
2228		u64 reserved_11                      : 1;
2229		u64 msix_size                        : 8;
2230		u64 reserved_20_63                   : 44;
2231	} s;
2232	/* struct npa_priv_af_int_cfg_s cn; */
2233};
2234
2235static inline u64 NPA_PRIV_AF_INT_CFG(void)
2236	__attribute__ ((pure, always_inline));
2237static inline u64 NPA_PRIV_AF_INT_CFG(void)
2238{
2239	return 0x10000;
2240}
2241
2242/**
2243 * Register (RVU_PF_BAR0) npa_priv_lf#_cfg
2244 *
2245 * NPA Privileged Local Function Configuration Registers These registers
2246 * allow each NPA local function (LF) to be provisioned to a VF/PF slot
2247 * for RVU. See also NPA_AF_RVU_LF_CFG_DEBUG.  Software should read this
2248 * register after write to ensure that the LF is mapped to [PF_FUNC]
2249 * before issuing transactions to the mapped PF and function.  [SLOT]
2250 * must be zero.  Internal: Hardware ignores [SLOT] and always assumes
2251 * 0x0.
2252 */
2253union npa_priv_lfx_cfg {
2254	u64 u;
2255	struct npa_priv_lfx_cfg_s {
2256		u64 slot                             : 8;
2257		u64 pf_func                          : 16;
2258		u64 reserved_24_62                   : 39;
2259		u64 ena                              : 1;
2260	} s;
2261	/* struct npa_priv_lfx_cfg_s cn; */
2262};
2263
2264static inline u64 NPA_PRIV_LFX_CFG(u64 a)
2265	__attribute__ ((pure, always_inline));
2266static inline u64 NPA_PRIV_LFX_CFG(u64 a)
2267{
2268	return 0x10010 + 0x100 * a;
2269}
2270
2271/**
2272 * Register (RVU_PF_BAR0) npa_priv_lf#_int_cfg
2273 *
2274 * NPA Privileged LF Interrupt Configuration Registers
2275 */
2276union npa_priv_lfx_int_cfg {
2277	u64 u;
2278	struct npa_priv_lfx_int_cfg_s {
2279		u64 msix_offset                      : 11;
2280		u64 reserved_11                      : 1;
2281		u64 msix_size                        : 8;
2282		u64 reserved_20_63                   : 44;
2283	} s;
2284	/* struct npa_priv_lfx_int_cfg_s cn; */
2285};
2286
2287static inline u64 NPA_PRIV_LFX_INT_CFG(u64 a)
2288	__attribute__ ((pure, always_inline));
2289static inline u64 NPA_PRIV_LFX_INT_CFG(u64 a)
2290{
2291	return 0x10020 + 0x100 * a;
2292}
2293
2294#endif /* __CSRS_NPA_H__ */
2295