New upstream version 17.11-rc3
[deb_dpdk.git] / drivers / net / qede / base / ecore_iro.h
1 /*
2  * Copyright (c) 2016 QLogic Corporation.
3  * All rights reserved.
4  * www.qlogic.com
5  *
6  * See LICENSE.qede_pmd for copyright and licensing details.
7  */
8
9 #ifndef __IRO_H__
10 #define __IRO_H__
11
12 /* Ystorm flow control mode. Use enum fw_flow_ctrl_mode */
13 #define YSTORM_FLOW_CONTROL_MODE_OFFSET (IRO[0].base)
14 #define YSTORM_FLOW_CONTROL_MODE_SIZE (IRO[0].size)
15 /* Tstorm port statistics */
16 #define TSTORM_PORT_STAT_OFFSET(port_id) (IRO[1].base + ((port_id) * IRO[1].m1))
17 #define TSTORM_PORT_STAT_SIZE (IRO[1].size)
18 /* Tstorm ll2 port statistics */
19 #define TSTORM_LL2_PORT_STAT_OFFSET(port_id) (IRO[2].base + \
20         ((port_id) * IRO[2].m1))
21 #define TSTORM_LL2_PORT_STAT_SIZE (IRO[2].size)
22 /* Ustorm VF-PF Channel ready flag */
23 #define USTORM_VF_PF_CHANNEL_READY_OFFSET(vf_id) (IRO[3].base + \
24         ((vf_id) * IRO[3].m1))
25 #define USTORM_VF_PF_CHANNEL_READY_SIZE (IRO[3].size)
26 /* Ustorm Final flr cleanup ack */
27 #define USTORM_FLR_FINAL_ACK_OFFSET(pf_id) (IRO[4].base + ((pf_id) * IRO[4].m1))
28 #define USTORM_FLR_FINAL_ACK_SIZE (IRO[4].size)
29 /* Ustorm Event ring consumer */
30 #define USTORM_EQE_CONS_OFFSET(pf_id) (IRO[5].base + ((pf_id) * IRO[5].m1))
31 #define USTORM_EQE_CONS_SIZE (IRO[5].size)
32 /* Ustorm eth queue zone */
33 #define USTORM_ETH_QUEUE_ZONE_OFFSET(queue_zone_id) (IRO[6].base + \
34         ((queue_zone_id) * IRO[6].m1))
35 #define USTORM_ETH_QUEUE_ZONE_SIZE (IRO[6].size)
36 /* Ustorm Common Queue ring consumer */
37 #define USTORM_COMMON_QUEUE_CONS_OFFSET(queue_zone_id) (IRO[7].base + \
38         ((queue_zone_id) * IRO[7].m1))
39 #define USTORM_COMMON_QUEUE_CONS_SIZE (IRO[7].size)
40 /* Xstorm Integration Test Data */
41 #define XSTORM_INTEG_TEST_DATA_OFFSET (IRO[8].base)
42 #define XSTORM_INTEG_TEST_DATA_SIZE (IRO[8].size)
43 /* Ystorm Integration Test Data */
44 #define YSTORM_INTEG_TEST_DATA_OFFSET (IRO[9].base)
45 #define YSTORM_INTEG_TEST_DATA_SIZE (IRO[9].size)
46 /* Pstorm Integration Test Data */
47 #define PSTORM_INTEG_TEST_DATA_OFFSET (IRO[10].base)
48 #define PSTORM_INTEG_TEST_DATA_SIZE (IRO[10].size)
49 /* Tstorm Integration Test Data */
50 #define TSTORM_INTEG_TEST_DATA_OFFSET (IRO[11].base)
51 #define TSTORM_INTEG_TEST_DATA_SIZE (IRO[11].size)
52 /* Mstorm Integration Test Data */
53 #define MSTORM_INTEG_TEST_DATA_OFFSET (IRO[12].base)
54 #define MSTORM_INTEG_TEST_DATA_SIZE (IRO[12].size)
55 /* Ustorm Integration Test Data */
56 #define USTORM_INTEG_TEST_DATA_OFFSET (IRO[13].base)
57 #define USTORM_INTEG_TEST_DATA_SIZE (IRO[13].size)
58 /* Tstorm producers */
59 #define TSTORM_LL2_RX_PRODS_OFFSET(core_rx_queue_id) (IRO[14].base + \
60         ((core_rx_queue_id) * IRO[14].m1))
61 #define TSTORM_LL2_RX_PRODS_SIZE (IRO[14].size)
62 /* Tstorm LightL2 queue statistics */
63 #define CORE_LL2_TSTORM_PER_QUEUE_STAT_OFFSET(core_rx_queue_id) \
64         (IRO[15].base + ((core_rx_queue_id) * IRO[15].m1))
65 #define CORE_LL2_TSTORM_PER_QUEUE_STAT_SIZE (IRO[15].size)
66 /* Ustorm LiteL2 queue statistics */
67 #define CORE_LL2_USTORM_PER_QUEUE_STAT_OFFSET(core_rx_queue_id) \
68         (IRO[16].base + ((core_rx_queue_id) * IRO[16].m1))
69 #define CORE_LL2_USTORM_PER_QUEUE_STAT_SIZE (IRO[16].size)
70 /* Pstorm LiteL2 queue statistics */
71 #define CORE_LL2_PSTORM_PER_QUEUE_STAT_OFFSET(core_tx_stats_id) \
72         (IRO[17].base + ((core_tx_stats_id) * IRO[17].m1))
73 #define CORE_LL2_PSTORM_PER_QUEUE_STAT_SIZE (IRO[17].size)
74 /* Mstorm queue statistics */
75 #define MSTORM_QUEUE_STAT_OFFSET(stat_counter_id) (IRO[18].base + \
76         ((stat_counter_id) * IRO[18].m1))
77 #define MSTORM_QUEUE_STAT_SIZE (IRO[18].size)
78 /* Mstorm ETH PF queues producers */
79 #define MSTORM_ETH_PF_PRODS_OFFSET(queue_id) (IRO[19].base + \
80         ((queue_id) * IRO[19].m1))
81 #define MSTORM_ETH_PF_PRODS_SIZE (IRO[19].size)
82 /* Mstorm ETH VF queues producers offset in RAM. Used in default VF zone size
83  * mode.
84  */
85 #define MSTORM_ETH_VF_PRODS_OFFSET(vf_id, vf_queue_id) (IRO[20].base + \
86         ((vf_id) * IRO[20].m1) + ((vf_queue_id) * IRO[20].m2))
87 #define MSTORM_ETH_VF_PRODS_SIZE (IRO[20].size)
88 /* TPA agregation timeout in us resolution (on ASIC) */
89 #define MSTORM_TPA_TIMEOUT_US_OFFSET (IRO[21].base)
90 #define MSTORM_TPA_TIMEOUT_US_SIZE (IRO[21].size)
91 /* Mstorm pf statistics */
92 #define MSTORM_ETH_PF_STAT_OFFSET(pf_id) (IRO[22].base + ((pf_id) * IRO[22].m1))
93 #define MSTORM_ETH_PF_STAT_SIZE (IRO[22].size)
94 /* Ustorm queue statistics */
95 #define USTORM_QUEUE_STAT_OFFSET(stat_counter_id) (IRO[23].base + \
96         ((stat_counter_id) * IRO[23].m1))
97 #define USTORM_QUEUE_STAT_SIZE (IRO[23].size)
98 /* Ustorm pf statistics */
99 #define USTORM_ETH_PF_STAT_OFFSET(pf_id) (IRO[24].base + ((pf_id) * IRO[24].m1))
100 #define USTORM_ETH_PF_STAT_SIZE (IRO[24].size)
101 /* Pstorm queue statistics */
102 #define PSTORM_QUEUE_STAT_OFFSET(stat_counter_id) (IRO[25].base + \
103         ((stat_counter_id) * IRO[25].m1))
104 #define PSTORM_QUEUE_STAT_SIZE (IRO[25].size)
105 /* Pstorm pf statistics */
106 #define PSTORM_ETH_PF_STAT_OFFSET(pf_id) (IRO[26].base + ((pf_id) * IRO[26].m1))
107 #define PSTORM_ETH_PF_STAT_SIZE (IRO[26].size)
108 /* Control frame's EthType configuration for TX control frame security */
109 #define PSTORM_CTL_FRAME_ETHTYPE_OFFSET(ethType_id) (IRO[27].base + \
110         ((ethType_id) * IRO[27].m1))
111 #define PSTORM_CTL_FRAME_ETHTYPE_SIZE (IRO[27].size)
112 /* Tstorm last parser message */
113 #define TSTORM_ETH_PRS_INPUT_OFFSET (IRO[28].base)
114 #define TSTORM_ETH_PRS_INPUT_SIZE (IRO[28].size)
115 /* Tstorm Eth limit Rx rate */
116 #define ETH_RX_RATE_LIMIT_OFFSET(pf_id) (IRO[29].base + ((pf_id) * IRO[29].m1))
117 #define ETH_RX_RATE_LIMIT_SIZE (IRO[29].size)
118 /* Xstorm queue zone */
119 #define XSTORM_ETH_QUEUE_ZONE_OFFSET(queue_id) (IRO[30].base + \
120         ((queue_id) * IRO[30].m1))
121 #define XSTORM_ETH_QUEUE_ZONE_SIZE (IRO[30].size)
122 /* Ystorm cqe producer */
123 #define YSTORM_TOE_CQ_PROD_OFFSET(rss_id) (IRO[31].base + \
124         ((rss_id) * IRO[31].m1))
125 #define YSTORM_TOE_CQ_PROD_SIZE (IRO[31].size)
126 /* Ustorm cqe producer */
127 #define USTORM_TOE_CQ_PROD_OFFSET(rss_id) (IRO[32].base + \
128         ((rss_id) * IRO[32].m1))
129 #define USTORM_TOE_CQ_PROD_SIZE (IRO[32].size)
130 /* Ustorm grq producer */
131 #define USTORM_TOE_GRQ_PROD_OFFSET(pf_id) (IRO[33].base + \
132         ((pf_id) * IRO[33].m1))
133 #define USTORM_TOE_GRQ_PROD_SIZE (IRO[33].size)
134 /* Tstorm cmdq-cons of given command queue-id */
135 #define TSTORM_SCSI_CMDQ_CONS_OFFSET(cmdq_queue_id) (IRO[34].base + \
136         ((cmdq_queue_id) * IRO[34].m1))
137 #define TSTORM_SCSI_CMDQ_CONS_SIZE (IRO[34].size)
138 /* Tstorm (reflects M-Storm) bdq-external-producer of given function ID,
139  * BDqueue-id
140  */
141 #define TSTORM_SCSI_BDQ_EXT_PROD_OFFSET(func_id, bdq_id) (IRO[35].base + \
142         ((func_id) * IRO[35].m1) + ((bdq_id) * IRO[35].m2))
143 #define TSTORM_SCSI_BDQ_EXT_PROD_SIZE (IRO[35].size)
144 /* Mstorm bdq-external-producer of given BDQ resource ID, BDqueue-id */
145 #define MSTORM_SCSI_BDQ_EXT_PROD_OFFSET(func_id, bdq_id) (IRO[36].base + \
146         ((func_id) * IRO[36].m1) + ((bdq_id) * IRO[36].m2))
147 #define MSTORM_SCSI_BDQ_EXT_PROD_SIZE (IRO[36].size)
148 /* Tstorm iSCSI RX stats */
149 #define TSTORM_ISCSI_RX_STATS_OFFSET(pf_id) (IRO[37].base + \
150         ((pf_id) * IRO[37].m1))
151 #define TSTORM_ISCSI_RX_STATS_SIZE (IRO[37].size)
152 /* Mstorm iSCSI RX stats */
153 #define MSTORM_ISCSI_RX_STATS_OFFSET(pf_id) (IRO[38].base + \
154         ((pf_id) * IRO[38].m1))
155 #define MSTORM_ISCSI_RX_STATS_SIZE (IRO[38].size)
156 /* Ustorm iSCSI RX stats */
157 #define USTORM_ISCSI_RX_STATS_OFFSET(pf_id) (IRO[39].base + \
158         ((pf_id) * IRO[39].m1))
159 #define USTORM_ISCSI_RX_STATS_SIZE (IRO[39].size)
160 /* Xstorm iSCSI TX stats */
161 #define XSTORM_ISCSI_TX_STATS_OFFSET(pf_id) (IRO[40].base + \
162         ((pf_id) * IRO[40].m1))
163 #define XSTORM_ISCSI_TX_STATS_SIZE (IRO[40].size)
164 /* Ystorm iSCSI TX stats */
165 #define YSTORM_ISCSI_TX_STATS_OFFSET(pf_id) (IRO[41].base + \
166         ((pf_id) * IRO[41].m1))
167 #define YSTORM_ISCSI_TX_STATS_SIZE (IRO[41].size)
168 /* Pstorm iSCSI TX stats */
169 #define PSTORM_ISCSI_TX_STATS_OFFSET(pf_id) (IRO[42].base + \
170         ((pf_id) * IRO[42].m1))
171 #define PSTORM_ISCSI_TX_STATS_SIZE (IRO[42].size)
172 /* Tstorm FCoE RX stats */
173 #define TSTORM_FCOE_RX_STATS_OFFSET(pf_id) (IRO[43].base + \
174         ((pf_id) * IRO[43].m1))
175 #define TSTORM_FCOE_RX_STATS_SIZE (IRO[43].size)
176 /* Pstorm FCoE TX stats */
177 #define PSTORM_FCOE_TX_STATS_OFFSET(pf_id) (IRO[44].base + \
178         ((pf_id) * IRO[44].m1))
179 #define PSTORM_FCOE_TX_STATS_SIZE (IRO[44].size)
180 /* Pstorm RDMA queue statistics */
181 #define PSTORM_RDMA_QUEUE_STAT_OFFSET(rdma_stat_counter_id) \
182         (IRO[45].base + ((rdma_stat_counter_id) * IRO[45].m1))
183 #define PSTORM_RDMA_QUEUE_STAT_SIZE (IRO[45].size)
184 /* Tstorm RDMA queue statistics */
185 #define TSTORM_RDMA_QUEUE_STAT_OFFSET(rdma_stat_counter_id) (IRO[46].base + \
186         ((rdma_stat_counter_id) * IRO[46].m1))
187 #define TSTORM_RDMA_QUEUE_STAT_SIZE (IRO[46].size)
188 /* Xstorm iWARP rxmit stats */
189 #define XSTORM_IWARP_RXMIT_STATS_OFFSET(pf_id) (IRO[47].base + \
190         ((pf_id) * IRO[47].m1))
191 #define XSTORM_IWARP_RXMIT_STATS_SIZE (IRO[47].size)
192 /* Tstorm RoCE Event Statistics */
193 #define TSTORM_ROCE_EVENTS_STAT_OFFSET(roce_pf_id) (IRO[48].base + \
194         ((roce_pf_id) * IRO[48].m1))
195 #define TSTORM_ROCE_EVENTS_STAT_SIZE (IRO[48].size)
196 /* DCQCN Received Statistics */
197 #define YSTORM_ROCE_DCQCN_RECEIVED_STATS_OFFSET(roce_pf_id) (IRO[49].base + \
198         ((roce_pf_id) * IRO[49].m1))
199 #define YSTORM_ROCE_DCQCN_RECEIVED_STATS_SIZE (IRO[49].size)
200 /* DCQCN Sent Statistics */
201 #define PSTORM_ROCE_DCQCN_SENT_STATS_OFFSET(roce_pf_id) (IRO[50].base + \
202         ((roce_pf_id) * IRO[50].m1))
203 #define PSTORM_ROCE_DCQCN_SENT_STATS_SIZE (IRO[50].size)
204
205 #endif /* __IRO_H__ */