xref: /dpdk/drivers/common/cnxk/roc_utils.c (revision 318ee1b0468299e92411ea8616073c477743b34e)
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:
19f752780fSAkhil Goyal 	case MCS_ERR_PARAM:
20*318ee1b0SAkhil Goyal 	case RVU_ERR_PARAM:
21014a9e22SJerin Jacob 	case UTIL_ERR_PARAM:
22014a9e22SJerin Jacob 		err_msg = "Invalid parameter";
23014a9e22SJerin Jacob 		break;
248dcdf319SJerin Jacob 	case NIX_ERR_NO_MEM:
252199f5cdSKiran Kumar K 	case NPC_ERR_NO_MEM:
26*318ee1b0SAkhil Goyal 	case RVU_ERR_NO_MEM:
278dcdf319SJerin Jacob 		err_msg = "Out of memory";
288dcdf319SJerin Jacob 		break;
298dcdf319SJerin Jacob 	case NIX_ERR_INVALID_RANGE:
302199f5cdSKiran Kumar K 	case NPC_ERR_INVALID_RANGE:
318dcdf319SJerin Jacob 		err_msg = "Range is not supported";
328dcdf319SJerin Jacob 		break;
338dcdf319SJerin Jacob 	case NIX_ERR_INTERNAL:
342199f5cdSKiran Kumar K 	case NPC_ERR_INTERNAL:
358dcdf319SJerin Jacob 		err_msg = "Internal error";
368dcdf319SJerin Jacob 		break;
378dcdf319SJerin Jacob 	case NIX_ERR_OP_NOTSUP:
388dcdf319SJerin Jacob 		err_msg = "Operation not supported";
398dcdf319SJerin Jacob 		break;
40b7cb2203SSunil Kumar Kori 	case NIX_ERR_HW_NOTSUP:
41f752780fSAkhil Goyal 	case MCS_ERR_HW_NOTSUP:
42b7cb2203SSunil Kumar Kori 		err_msg = "Hardware does not support";
43b7cb2203SSunil Kumar Kori 		break;
448dcdf319SJerin Jacob 	case NIX_ERR_QUEUE_INVALID_RANGE:
458dcdf319SJerin Jacob 		err_msg = "Invalid Queue range";
468dcdf319SJerin Jacob 		break;
478dcdf319SJerin Jacob 	case NIX_ERR_AQ_READ_FAILED:
488dcdf319SJerin Jacob 		err_msg = "AQ read failed";
498dcdf319SJerin Jacob 		break;
508dcdf319SJerin Jacob 	case NIX_ERR_AQ_WRITE_FAILED:
518dcdf319SJerin Jacob 		err_msg = "AQ write failed";
528dcdf319SJerin Jacob 		break;
53fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_LEAF_NODE_GET:
54fcdef46bSNithin Dabilpuram 		err_msg = "TM leaf node get failed";
55fcdef46bSNithin Dabilpuram 		break;
56fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_INVALID_LVL:
57fcdef46bSNithin Dabilpuram 		err_msg = "TM node level invalid";
58fcdef46bSNithin Dabilpuram 		break;
59fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_INVALID_PRIO:
60fcdef46bSNithin Dabilpuram 		err_msg = "TM node priority invalid";
61fcdef46bSNithin Dabilpuram 		break;
62fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_INVALID_PARENT:
63fcdef46bSNithin Dabilpuram 		err_msg = "TM parent id invalid";
64fcdef46bSNithin Dabilpuram 		break;
65fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_NODE_EXISTS:
66fcdef46bSNithin Dabilpuram 		err_msg = "TM Node Exists";
67fcdef46bSNithin Dabilpuram 		break;
68fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_INVALID_NODE:
69fcdef46bSNithin Dabilpuram 		err_msg = "TM node id invalid";
70fcdef46bSNithin Dabilpuram 		break;
71fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_INVALID_SHAPER_PROFILE:
72fcdef46bSNithin Dabilpuram 		err_msg = "TM shaper profile invalid";
73fcdef46bSNithin Dabilpuram 		break;
741a362d74SSatha Rao 	case NIX_ERR_TM_PKT_MODE_MISMATCH:
751a362d74SSatha Rao 		err_msg = "shaper profile pkt mode mismatch";
761a362d74SSatha Rao 		break;
77fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_WEIGHT_EXCEED:
78fcdef46bSNithin Dabilpuram 		err_msg = "TM DWRR weight exceeded";
79fcdef46bSNithin Dabilpuram 		break;
80fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_CHILD_EXISTS:
81fcdef46bSNithin Dabilpuram 		err_msg = "TM node children exists";
82fcdef46bSNithin Dabilpuram 		break;
83fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_INVALID_PEAK_SZ:
84fcdef46bSNithin Dabilpuram 		err_msg = "TM peak size invalid";
85fcdef46bSNithin Dabilpuram 		break;
86fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_INVALID_PEAK_RATE:
87fcdef46bSNithin Dabilpuram 		err_msg = "TM peak rate invalid";
88fcdef46bSNithin Dabilpuram 		break;
89fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_INVALID_COMMIT_SZ:
90fcdef46bSNithin Dabilpuram 		err_msg = "TM commit size invalid";
91fcdef46bSNithin Dabilpuram 		break;
92fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_INVALID_COMMIT_RATE:
93fcdef46bSNithin Dabilpuram 		err_msg = "TM commit rate invalid";
94fcdef46bSNithin Dabilpuram 		break;
95fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_SHAPER_PROFILE_IN_USE:
96fcdef46bSNithin Dabilpuram 		err_msg = "TM shaper profile in use";
97fcdef46bSNithin Dabilpuram 		break;
98fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_SHAPER_PROFILE_EXISTS:
99fcdef46bSNithin Dabilpuram 		err_msg = "TM shaper profile exists";
100fcdef46bSNithin Dabilpuram 		break;
1011a362d74SSatha Rao 	case NIX_ERR_TM_SHAPER_PKT_LEN_ADJUST:
1021a362d74SSatha Rao 		err_msg = "length adjust invalid";
1031a362d74SSatha Rao 		break;
104fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_INVALID_TREE:
105fcdef46bSNithin Dabilpuram 		err_msg = "TM tree invalid";
106fcdef46bSNithin Dabilpuram 		break;
107fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_PARENT_PRIO_UPDATE:
108fcdef46bSNithin Dabilpuram 		err_msg = "TM node parent and prio update failed";
109fcdef46bSNithin Dabilpuram 		break;
110fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_PRIO_EXCEEDED:
111fcdef46bSNithin Dabilpuram 		err_msg = "TM node priority exceeded";
112fcdef46bSNithin Dabilpuram 		break;
113fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_PRIO_ORDER:
114fcdef46bSNithin Dabilpuram 		err_msg = "TM node priority not in order";
115fcdef46bSNithin Dabilpuram 		break;
116fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_MULTIPLE_RR_GROUPS:
117fcdef46bSNithin Dabilpuram 		err_msg = "TM multiple rr groups";
118fcdef46bSNithin Dabilpuram 		break;
119fcdef46bSNithin Dabilpuram 	case NIX_ERR_TM_SQ_UPDATE_FAIL:
120fcdef46bSNithin Dabilpuram 		err_msg = "TM SQ update failed";
121fcdef46bSNithin Dabilpuram 		break;
1228dcdf319SJerin Jacob 	case NIX_ERR_NDC_SYNC:
1238dcdf319SJerin Jacob 		err_msg = "NDC Sync failed";
1248dcdf319SJerin Jacob 		break;
1252199f5cdSKiran Kumar K 	case NPC_ERR_INVALID_SPEC:
1262199f5cdSKiran Kumar K 		err_msg = "NPC invalid spec";
1272199f5cdSKiran Kumar K 		break;
1282199f5cdSKiran Kumar K 	case NPC_ERR_INVALID_MASK:
1292199f5cdSKiran Kumar K 		err_msg = "NPC invalid mask";
1302199f5cdSKiran Kumar K 		break;
1312199f5cdSKiran Kumar K 	case NPC_ERR_INVALID_KEX:
1322199f5cdSKiran Kumar K 		err_msg = "NPC invalid key";
1332199f5cdSKiran Kumar K 		break;
1342199f5cdSKiran Kumar K 	case NPC_ERR_INVALID_SIZE:
1352199f5cdSKiran Kumar K 		err_msg = "NPC invalid key size";
1362199f5cdSKiran Kumar K 		break;
1372199f5cdSKiran Kumar K 	case NPC_ERR_ACTION_NOTSUP:
1382199f5cdSKiran Kumar K 		err_msg = "NPC action not supported";
1392199f5cdSKiran Kumar K 		break;
1402199f5cdSKiran Kumar K 	case NPC_ERR_PATTERN_NOTSUP:
1412199f5cdSKiran Kumar K 		err_msg = "NPC pattern not supported";
1422199f5cdSKiran Kumar K 		break;
1432199f5cdSKiran Kumar K 	case NPC_ERR_MCAM_ALLOC:
1442199f5cdSKiran Kumar K 		err_msg = "MCAM entry alloc failed";
1452199f5cdSKiran Kumar K 		break;
146124ff1a4SAshwin Sekhar T K 	case NPA_ERR_ALLOC:
147124ff1a4SAshwin Sekhar T K 		err_msg = "NPA alloc failed";
148124ff1a4SAshwin Sekhar T K 		break;
149124ff1a4SAshwin Sekhar T K 	case NPA_ERR_INVALID_BLOCK_SZ:
150124ff1a4SAshwin Sekhar T K 		err_msg = "NPA invalid block size";
151124ff1a4SAshwin Sekhar T K 		break;
152124ff1a4SAshwin Sekhar T K 	case NPA_ERR_AURA_ID_ALLOC:
153124ff1a4SAshwin Sekhar T K 		err_msg = "NPA aura id alloc failed";
154124ff1a4SAshwin Sekhar T K 		break;
155124ff1a4SAshwin Sekhar T K 	case NPA_ERR_AURA_POOL_INIT:
156124ff1a4SAshwin Sekhar T K 		err_msg = "NPA aura pool init failed";
157124ff1a4SAshwin Sekhar T K 		break;
158124ff1a4SAshwin Sekhar T K 	case NPA_ERR_AURA_POOL_FINI:
159124ff1a4SAshwin Sekhar T K 		err_msg = "NPA aura pool fini failed";
160124ff1a4SAshwin Sekhar T K 		break;
161124ff1a4SAshwin Sekhar T K 	case NPA_ERR_BASE_INVALID:
162124ff1a4SAshwin Sekhar T K 		err_msg = "NPA invalid base";
163124ff1a4SAshwin Sekhar T K 		break;
164124ff1a4SAshwin Sekhar T K 	case NPA_ERR_DEVICE_NOT_BOUNDED:
165124ff1a4SAshwin Sekhar T K 		err_msg = "NPA device is not bounded";
166124ff1a4SAshwin Sekhar T K 		break;
1678dcdf319SJerin Jacob 	case NIX_AF_ERR_AQ_FULL:
1688dcdf319SJerin Jacob 		err_msg = "AQ full";
1698dcdf319SJerin Jacob 		break;
1708dcdf319SJerin Jacob 	case NIX_AF_ERR_AQ_ENQUEUE:
1718dcdf319SJerin Jacob 		err_msg = "AQ enqueue failed";
1728dcdf319SJerin Jacob 		break;
1738dcdf319SJerin Jacob 	case NIX_AF_ERR_AF_LF_INVALID:
1748dcdf319SJerin Jacob 		err_msg = "Invalid NIX LF";
1758dcdf319SJerin Jacob 		break;
1768dcdf319SJerin Jacob 	case NIX_AF_ERR_AF_LF_ALLOC:
1778dcdf319SJerin Jacob 		err_msg = "NIX LF alloc failed";
1788dcdf319SJerin Jacob 		break;
179fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_TLX_INVALID:
180fcdef46bSNithin Dabilpuram 		err_msg = "Invalid NIX TLX";
181fcdef46bSNithin Dabilpuram 		break;
182fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_TLX_ALLOC_FAIL:
183fcdef46bSNithin Dabilpuram 		err_msg = "NIX TLX alloc failed";
184fcdef46bSNithin Dabilpuram 		break;
185fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_RSS_SIZE_INVALID:
186fcdef46bSNithin Dabilpuram 		err_msg = "Invalid RSS size";
187fcdef46bSNithin Dabilpuram 		break;
188fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_RSS_GRPS_INVALID:
189fcdef46bSNithin Dabilpuram 		err_msg = "Invalid RSS groups";
190fcdef46bSNithin Dabilpuram 		break;
191fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_FRS_INVALID:
192fcdef46bSNithin Dabilpuram 		err_msg = "Invalid frame size";
193fcdef46bSNithin Dabilpuram 		break;
194fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_RX_LINK_INVALID:
195fcdef46bSNithin Dabilpuram 		err_msg = "Invalid Rx link";
196fcdef46bSNithin Dabilpuram 		break;
197fcdef46bSNithin Dabilpuram 	case NIX_AF_INVAL_TXSCHQ_CFG:
198fcdef46bSNithin Dabilpuram 		err_msg = "Invalid Tx scheduling config";
199fcdef46bSNithin Dabilpuram 		break;
200fcdef46bSNithin Dabilpuram 	case NIX_AF_SMQ_FLUSH_FAILED:
201fcdef46bSNithin Dabilpuram 		err_msg = "SMQ flush failed";
202fcdef46bSNithin Dabilpuram 		break;
2038dcdf319SJerin Jacob 	case NIX_AF_ERR_LF_RESET:
2048dcdf319SJerin Jacob 		err_msg = "NIX LF reset failed";
2058dcdf319SJerin Jacob 		break;
206fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_MARK_CFG_FAIL:
207fcdef46bSNithin Dabilpuram 		err_msg = "Marking config failed";
208fcdef46bSNithin Dabilpuram 		break;
209fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_LSO_CFG_FAIL:
210fcdef46bSNithin Dabilpuram 		err_msg = "LSO config failed";
211fcdef46bSNithin Dabilpuram 		break;
212fcdef46bSNithin Dabilpuram 	case NIX_AF_INVAL_NPA_PF_FUNC:
213fcdef46bSNithin Dabilpuram 		err_msg = "Invalid NPA pf_func";
214fcdef46bSNithin Dabilpuram 		break;
215fcdef46bSNithin Dabilpuram 	case NIX_AF_INVAL_SSO_PF_FUNC:
216fcdef46bSNithin Dabilpuram 		err_msg = "Invalid SSO pf_func";
217fcdef46bSNithin Dabilpuram 		break;
218fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_TX_VTAG_NOSPC:
219fcdef46bSNithin Dabilpuram 		err_msg = "No space for Tx VTAG";
220fcdef46bSNithin Dabilpuram 		break;
221fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_RX_VTAG_INUSE:
222fcdef46bSNithin Dabilpuram 		err_msg = "Rx VTAG is in use";
223fcdef46bSNithin Dabilpuram 		break;
224fcdef46bSNithin Dabilpuram 	case NIX_AF_ERR_PTP_CONFIG_FAIL:
225fcdef46bSNithin Dabilpuram 		err_msg = "PTP config failed";
226fcdef46bSNithin Dabilpuram 		break;
227cb0e45cbSPavan Nikhilesh 	case SSO_ERR_DEVICE_NOT_BOUNDED:
228cb0e45cbSPavan Nikhilesh 		err_msg = "SSO pf/vf not found";
229cb0e45cbSPavan Nikhilesh 		break;
230f752780fSAkhil Goyal 	case MCS_ERR_DEVICE_NOT_FOUND:
231f752780fSAkhil Goyal 		err_msg = "MCS device not found";
232f752780fSAkhil Goyal 		break;
233014a9e22SJerin Jacob 	case UTIL_ERR_FS:
234014a9e22SJerin Jacob 		err_msg = "file operation failed";
235014a9e22SJerin Jacob 		break;
236014a9e22SJerin Jacob 	case UTIL_ERR_INVALID_MODEL:
237014a9e22SJerin Jacob 		err_msg = "Invalid RoC model";
238014a9e22SJerin Jacob 		break;
23962dcba5dSHiral Shah 	case NIX_AF_ERR_RSS_NOSPC_FIELD:
24062dcba5dSHiral Shah 		err_msg = "No space or unsupported fields";
24162dcba5dSHiral Shah 		break;
24262dcba5dSHiral Shah 	case NIX_AF_ERR_RSS_NOSPC_ALGO:
24362dcba5dSHiral Shah 		err_msg = "No space to add new flow hash algo";
24462dcba5dSHiral Shah 		break;
245014a9e22SJerin Jacob 	default:
246014a9e22SJerin Jacob 		/**
247014a9e22SJerin Jacob 		 * Handle general error (as defined in linux errno.h)
248014a9e22SJerin Jacob 		 */
249014a9e22SJerin Jacob 		if (abs(errorcode) < 300)
250014a9e22SJerin Jacob 			err_msg = strerror(abs(errorcode));
251014a9e22SJerin Jacob 		else
252014a9e22SJerin Jacob 			err_msg = "Unknown error code";
253014a9e22SJerin Jacob 		break;
254014a9e22SJerin Jacob 	}
255014a9e22SJerin Jacob 
256014a9e22SJerin Jacob 	return err_msg;
257014a9e22SJerin Jacob }
25803cc9bd9SJerin Jacob 
25903cc9bd9SJerin Jacob void
26003cc9bd9SJerin Jacob roc_clk_freq_get(uint16_t *rclk_freq, uint16_t *sclk_freq)
26103cc9bd9SJerin Jacob {
26203cc9bd9SJerin Jacob 	*rclk_freq = dev_rclk_freq;
26303cc9bd9SJerin Jacob 	*sclk_freq = dev_sclk_freq;
26403cc9bd9SJerin Jacob }
265