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