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