xref: /dpdk/drivers/common/cnxk/hw/sso.h (revision 62afdd8d493d8f563c053a4afccb3c5acd1acf54)
1fa8f86a1SJerin Jacob /* SPDX-License-Identifier: BSD-3-Clause
2fa8f86a1SJerin Jacob  * Copyright(C) 2021 Marvell.
3fa8f86a1SJerin Jacob  */
4fa8f86a1SJerin Jacob 
5fa8f86a1SJerin Jacob #ifndef __SSO_HW_H__
6fa8f86a1SJerin Jacob #define __SSO_HW_H__
7fa8f86a1SJerin Jacob 
8fa8f86a1SJerin Jacob /* Register offsets */
9fa8f86a1SJerin Jacob 
10fa8f86a1SJerin Jacob #define SSO_AF_CONST		      (0x1000ull)
11fa8f86a1SJerin Jacob #define SSO_AF_CONST1		      (0x1008ull)
12fa8f86a1SJerin Jacob #define SSO_AF_WQ_INT_PC	      (0x1020ull)
13fa8f86a1SJerin Jacob #define SSO_AF_NOS_CNT		      (0x1050ull) /* [CN9K, CN10K) */
14fa8f86a1SJerin Jacob #define SSO_AF_GWS_INV		      (0x1060ull) /* [CN10K, .) */
15fa8f86a1SJerin Jacob #define SSO_AF_AW_WE		      (0x1080ull)
16fa8f86a1SJerin Jacob #define SSO_AF_WS_CFG		      (0x1088ull)
17fa8f86a1SJerin Jacob #define SSO_AF_GWE_CFG		      (0x1098ull)
18fa8f86a1SJerin Jacob #define SSO_AF_GWE_RANDOM	      (0x10b0ull)
19fa8f86a1SJerin Jacob #define SSO_AF_LF_HWGRP_RST	      (0x10e0ull)
20fa8f86a1SJerin Jacob #define SSO_AF_AW_CFG		      (0x10f0ull)
21fa8f86a1SJerin Jacob #define SSO_AF_BLK_RST		      (0x10f8ull)
22fa8f86a1SJerin Jacob #define SSO_AF_ACTIVE_CYCLES0	      (0x1100ull)
23fa8f86a1SJerin Jacob #define SSO_AF_ACTIVE_CYCLES1	      (0x1108ull)
24fa8f86a1SJerin Jacob #define SSO_AF_ACTIVE_CYCLES2	      (0x1110ull)
25fa8f86a1SJerin Jacob #define SSO_AF_ERR0		      (0x1220ull)
26fa8f86a1SJerin Jacob #define SSO_AF_ERR0_W1S		      (0x1228ull)
27fa8f86a1SJerin Jacob #define SSO_AF_ERR0_ENA_W1C	      (0x1230ull)
28fa8f86a1SJerin Jacob #define SSO_AF_ERR0_ENA_W1S	      (0x1238ull)
29fa8f86a1SJerin Jacob #define SSO_AF_ERR2		      (0x1260ull)
30fa8f86a1SJerin Jacob #define SSO_AF_ERR2_W1S		      (0x1268ull)
31fa8f86a1SJerin Jacob #define SSO_AF_ERR2_ENA_W1C	      (0x1270ull)
32fa8f86a1SJerin Jacob #define SSO_AF_ERR2_ENA_W1S	      (0x1278ull)
33fa8f86a1SJerin Jacob #define SSO_AF_UNMAP_INFO	      (0x12f0ull)
34fa8f86a1SJerin Jacob #define SSO_AF_UNMAP_INFO2	      (0x1300ull)
35fa8f86a1SJerin Jacob #define SSO_AF_UNMAP_INFO3	      (0x1310ull)
36fa8f86a1SJerin Jacob #define SSO_AF_RAS		      (0x1420ull)
37fa8f86a1SJerin Jacob #define SSO_AF_RAS_W1S		      (0x1430ull)
38fa8f86a1SJerin Jacob #define SSO_AF_RAS_ENA_W1C	      (0x1460ull)
39fa8f86a1SJerin Jacob #define SSO_AF_RAS_ENA_W1S	      (0x1470ull)
40fa8f86a1SJerin Jacob #define SSO_AF_AW_INP_CTL	      (0x2070ull)
41fa8f86a1SJerin Jacob #define SSO_AF_AW_ADD		      (0x2080ull)
42fa8f86a1SJerin Jacob #define SSO_AF_AW_READ_ARB	      (0x2090ull)
43fa8f86a1SJerin Jacob #define SSO_AF_XAQ_REQ_PC	      (0x20b0ull)
44fa8f86a1SJerin Jacob #define SSO_AF_XAQ_LATENCY_PC	      (0x20b8ull)
45fa8f86a1SJerin Jacob #define SSO_AF_TAQ_CNT		      (0x20c0ull)
46fa8f86a1SJerin Jacob #define SSO_AF_TAQ_ADD		      (0x20e0ull)
47fa8f86a1SJerin Jacob #define SSO_AF_POISONX(a)	      (0x2100ull | (uint64_t)(a) << 3)
48fa8f86a1SJerin Jacob #define SSO_AF_POISONX_W1S(a)	      (0x2200ull | (uint64_t)(a) << 3)
49fa8f86a1SJerin Jacob #define SSO_PRIV_AF_INT_CFG	      (0x3000ull)
50fa8f86a1SJerin Jacob #define SSO_AF_RVU_LF_CFG_DEBUG	      (0x3800ull)
51fa8f86a1SJerin Jacob #define SSO_PRIV_LFX_HWGRP_CFG(a)     (0x10000ull | (uint64_t)(a) << 3)
52fa8f86a1SJerin Jacob #define SSO_PRIV_LFX_HWGRP_INT_CFG(a) (0x20000ull | (uint64_t)(a) << 3)
53fa8f86a1SJerin Jacob #define SSO_AF_IU_ACCNTX_CFG(a)	      (0x50000ull | (uint64_t)(a) << 3)
54fa8f86a1SJerin Jacob #define SSO_AF_IU_ACCNTX_RST(a)	      (0x60000ull | (uint64_t)(a) << 3)
55fa8f86a1SJerin Jacob #define SSO_AF_XAQX_HEAD_PTR(a)	      (0x80000ull | (uint64_t)(a) << 3)
56fa8f86a1SJerin Jacob #define SSO_AF_XAQX_TAIL_PTR(a)	      (0x90000ull | (uint64_t)(a) << 3)
57fa8f86a1SJerin Jacob #define SSO_AF_XAQX_HEAD_NEXT(a)      (0xa0000ull | (uint64_t)(a) << 3)
58fa8f86a1SJerin Jacob #define SSO_AF_XAQX_TAIL_NEXT(a)      (0xb0000ull | (uint64_t)(a) << 3)
59fa8f86a1SJerin Jacob #define SSO_AF_TIAQX_STATUS(a)	      (0xc0000ull | (uint64_t)(a) << 3)
60fa8f86a1SJerin Jacob #define SSO_AF_TOAQX_STATUS(a)	      (0xd0000ull | (uint64_t)(a) << 3)
61fa8f86a1SJerin Jacob #define SSO_AF_XAQX_GMCTL(a)	      (0xe0000ull | (uint64_t)(a) << 3)
62fa8f86a1SJerin Jacob #define SSO_AF_HWGRPX_IAQ_THR(a)      (0x200000ull | (uint64_t)(a) << 12)
63fa8f86a1SJerin Jacob #define SSO_AF_HWGRPX_TAQ_THR(a)      (0x200010ull | (uint64_t)(a) << 12)
64fa8f86a1SJerin Jacob #define SSO_AF_HWGRPX_PRI(a)	      (0x200020ull | (uint64_t)(a) << 12)
65fa8f86a1SJerin Jacob #define SSO_AF_HWGRPX_AW_FWD(a)                                                \
66fa8f86a1SJerin Jacob 	(0x200030ull | (uint64_t)(a) << 12) /* [CN10K, .) */
67fa8f86a1SJerin Jacob #define SSO_AF_HWGRPX_WS_PC(a)	(0x200050ull | (uint64_t)(a) << 12)
68fa8f86a1SJerin Jacob #define SSO_AF_HWGRPX_EXT_PC(a) (0x200060ull | (uint64_t)(a) << 12)
69fa8f86a1SJerin Jacob #define SSO_AF_HWGRPX_WA_PC(a)	(0x200070ull | (uint64_t)(a) << 12)
70fa8f86a1SJerin Jacob #define SSO_AF_HWGRPX_TS_PC(a)	(0x200080ull | (uint64_t)(a) << 12)
71fa8f86a1SJerin Jacob #define SSO_AF_HWGRPX_DS_PC(a)	(0x200090ull | (uint64_t)(a) << 12)
72fa8f86a1SJerin Jacob #define SSO_AF_HWGRPX_DQ_PC(a)	(0x2000A0ull | (uint64_t)(a) << 12)
73fa8f86a1SJerin Jacob #define SSO_AF_HWGRPX_LS_PC(a)                                                 \
74fa8f86a1SJerin Jacob 	(0x2000c0ull | (uint64_t)(a) << 12) /* [CN10K, .) */
75fa8f86a1SJerin Jacob #define SSO_AF_HWGRPX_PAGE_CNT(a)    (0x200100ull | (uint64_t)(a) << 12)
76fa8f86a1SJerin Jacob #define SSO_AF_HWGRPX_AW_STATUS(a)   (0x200110ull | (uint64_t)(a) << 12)
77fa8f86a1SJerin Jacob #define SSO_AF_HWGRPX_AW_CFG(a)	     (0x200120ull | (uint64_t)(a) << 12)
78fa8f86a1SJerin Jacob #define SSO_AF_HWGRPX_AW_TAGSPACE(a) (0x200130ull | (uint64_t)(a) << 12)
79fa8f86a1SJerin Jacob #define SSO_AF_HWGRPX_XAQ_AURA(a)    (0x200140ull | (uint64_t)(a) << 12)
80fa8f86a1SJerin Jacob #define SSO_AF_HWGRPX_XAQ_LIMIT(a)   (0x200220ull | (uint64_t)(a) << 12)
81fa8f86a1SJerin Jacob #define SSO_AF_HWGRPX_IU_ACCNT(a)    (0x200230ull | (uint64_t)(a) << 12)
82fa8f86a1SJerin Jacob #define SSO_AF_HWSX_ARB(a)	     (0x400100ull | (uint64_t)(a) << 12)
83fa8f86a1SJerin Jacob #define SSO_AF_HWSX_INV(a)	     (0x400180ull | (uint64_t)(a) << 12)
84fa8f86a1SJerin Jacob #define SSO_AF_HWSX_GMCTL(a)	     (0x400200ull | (uint64_t)(a) << 12)
85fa8f86a1SJerin Jacob #define SSO_AF_HWSX_LSW_CFG(a)                                                 \
86fa8f86a1SJerin Jacob 	(0x400300ull | (uint64_t)(a) << 12) /* [CN10K, .) */
87fa8f86a1SJerin Jacob #define SSO_AF_HWSX_SX_GRPMSKX(a, b, c)                                        \
88fa8f86a1SJerin Jacob 	(0x400400ull | (uint64_t)(a) << 12 | (uint64_t)(b) << 5 |              \
89fa8f86a1SJerin Jacob 	 (uint64_t)(c) << 3)
90fa8f86a1SJerin Jacob #define SSO_AF_TILEMAPX(a)                                                     \
91fa8f86a1SJerin Jacob 	(0x400600ull | (uint64_t)(a) << 12) /* [CN10K, .)                      \
92fa8f86a1SJerin Jacob 					     */
93fa8f86a1SJerin Jacob #define SSO_AF_IPL_FREEX(a)		 (0x800000ull | (uint64_t)(a) << 3)
94fa8f86a1SJerin Jacob #define SSO_AF_IPL_IAQX(a)		 (0x840000ull | (uint64_t)(a) << 3)
95fa8f86a1SJerin Jacob #define SSO_AF_IPL_DESCHEDX(a)		 (0x860000ull | (uint64_t)(a) << 3)
96fa8f86a1SJerin Jacob #define SSO_AF_IPL_CONFX(a)		 (0x880000ull | (uint64_t)(a) << 3)
97fa8f86a1SJerin Jacob #define SSO_AF_NPA_DIGESTX(a)		 (0x900000ull | (uint64_t)(a) << 3)
98fa8f86a1SJerin Jacob #define SSO_AF_NPA_DIGESTX_W1S(a)	 (0x900100ull | (uint64_t)(a) << 3)
99fa8f86a1SJerin Jacob #define SSO_AF_BFP_DIGESTX(a)		 (0x900200ull | (uint64_t)(a) << 3)
100fa8f86a1SJerin Jacob #define SSO_AF_BFP_DIGESTX_W1S(a)	 (0x900300ull | (uint64_t)(a) << 3)
101fa8f86a1SJerin Jacob #define SSO_AF_BFPN_DIGESTX(a)		 (0x900400ull | (uint64_t)(a) << 3)
102fa8f86a1SJerin Jacob #define SSO_AF_BFPN_DIGESTX_W1S(a)	 (0x900500ull | (uint64_t)(a) << 3)
103fa8f86a1SJerin Jacob #define SSO_AF_GRPDIS_DIGESTX(a)	 (0x900600ull | (uint64_t)(a) << 3)
104fa8f86a1SJerin Jacob #define SSO_AF_GRPDIS_DIGESTX_W1S(a)	 (0x900700ull | (uint64_t)(a) << 3)
105fa8f86a1SJerin Jacob #define SSO_AF_AWEMPTY_DIGESTX(a)	 (0x900800ull | (uint64_t)(a) << 3)
106fa8f86a1SJerin Jacob #define SSO_AF_AWEMPTY_DIGESTX_W1S(a)	 (0x900900ull | (uint64_t)(a) << 3)
107fa8f86a1SJerin Jacob #define SSO_AF_WQP0_DIGESTX(a)		 (0x900a00ull | (uint64_t)(a) << 3)
108fa8f86a1SJerin Jacob #define SSO_AF_WQP0_DIGESTX_W1S(a)	 (0x900b00ull | (uint64_t)(a) << 3)
109fa8f86a1SJerin Jacob #define SSO_AF_AW_DROPPED_DIGESTX(a)	 (0x900c00ull | (uint64_t)(a) << 3)
110fa8f86a1SJerin Jacob #define SSO_AF_AW_DROPPED_DIGESTX_W1S(a) (0x900d00ull | (uint64_t)(a) << 3)
111fa8f86a1SJerin Jacob #define SSO_AF_QCTLDIS_DIGESTX(a)	 (0x900e00ull | (uint64_t)(a) << 3)
112fa8f86a1SJerin Jacob #define SSO_AF_QCTLDIS_DIGESTX_W1S(a)	 (0x900f00ull | (uint64_t)(a) << 3)
113fa8f86a1SJerin Jacob #define SSO_AF_XAQDIS_DIGESTX(a)	 (0x901000ull | (uint64_t)(a) << 3)
114fa8f86a1SJerin Jacob #define SSO_AF_XAQDIS_DIGESTX_W1S(a)	 (0x901100ull | (uint64_t)(a) << 3)
115fa8f86a1SJerin Jacob #define SSO_AF_FLR_AQ_DIGESTX(a)	 (0x901200ull | (uint64_t)(a) << 3)
116fa8f86a1SJerin Jacob #define SSO_AF_FLR_AQ_DIGESTX_W1S(a)	 (0x901300ull | (uint64_t)(a) << 3)
117fa8f86a1SJerin Jacob #define SSO_AF_WS_GMULTI_DIGESTX(a)	 (0x902000ull | (uint64_t)(a) << 3)
118fa8f86a1SJerin Jacob #define SSO_AF_WS_GMULTI_DIGESTX_W1S(a)	 (0x902100ull | (uint64_t)(a) << 3)
119fa8f86a1SJerin Jacob #define SSO_AF_WS_GUNMAP_DIGESTX(a)	 (0x902200ull | (uint64_t)(a) << 3)
120fa8f86a1SJerin Jacob #define SSO_AF_WS_GUNMAP_DIGESTX_W1S(a)	 (0x902300ull | (uint64_t)(a) << 3)
121fa8f86a1SJerin Jacob #define SSO_AF_WS_AWE_DIGESTX(a)                                               \
122fa8f86a1SJerin Jacob 	(0x902400ull | (uint64_t)(a) << 3) /* [CN9K, CN10K) */
123fa8f86a1SJerin Jacob #define SSO_AF_WS_AWE_DIGESTX_W1S(a)                                           \
124fa8f86a1SJerin Jacob 	(0x902500ull | (uint64_t)(a) << 3) /* [CN9K, CN10K) */
125fa8f86a1SJerin Jacob #define SSO_AF_WS_GWI_DIGESTX(a)                                               \
126fa8f86a1SJerin Jacob 	(0x902600ull | (uint64_t)(a) << 3) /* [CN9K, CN10K) */
127fa8f86a1SJerin Jacob #define SSO_AF_WS_GWI_DIGESTX_W1S(a)                                           \
128fa8f86a1SJerin Jacob 	(0x902700ull | (uint64_t)(a) << 3) /* [CN9K, CN10K) */
129fa8f86a1SJerin Jacob #define SSO_AF_WS_NE_DIGESTX(a)	    (0x902800ull | (uint64_t)(a) << 3)
130fa8f86a1SJerin Jacob #define SSO_AF_WS_NE_DIGESTX_W1S(a) (0x902900ull | (uint64_t)(a) << 3)
131fa8f86a1SJerin Jacob #define SSO_AF_IENTX_TAG(a)	    (0xa00000ull | (uint64_t)(a) << 3)
132fa8f86a1SJerin Jacob #define SSO_AF_IENTX_GRP(a)	    (0xa20000ull | (uint64_t)(a) << 3)
133fa8f86a1SJerin Jacob #define SSO_AF_IENTX_PENDTAG(a)	    (0xa40000ull | (uint64_t)(a) << 3)
134fa8f86a1SJerin Jacob #define SSO_AF_IENTX_LINKS(a)	    (0xa60000ull | (uint64_t)(a) << 3)
135fa8f86a1SJerin Jacob #define SSO_AF_IENTX_QLINKS(a)	    (0xa80000ull | (uint64_t)(a) << 3)
136fa8f86a1SJerin Jacob #define SSO_AF_IENTX_WQP(a)	    (0xaa0000ull | (uint64_t)(a) << 3)
137fa8f86a1SJerin Jacob #define SSO_AF_IENTX_LSW(a)                                                    \
138fa8f86a1SJerin Jacob 	(0xac0000ull | (uint64_t)(a) << 3) /* [CN10K, .) */
139fa8f86a1SJerin Jacob 
140fa8f86a1SJerin Jacob #define SSO_AF_TAQX_LINK(a) (0xc00000ull | (uint64_t)(a) << 3)
141fa8f86a1SJerin Jacob #define SSO_AF_TAQX_WAEX_TAG(a, b)                                             \
142fa8f86a1SJerin Jacob 	(0xe00000ull | (uint64_t)(a) << 8 | (uint64_t)(b) << 4)
143fa8f86a1SJerin Jacob #define SSO_AF_TAQX_WAEX_WQP(a, b)                                             \
144fa8f86a1SJerin Jacob 	(0xe00008ull | (uint64_t)(a) << 8 | (uint64_t)(b) << 4)
145fa8f86a1SJerin Jacob 
146fa8f86a1SJerin Jacob #define SSO_LF_GGRP_OP_ADD_WORK0 (0x0ull)
147fa8f86a1SJerin Jacob #define SSO_LF_GGRP_OP_ADD_WORK1 (0x8ull)
148fa8f86a1SJerin Jacob #define SSO_LF_GGRP_QCTL	 (0x20ull)
149*62afdd8dSPavan Nikhilesh #define SSO_LF_GGRP_TAG_CFG	 (0x40ull)
150fa8f86a1SJerin Jacob #define SSO_LF_GGRP_EXE_DIS	 (0x80ull)
151fa8f86a1SJerin Jacob #define SSO_LF_GGRP_INT		 (0x100ull)
152fa8f86a1SJerin Jacob #define SSO_LF_GGRP_INT_W1S	 (0x108ull)
153fa8f86a1SJerin Jacob #define SSO_LF_GGRP_INT_ENA_W1S	 (0x110ull)
154fa8f86a1SJerin Jacob #define SSO_LF_GGRP_INT_ENA_W1C	 (0x118ull)
155fa8f86a1SJerin Jacob #define SSO_LF_GGRP_INT_THR	 (0x140ull)
156fa8f86a1SJerin Jacob #define SSO_LF_GGRP_INT_CNT	 (0x180ull)
157fa8f86a1SJerin Jacob #define SSO_LF_GGRP_XAQ_CNT	 (0x1b0ull)
158fa8f86a1SJerin Jacob #define SSO_LF_GGRP_AQ_CNT	 (0x1c0ull)
159fa8f86a1SJerin Jacob #define SSO_LF_GGRP_AQ_THR	 (0x1e0ull)
160fa8f86a1SJerin Jacob #define SSO_LF_GGRP_MISC_CNT	 (0x200ull)
161c3320d21SPavan Nikhilesh #define SSO_LF_GGRP_OP_AW_LMTST	 (0x400ull)
162fa8f86a1SJerin Jacob 
163*62afdd8dSPavan Nikhilesh #define SSO_LF_GGRP_AGGR_CFG	    (0x300ull)
164*62afdd8dSPavan Nikhilesh #define SSO_LF_GGRP_AGGR_CTX_BASE   (0x308ull)
165*62afdd8dSPavan Nikhilesh #define SSO_LF_GGRP_AGGR_CTX_INSTOP (0x310ull)
166*62afdd8dSPavan Nikhilesh 
167fa8f86a1SJerin Jacob #define SSO_AF_IAQ_FREE_CNT_MASK      0x3FFFull
168fa8f86a1SJerin Jacob #define SSO_AF_IAQ_RSVD_FREE_MASK     0x3FFFull
169fa8f86a1SJerin Jacob #define SSO_AF_IAQ_RSVD_FREE_SHIFT    16
170fa8f86a1SJerin Jacob #define SSO_AF_IAQ_FREE_CNT_MAX	      SSO_AF_IAQ_FREE_CNT_MASK
171fa8f86a1SJerin Jacob #define SSO_AF_AW_ADD_RSVD_FREE_MASK  0x3FFFull
172fa8f86a1SJerin Jacob #define SSO_AF_AW_ADD_RSVD_FREE_SHIFT 16
173fa8f86a1SJerin Jacob #define SSO_HWGRP_IAQ_MAX_THR_MASK    0x3FFFull
174fa8f86a1SJerin Jacob #define SSO_HWGRP_IAQ_RSVD_THR_MASK   0x3FFFull
175fa8f86a1SJerin Jacob #define SSO_HWGRP_IAQ_MAX_THR_SHIFT   32
176fa8f86a1SJerin Jacob #define SSO_HWGRP_IAQ_RSVD_THR	      0x2
177fa8f86a1SJerin Jacob 
178fa8f86a1SJerin Jacob #define SSO_AF_TAQ_FREE_CNT_MASK       0x7FFull
179fa8f86a1SJerin Jacob #define SSO_AF_TAQ_RSVD_FREE_MASK      0x7FFull
180fa8f86a1SJerin Jacob #define SSO_AF_TAQ_RSVD_FREE_SHIFT     16
181fa8f86a1SJerin Jacob #define SSO_AF_TAQ_FREE_CNT_MAX	       SSO_AF_TAQ_FREE_CNT_MASK
182fa8f86a1SJerin Jacob #define SSO_AF_TAQ_ADD_RSVD_FREE_MASK  0x1FFFull
183fa8f86a1SJerin Jacob #define SSO_AF_TAQ_ADD_RSVD_FREE_SHIFT 16
184fa8f86a1SJerin Jacob #define SSO_HWGRP_TAQ_MAX_THR_MASK     0x7FFull
185fa8f86a1SJerin Jacob #define SSO_HWGRP_TAQ_RSVD_THR_MASK    0x7FFull
186fa8f86a1SJerin Jacob #define SSO_HWGRP_TAQ_MAX_THR_SHIFT    32
187fa8f86a1SJerin Jacob #define SSO_HWGRP_TAQ_RSVD_THR	       0x3
188fa8f86a1SJerin Jacob 
189fa8f86a1SJerin Jacob #define SSO_HWGRP_PRI_AFF_MASK	     0xFull
190fa8f86a1SJerin Jacob #define SSO_HWGRP_PRI_AFF_SHIFT	     8
191fa8f86a1SJerin Jacob #define SSO_HWGRP_PRI_WGT_MASK	     0x3Full
192fa8f86a1SJerin Jacob #define SSO_HWGRP_PRI_WGT_SHIFT	     16
193fa8f86a1SJerin Jacob #define SSO_HWGRP_PRI_WGT_LEFT_MASK  0x3Full
194fa8f86a1SJerin Jacob #define SSO_HWGRP_PRI_WGT_LEFT_SHIFT 24
195fa8f86a1SJerin Jacob 
196fa8f86a1SJerin Jacob #define SSO_HWGRP_AW_CFG_RWEN	     BIT_ULL(0)
197fa8f86a1SJerin Jacob #define SSO_HWGRP_AW_CFG_LDWB	     BIT_ULL(1)
198fa8f86a1SJerin Jacob #define SSO_HWGRP_AW_CFG_LDT	     BIT_ULL(2)
199fa8f86a1SJerin Jacob #define SSO_HWGRP_AW_CFG_STT	     BIT_ULL(3)
200fa8f86a1SJerin Jacob #define SSO_HWGRP_AW_CFG_XAQ_BYP_DIS BIT_ULL(4)
201fa8f86a1SJerin Jacob 
202fa8f86a1SJerin Jacob #define SSO_HWGRP_AW_STS_TPTR_VLD	BIT_ULL(8)
203fa8f86a1SJerin Jacob #define SSO_HWGRP_AW_STS_NPA_FETCH	BIT_ULL(9)
204fa8f86a1SJerin Jacob #define SSO_HWGRP_AW_STS_XAQ_BUFSC_MASK 0x7ull
205fa8f86a1SJerin Jacob #define SSO_HWGRP_AW_STS_INIT_STS	0x18ull
206fa8f86a1SJerin Jacob 
207fa8f86a1SJerin Jacob /* Enum offsets */
208fa8f86a1SJerin Jacob 
209fa8f86a1SJerin Jacob #define SSO_LF_INT_VEC_GRP (0x0ull)
210fa8f86a1SJerin Jacob 
211fa8f86a1SJerin Jacob #define SSO_AF_INT_VEC_ERR0 (0x0ull)
212fa8f86a1SJerin Jacob #define SSO_AF_INT_VEC_ERR2 (0x1ull)
213fa8f86a1SJerin Jacob #define SSO_AF_INT_VEC_RAS  (0x2ull)
214fa8f86a1SJerin Jacob 
215fa8f86a1SJerin Jacob #define SSO_LSW_MODE_NO_LSW (0x0ull) /* [CN10K, .) */
216fa8f86a1SJerin Jacob #define SSO_LSW_MODE_WAITW  (0x1ull) /* [CN10K, .) */
217fa8f86a1SJerin Jacob #define SSO_LSW_MODE_IMMED  (0x2ull) /* [CN10K, .) */
218fa8f86a1SJerin Jacob 
219fa8f86a1SJerin Jacob #define SSO_WA_IOBN   (0x0ull)
220fa8f86a1SJerin Jacob #define SSO_WA_ADDWQ  (0x3ull)
221fa8f86a1SJerin Jacob #define SSO_WA_DPI    (0x4ull)
222fa8f86a1SJerin Jacob #define SSO_WA_TIM    (0x6ull)
223fa8f86a1SJerin Jacob #define SSO_WA_ZIP    (0x7ull) /* [CN9K, CN10K) */
224fa8f86a1SJerin Jacob #define SSO_WA_PSM    (0x7ull) /* [CN10K, .) */
225fa8f86a1SJerin Jacob #define SSO_WA_NIXRX0 (0x1ull)
226fa8f86a1SJerin Jacob #define SSO_WA_NIXRX1 (0x8ull) /* [CN10K, .) */
227fa8f86a1SJerin Jacob #define SSO_WA_CPT0   (0x2ull)
228fa8f86a1SJerin Jacob #define SSO_WA_CPT1   (0x9ull) /* [CN10K, .) */
229fa8f86a1SJerin Jacob #define SSO_WA_NIXTX0 (0x5ull)
230fa8f86a1SJerin Jacob #define SSO_WA_NIXTX1 (0xbull) /* [CN10K, .) */
231fa8f86a1SJerin Jacob #define SSO_WA_ML0    (0xaull) /* [CN10K, .) */
232fa8f86a1SJerin Jacob #define SSO_WA_ML1    (0xcull) /* [CN10K, .) */
233fa8f86a1SJerin Jacob 
234fa8f86a1SJerin Jacob #define SSO_TT_ORDERED	(0x0ull)
235fa8f86a1SJerin Jacob #define SSO_TT_ATOMIC	(0x1ull)
236fa8f86a1SJerin Jacob #define SSO_TT_UNTAGGED (0x2ull)
237fa8f86a1SJerin Jacob #define SSO_TT_EMPTY	(0x3ull)
238*62afdd8dSPavan Nikhilesh #define SSO_TT_AGG	(0x3ull)
239*62afdd8dSPavan Nikhilesh 
240*62afdd8dSPavan Nikhilesh #define SSO_LF_AGGR_INSTOP_FLUSH	(0x0ull)
241*62afdd8dSPavan Nikhilesh #define SSO_LF_AGGR_INSTOP_EVICT	(0x1ull)
242*62afdd8dSPavan Nikhilesh #define SSO_LF_AGGR_INSTOP_GLOBAL_FLUSH (0x2ull)
243*62afdd8dSPavan Nikhilesh #define SSO_LF_AGGR_INSTOP_GLOBAL_EVICT (0x3ull)
244*62afdd8dSPavan Nikhilesh 
245*62afdd8dSPavan Nikhilesh #define SSO_AGGR_CTX_SZ	    16
246*62afdd8dSPavan Nikhilesh #define SSO_AGGR_NUM_CTX(a) (1 << (a + 6))
247*62afdd8dSPavan Nikhilesh #define SSO_AGGR_MIN_CTX    SSO_AGGR_NUM_CTX(0)
248*62afdd8dSPavan Nikhilesh #define SSO_AGGR_MAX_CTX    SSO_AGGR_NUM_CTX(10)
249*62afdd8dSPavan Nikhilesh #define SSO_AGGR_DEF_TMO    0x3Full
250*62afdd8dSPavan Nikhilesh 
251*62afdd8dSPavan Nikhilesh struct sso_agq_ctx {
252*62afdd8dSPavan Nikhilesh 	uint64_t ena : 1;
253*62afdd8dSPavan Nikhilesh 	uint64_t rsvd_1_3 : 3;
254*62afdd8dSPavan Nikhilesh 	uint64_t vwqe_aura : 17;
255*62afdd8dSPavan Nikhilesh 	uint64_t rsvd_21_31 : 11;
256*62afdd8dSPavan Nikhilesh 	uint64_t tag : 32;
257*62afdd8dSPavan Nikhilesh 	uint64_t tt : 2;
258*62afdd8dSPavan Nikhilesh 	uint64_t rsvd_66_67 : 2;
259*62afdd8dSPavan Nikhilesh 	uint64_t swqe_tag : 12;
260*62afdd8dSPavan Nikhilesh 	uint64_t max_vsize_exp : 4;
261*62afdd8dSPavan Nikhilesh 	uint64_t vtimewait : 12;
262*62afdd8dSPavan Nikhilesh 	uint64_t xqe_type : 4;
263*62afdd8dSPavan Nikhilesh 	uint64_t cnt_ena : 1;
264*62afdd8dSPavan Nikhilesh 	uint64_t rsvd_101_127 : 27;
265*62afdd8dSPavan Nikhilesh };
266fa8f86a1SJerin Jacob 
267fa8f86a1SJerin Jacob #endif /* __SSO_HW_H__ */
268