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