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 MCS_ERR_PARAM: 20 case RVU_ERR_PARAM: 21 case UTIL_ERR_PARAM: 22 err_msg = "Invalid parameter"; 23 break; 24 case NIX_ERR_NO_MEM: 25 case NPC_ERR_NO_MEM: 26 case RVU_ERR_NO_MEM: 27 err_msg = "Out of memory"; 28 break; 29 case NIX_ERR_INVALID_RANGE: 30 case NPC_ERR_INVALID_RANGE: 31 err_msg = "Range is not supported"; 32 break; 33 case NIX_ERR_INTERNAL: 34 case NPC_ERR_INTERNAL: 35 err_msg = "Internal error"; 36 break; 37 case NIX_ERR_OP_NOTSUP: 38 err_msg = "Operation not supported"; 39 break; 40 case NIX_ERR_HW_NOTSUP: 41 case MCS_ERR_HW_NOTSUP: 42 err_msg = "Hardware does not support"; 43 break; 44 case NIX_ERR_QUEUE_INVALID_RANGE: 45 err_msg = "Invalid Queue range"; 46 break; 47 case NIX_ERR_AQ_READ_FAILED: 48 err_msg = "AQ read failed"; 49 break; 50 case NIX_ERR_AQ_WRITE_FAILED: 51 err_msg = "AQ write failed"; 52 break; 53 case NIX_ERR_TM_LEAF_NODE_GET: 54 err_msg = "TM leaf node get failed"; 55 break; 56 case NIX_ERR_TM_INVALID_LVL: 57 err_msg = "TM node level invalid"; 58 break; 59 case NIX_ERR_TM_INVALID_PRIO: 60 err_msg = "TM node priority invalid"; 61 break; 62 case NIX_ERR_TM_INVALID_PARENT: 63 err_msg = "TM parent id invalid"; 64 break; 65 case NIX_ERR_TM_NODE_EXISTS: 66 err_msg = "TM Node Exists"; 67 break; 68 case NIX_ERR_TM_INVALID_NODE: 69 err_msg = "TM node id invalid"; 70 break; 71 case NIX_ERR_TM_INVALID_SHAPER_PROFILE: 72 err_msg = "TM shaper profile invalid"; 73 break; 74 case NIX_ERR_TM_PKT_MODE_MISMATCH: 75 err_msg = "shaper profile pkt mode mismatch"; 76 break; 77 case NIX_ERR_TM_WEIGHT_EXCEED: 78 err_msg = "TM DWRR weight exceeded"; 79 break; 80 case NIX_ERR_TM_CHILD_EXISTS: 81 err_msg = "TM node children exists"; 82 break; 83 case NIX_ERR_TM_INVALID_PEAK_SZ: 84 err_msg = "TM peak size invalid"; 85 break; 86 case NIX_ERR_TM_INVALID_PEAK_RATE: 87 err_msg = "TM peak rate invalid"; 88 break; 89 case NIX_ERR_TM_INVALID_COMMIT_SZ: 90 err_msg = "TM commit size invalid"; 91 break; 92 case NIX_ERR_TM_INVALID_COMMIT_RATE: 93 err_msg = "TM commit rate invalid"; 94 break; 95 case NIX_ERR_TM_SHAPER_PROFILE_IN_USE: 96 err_msg = "TM shaper profile in use"; 97 break; 98 case NIX_ERR_TM_SHAPER_PROFILE_EXISTS: 99 err_msg = "TM shaper profile exists"; 100 break; 101 case NIX_ERR_TM_SHAPER_PKT_LEN_ADJUST: 102 err_msg = "length adjust invalid"; 103 break; 104 case NIX_ERR_TM_INVALID_TREE: 105 err_msg = "TM tree invalid"; 106 break; 107 case NIX_ERR_TM_PARENT_PRIO_UPDATE: 108 err_msg = "TM node parent and prio update failed"; 109 break; 110 case NIX_ERR_TM_PRIO_EXCEEDED: 111 err_msg = "TM node priority exceeded"; 112 break; 113 case NIX_ERR_TM_PRIO_ORDER: 114 err_msg = "TM node priority not in order"; 115 break; 116 case NIX_ERR_TM_MULTIPLE_RR_GROUPS: 117 err_msg = "TM multiple rr groups"; 118 break; 119 case NIX_ERR_TM_SQ_UPDATE_FAIL: 120 err_msg = "TM SQ update failed"; 121 break; 122 case NIX_ERR_NDC_SYNC: 123 err_msg = "NDC Sync failed"; 124 break; 125 case NPC_ERR_INVALID_SPEC: 126 err_msg = "NPC invalid spec"; 127 break; 128 case NPC_ERR_INVALID_MASK: 129 err_msg = "NPC invalid mask"; 130 break; 131 case NPC_ERR_INVALID_KEX: 132 err_msg = "NPC invalid key"; 133 break; 134 case NPC_ERR_INVALID_SIZE: 135 err_msg = "NPC invalid key size"; 136 break; 137 case NPC_ERR_ACTION_NOTSUP: 138 err_msg = "NPC action not supported"; 139 break; 140 case NPC_ERR_PATTERN_NOTSUP: 141 err_msg = "NPC pattern not supported"; 142 break; 143 case NPC_ERR_MCAM_ALLOC: 144 err_msg = "MCAM entry alloc failed"; 145 break; 146 case NPA_ERR_ALLOC: 147 err_msg = "NPA alloc failed"; 148 break; 149 case NPA_ERR_INVALID_BLOCK_SZ: 150 err_msg = "NPA invalid block size"; 151 break; 152 case NPA_ERR_AURA_ID_ALLOC: 153 err_msg = "NPA aura id alloc failed"; 154 break; 155 case NPA_ERR_AURA_POOL_INIT: 156 err_msg = "NPA aura pool init failed"; 157 break; 158 case NPA_ERR_AURA_POOL_FINI: 159 err_msg = "NPA aura pool fini failed"; 160 break; 161 case NPA_ERR_BASE_INVALID: 162 err_msg = "NPA invalid base"; 163 break; 164 case NPA_ERR_DEVICE_NOT_BOUNDED: 165 err_msg = "NPA device is not bounded"; 166 break; 167 case NIX_AF_ERR_AQ_FULL: 168 err_msg = "AQ full"; 169 break; 170 case NIX_AF_ERR_AQ_ENQUEUE: 171 err_msg = "AQ enqueue failed"; 172 break; 173 case NIX_AF_ERR_AF_LF_INVALID: 174 err_msg = "Invalid NIX LF"; 175 break; 176 case NIX_AF_ERR_AF_LF_ALLOC: 177 err_msg = "NIX LF alloc failed"; 178 break; 179 case NIX_AF_ERR_TLX_INVALID: 180 err_msg = "Invalid NIX TLX"; 181 break; 182 case NIX_AF_ERR_TLX_ALLOC_FAIL: 183 err_msg = "NIX TLX alloc failed"; 184 break; 185 case NIX_AF_ERR_RSS_SIZE_INVALID: 186 err_msg = "Invalid RSS size"; 187 break; 188 case NIX_AF_ERR_RSS_GRPS_INVALID: 189 err_msg = "Invalid RSS groups"; 190 break; 191 case NIX_AF_ERR_FRS_INVALID: 192 err_msg = "Invalid frame size"; 193 break; 194 case NIX_AF_ERR_RX_LINK_INVALID: 195 err_msg = "Invalid Rx link"; 196 break; 197 case NIX_AF_INVAL_TXSCHQ_CFG: 198 err_msg = "Invalid Tx scheduling config"; 199 break; 200 case NIX_AF_SMQ_FLUSH_FAILED: 201 err_msg = "SMQ flush failed"; 202 break; 203 case NIX_AF_ERR_LF_RESET: 204 err_msg = "NIX LF reset failed"; 205 break; 206 case NIX_AF_ERR_MARK_CFG_FAIL: 207 err_msg = "Marking config failed"; 208 break; 209 case NIX_AF_ERR_LSO_CFG_FAIL: 210 err_msg = "LSO config failed"; 211 break; 212 case NIX_AF_INVAL_NPA_PF_FUNC: 213 err_msg = "Invalid NPA pf_func"; 214 break; 215 case NIX_AF_INVAL_SSO_PF_FUNC: 216 err_msg = "Invalid SSO pf_func"; 217 break; 218 case NIX_AF_ERR_TX_VTAG_NOSPC: 219 err_msg = "No space for Tx VTAG"; 220 break; 221 case NIX_AF_ERR_RX_VTAG_INUSE: 222 err_msg = "Rx VTAG is in use"; 223 break; 224 case NIX_AF_ERR_PTP_CONFIG_FAIL: 225 err_msg = "PTP config failed"; 226 break; 227 case SSO_ERR_DEVICE_NOT_BOUNDED: 228 err_msg = "SSO pf/vf not found"; 229 break; 230 case MCS_ERR_DEVICE_NOT_FOUND: 231 err_msg = "MCS device not found"; 232 break; 233 case UTIL_ERR_FS: 234 err_msg = "file operation failed"; 235 break; 236 case UTIL_ERR_INVALID_MODEL: 237 err_msg = "Invalid RoC model"; 238 break; 239 case NIX_AF_ERR_RSS_NOSPC_FIELD: 240 err_msg = "No space or unsupported fields"; 241 break; 242 case NIX_AF_ERR_RSS_NOSPC_ALGO: 243 err_msg = "No space to add new flow hash algo"; 244 break; 245 default: 246 /** 247 * Handle general error (as defined in linux errno.h) 248 */ 249 if (abs(errorcode) < 300) 250 err_msg = strerror(abs(errorcode)); 251 else 252 err_msg = "Unknown error code"; 253 break; 254 } 255 256 return err_msg; 257 } 258 259 void 260 roc_clk_freq_get(uint16_t *rclk_freq, uint16_t *sclk_freq) 261 { 262 *rclk_freq = dev_rclk_freq; 263 *sclk_freq = dev_sclk_freq; 264 } 265