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