Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / drivers / net / ethernet / qlogic / qed / qed_iro_hsi.h
blob3ccdd3b1d8cb41d5e4c76ca28875020882f02bc0
1 /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
2 /* QLogic qed NIC Driver
3 * Copyright (c) 2019-2021 Marvell International Ltd.
4 */
6 #ifndef _QED_IRO_HSI_H
7 #define _QED_IRO_HSI_H
9 #include <linux/types.h>
11 enum {
12 IRO_YSTORM_FLOW_CONTROL_MODE_GTT,
13 IRO_PSTORM_PKT_DUPLICATION_CFG,
14 IRO_TSTORM_PORT_STAT,
15 IRO_TSTORM_LL2_PORT_STAT,
16 IRO_TSTORM_PKT_DUPLICATION_CFG,
17 IRO_USTORM_VF_PF_CHANNEL_READY_GTT,
18 IRO_USTORM_FLR_FINAL_ACK_GTT,
19 IRO_USTORM_EQE_CONS_GTT,
20 IRO_USTORM_ETH_QUEUE_ZONE_GTT,
21 IRO_USTORM_COMMON_QUEUE_CONS_GTT,
22 IRO_XSTORM_PQ_INFO,
23 IRO_XSTORM_INTEG_TEST_DATA,
24 IRO_YSTORM_INTEG_TEST_DATA,
25 IRO_PSTORM_INTEG_TEST_DATA,
26 IRO_TSTORM_INTEG_TEST_DATA,
27 IRO_MSTORM_INTEG_TEST_DATA,
28 IRO_USTORM_INTEG_TEST_DATA,
29 IRO_XSTORM_OVERLAY_BUF_ADDR,
30 IRO_YSTORM_OVERLAY_BUF_ADDR,
31 IRO_PSTORM_OVERLAY_BUF_ADDR,
32 IRO_TSTORM_OVERLAY_BUF_ADDR,
33 IRO_MSTORM_OVERLAY_BUF_ADDR,
34 IRO_USTORM_OVERLAY_BUF_ADDR,
35 IRO_TSTORM_LL2_RX_PRODS_GTT,
36 IRO_CORE_LL2_TSTORM_PER_QUEUE_STAT,
37 IRO_CORE_LL2_USTORM_PER_QUEUE_STAT,
38 IRO_CORE_LL2_PSTORM_PER_QUEUE_STAT,
39 IRO_MSTORM_QUEUE_STAT,
40 IRO_MSTORM_TPA_TIMEOUT_US,
41 IRO_MSTORM_ETH_VF_PRODS,
42 IRO_MSTORM_ETH_PF_PRODS_GTT,
43 IRO_MSTORM_ETH_PF_STAT,
44 IRO_USTORM_QUEUE_STAT,
45 IRO_USTORM_ETH_PF_STAT,
46 IRO_PSTORM_QUEUE_STAT,
47 IRO_PSTORM_ETH_PF_STAT,
48 IRO_PSTORM_CTL_FRAME_ETHTYPE_GTT,
49 IRO_TSTORM_ETH_PRS_INPUT,
50 IRO_ETH_RX_RATE_LIMIT,
51 IRO_TSTORM_ETH_RSS_UPDATE_GTT,
52 IRO_XSTORM_ETH_QUEUE_ZONE_GTT,
53 IRO_YSTORM_TOE_CQ_PROD,
54 IRO_USTORM_TOE_CQ_PROD,
55 IRO_USTORM_TOE_GRQ_PROD,
56 IRO_TSTORM_SCSI_CMDQ_CONS_GTT,
57 IRO_TSTORM_SCSI_BDQ_EXT_PROD_GTT,
58 IRO_MSTORM_SCSI_BDQ_EXT_PROD_GTT,
59 IRO_TSTORM_ISCSI_RX_STATS,
60 IRO_MSTORM_ISCSI_RX_STATS,
61 IRO_USTORM_ISCSI_RX_STATS,
62 IRO_XSTORM_ISCSI_TX_STATS,
63 IRO_YSTORM_ISCSI_TX_STATS,
64 IRO_PSTORM_ISCSI_TX_STATS,
65 IRO_TSTORM_FCOE_RX_STATS,
66 IRO_PSTORM_FCOE_TX_STATS,
67 IRO_PSTORM_RDMA_QUEUE_STAT,
68 IRO_TSTORM_RDMA_QUEUE_STAT,
69 IRO_XSTORM_RDMA_ASSERT_LEVEL,
70 IRO_YSTORM_RDMA_ASSERT_LEVEL,
71 IRO_PSTORM_RDMA_ASSERT_LEVEL,
72 IRO_TSTORM_RDMA_ASSERT_LEVEL,
73 IRO_MSTORM_RDMA_ASSERT_LEVEL,
74 IRO_USTORM_RDMA_ASSERT_LEVEL,
75 IRO_XSTORM_IWARP_RXMIT_STATS,
76 IRO_TSTORM_ROCE_EVENTS_STAT,
77 IRO_YSTORM_ROCE_DCQCN_RECEIVED_STATS,
78 IRO_YSTORM_ROCE_ERROR_STATS,
79 IRO_PSTORM_ROCE_DCQCN_SENT_STATS,
80 IRO_USTORM_ROCE_CQE_STATS,
83 /* Pstorm LiteL2 queue statistics */
85 #define CORE_LL2_PSTORM_PER_QUEUE_STAT_OFFSET(core_tx_stats_id) \
86 (IRO[IRO_CORE_LL2_PSTORM_PER_QUEUE_STAT].base \
87 + ((core_tx_stats_id) * IRO[IRO_CORE_LL2_PSTORM_PER_QUEUE_STAT].m1))
88 #define CORE_LL2_PSTORM_PER_QUEUE_STAT_SIZE \
89 (IRO[IRO_CORE_LL2_PSTORM_PER_QUEUE_STAT].size)
91 /* Tstorm LightL2 queue statistics */
92 #define CORE_LL2_TSTORM_PER_QUEUE_STAT_OFFSET(core_rx_queue_id) \
93 (IRO[IRO_CORE_LL2_TSTORM_PER_QUEUE_STAT].base \
94 + ((core_rx_queue_id) * IRO[IRO_CORE_LL2_TSTORM_PER_QUEUE_STAT].m1))
95 #define CORE_LL2_TSTORM_PER_QUEUE_STAT_SIZE \
96 (IRO[IRO_CORE_LL2_TSTORM_PER_QUEUE_STAT].size)
98 /* Ustorm LiteL2 queue statistics */
99 #define CORE_LL2_USTORM_PER_QUEUE_STAT_OFFSET(core_rx_queue_id) \
100 (IRO[IRO_CORE_LL2_USTORM_PER_QUEUE_STAT].base \
101 + ((core_rx_queue_id) * IRO[IRO_CORE_LL2_USTORM_PER_QUEUE_STAT].m1))
102 #define CORE_LL2_USTORM_PER_QUEUE_STAT_SIZE \
103 (IRO[IRO_CORE_LL2_USTORM_PER_QUEUE_STAT].size)
105 /* Tstorm Eth limit Rx rate */
106 #define ETH_RX_RATE_LIMIT_OFFSET(pf_id) \
107 (IRO[IRO_ETH_RX_RATE_LIMIT].base \
108 + ((pf_id) * IRO[IRO_ETH_RX_RATE_LIMIT].m1))
109 #define ETH_RX_RATE_LIMIT_SIZE (IRO[IRO_ETH_RX_RATE_LIMIT].size)
111 /* Mstorm ETH PF queues producers */
112 #define MSTORM_ETH_PF_PRODS_GTT_OFFSET(queue_id) \
113 (IRO[IRO_MSTORM_ETH_PF_PRODS_GTT].base \
114 + ((queue_id) * IRO[IRO_MSTORM_ETH_PF_PRODS_GTT].m1))
115 #define MSTORM_ETH_PF_PRODS_GTT_SIZE (IRO[IRO_MSTORM_ETH_PF_PRODS_GTT].size)
117 /* Mstorm pf statistics */
118 #define MSTORM_ETH_PF_STAT_OFFSET(pf_id) \
119 (IRO[IRO_MSTORM_ETH_PF_STAT].base \
120 + ((pf_id) * IRO[IRO_MSTORM_ETH_PF_STAT].m1))
121 #define MSTORM_ETH_PF_STAT_SIZE (IRO[IRO_MSTORM_ETH_PF_STAT].size)
123 /* Mstorm ETH VF queues producers offset in RAM. Used in default VF zone
124 * size mode.
126 #define MSTORM_ETH_VF_PRODS_OFFSET(vf_id, vf_queue_id) \
127 (IRO[IRO_MSTORM_ETH_VF_PRODS].base \
128 + ((vf_id) * IRO[IRO_MSTORM_ETH_VF_PRODS].m1) \
129 + ((vf_queue_id) * IRO[IRO_MSTORM_ETH_VF_PRODS].m2))
130 #define MSTORM_ETH_VF_PRODS_SIZE (IRO[IRO_MSTORM_ETH_VF_PRODS].size)
132 /* Mstorm Integration Test Data */
133 #define MSTORM_INTEG_TEST_DATA_OFFSET (IRO[IRO_MSTORM_INTEG_TEST_DATA].base)
134 #define MSTORM_INTEG_TEST_DATA_SIZE (IRO[IRO_MSTORM_INTEG_TEST_DATA].size)
136 /* Mstorm iSCSI RX stats */
137 #define MSTORM_ISCSI_RX_STATS_OFFSET(storage_func_id) \
138 (IRO[IRO_MSTORM_ISCSI_RX_STATS].base \
139 + ((storage_func_id) * IRO[IRO_MSTORM_ISCSI_RX_STATS].m1))
140 #define MSTORM_ISCSI_RX_STATS_SIZE (IRO[IRO_MSTORM_ISCSI_RX_STATS].size)
142 /* Mstorm overlay buffer host address */
143 #define MSTORM_OVERLAY_BUF_ADDR_OFFSET (IRO[IRO_MSTORM_OVERLAY_BUF_ADDR].base)
144 #define MSTORM_OVERLAY_BUF_ADDR_SIZE (IRO[IRO_MSTORM_OVERLAY_BUF_ADDR].size)
146 /* Mstorm queue statistics */
147 #define MSTORM_QUEUE_STAT_OFFSET(stat_counter_id) \
148 (IRO[IRO_MSTORM_QUEUE_STAT].base \
149 + ((stat_counter_id) * IRO[IRO_MSTORM_QUEUE_STAT].m1))
150 #define MSTORM_QUEUE_STAT_SIZ (IRO[IRO_MSTORM_QUEUE_STAT].size)
152 /* Mstorm error level for assert */
153 #define MSTORM_RDMA_ASSERT_LEVEL_OFFSET(pf_id) \
154 (IRO[IRO_MSTORM_RDMA_ASSERT_LEVEL].base \
155 + ((pf_id) * IRO[IRO_MSTORM_RDMA_ASSERT_LEVEL].m1))
156 #define MSTORM_RDMA_ASSERT_LEVEL_SIZE (IRO[IRO_MSTORM_RDMA_ASSERT_LEVEL].size)
158 /* Mstorm bdq-external-producer of given BDQ resource ID, BDqueue-id */
159 #define MSTORM_SCSI_BDQ_EXT_PROD_GTT_OFFSET(storage_func_id, bdq_id) \
160 (IRO[IRO_MSTORM_SCSI_BDQ_EXT_PROD_GTT].base \
161 + ((storage_func_id) * IRO[IRO_MSTORM_SCSI_BDQ_EXT_PROD_GTT].m1) \
162 + ((bdq_id) * IRO[IRO_MSTORM_SCSI_BDQ_EXT_PROD_GTT].m2))
163 #define MSTORM_SCSI_BDQ_EXT_PROD_GTT_SIZE \
164 (IRO[IRO_MSTORM_SCSI_BDQ_EXT_PROD_GTT].size)
166 /* TPA agregation timeout in us resolution (on ASIC) */
167 #define MSTORM_TPA_TIMEOUT_US_OFFSET (IRO[IRO_MSTORM_TPA_TIMEOUT_US].base)
168 #define MSTORM_TPA_TIMEOUT_US_SIZE (IRO[IRO_MSTORM_TPA_TIMEOUT_US].size)
170 /* Control frame's EthType configuration for TX control frame security */
171 #define PSTORM_CTL_FRAME_ETHTYPE_GTT_OFFSET(ethtype_id) \
172 (IRO[IRO_PSTORM_CTL_FRAME_ETHTYPE_GTT].base \
173 + ((ethtype_id) * IRO[IRO_PSTORM_CTL_FRAME_ETHTYPE_GTT].m1))
174 #define PSTORM_CTL_FRAME_ETHTYPE_GTT_SIZE \
175 (IRO[IRO_PSTORM_CTL_FRAME_ETHTYPE_GTT].size)
177 /* Pstorm pf statistics */
178 #define PSTORM_ETH_PF_STAT_OFFSET(pf_id) \
179 (IRO[IRO_PSTORM_ETH_PF_STAT].base \
180 + ((pf_id) * IRO[IRO_PSTORM_ETH_PF_STAT].m1))
181 #define PSTORM_ETH_PF_STAT_SIZE (IRO[IRO_PSTORM_ETH_PF_STAT].size)
183 /* Pstorm FCoE TX stats */
184 #define PSTORM_FCOE_TX_STATS_OFFSET(pf_id) \
185 (IRO[IRO_PSTORM_FCOE_TX_STATS].base \
186 + ((pf_id) * IRO[IRO_PSTORM_FCOE_TX_STATS].m1))
187 #define PSTORM_FCOE_TX_STATS_SIZE (IRO[IRO_PSTORM_FCOE_TX_STATS].size)
189 /* Pstorm Integration Test Data */
190 #define PSTORM_INTEG_TEST_DATA_OFFSET (IRO[IRO_PSTORM_INTEG_TEST_DATA].base)
191 #define PSTORM_INTEG_TEST_DATA_SIZE (IRO[IRO_PSTORM_INTEG_TEST_DATA].size)
193 /* Pstorm iSCSI TX stats */
194 #define PSTORM_ISCSI_TX_STATS_OFFSET(storage_func_id) \
195 (IRO[IRO_PSTORM_ISCSI_TX_STATS].base \
196 + ((storage_func_id) * IRO[IRO_PSTORM_ISCSI_TX_STATS].m1))
197 #define PSTORM_ISCSI_TX_STATS_SIZE (IRO[IRO_PSTORM_ISCSI_TX_STATS].size)
199 /* Pstorm overlay buffer host address */
200 #define PSTORM_OVERLAY_BUF_ADDR_OFFSET (IRO[IRO_PSTORM_OVERLAY_BUF_ADDR].base)
201 #define PSTORM_OVERLAY_BUF_ADDR_SIZE (IRO[IRO_PSTORM_OVERLAY_BUF_ADDR].size)
203 /* Pstorm LL2 packet duplication configuration. Use pstorm_pkt_dup_cfg
204 * data type.
206 #define PSTORM_PKT_DUPLICATION_CFG_OFFSET(pf_id) \
207 (IRO[IRO_PSTORM_PKT_DUPLICATION_CFG].base \
208 + ((pf_id) * IRO[IRO_PSTORM_PKT_DUPLICATION_CFG].m1))
209 #define PSTORM_PKT_DUPLICATION_CFG_SIZE \
210 (IRO[IRO_PSTORM_PKT_DUPLICATION_CFG].size)
212 /* Pstorm queue statistics */
213 #define PSTORM_QUEUE_STAT_OFFSET(stat_counter_id) \
214 (IRO[IRO_PSTORM_QUEUE_STAT].base \
215 + ((stat_counter_id) * IRO[IRO_PSTORM_QUEUE_STAT].m1))
216 #define PSTORM_QUEUE_STAT_SIZE (IRO[IRO_PSTORM_QUEUE_STAT].size)
218 /* Pstorm error level for assert */
219 #define PSTORM_RDMA_ASSERT_LEVEL_OFFSET(pf_id) \
220 (IRO[IRO_PSTORM_RDMA_ASSERT_LEVEL].base \
221 + ((pf_id) * IRO[IRO_PSTORM_RDMA_ASSERT_LEVEL].m1))
222 #define PSTORM_RDMA_ASSERT_LEVEL_SIZE (IRO[IRO_PSTORM_RDMA_ASSERT_LEVEL].size)
224 /* Pstorm RDMA queue statistics */
225 #define PSTORM_RDMA_QUEUE_STAT_OFFSET(rdma_stat_counter_id) \
226 (IRO[IRO_PSTORM_RDMA_QUEUE_STAT].base \
227 + ((rdma_stat_counter_id) * IRO[IRO_PSTORM_RDMA_QUEUE_STAT].m1))
228 #define PSTORM_RDMA_QUEUE_STAT_SIZE (IRO[IRO_PSTORM_RDMA_QUEUE_STAT].size)
230 /* DCQCN Sent Statistics */
231 #define PSTORM_ROCE_DCQCN_SENT_STATS_OFFSET(roce_pf_id) \
232 (IRO[IRO_PSTORM_ROCE_DCQCN_SENT_STATS].base \
233 + ((roce_pf_id) * IRO[IRO_PSTORM_ROCE_DCQCN_SENT_STATS].m1))
234 #define PSTORM_ROCE_DCQCN_SENT_STATS_SIZE \
235 (IRO[IRO_PSTORM_ROCE_DCQCN_SENT_STATS].size)
237 /* Tstorm last parser message */
238 #define TSTORM_ETH_PRS_INPUT_OFFSET (IRO[IRO_TSTORM_ETH_PRS_INPUT].base)
239 #define TSTORM_ETH_PRS_INPUT_SIZE (IRO[IRO_TSTORM_ETH_PRS_INPUT].size)
241 /* RSS indirection table entry update command per PF offset in TSTORM PF BAR0.
242 * Use eth_tstorm_rss_update_data for update.
244 #define TSTORM_ETH_RSS_UPDATE_GTT_OFFSET(pf_id) \
245 (IRO[IRO_TSTORM_ETH_RSS_UPDATE_GTT].base \
246 + ((pf_id) * IRO[IRO_TSTORM_ETH_RSS_UPDATE_GTT].m1))
247 #define TSTORM_ETH_RSS_UPDATE_GTT_SIZE\
248 (IRO[IRO_TSTORM_ETH_RSS_UPDATE_GTT].size)
250 /* Tstorm FCoE RX stats */
251 #define TSTORM_FCOE_RX_STATS_OFFSET(pf_id) \
252 (IRO[IRO_TSTORM_FCOE_RX_STATS].base \
253 + ((pf_id) * IRO[IRO_TSTORM_FCOE_RX_STATS].m1))
254 #define TSTORM_FCOE_RX_STATS_SIZE (IRO[IRO_TSTORM_FCOE_RX_STATS].size)
256 /* Tstorm Integration Test Data */
257 #define TSTORM_INTEG_TEST_DATA_OFFSET (IRO[IRO_TSTORM_INTEG_TEST_DATA].base)
258 #define TSTORM_INTEG_TEST_DATA_SIZE (IRO[IRO_TSTORM_INTEG_TEST_DATA].size)
260 /* Tstorm iSCSI RX stats */
261 #define TSTORM_ISCSI_RX_STATS_OFFSET(storage_func_id) \
262 (IRO[IRO_TSTORM_ISCSI_RX_STATS].base \
263 + ((storage_func_id) * IRO[IRO_TSTORM_ISCSI_RX_STATS].m1))
264 #define TSTORM_ISCSI_RX_STATS_SIZE (IRO[IRO_TSTORM_ISCSI_RX_STATS].size)
266 /* Tstorm ll2 port statistics */
267 #define TSTORM_LL2_PORT_STAT_OFFSET(port_id) \
268 (IRO[IRO_TSTORM_LL2_PORT_STAT].base \
269 + ((port_id) * IRO[IRO_TSTORM_LL2_PORT_STAT].m1))
270 #define TSTORM_LL2_PORT_STAT_SIZE (IRO[IRO_TSTORM_LL2_PORT_STAT].size)
272 /* Tstorm producers */
273 #define TSTORM_LL2_RX_PRODS_GTT_OFFSET(core_rx_queue_id) \
274 (IRO[IRO_TSTORM_LL2_RX_PRODS_GTT].base \
275 + ((core_rx_queue_id) * IRO[IRO_TSTORM_LL2_RX_PRODS_GTT].m1))
276 #define TSTORM_LL2_RX_PRODS_GTT_SIZE (IRO[IRO_TSTORM_LL2_RX_PRODS_GTT].size)
278 /* Tstorm overlay buffer host address */
279 #define TSTORM_OVERLAY_BUF_ADDR_OFFSET (IRO[IRO_TSTORM_OVERLAY_BUF_ADDR].base)
281 #define TSTORM_OVERLAY_BUF_ADDR_SIZE (IRO[IRO_TSTORM_OVERLAY_BUF_ADDR].size)
283 /* Tstorm LL2 packet duplication configuration.
284 * Use tstorm_pkt_dup_cfg data type.
286 #define TSTORM_PKT_DUPLICATION_CFG_OFFSET(pf_id) \
287 (IRO[IRO_TSTORM_PKT_DUPLICATION_CFG].base \
288 + ((pf_id) * IRO[IRO_TSTORM_PKT_DUPLICATION_CFG].m1))
289 #define TSTORM_PKT_DUPLICATION_CFG_SIZE \
290 (IRO[IRO_TSTORM_PKT_DUPLICATION_CFG].size)
292 /* Tstorm port statistics */
293 #define TSTORM_PORT_STAT_OFFSET(port_id) \
294 (IRO[IRO_TSTORM_PORT_STAT].base \
295 + ((port_id) * IRO[IRO_TSTORM_PORT_STAT].m1))
296 #define TSTORM_PORT_STAT_SIZE (IRO[IRO_TSTORM_PORT_STAT].size)
298 /* Tstorm error level for assert */
299 #define TSTORM_RDMA_ASSERT_LEVEL_OFFSET(pf_id) \
300 (IRO[IRO_TSTORM_RDMA_ASSERT_LEVEL].base \
301 + ((pf_id) * IRO[IRO_TSTORM_RDMA_ASSERT_LEVEL].m1))
302 #define TSTORM_RDMA_ASSERT_LEVEL_SIZE (IRO[IRO_TSTORM_RDMA_ASSERT_LEVEL].size)
304 /* Tstorm RDMA queue statistics */
305 #define TSTORM_RDMA_QUEUE_STAT_OFFSET(rdma_stat_counter_id) \
306 (IRO[IRO_TSTORM_RDMA_QUEUE_STAT].base \
307 + ((rdma_stat_counter_id) * IRO[IRO_TSTORM_RDMA_QUEUE_STAT].m1))
308 #define TSTORM_RDMA_QUEUE_STAT_SIZE (IRO[IRO_TSTORM_RDMA_QUEUE_STAT].size)
310 /* Tstorm RoCE Event Statistics */
311 #define TSTORM_ROCE_EVENTS_STAT_OFFSET(roce_pf_id) \
312 (IRO[IRO_TSTORM_ROCE_EVENTS_STAT].base \
313 + ((roce_pf_id) * IRO[IRO_TSTORM_ROCE_EVENTS_STAT].m1))
314 #define TSTORM_ROCE_EVENTS_STAT_SIZE (IRO[IRO_TSTORM_ROCE_EVENTS_STAT].size)
316 /* Tstorm (reflects M-Storm) bdq-external-producer of given function ID,
317 * BDqueue-id.
319 #define TSTORM_SCSI_BDQ_EXT_PROD_GTT_OFFSET(storage_func_id, bdq_id) \
320 (IRO[IRO_TSTORM_SCSI_BDQ_EXT_PROD_GTT].base \
321 + ((storage_func_id) * IRO[IRO_TSTORM_SCSI_BDQ_EXT_PROD_GTT].m1) \
322 + ((bdq_id) * IRO[IRO_TSTORM_SCSI_BDQ_EXT_PROD_GTT].m2))
323 #define TSTORM_SCSI_BDQ_EXT_PROD_GTT_SIZE \
324 (IRO[IRO_TSTORM_SCSI_BDQ_EXT_PROD_GTT].size)
326 /* Tstorm cmdq-cons of given command queue-id */
327 #define TSTORM_SCSI_CMDQ_CONS_GTT_OFFSET(cmdq_queue_id) \
328 (IRO[IRO_TSTORM_SCSI_CMDQ_CONS_GTT].base \
329 + ((cmdq_queue_id) * IRO[IRO_TSTORM_SCSI_CMDQ_CONS_GTT].m1))
330 #define TSTORM_SCSI_CMDQ_CONS_GTT_SIZE \
331 (IRO[IRO_TSTORM_SCSI_CMDQ_CONS_GTT].size)
333 /* Ustorm Common Queue ring consumer */
334 #define USTORM_COMMON_QUEUE_CONS_GTT_OFFSET(queue_zone_id) \
335 (IRO[IRO_USTORM_COMMON_QUEUE_CONS_GTT].base \
336 + ((queue_zone_id) * IRO[IRO_USTORM_COMMON_QUEUE_CONS_GTT].m1))
337 #define USTORM_COMMON_QUEUE_CONS_GTT_SIZE \
338 (IRO[IRO_USTORM_COMMON_QUEUE_CONS_GTT].size)
340 /* Ustorm Event ring consumer */
341 #define USTORM_EQE_CONS_GTT_OFFSET(pf_id) \
342 (IRO[IRO_USTORM_EQE_CONS_GTT].base \
343 + ((pf_id) * IRO[IRO_USTORM_EQE_CONS_GTT].m1))
344 #define USTORM_EQE_CONS_GTT_SIZE (IRO[IRO_USTORM_EQE_CONS_GTT].size)
346 /* Ustorm pf statistics */
347 #define USTORM_ETH_PF_STAT_OFFSET(pf_id) \
348 (IRO[IRO_USTORM_ETH_PF_STAT].base \
349 + ((pf_id) * IRO[IRO_USTORM_ETH_PF_STAT].m1))
350 #define USTORM_ETH_PF_STAT_SIZE (IRO[IRO_USTORM_ETH_PF_STAT].size)
352 /* Ustorm eth queue zone */
353 #define USTORM_ETH_QUEUE_ZONE_GTT_OFFSET(queue_zone_id) \
354 (IRO[IRO_USTORM_ETH_QUEUE_ZONE_GTT].base \
355 + ((queue_zone_id) * IRO[IRO_USTORM_ETH_QUEUE_ZONE_GTT].m1))
356 #define USTORM_ETH_QUEUE_ZONE_GTT_SIZE (IRO[IRO_USTORM_ETH_QUEUE_ZONE_GTT].size)
358 /* Ustorm Final flr cleanup ack */
359 #define USTORM_FLR_FINAL_ACK_GTT_OFFSET(pf_id) \
360 (IRO[IRO_USTORM_FLR_FINAL_ACK_GTT].base \
361 + ((pf_id) * IRO[IRO_USTORM_FLR_FINAL_ACK_GTT].m1))
362 #define USTORM_FLR_FINAL_ACK_GTT_SIZE (IRO[IRO_USTORM_FLR_FINAL_ACK_GTT].size)
364 /* Ustorm Integration Test Data */
365 #define USTORM_INTEG_TEST_DATA_OFFSET (IRO[IRO_USTORM_INTEG_TEST_DATA].base)
366 #define USTORM_INTEG_TEST_DATA_SIZE (IRO[IRO_USTORM_INTEG_TEST_DATA].size)
368 /* Ustorm iSCSI RX stats */
369 #define USTORM_ISCSI_RX_STATS_OFFSET(storage_func_id) \
370 (IRO[IRO_USTORM_ISCSI_RX_STATS].base \
371 + ((storage_func_id) * IRO[IRO_USTORM_ISCSI_RX_STATS].m1))
372 #define USTORM_ISCSI_RX_STATS_SIZE (IRO[IRO_USTORM_ISCSI_RX_STATS].size)
374 /* Ustorm overlay buffer host address */
375 #define USTORM_OVERLAY_BUF_ADDR_OFFSET (IRO[IRO_USTORM_OVERLAY_BUF_ADDR].base)
376 #define USTORM_OVERLAY_BUF_ADDR_SIZE (IRO[IRO_USTORM_OVERLAY_BUF_ADDR].size)
378 /* Ustorm queue statistics */
379 #define USTORM_QUEUE_STAT_OFFSET(stat_counter_id) \
380 (IRO[IRO_USTORM_QUEUE_STAT].base \
381 + ((stat_counter_id) * IRO[IRO_USTORM_QUEUE_STAT].m1))
382 #define USTORM_QUEUE_STAT_SIZE (IRO[IRO_USTORM_QUEUE_STAT].size)
384 /* Ustorm error level for assert */
385 #define USTORM_RDMA_ASSERT_LEVEL_OFFSET(pf_id) \
386 (IRO[IRO_USTORM_RDMA_ASSERT_LEVEL].base \
387 + ((pf_id) * IRO[IRO_USTORM_RDMA_ASSERT_LEVEL].m1))
388 #define USTORM_RDMA_ASSERT_LEVEL_SIZE (IRO[IRO_USTORM_RDMA_ASSERT_LEVEL].size)
390 /* RoCE CQEs Statistics */
391 #define USTORM_ROCE_CQE_STATS_OFFSET(roce_pf_id) \
392 (IRO[IRO_USTORM_ROCE_CQE_STATS].base \
393 + ((roce_pf_id) * IRO[IRO_USTORM_ROCE_CQE_STATS].m1))
394 #define USTORM_ROCE_CQE_STATS_SIZE (IRO[IRO_USTORM_ROCE_CQE_STATS].size)
396 /* Ustorm cqe producer */
397 #define USTORM_TOE_CQ_PROD_OFFSET(rss_id) \
398 (IRO[IRO_USTORM_TOE_CQ_PROD].base \
399 + ((rss_id) * IRO[IRO_USTORM_TOE_CQ_PROD].m1))
400 #define USTORM_TOE_CQ_PROD_SIZE (IRO[IRO_USTORM_TOE_CQ_PROD].size)
402 /* Ustorm grq producer */
403 #define USTORM_TOE_GRQ_PROD_OFFSET(pf_id) \
404 (IRO[IRO_USTORM_TOE_GRQ_PROD].base \
405 + ((pf_id) * IRO[IRO_USTORM_TOE_GRQ_PROD].m1))
406 #define USTORM_TOE_GRQ_PROD_SIZE (IRO[IRO_USTORM_TOE_GRQ_PROD].size)
408 /* Ustorm VF-PF Channel ready flag */
409 #define USTORM_VF_PF_CHANNEL_READY_GTT_OFFSET(vf_id) \
410 (IRO[IRO_USTORM_VF_PF_CHANNEL_READY_GTT].base \
411 + ((vf_id) * IRO[IRO_USTORM_VF_PF_CHANNEL_READY_GTT].m1))
412 #define USTORM_VF_PF_CHANNEL_READY_GTT_SIZE \
413 (IRO[IRO_USTORM_VF_PF_CHANNEL_READY_GTT].size)
415 /* Xstorm queue zone */
416 #define XSTORM_ETH_QUEUE_ZONE_GTT_OFFSET(queue_id) \
417 (IRO[IRO_XSTORM_ETH_QUEUE_ZONE_GTT].base \
418 + ((queue_id) * IRO[IRO_XSTORM_ETH_QUEUE_ZONE_GTT].m1))
419 #define XSTORM_ETH_QUEUE_ZONE_GTT_SIZE (IRO[IRO_XSTORM_ETH_QUEUE_ZONE_GTT].size)
421 /* Xstorm Integration Test Data */
422 #define XSTORM_INTEG_TEST_DATA_OFFSET (IRO[IRO_XSTORM_INTEG_TEST_DATA].base)
423 #define XSTORM_INTEG_TEST_DATA_SIZE (IRO[IRO_XSTORM_INTEG_TEST_DATA].size)
425 /* Xstorm iSCSI TX stats */
426 #define XSTORM_ISCSI_TX_STATS_OFFSET(storage_func_id) \
427 (IRO[IRO_XSTORM_ISCSI_TX_STATS].base \
428 + ((storage_func_id) * IRO[IRO_XSTORM_ISCSI_TX_STATS].m1))
429 #define XSTORM_ISCSI_TX_STATS_SIZE (IRO[IRO_XSTORM_ISCSI_TX_STATS].size)
431 /* Xstorm iWARP rxmit stats */
432 #define XSTORM_IWARP_RXMIT_STATS_OFFSET(pf_id) \
433 (IRO[IRO_XSTORM_IWARP_RXMIT_STATS].base \
434 + ((pf_id) * IRO[IRO_XSTORM_IWARP_RXMIT_STATS].m1))
435 #define XSTORM_IWARP_RXMIT_STATS_SIZE (IRO[IRO_XSTORM_IWARP_RXMIT_STATS].size)
437 /* Xstorm overlay buffer host address */
438 #define XSTORM_OVERLAY_BUF_ADDR_OFFSET (IRO[IRO_XSTORM_OVERLAY_BUF_ADDR].base)
439 #define XSTORM_OVERLAY_BUF_ADDR_SIZE (IRO[IRO_XSTORM_OVERLAY_BUF_ADDR].size)
441 /* Xstorm common PQ info */
442 #define XSTORM_PQ_INFO_OFFSET(pq_id) \
443 (IRO[IRO_XSTORM_PQ_INFO].base \
444 + ((pq_id) * IRO[IRO_XSTORM_PQ_INFO].m1))
445 #define XSTORM_PQ_INFO_SIZE (IRO[IRO_XSTORM_PQ_INFO].size)
447 /* Xstorm error level for assert */
448 #define XSTORM_RDMA_ASSERT_LEVEL_OFFSET(pf_id) \
449 (IRO[IRO_XSTORM_RDMA_ASSERT_LEVEL].base \
450 + ((pf_id) * IRO[IRO_XSTORM_RDMA_ASSERT_LEVEL].m1))
451 #define XSTORM_RDMA_ASSERT_LEVEL_SIZE (IRO[IRO_XSTORM_RDMA_ASSERT_LEVEL].size)
453 /* Ystorm flow control mode. Use enum fw_flow_ctrl_mode */
454 #define YSTORM_FLOW_CONTROL_MODE_GTT_OFFSET \
455 (IRO[IRO_YSTORM_FLOW_CONTROL_MODE_GTT].base)
456 #define YSTORM_FLOW_CONTROL_MODE_GTT_SIZE \
457 (IRO[IRO_YSTORM_FLOW_CONTROL_MODE_GTT].size)
459 /* Ystorm Integration Test Data */
460 #define YSTORM_INTEG_TEST_DATA_OFFSET (IRO[IRO_YSTORM_INTEG_TEST_DATA].base)
461 #define YSTORM_INTEG_TEST_DATA_SIZE (IRO[IRO_YSTORM_INTEG_TEST_DATA].size)
463 /* Ystorm iSCSI TX stats */
464 #define YSTORM_ISCSI_TX_STATS_OFFSET(storage_func_id) \
465 (IRO[IRO_YSTORM_ISCSI_TX_STATS].base \
466 + ((storage_func_id) * IRO[IRO_YSTORM_ISCSI_TX_STATS].m1))
467 #define YSTORM_ISCSI_TX_STATS_SIZE (IRO[IRO_YSTORM_ISCSI_TX_STATS].size)
469 /* Ystorm overlay buffer host address */
470 #define YSTORM_OVERLAY_BUF_ADDR_OFFSET (IRO[IRO_YSTORM_OVERLAY_BUF_ADDR].base)
471 #define YSTORM_OVERLAY_BUF_ADDR_SIZE (IRO[IRO_YSTORM_OVERLAY_BUF_ADDR].size)
473 /* Ystorm error level for assert */
474 #define YSTORM_RDMA_ASSERT_LEVEL_OFFSET(pf_id) \
475 (IRO[IRO_YSTORM_RDMA_ASSERT_LEVEL].base \
476 + ((pf_id) * IRO[IRO_YSTORM_RDMA_ASSERT_LEVEL].m1))
477 #define YSTORM_RDMA_ASSERT_LEVEL_SIZE (IRO[IRO_YSTORM_RDMA_ASSERT_LEVEL].size)
479 /* DCQCN Received Statistics */
480 #define YSTORM_ROCE_DCQCN_RECEIVED_STATS_OFFSET(roce_pf_id) \
481 (IRO[IRO_YSTORM_ROCE_DCQCN_RECEIVED_STATS].base \
482 + ((roce_pf_id) * IRO[IRO_YSTORM_ROCE_DCQCN_RECEIVED_STATS].m1))
483 #define YSTORM_ROCE_DCQCN_RECEIVED_STATS_SIZE \
484 (IRO[IRO_YSTORM_ROCE_DCQCN_RECEIVED_STATS].size)
486 /* RoCE Error Statistics */
487 #define YSTORM_ROCE_ERROR_STATS_OFFSET(roce_pf_id) \
488 (IRO[IRO_YSTORM_ROCE_ERROR_STATS].base \
489 + ((roce_pf_id) * IRO[IRO_YSTORM_ROCE_ERROR_STATS].m1))
490 #define YSTORM_ROCE_ERROR_STATS_SIZE (IRO[IRO_YSTORM_ROCE_ERROR_STATS].size)
492 /* Ystorm cqe producer */
493 #define YSTORM_TOE_CQ_PROD_OFFSET(rss_id) \
494 (IRO[IRO_YSTORM_TOE_CQ_PROD].base \
495 + ((rss_id) * IRO[IRO_YSTORM_TOE_CQ_PROD].m1))
496 #define YSTORM_TOE_CQ_PROD_SIZE (IRO[IRO_YSTORM_TOE_CQ_PROD].size)
498 /* Per-chip offsets in iro_arr in dwords */
499 #define E4_IRO_ARR_OFFSET 0
500 #endif