xref: /dpdk/drivers/common/cnxk/roc_utils.c (revision daa02b5cddbb8e11b31d41e2bf7bb1ae64dcae2f)
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 NPC_ERR_PARAM:
18 	case SSO_ERR_PARAM:
19 	case UTIL_ERR_PARAM:
20 		err_msg = "Invalid parameter";
21 		break;
22 	case NIX_ERR_NO_MEM:
23 	case NPC_ERR_NO_MEM:
24 		err_msg = "Out of memory";
25 		break;
26 	case NIX_ERR_INVALID_RANGE:
27 	case NPC_ERR_INVALID_RANGE:
28 		err_msg = "Range is not supported";
29 		break;
30 	case NIX_ERR_INTERNAL:
31 	case NPC_ERR_INTERNAL:
32 		err_msg = "Internal error";
33 		break;
34 	case NIX_ERR_OP_NOTSUP:
35 		err_msg = "Operation not supported";
36 		break;
37 	case NIX_ERR_HW_NOTSUP:
38 		err_msg = "Hardware does not support";
39 		break;
40 	case NIX_ERR_QUEUE_INVALID_RANGE:
41 		err_msg = "Invalid Queue range";
42 		break;
43 	case NIX_ERR_AQ_READ_FAILED:
44 		err_msg = "AQ read failed";
45 		break;
46 	case NIX_ERR_AQ_WRITE_FAILED:
47 		err_msg = "AQ write failed";
48 		break;
49 	case NIX_ERR_TM_LEAF_NODE_GET:
50 		err_msg = "TM leaf node get failed";
51 		break;
52 	case NIX_ERR_TM_INVALID_LVL:
53 		err_msg = "TM node level invalid";
54 		break;
55 	case NIX_ERR_TM_INVALID_PRIO:
56 		err_msg = "TM node priority invalid";
57 		break;
58 	case NIX_ERR_TM_INVALID_PARENT:
59 		err_msg = "TM parent id invalid";
60 		break;
61 	case NIX_ERR_TM_NODE_EXISTS:
62 		err_msg = "TM Node Exists";
63 		break;
64 	case NIX_ERR_TM_INVALID_NODE:
65 		err_msg = "TM node id invalid";
66 		break;
67 	case NIX_ERR_TM_INVALID_SHAPER_PROFILE:
68 		err_msg = "TM shaper profile invalid";
69 		break;
70 	case NIX_ERR_TM_PKT_MODE_MISMATCH:
71 		err_msg = "shaper profile pkt mode mismatch";
72 		break;
73 	case NIX_ERR_TM_WEIGHT_EXCEED:
74 		err_msg = "TM DWRR weight exceeded";
75 		break;
76 	case NIX_ERR_TM_CHILD_EXISTS:
77 		err_msg = "TM node children exists";
78 		break;
79 	case NIX_ERR_TM_INVALID_PEAK_SZ:
80 		err_msg = "TM peak size invalid";
81 		break;
82 	case NIX_ERR_TM_INVALID_PEAK_RATE:
83 		err_msg = "TM peak rate invalid";
84 		break;
85 	case NIX_ERR_TM_INVALID_COMMIT_SZ:
86 		err_msg = "TM commit size invalid";
87 		break;
88 	case NIX_ERR_TM_INVALID_COMMIT_RATE:
89 		err_msg = "TM commit rate invalid";
90 		break;
91 	case NIX_ERR_TM_SHAPER_PROFILE_IN_USE:
92 		err_msg = "TM shaper profile in use";
93 		break;
94 	case NIX_ERR_TM_SHAPER_PROFILE_EXISTS:
95 		err_msg = "TM shaper profile exists";
96 		break;
97 	case NIX_ERR_TM_SHAPER_PKT_LEN_ADJUST:
98 		err_msg = "length adjust invalid";
99 		break;
100 	case NIX_ERR_TM_INVALID_TREE:
101 		err_msg = "TM tree invalid";
102 		break;
103 	case NIX_ERR_TM_PARENT_PRIO_UPDATE:
104 		err_msg = "TM node parent and prio update failed";
105 		break;
106 	case NIX_ERR_TM_PRIO_EXCEEDED:
107 		err_msg = "TM node priority exceeded";
108 		break;
109 	case NIX_ERR_TM_PRIO_ORDER:
110 		err_msg = "TM node priority not in order";
111 		break;
112 	case NIX_ERR_TM_MULTIPLE_RR_GROUPS:
113 		err_msg = "TM multiple rr groups";
114 		break;
115 	case NIX_ERR_TM_SQ_UPDATE_FAIL:
116 		err_msg = "TM SQ update failed";
117 		break;
118 	case NIX_ERR_NDC_SYNC:
119 		err_msg = "NDC Sync failed";
120 		break;
121 	case NPC_ERR_INVALID_SPEC:
122 		err_msg = "NPC invalid spec";
123 		break;
124 	case NPC_ERR_INVALID_MASK:
125 		err_msg = "NPC invalid mask";
126 		break;
127 	case NPC_ERR_INVALID_KEX:
128 		err_msg = "NPC invalid key";
129 		break;
130 	case NPC_ERR_INVALID_SIZE:
131 		err_msg = "NPC invalid key size";
132 		break;
133 	case NPC_ERR_ACTION_NOTSUP:
134 		err_msg = "NPC action not supported";
135 		break;
136 	case NPC_ERR_PATTERN_NOTSUP:
137 		err_msg = "NPC pattern not supported";
138 		break;
139 	case NPC_ERR_MCAM_ALLOC:
140 		err_msg = "MCAM entry alloc failed";
141 		break;
142 	case NPA_ERR_ALLOC:
143 		err_msg = "NPA alloc failed";
144 		break;
145 	case NPA_ERR_INVALID_BLOCK_SZ:
146 		err_msg = "NPA invalid block size";
147 		break;
148 	case NPA_ERR_AURA_ID_ALLOC:
149 		err_msg = "NPA aura id alloc failed";
150 		break;
151 	case NPA_ERR_AURA_POOL_INIT:
152 		err_msg = "NPA aura pool init failed";
153 		break;
154 	case NPA_ERR_AURA_POOL_FINI:
155 		err_msg = "NPA aura pool fini failed";
156 		break;
157 	case NPA_ERR_BASE_INVALID:
158 		err_msg = "NPA invalid base";
159 		break;
160 	case NPA_ERR_DEVICE_NOT_BOUNDED:
161 		err_msg = "NPA device is not bounded";
162 		break;
163 	case NIX_AF_ERR_AQ_FULL:
164 		err_msg = "AQ full";
165 		break;
166 	case NIX_AF_ERR_AQ_ENQUEUE:
167 		err_msg = "AQ enqueue failed";
168 		break;
169 	case NIX_AF_ERR_AF_LF_INVALID:
170 		err_msg = "Invalid NIX LF";
171 		break;
172 	case NIX_AF_ERR_AF_LF_ALLOC:
173 		err_msg = "NIX LF alloc failed";
174 		break;
175 	case NIX_AF_ERR_TLX_INVALID:
176 		err_msg = "Invalid NIX TLX";
177 		break;
178 	case NIX_AF_ERR_TLX_ALLOC_FAIL:
179 		err_msg = "NIX TLX alloc failed";
180 		break;
181 	case NIX_AF_ERR_RSS_SIZE_INVALID:
182 		err_msg = "Invalid RSS size";
183 		break;
184 	case NIX_AF_ERR_RSS_GRPS_INVALID:
185 		err_msg = "Invalid RSS groups";
186 		break;
187 	case NIX_AF_ERR_FRS_INVALID:
188 		err_msg = "Invalid frame size";
189 		break;
190 	case NIX_AF_ERR_RX_LINK_INVALID:
191 		err_msg = "Invalid Rx link";
192 		break;
193 	case NIX_AF_INVAL_TXSCHQ_CFG:
194 		err_msg = "Invalid Tx scheduling config";
195 		break;
196 	case NIX_AF_SMQ_FLUSH_FAILED:
197 		err_msg = "SMQ flush failed";
198 		break;
199 	case NIX_AF_ERR_LF_RESET:
200 		err_msg = "NIX LF reset failed";
201 		break;
202 	case NIX_AF_ERR_MARK_CFG_FAIL:
203 		err_msg = "Marking config failed";
204 		break;
205 	case NIX_AF_ERR_LSO_CFG_FAIL:
206 		err_msg = "LSO config failed";
207 		break;
208 	case NIX_AF_INVAL_NPA_PF_FUNC:
209 		err_msg = "Invalid NPA pf_func";
210 		break;
211 	case NIX_AF_INVAL_SSO_PF_FUNC:
212 		err_msg = "Invalid SSO pf_func";
213 		break;
214 	case NIX_AF_ERR_TX_VTAG_NOSPC:
215 		err_msg = "No space for Tx VTAG";
216 		break;
217 	case NIX_AF_ERR_RX_VTAG_INUSE:
218 		err_msg = "Rx VTAG is in use";
219 		break;
220 	case NIX_AF_ERR_PTP_CONFIG_FAIL:
221 		err_msg = "PTP config failed";
222 		break;
223 	case UTIL_ERR_FS:
224 		err_msg = "file operation failed";
225 		break;
226 	case UTIL_ERR_INVALID_MODEL:
227 		err_msg = "Invalid RoC model";
228 		break;
229 	default:
230 		/**
231 		 * Handle general error (as defined in linux errno.h)
232 		 */
233 		if (abs(errorcode) < 300)
234 			err_msg = strerror(abs(errorcode));
235 		else
236 			err_msg = "Unknown error code";
237 		break;
238 	}
239 
240 	return err_msg;
241 }
242 
243 void
244 roc_clk_freq_get(uint16_t *rclk_freq, uint16_t *sclk_freq)
245 {
246 	*rclk_freq = dev_rclk_freq;
247 	*sclk_freq = dev_sclk_freq;
248 }
249