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