Imported Upstream version 16.07-rc1
[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) \
17 (IRO[1].base + ((port_id) * IRO[1].m1))
18 #define TSTORM_PORT_STAT_SIZE                   (IRO[1].size)
19 /* Ustorm VF-PF Channel ready flag */
20 #define USTORM_VF_PF_CHANNEL_READY_OFFSET(vf_id) \
21 (IRO[3].base + ((vf_id) * IRO[3].m1))
22 #define USTORM_VF_PF_CHANNEL_READY_SIZE         (IRO[3].size)
23 /* Ustorm Final flr cleanup ack */
24 #define USTORM_FLR_FINAL_ACK_OFFSET(pf_id) \
25 (IRO[4].base + ((pf_id) * IRO[4].m1))
26 #define USTORM_FLR_FINAL_ACK_SIZE               (IRO[4].size)
27 /* Ustorm Event ring consumer */
28 #define USTORM_EQE_CONS_OFFSET(pf_id) \
29 (IRO[5].base + ((pf_id) * IRO[5].m1))
30 #define USTORM_EQE_CONS_SIZE                    (IRO[5].size)
31 /* Ustorm Common Queue ring consumer */
32 #define USTORM_COMMON_QUEUE_CONS_OFFSET(global_queue_id) \
33 (IRO[6].base + ((global_queue_id) * IRO[6].m1))
34 #define USTORM_COMMON_QUEUE_CONS_SIZE           (IRO[6].size)
35 /* Xstorm Integration Test Data */
36 #define XSTORM_INTEG_TEST_DATA_OFFSET           (IRO[7].base)
37 #define XSTORM_INTEG_TEST_DATA_SIZE             (IRO[7].size)
38 /* Ystorm Integration Test Data */
39 #define YSTORM_INTEG_TEST_DATA_OFFSET           (IRO[8].base)
40 #define YSTORM_INTEG_TEST_DATA_SIZE             (IRO[8].size)
41 /* Pstorm Integration Test Data */
42 #define PSTORM_INTEG_TEST_DATA_OFFSET           (IRO[9].base)
43 #define PSTORM_INTEG_TEST_DATA_SIZE             (IRO[9].size)
44 /* Tstorm Integration Test Data */
45 #define TSTORM_INTEG_TEST_DATA_OFFSET           (IRO[10].base)
46 #define TSTORM_INTEG_TEST_DATA_SIZE             (IRO[10].size)
47 /* Mstorm Integration Test Data */
48 #define MSTORM_INTEG_TEST_DATA_OFFSET           (IRO[11].base)
49 #define MSTORM_INTEG_TEST_DATA_SIZE             (IRO[11].size)
50 /* Ustorm Integration Test Data */
51 #define USTORM_INTEG_TEST_DATA_OFFSET           (IRO[12].base)
52 #define USTORM_INTEG_TEST_DATA_SIZE             (IRO[12].size)
53 /* Mstorm queue statistics */
54 #define MSTORM_QUEUE_STAT_OFFSET(stat_counter_id) \
55 (IRO[17].base + ((stat_counter_id) * IRO[17].m1))
56 #define MSTORM_QUEUE_STAT_SIZE                  (IRO[17].size)
57 /* Mstorm producers */
58 #define MSTORM_PRODS_OFFSET(queue_id) \
59 (IRO[18].base + ((queue_id) * IRO[18].m1))
60 #define MSTORM_PRODS_SIZE                       (IRO[18].size)
61 /* TPA agregation timeout in us resolution (on ASIC) */
62 #define MSTORM_TPA_TIMEOUT_US_OFFSET            (IRO[19].base)
63 #define MSTORM_TPA_TIMEOUT_US_SIZE              (IRO[19].size)
64 /* Ustorm queue statistics */
65 #define USTORM_QUEUE_STAT_OFFSET(stat_counter_id) \
66 (IRO[20].base + ((stat_counter_id) * IRO[20].m1))
67 #define USTORM_QUEUE_STAT_SIZE (IRO[20].size)
68 /* Ustorm queue zone */
69 #define USTORM_ETH_QUEUE_ZONE_OFFSET(queue_id) \
70 (IRO[21].base + ((queue_id) * IRO[21].m1))
71 #define USTORM_ETH_QUEUE_ZONE_SIZE              (IRO[21].size)
72 /* Pstorm queue statistics */
73 #define PSTORM_QUEUE_STAT_OFFSET(stat_counter_id) \
74 (IRO[22].base + ((stat_counter_id) * IRO[22].m1))
75 #define PSTORM_QUEUE_STAT_SIZE                  (IRO[22].size)
76 /* Tstorm last parser message */
77 #define TSTORM_ETH_PRS_INPUT_OFFSET             (IRO[23].base)
78 #define TSTORM_ETH_PRS_INPUT_SIZE               (IRO[23].size)
79 /* Tstorm Eth limit Rx rate */
80 #define ETH_RX_RATE_LIMIT_OFFSET(pf_id) \
81 (IRO[24].base + ((pf_id) * IRO[24].m1))
82 #define ETH_RX_RATE_LIMIT_SIZE                  (IRO[24].size)
83 /* Ystorm queue zone */
84 #define YSTORM_ETH_QUEUE_ZONE_OFFSET(queue_id) \
85 (IRO[25].base + ((queue_id) * IRO[25].m1))
86 #define YSTORM_ETH_QUEUE_ZONE_SIZE              (IRO[25].size)
87 /* Ystorm cqe producer */
88 #define YSTORM_TOE_CQ_PROD_OFFSET(rss_id) \
89 (IRO[26].base + ((rss_id) * IRO[26].m1))
90 #define YSTORM_TOE_CQ_PROD_SIZE                 (IRO[26].size)
91 /* Ustorm cqe producer */
92 #define USTORM_TOE_CQ_PROD_OFFSET(rss_id) \
93 (IRO[27].base + ((rss_id) * IRO[27].m1))
94 #define USTORM_TOE_CQ_PROD_SIZE                 (IRO[27].size)
95 /* Ustorm grq producer */
96 #define USTORM_TOE_GRQ_PROD_OFFSET(pf_id) \
97 (IRO[28].base + ((pf_id) * IRO[28].m1))
98 #define USTORM_TOE_GRQ_PROD_SIZE                (IRO[28].size)
99 /* Tstorm cmdq-cons of given command queue-id */
100 #define TSTORM_SCSI_CMDQ_CONS_OFFSET(cmdq_queue_id) \
101 (IRO[29].base + ((cmdq_queue_id) * IRO[29].m1))
102 #define TSTORM_SCSI_CMDQ_CONS_SIZE              (IRO[29].size)
103 #define TSTORM_SCSI_BDQ_EXT_PROD_OFFSET(func_id, bdq_id) \
104 (IRO[30].base + ((func_id) * IRO[30].m1) + ((bdq_id) * IRO[30].m2))
105 #define TSTORM_SCSI_BDQ_EXT_PROD_SIZE           (IRO[30].size)
106 /* Mstorm rq-cons of given queue-id */
107 #define MSTORM_SCSI_RQ_CONS_OFFSET(rq_queue_id) \
108 (IRO[31].base + ((rq_queue_id) * IRO[31].m1))
109 #define MSTORM_SCSI_RQ_CONS_SIZE                (IRO[31].size)
110 /* Mstorm bdq-external-producer of given BDQ function ID, BDqueue-id */
111 #define MSTORM_SCSI_BDQ_EXT_PROD_OFFSET(func_id, bdq_id) \
112 (IRO[32].base + ((func_id) * IRO[32].m1) + ((bdq_id) * IRO[32].m2))
113 #define MSTORM_SCSI_BDQ_EXT_PROD_SIZE           (IRO[32].size)
114
115 #endif /* __IRO_H__ */