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