common/cnxk: support NIX TM debug and misc utils
[dpdk.git] / drivers / common / cnxk / roc_utils.c
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2021 Marvell.
3  */
4
5 #include "roc_api.h"
6 #include "roc_priv.h"
7
8 const char *
9 roc_error_msg_get(int errorcode)
10 {
11         const char *err_msg;
12
13         switch (errorcode) {
14         case NIX_AF_ERR_PARAM:
15         case NIX_ERR_PARAM:
16         case NPA_ERR_PARAM:
17         case UTIL_ERR_PARAM:
18                 err_msg = "Invalid parameter";
19                 break;
20         case NIX_ERR_NO_MEM:
21                 err_msg = "Out of memory";
22                 break;
23         case NIX_ERR_INVALID_RANGE:
24                 err_msg = "Range is not supported";
25                 break;
26         case NIX_ERR_INTERNAL:
27                 err_msg = "Internal error";
28                 break;
29         case NIX_ERR_OP_NOTSUP:
30                 err_msg = "Operation not supported";
31                 break;
32         case NIX_ERR_QUEUE_INVALID_RANGE:
33                 err_msg = "Invalid Queue range";
34                 break;
35         case NIX_ERR_AQ_READ_FAILED:
36                 err_msg = "AQ read failed";
37                 break;
38         case NIX_ERR_AQ_WRITE_FAILED:
39                 err_msg = "AQ write failed";
40                 break;
41         case NIX_ERR_TM_LEAF_NODE_GET:
42                 err_msg = "TM leaf node get failed";
43                 break;
44         case NIX_ERR_TM_INVALID_LVL:
45                 err_msg = "TM node level invalid";
46                 break;
47         case NIX_ERR_TM_INVALID_PRIO:
48                 err_msg = "TM node priority invalid";
49                 break;
50         case NIX_ERR_TM_INVALID_PARENT:
51                 err_msg = "TM parent id invalid";
52                 break;
53         case NIX_ERR_TM_NODE_EXISTS:
54                 err_msg = "TM Node Exists";
55                 break;
56         case NIX_ERR_TM_INVALID_NODE:
57                 err_msg = "TM node id invalid";
58                 break;
59         case NIX_ERR_TM_INVALID_SHAPER_PROFILE:
60                 err_msg = "TM shaper profile invalid";
61                 break;
62         case NIX_ERR_TM_WEIGHT_EXCEED:
63                 err_msg = "TM DWRR weight exceeded";
64                 break;
65         case NIX_ERR_TM_CHILD_EXISTS:
66                 err_msg = "TM node children exists";
67                 break;
68         case NIX_ERR_TM_INVALID_PEAK_SZ:
69                 err_msg = "TM peak size invalid";
70                 break;
71         case NIX_ERR_TM_INVALID_PEAK_RATE:
72                 err_msg = "TM peak rate invalid";
73                 break;
74         case NIX_ERR_TM_INVALID_COMMIT_SZ:
75                 err_msg = "TM commit size invalid";
76                 break;
77         case NIX_ERR_TM_INVALID_COMMIT_RATE:
78                 err_msg = "TM commit rate invalid";
79                 break;
80         case NIX_ERR_TM_SHAPER_PROFILE_IN_USE:
81                 err_msg = "TM shaper profile in use";
82                 break;
83         case NIX_ERR_TM_SHAPER_PROFILE_EXISTS:
84                 err_msg = "TM shaper profile exists";
85                 break;
86         case NIX_ERR_TM_INVALID_TREE:
87                 err_msg = "TM tree invalid";
88                 break;
89         case NIX_ERR_TM_PARENT_PRIO_UPDATE:
90                 err_msg = "TM node parent and prio update failed";
91                 break;
92         case NIX_ERR_TM_PRIO_EXCEEDED:
93                 err_msg = "TM node priority exceeded";
94                 break;
95         case NIX_ERR_TM_PRIO_ORDER:
96                 err_msg = "TM node priority not in order";
97                 break;
98         case NIX_ERR_TM_MULTIPLE_RR_GROUPS:
99                 err_msg = "TM multiple rr groups";
100                 break;
101         case NIX_ERR_TM_SQ_UPDATE_FAIL:
102                 err_msg = "TM SQ update failed";
103                 break;
104         case NIX_ERR_NDC_SYNC:
105                 err_msg = "NDC Sync failed";
106                 break;
107         case NPA_ERR_ALLOC:
108                 err_msg = "NPA alloc failed";
109                 break;
110         case NPA_ERR_INVALID_BLOCK_SZ:
111                 err_msg = "NPA invalid block size";
112                 break;
113         case NPA_ERR_AURA_ID_ALLOC:
114                 err_msg = "NPA aura id alloc failed";
115                 break;
116         case NPA_ERR_AURA_POOL_INIT:
117                 err_msg = "NPA aura pool init failed";
118                 break;
119         case NPA_ERR_AURA_POOL_FINI:
120                 err_msg = "NPA aura pool fini failed";
121                 break;
122         case NPA_ERR_BASE_INVALID:
123                 err_msg = "NPA invalid base";
124                 break;
125         case NPA_ERR_DEVICE_NOT_BOUNDED:
126                 err_msg = "NPA device is not bounded";
127                 break;
128         case NIX_AF_ERR_AQ_FULL:
129                 err_msg = "AQ full";
130                 break;
131         case NIX_AF_ERR_AQ_ENQUEUE:
132                 err_msg = "AQ enqueue failed";
133                 break;
134         case NIX_AF_ERR_AF_LF_INVALID:
135                 err_msg = "Invalid NIX LF";
136                 break;
137         case NIX_AF_ERR_AF_LF_ALLOC:
138                 err_msg = "NIX LF alloc failed";
139                 break;
140         case NIX_AF_ERR_TLX_INVALID:
141                 err_msg = "Invalid NIX TLX";
142                 break;
143         case NIX_AF_ERR_TLX_ALLOC_FAIL:
144                 err_msg = "NIX TLX alloc failed";
145                 break;
146         case NIX_AF_ERR_RSS_SIZE_INVALID:
147                 err_msg = "Invalid RSS size";
148                 break;
149         case NIX_AF_ERR_RSS_GRPS_INVALID:
150                 err_msg = "Invalid RSS groups";
151                 break;
152         case NIX_AF_ERR_FRS_INVALID:
153                 err_msg = "Invalid frame size";
154                 break;
155         case NIX_AF_ERR_RX_LINK_INVALID:
156                 err_msg = "Invalid Rx link";
157                 break;
158         case NIX_AF_INVAL_TXSCHQ_CFG:
159                 err_msg = "Invalid Tx scheduling config";
160                 break;
161         case NIX_AF_SMQ_FLUSH_FAILED:
162                 err_msg = "SMQ flush failed";
163                 break;
164         case NIX_AF_ERR_LF_RESET:
165                 err_msg = "NIX LF reset failed";
166                 break;
167         case NIX_AF_ERR_MARK_CFG_FAIL:
168                 err_msg = "Marking config failed";
169                 break;
170         case NIX_AF_ERR_LSO_CFG_FAIL:
171                 err_msg = "LSO config failed";
172                 break;
173         case NIX_AF_INVAL_NPA_PF_FUNC:
174                 err_msg = "Invalid NPA pf_func";
175                 break;
176         case NIX_AF_INVAL_SSO_PF_FUNC:
177                 err_msg = "Invalid SSO pf_func";
178                 break;
179         case NIX_AF_ERR_TX_VTAG_NOSPC:
180                 err_msg = "No space for Tx VTAG";
181                 break;
182         case NIX_AF_ERR_RX_VTAG_INUSE:
183                 err_msg = "Rx VTAG is in use";
184                 break;
185         case NIX_AF_ERR_PTP_CONFIG_FAIL:
186                 err_msg = "PTP config failed";
187                 break;
188         case UTIL_ERR_FS:
189                 err_msg = "file operation failed";
190                 break;
191         case UTIL_ERR_INVALID_MODEL:
192                 err_msg = "Invalid RoC model";
193                 break;
194         default:
195                 /**
196                  * Handle general error (as defined in linux errno.h)
197                  */
198                 if (abs(errorcode) < 300)
199                         err_msg = strerror(abs(errorcode));
200                 else
201                         err_msg = "Unknown error code";
202                 break;
203         }
204
205         return err_msg;
206 }
207
208 void
209 roc_clk_freq_get(uint16_t *rclk_freq, uint16_t *sclk_freq)
210 {
211         *rclk_freq = dev_rclk_freq;
212         *sclk_freq = dev_sclk_freq;
213 }