xref: /dpdk/drivers/common/cnxk/roc_utils.c (revision b7cb2203eb6d64a79b9ffdae9afbc7d89bbac65f)
1014a9e22SJerin Jacob /* SPDX-License-Identifier: BSD-3-Clause
2014a9e22SJerin Jacob  * Copyright(C) 2021 Marvell.
3014a9e22SJerin Jacob  */
4014a9e22SJerin Jacob 
5014a9e22SJerin Jacob #include "roc_api.h"
6014a9e22SJerin Jacob #include "roc_priv.h"
7014a9e22SJerin Jacob 
8014a9e22SJerin Jacob const char *
9014a9e22SJerin Jacob roc_error_msg_get(int errorcode)
10014a9e22SJerin Jacob {
11014a9e22SJerin Jacob 	const char *err_msg;
12014a9e22SJerin Jacob 
13014a9e22SJerin Jacob 	switch (errorcode) {
148dcdf319SJerin Jacob 	case NIX_AF_ERR_PARAM:
158dcdf319SJerin Jacob 	case NIX_ERR_PARAM:
16124ff1a4SAshwin Sekhar T K 	case NPA_ERR_PARAM:
172199f5cdSKiran Kumar K 	case NPC_ERR_PARAM:
189b727f85SPavan Nikhilesh 	case SSO_ERR_PARAM:
19014a9e22SJerin Jacob 	case UTIL_ERR_PARAM:
20014a9e22SJerin Jacob 		err_msg = "Invalid parameter";
21014a9e22SJerin Jacob 		break;
228dcdf319SJerin Jacob 	case NIX_ERR_NO_MEM:
232199f5cdSKiran Kumar K 	case NPC_ERR_NO_MEM:
248dcdf319SJerin Jacob 		err_msg = "Out of memory";
258dcdf319SJerin Jacob 		break;
268dcdf319SJerin Jacob 	case NIX_ERR_INVALID_RANGE:
272199f5cdSKiran Kumar K 	case NPC_ERR_INVALID_RANGE:
288dcdf319SJerin Jacob 		err_msg = "Range is not supported";
298dcdf319SJerin Jacob 		break;
308dcdf319SJerin Jacob 	case NIX_ERR_INTERNAL:
312199f5cdSKiran Kumar K 	case NPC_ERR_INTERNAL:
328dcdf319SJerin Jacob 		err_msg = "Internal error";
338dcdf319SJerin Jacob 		break;
348dcdf319SJerin Jacob 	case NIX_ERR_OP_NOTSUP:
358dcdf319SJerin Jacob 		err_msg = "Operation not supported";
368dcdf319SJerin Jacob 		break;
37*b7cb2203SSunil Kumar Kori 	case NIX_ERR_HW_NOTSUP:
38*b7cb2203SSunil Kumar Kori 		err_msg = "Hardware does not support";
39*b7cb2203SSunil Kumar Kori 		break;
408dcdf319SJerin Jacob 	case NIX_ERR_QUEUE_INVALID_RANGE:
418dcdf319SJerin Jacob 		err_msg = "Invalid Queue range";
428dcdf319SJerin Jacob 		break;
438dcdf319SJerin Jacob 	case NIX_ERR_AQ_READ_FAILED:
448dcdf319SJerin Jacob 		err_msg = "AQ read failed";
458dcdf319SJerin Jacob 		break;
468dcdf319SJerin Jacob 	case NIX_ERR_AQ_WRITE_FAILED:
478dcdf319SJerin Jacob 		err_msg = "AQ write failed";
488dcdf319SJerin Jacob 		break;
49fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_LEAF_NODE_GET:
50fcdef46bSNithin Dabilpuram 		err_msg = "TM leaf node get failed";
51fcdef46bSNithin Dabilpuram 		break;
52fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_INVALID_LVL:
53fcdef46bSNithin Dabilpuram 		err_msg = "TM node level invalid";
54fcdef46bSNithin Dabilpuram 		break;
55fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_INVALID_PRIO:
56fcdef46bSNithin Dabilpuram 		err_msg = "TM node priority invalid";
57fcdef46bSNithin Dabilpuram 		break;
58fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_INVALID_PARENT:
59fcdef46bSNithin Dabilpuram 		err_msg = "TM parent id invalid";
60fcdef46bSNithin Dabilpuram 		break;
61fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_NODE_EXISTS:
62fcdef46bSNithin Dabilpuram 		err_msg = "TM Node Exists";
63fcdef46bSNithin Dabilpuram 		break;
64fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_INVALID_NODE:
65fcdef46bSNithin Dabilpuram 		err_msg = "TM node id invalid";
66fcdef46bSNithin Dabilpuram 		break;
67fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_INVALID_SHAPER_PROFILE:
68fcdef46bSNithin Dabilpuram 		err_msg = "TM shaper profile invalid";
69fcdef46bSNithin Dabilpuram 		break;
701a362d74SSatha Rao 	case NIX_ERR_TM_PKT_MODE_MISMATCH:
711a362d74SSatha Rao 		err_msg = "shaper profile pkt mode mismatch";
721a362d74SSatha Rao 		break;
73fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_WEIGHT_EXCEED:
74fcdef46bSNithin Dabilpuram 		err_msg = "TM DWRR weight exceeded";
75fcdef46bSNithin Dabilpuram 		break;
76fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_CHILD_EXISTS:
77fcdef46bSNithin Dabilpuram 		err_msg = "TM node children exists";
78fcdef46bSNithin Dabilpuram 		break;
79fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_INVALID_PEAK_SZ:
80fcdef46bSNithin Dabilpuram 		err_msg = "TM peak size invalid";
81fcdef46bSNithin Dabilpuram 		break;
82fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_INVALID_PEAK_RATE:
83fcdef46bSNithin Dabilpuram 		err_msg = "TM peak rate invalid";
84fcdef46bSNithin Dabilpuram 		break;
85fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_INVALID_COMMIT_SZ:
86fcdef46bSNithin Dabilpuram 		err_msg = "TM commit size invalid";
87fcdef46bSNithin Dabilpuram 		break;
88fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_INVALID_COMMIT_RATE:
89fcdef46bSNithin Dabilpuram 		err_msg = "TM commit rate invalid";
90fcdef46bSNithin Dabilpuram 		break;
91fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_SHAPER_PROFILE_IN_USE:
92fcdef46bSNithin Dabilpuram 		err_msg = "TM shaper profile in use";
93fcdef46bSNithin Dabilpuram 		break;
94fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_SHAPER_PROFILE_EXISTS:
95fcdef46bSNithin Dabilpuram 		err_msg = "TM shaper profile exists";
96fcdef46bSNithin Dabilpuram 		break;
971a362d74SSatha Rao 	case NIX_ERR_TM_SHAPER_PKT_LEN_ADJUST:
981a362d74SSatha Rao 		err_msg = "length adjust invalid";
991a362d74SSatha Rao 		break;
100fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_INVALID_TREE:
101fcdef46bSNithin Dabilpuram 		err_msg = "TM tree invalid";
102fcdef46bSNithin Dabilpuram 		break;
103fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_PARENT_PRIO_UPDATE:
104fcdef46bSNithin Dabilpuram 		err_msg = "TM node parent and prio update failed";
105fcdef46bSNithin Dabilpuram 		break;
106fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_PRIO_EXCEEDED:
107fcdef46bSNithin Dabilpuram 		err_msg = "TM node priority exceeded";
108fcdef46bSNithin Dabilpuram 		break;
109fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_PRIO_ORDER:
110fcdef46bSNithin Dabilpuram 		err_msg = "TM node priority not in order";
111fcdef46bSNithin Dabilpuram 		break;
112fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_MULTIPLE_RR_GROUPS:
113fcdef46bSNithin Dabilpuram 		err_msg = "TM multiple rr groups";
114fcdef46bSNithin Dabilpuram 		break;
115fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_SQ_UPDATE_FAIL:
116fcdef46bSNithin Dabilpuram 		err_msg = "TM SQ update failed";
117fcdef46bSNithin Dabilpuram 		break;
1188dcdf319SJerin Jacob 	case NIX_ERR_NDC_SYNC:
1198dcdf319SJerin Jacob 		err_msg = "NDC Sync failed";
1208dcdf319SJerin Jacob 		break;
1212199f5cdSKiran Kumar K 	case NPC_ERR_INVALID_SPEC:
1222199f5cdSKiran Kumar K 		err_msg = "NPC invalid spec";
1232199f5cdSKiran Kumar K 		break;
1242199f5cdSKiran Kumar K 	case NPC_ERR_INVALID_MASK:
1252199f5cdSKiran Kumar K 		err_msg = "NPC invalid mask";
1262199f5cdSKiran Kumar K 		break;
1272199f5cdSKiran Kumar K 	case NPC_ERR_INVALID_KEX:
1282199f5cdSKiran Kumar K 		err_msg = "NPC invalid key";
1292199f5cdSKiran Kumar K 		break;
1302199f5cdSKiran Kumar K 	case NPC_ERR_INVALID_SIZE:
1312199f5cdSKiran Kumar K 		err_msg = "NPC invalid key size";
1322199f5cdSKiran Kumar K 		break;
1332199f5cdSKiran Kumar K 	case NPC_ERR_ACTION_NOTSUP:
1342199f5cdSKiran Kumar K 		err_msg = "NPC action not supported";
1352199f5cdSKiran Kumar K 		break;
1362199f5cdSKiran Kumar K 	case NPC_ERR_PATTERN_NOTSUP:
1372199f5cdSKiran Kumar K 		err_msg = "NPC pattern not supported";
1382199f5cdSKiran Kumar K 		break;
1392199f5cdSKiran Kumar K 	case NPC_ERR_MCAM_ALLOC:
1402199f5cdSKiran Kumar K 		err_msg = "MCAM entry alloc failed";
1412199f5cdSKiran Kumar K 		break;
142124ff1a4SAshwin Sekhar T K 	case NPA_ERR_ALLOC:
143124ff1a4SAshwin Sekhar T K 		err_msg = "NPA alloc failed";
144124ff1a4SAshwin Sekhar T K 		break;
145124ff1a4SAshwin Sekhar T K 	case NPA_ERR_INVALID_BLOCK_SZ:
146124ff1a4SAshwin Sekhar T K 		err_msg = "NPA invalid block size";
147124ff1a4SAshwin Sekhar T K 		break;
148124ff1a4SAshwin Sekhar T K 	case NPA_ERR_AURA_ID_ALLOC:
149124ff1a4SAshwin Sekhar T K 		err_msg = "NPA aura id alloc failed";
150124ff1a4SAshwin Sekhar T K 		break;
151124ff1a4SAshwin Sekhar T K 	case NPA_ERR_AURA_POOL_INIT:
152124ff1a4SAshwin Sekhar T K 		err_msg = "NPA aura pool init failed";
153124ff1a4SAshwin Sekhar T K 		break;
154124ff1a4SAshwin Sekhar T K 	case NPA_ERR_AURA_POOL_FINI:
155124ff1a4SAshwin Sekhar T K 		err_msg = "NPA aura pool fini failed";
156124ff1a4SAshwin Sekhar T K 		break;
157124ff1a4SAshwin Sekhar T K 	case NPA_ERR_BASE_INVALID:
158124ff1a4SAshwin Sekhar T K 		err_msg = "NPA invalid base";
159124ff1a4SAshwin Sekhar T K 		break;
160124ff1a4SAshwin Sekhar T K 	case NPA_ERR_DEVICE_NOT_BOUNDED:
161124ff1a4SAshwin Sekhar T K 		err_msg = "NPA device is not bounded";
162124ff1a4SAshwin Sekhar T K 		break;
1638dcdf319SJerin Jacob 	case NIX_AF_ERR_AQ_FULL:
1648dcdf319SJerin Jacob 		err_msg = "AQ full";
1658dcdf319SJerin Jacob 		break;
1668dcdf319SJerin Jacob 	case NIX_AF_ERR_AQ_ENQUEUE:
1678dcdf319SJerin Jacob 		err_msg = "AQ enqueue failed";
1688dcdf319SJerin Jacob 		break;
1698dcdf319SJerin Jacob 	case NIX_AF_ERR_AF_LF_INVALID:
1708dcdf319SJerin Jacob 		err_msg = "Invalid NIX LF";
1718dcdf319SJerin Jacob 		break;
1728dcdf319SJerin Jacob 	case NIX_AF_ERR_AF_LF_ALLOC:
1738dcdf319SJerin Jacob 		err_msg = "NIX LF alloc failed";
1748dcdf319SJerin Jacob 		break;
175fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_TLX_INVALID:
176fcdef46bSNithin Dabilpuram 		err_msg = "Invalid NIX TLX";
177fcdef46bSNithin Dabilpuram 		break;
178fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_TLX_ALLOC_FAIL:
179fcdef46bSNithin Dabilpuram 		err_msg = "NIX TLX alloc failed";
180fcdef46bSNithin Dabilpuram 		break;
181fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_RSS_SIZE_INVALID:
182fcdef46bSNithin Dabilpuram 		err_msg = "Invalid RSS size";
183fcdef46bSNithin Dabilpuram 		break;
184fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_RSS_GRPS_INVALID:
185fcdef46bSNithin Dabilpuram 		err_msg = "Invalid RSS groups";
186fcdef46bSNithin Dabilpuram 		break;
187fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_FRS_INVALID:
188fcdef46bSNithin Dabilpuram 		err_msg = "Invalid frame size";
189fcdef46bSNithin Dabilpuram 		break;
190fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_RX_LINK_INVALID:
191fcdef46bSNithin Dabilpuram 		err_msg = "Invalid Rx link";
192fcdef46bSNithin Dabilpuram 		break;
193fcdef46bSNithin Dabilpuram 	case NIX_AF_INVAL_TXSCHQ_CFG:
194fcdef46bSNithin Dabilpuram 		err_msg = "Invalid Tx scheduling config";
195fcdef46bSNithin Dabilpuram 		break;
196fcdef46bSNithin Dabilpuram 	case NIX_AF_SMQ_FLUSH_FAILED:
197fcdef46bSNithin Dabilpuram 		err_msg = "SMQ flush failed";
198fcdef46bSNithin Dabilpuram 		break;
1998dcdf319SJerin Jacob 	case NIX_AF_ERR_LF_RESET:
2008dcdf319SJerin Jacob 		err_msg = "NIX LF reset failed";
2018dcdf319SJerin Jacob 		break;
202fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_MARK_CFG_FAIL:
203fcdef46bSNithin Dabilpuram 		err_msg = "Marking config failed";
204fcdef46bSNithin Dabilpuram 		break;
205fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_LSO_CFG_FAIL:
206fcdef46bSNithin Dabilpuram 		err_msg = "LSO config failed";
207fcdef46bSNithin Dabilpuram 		break;
208fcdef46bSNithin Dabilpuram 	case NIX_AF_INVAL_NPA_PF_FUNC:
209fcdef46bSNithin Dabilpuram 		err_msg = "Invalid NPA pf_func";
210fcdef46bSNithin Dabilpuram 		break;
211fcdef46bSNithin Dabilpuram 	case NIX_AF_INVAL_SSO_PF_FUNC:
212fcdef46bSNithin Dabilpuram 		err_msg = "Invalid SSO pf_func";
213fcdef46bSNithin Dabilpuram 		break;
214fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_TX_VTAG_NOSPC:
215fcdef46bSNithin Dabilpuram 		err_msg = "No space for Tx VTAG";
216fcdef46bSNithin Dabilpuram 		break;
217fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_RX_VTAG_INUSE:
218fcdef46bSNithin Dabilpuram 		err_msg = "Rx VTAG is in use";
219fcdef46bSNithin Dabilpuram 		break;
220fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_PTP_CONFIG_FAIL:
221fcdef46bSNithin Dabilpuram 		err_msg = "PTP config failed";
222fcdef46bSNithin Dabilpuram 		break;
223014a9e22SJerin Jacob 	case UTIL_ERR_FS:
224014a9e22SJerin Jacob 		err_msg = "file operation failed";
225014a9e22SJerin Jacob 		break;
226014a9e22SJerin Jacob 	case UTIL_ERR_INVALID_MODEL:
227014a9e22SJerin Jacob 		err_msg = "Invalid RoC model";
228014a9e22SJerin Jacob 		break;
229014a9e22SJerin Jacob 	default:
230014a9e22SJerin Jacob 		/**
231014a9e22SJerin Jacob 		 * Handle general error (as defined in linux errno.h)
232014a9e22SJerin Jacob 		 */
233014a9e22SJerin Jacob 		if (abs(errorcode) < 300)
234014a9e22SJerin Jacob 			err_msg = strerror(abs(errorcode));
235014a9e22SJerin Jacob 		else
236014a9e22SJerin Jacob 			err_msg = "Unknown error code";
237014a9e22SJerin Jacob 		break;
238014a9e22SJerin Jacob 	}
239014a9e22SJerin Jacob 
240014a9e22SJerin Jacob 	return err_msg;
241014a9e22SJerin Jacob }
24203cc9bd9SJerin Jacob 
24303cc9bd9SJerin Jacob void
24403cc9bd9SJerin Jacob roc_clk_freq_get(uint16_t *rclk_freq, uint16_t *sclk_freq)
24503cc9bd9SJerin Jacob {
24603cc9bd9SJerin Jacob 	*rclk_freq = dev_rclk_freq;
24703cc9bd9SJerin Jacob 	*sclk_freq = dev_sclk_freq;
24803cc9bd9SJerin Jacob }
249