1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Common header file for all error codes. 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Copyright (C) 2020, Broadcom. 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * Unless you and Broadcom execute a separate written software license 7*4882a593Smuzhiyun * agreement governing use of this software, this software is licensed to you 8*4882a593Smuzhiyun * under the terms of the GNU General Public License version 2 (the "GPL"), 9*4882a593Smuzhiyun * available at http://www.broadcom.com/licenses/GPLv2.php, with the 10*4882a593Smuzhiyun * following added to such license: 11*4882a593Smuzhiyun * 12*4882a593Smuzhiyun * As a special exception, the copyright holders of this software give you 13*4882a593Smuzhiyun * permission to link this software with independent modules, and to copy and 14*4882a593Smuzhiyun * distribute the resulting executable under terms of your choice, provided that 15*4882a593Smuzhiyun * you also meet, for each linked independent module, the terms and conditions of 16*4882a593Smuzhiyun * the license of that module. An independent module is a module which is not 17*4882a593Smuzhiyun * derived from this software. The special exception does not apply to any 18*4882a593Smuzhiyun * modifications of the software. 19*4882a593Smuzhiyun * 20*4882a593Smuzhiyun * 21*4882a593Smuzhiyun * <<Broadcom-WL-IPTag/Dual:>> 22*4882a593Smuzhiyun * 23*4882a593Smuzhiyun * 24*4882a593Smuzhiyun * 25*4882a593Smuzhiyun */ 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun #ifndef _bcmerror_h_ 28*4882a593Smuzhiyun #define _bcmerror_h_ 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun #include <typedefs.h> 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun /* Use error codes from this file only if BCMUTILS_ERR_CODES is defined. */ 33*4882a593Smuzhiyun #ifdef BCMUTILS_ERR_CODES 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun /* NOTE re: Module specific error codes. 36*4882a593Smuzhiyun * 37*4882a593Smuzhiyun * BCME_.. error codes are extended by various features - e.g. FTM, NAN, SAE etc. 38*4882a593Smuzhiyun * The current process is to allocate a range of 1024 negative 32 bit integers to 39*4882a593Smuzhiyun * each module that extends the error codes to indicate a module specific status. 40*4882a593Smuzhiyun * 41*4882a593Smuzhiyun * The next range to use is below. If that range is used for a new feature, please 42*4882a593Smuzhiyun * update the range to be used by the next feature. 43*4882a593Smuzhiyun * 44*4882a593Smuzhiyun * Next available (inclusive) range: [-8*1024 + 1, -7*1024] 45*4882a593Smuzhiyun * 46*4882a593Smuzhiyun * Common error codes use BCME_ prefix. Firmware (wl) components should use the 47*4882a593Smuzhiyun * convention to prefix the error code name with WL_<Component>_E_ (e.g. WL_NAN_E_?). 48*4882a593Smuzhiyun * Non-wl components, other than common error codes use BCM_<Componennt>_E_ 49*4882a593Smuzhiyun * prefix(e.g. BCM_FWSIGN_E_). 50*4882a593Smuzhiyun * 51*4882a593Smuzhiyun * End Note 52*4882a593Smuzhiyun */ 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun typedef int bcmerror_t; 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun /* 57*4882a593Smuzhiyun * error codes could be added but the defined ones shouldn't be changed/deleted 58*4882a593Smuzhiyun * these error codes are exposed to the user code 59*4882a593Smuzhiyun * when ever a new error code is added to this list 60*4882a593Smuzhiyun * please update errorstring table with the related error string and 61*4882a593Smuzhiyun * update osl files with os specific errorcode map 62*4882a593Smuzhiyun */ 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun #define BCME_OK 0 /* Success */ 65*4882a593Smuzhiyun #define BCME_ERROR -1 /* Error generic */ 66*4882a593Smuzhiyun #define BCME_BADARG -2 /* Bad Argument */ 67*4882a593Smuzhiyun #define BCME_BADOPTION -3 /* Bad option */ 68*4882a593Smuzhiyun #define BCME_NOTUP -4 /* Not up */ 69*4882a593Smuzhiyun #define BCME_NOTDOWN -5 /* Not down */ 70*4882a593Smuzhiyun #define BCME_NOTAP -6 /* Not AP */ 71*4882a593Smuzhiyun #define BCME_NOTSTA -7 /* Not STA */ 72*4882a593Smuzhiyun #define BCME_BADKEYIDX -8 /* BAD Key Index */ 73*4882a593Smuzhiyun #define BCME_RADIOOFF -9 /* Radio Off */ 74*4882a593Smuzhiyun #define BCME_NOTBANDLOCKED -10 /* Not band locked */ 75*4882a593Smuzhiyun #define BCME_NOCLK -11 /* No Clock */ 76*4882a593Smuzhiyun #define BCME_BADRATESET -12 /* BAD Rate valueset */ 77*4882a593Smuzhiyun #define BCME_BADBAND -13 /* BAD Band */ 78*4882a593Smuzhiyun #define BCME_BUFTOOSHORT -14 /* Buffer too short */ 79*4882a593Smuzhiyun #define BCME_BUFTOOLONG -15 /* Buffer too long */ 80*4882a593Smuzhiyun #define BCME_BUSY -16 /* Busy */ 81*4882a593Smuzhiyun #define BCME_NOTASSOCIATED -17 /* Not Associated */ 82*4882a593Smuzhiyun #define BCME_BADSSIDLEN -18 /* Bad SSID len */ 83*4882a593Smuzhiyun #define BCME_OUTOFRANGECHAN -19 /* Out of Range Channel */ 84*4882a593Smuzhiyun #define BCME_BADCHAN -20 /* Bad Channel */ 85*4882a593Smuzhiyun #define BCME_BADADDR -21 /* Bad Address */ 86*4882a593Smuzhiyun #define BCME_NORESOURCE -22 /* Not Enough Resources */ 87*4882a593Smuzhiyun #define BCME_UNSUPPORTED -23 /* Unsupported */ 88*4882a593Smuzhiyun #define BCME_BADLEN -24 /* Bad length */ 89*4882a593Smuzhiyun #define BCME_NOTREADY -25 /* Not Ready */ 90*4882a593Smuzhiyun #define BCME_EPERM -26 /* Not Permitted */ 91*4882a593Smuzhiyun #define BCME_NOMEM -27 /* No Memory */ 92*4882a593Smuzhiyun #define BCME_ASSOCIATED -28 /* Associated */ 93*4882a593Smuzhiyun #define BCME_RANGE -29 /* Not In Range */ 94*4882a593Smuzhiyun #define BCME_NOTFOUND -30 /* Not Found */ 95*4882a593Smuzhiyun #define BCME_WME_NOT_ENABLED -31 /* WME Not Enabled */ 96*4882a593Smuzhiyun #define BCME_TSPEC_NOTFOUND -32 /* TSPEC Not Found */ 97*4882a593Smuzhiyun #define BCME_ACM_NOTSUPPORTED -33 /* ACM Not Supported */ 98*4882a593Smuzhiyun #define BCME_NOT_WME_ASSOCIATION -34 /* Not WME Association */ 99*4882a593Smuzhiyun #define BCME_SDIO_ERROR -35 /* SDIO Bus Error */ 100*4882a593Smuzhiyun #define BCME_DONGLE_DOWN -36 /* Dongle Not Accessible */ 101*4882a593Smuzhiyun #define BCME_VERSION -37 /* Incorrect version */ 102*4882a593Smuzhiyun #define BCME_TXFAIL -38 /* TX failure */ 103*4882a593Smuzhiyun #define BCME_RXFAIL -39 /* RX failure */ 104*4882a593Smuzhiyun #define BCME_NODEVICE -40 /* Device not present */ 105*4882a593Smuzhiyun #define BCME_NMODE_DISABLED -41 /* NMODE disabled */ 106*4882a593Smuzhiyun #define BCME_MSCH_DUP_REG -42 /* Duplicate slot registration */ 107*4882a593Smuzhiyun #define BCME_SCANREJECT -43 /* reject scan request */ 108*4882a593Smuzhiyun #define BCME_USAGE_ERROR -44 /* WLCMD usage error */ 109*4882a593Smuzhiyun #define BCME_IOCTL_ERROR -45 /* WLCMD ioctl error */ 110*4882a593Smuzhiyun #define BCME_SERIAL_PORT_ERR -46 /* RWL serial port error */ 111*4882a593Smuzhiyun #define BCME_DISABLED -47 /* Disabled in this build */ 112*4882a593Smuzhiyun #define BCME_DECERR -48 /* Decrypt error */ 113*4882a593Smuzhiyun #define BCME_ENCERR -49 /* Encrypt error */ 114*4882a593Smuzhiyun #define BCME_MICERR -50 /* Integrity/MIC error */ 115*4882a593Smuzhiyun #define BCME_REPLAY -51 /* Replay */ 116*4882a593Smuzhiyun #define BCME_IE_NOTFOUND -52 /* IE not found */ 117*4882a593Smuzhiyun #define BCME_DATA_NOTFOUND -53 /* Complete data not found in buffer */ 118*4882a593Smuzhiyun #define BCME_NOT_GC -54 /* expecting a group client */ 119*4882a593Smuzhiyun #define BCME_PRS_REQ_FAILED -55 /* GC presence req failed to sent */ 120*4882a593Smuzhiyun #define BCME_NO_P2P_SE -56 /* Could not find P2P-Subelement */ 121*4882a593Smuzhiyun #define BCME_NOA_PND -57 /* NoA pending, CB shuld be NULL */ 122*4882a593Smuzhiyun #define BCME_FRAG_Q_FAILED -58 /* queueing 80211 frag failedi */ 123*4882a593Smuzhiyun #define BCME_GET_AF_FAILED -59 /* Get p2p AF pkt failed */ 124*4882a593Smuzhiyun #define BCME_MSCH_NOTREADY -60 /* scheduler not ready */ 125*4882a593Smuzhiyun #define BCME_IOV_LAST_CMD -61 /* last batched iov sub-command */ 126*4882a593Smuzhiyun #define BCME_MINIPMU_CAL_FAIL -62 /* MiniPMU cal failed */ 127*4882a593Smuzhiyun #define BCME_RCAL_FAIL -63 /* Rcal failed */ 128*4882a593Smuzhiyun #define BCME_LPF_RCCAL_FAIL -64 /* RCCAL failed */ 129*4882a593Smuzhiyun #define BCME_DACBUF_RCCAL_FAIL -65 /* RCCAL failed */ 130*4882a593Smuzhiyun #define BCME_VCOCAL_FAIL -66 /* VCOCAL failed */ 131*4882a593Smuzhiyun #define BCME_BANDLOCKED -67 /* interface is restricted to a band */ 132*4882a593Smuzhiyun #define BCME_BAD_IE_DATA -68 /* Recieved ie with invalid/bad data */ 133*4882a593Smuzhiyun #define BCME_REG_FAILED -69 /* Generic registration failed */ 134*4882a593Smuzhiyun #define BCME_NOCHAN -70 /* Registration with 0 chans in list */ 135*4882a593Smuzhiyun #define BCME_PKTTOSS -71 /* Pkt tossed */ 136*4882a593Smuzhiyun #define BCME_DNGL_DEVRESET -72 /* dongle re-attach during DEVRESET */ 137*4882a593Smuzhiyun #define BCME_ROAM -73 /* Roam related failures */ 138*4882a593Smuzhiyun #define BCME_NO_SIG_FILE -74 /* Signature file is missing */ 139*4882a593Smuzhiyun 140*4882a593Smuzhiyun #define BCME_LAST BCME_NO_SIG_FILE 141*4882a593Smuzhiyun 142*4882a593Smuzhiyun #define BCME_NOTENABLED BCME_DISABLED 143*4882a593Smuzhiyun 144*4882a593Smuzhiyun /* This error code is *internal* to the driver, and is not propogated to users. It should 145*4882a593Smuzhiyun * only be used by IOCTL patch handlers as an indication that it did not handle the IOCTL. 146*4882a593Smuzhiyun * (Since the error code is internal, an entry in 'BCMERRSTRINGTABLE' is not required, 147*4882a593Smuzhiyun * nor does it need to be part of any OSL driver-to-OS error code mapping). 148*4882a593Smuzhiyun */ 149*4882a593Smuzhiyun #define BCME_IOCTL_PATCH_UNSUPPORTED -9999 150*4882a593Smuzhiyun #if (BCME_LAST <= BCME_IOCTL_PATCH_UNSUPPORTED) 151*4882a593Smuzhiyun #error "BCME_LAST <= BCME_IOCTL_PATCH_UNSUPPORTED" 152*4882a593Smuzhiyun #endif 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun /* These are collection of BCME Error strings */ 155*4882a593Smuzhiyun #define BCMERRSTRINGTABLE { \ 156*4882a593Smuzhiyun "OK", \ 157*4882a593Smuzhiyun "Undefined error", \ 158*4882a593Smuzhiyun "Bad Argument", \ 159*4882a593Smuzhiyun "Bad Option", \ 160*4882a593Smuzhiyun "Not up", \ 161*4882a593Smuzhiyun "Not down", \ 162*4882a593Smuzhiyun "Not AP", \ 163*4882a593Smuzhiyun "Not STA", \ 164*4882a593Smuzhiyun "Bad Key Index", \ 165*4882a593Smuzhiyun "Radio Off", \ 166*4882a593Smuzhiyun "Not band locked", \ 167*4882a593Smuzhiyun "No clock", \ 168*4882a593Smuzhiyun "Bad Rate valueset", \ 169*4882a593Smuzhiyun "Bad Band", \ 170*4882a593Smuzhiyun "Buffer too short", \ 171*4882a593Smuzhiyun "Buffer too long", \ 172*4882a593Smuzhiyun "Busy", \ 173*4882a593Smuzhiyun "Not Associated", \ 174*4882a593Smuzhiyun "Bad SSID len", \ 175*4882a593Smuzhiyun "Out of Range Channel", \ 176*4882a593Smuzhiyun "Bad Channel", \ 177*4882a593Smuzhiyun "Bad Address", \ 178*4882a593Smuzhiyun "Not Enough Resources", \ 179*4882a593Smuzhiyun "Unsupported", \ 180*4882a593Smuzhiyun "Bad length", \ 181*4882a593Smuzhiyun "Not Ready", \ 182*4882a593Smuzhiyun "Not Permitted", \ 183*4882a593Smuzhiyun "No Memory", \ 184*4882a593Smuzhiyun "Associated", \ 185*4882a593Smuzhiyun "Not In Range", \ 186*4882a593Smuzhiyun "Not Found", \ 187*4882a593Smuzhiyun "WME Not Enabled", \ 188*4882a593Smuzhiyun "TSPEC Not Found", \ 189*4882a593Smuzhiyun "ACM Not Supported", \ 190*4882a593Smuzhiyun "Not WME Association", \ 191*4882a593Smuzhiyun "SDIO Bus Error", \ 192*4882a593Smuzhiyun "Dongle Not Accessible", \ 193*4882a593Smuzhiyun "Incorrect version", \ 194*4882a593Smuzhiyun "TX Failure", \ 195*4882a593Smuzhiyun "RX Failure", \ 196*4882a593Smuzhiyun "Device Not Present", \ 197*4882a593Smuzhiyun "NMODE Disabled", \ 198*4882a593Smuzhiyun "Host Offload in device", \ 199*4882a593Smuzhiyun "Scan Rejected", \ 200*4882a593Smuzhiyun "WLCMD usage error", \ 201*4882a593Smuzhiyun "WLCMD ioctl error", \ 202*4882a593Smuzhiyun "RWL serial port error", \ 203*4882a593Smuzhiyun "Disabled", \ 204*4882a593Smuzhiyun "Decrypt error", \ 205*4882a593Smuzhiyun "Encrypt error", \ 206*4882a593Smuzhiyun "MIC error", \ 207*4882a593Smuzhiyun "Replay", \ 208*4882a593Smuzhiyun "IE not found", \ 209*4882a593Smuzhiyun "Data not found", \ 210*4882a593Smuzhiyun "NOT GC", \ 211*4882a593Smuzhiyun "PRS REQ FAILED", \ 212*4882a593Smuzhiyun "NO P2P SubElement", \ 213*4882a593Smuzhiyun "NOA Pending", \ 214*4882a593Smuzhiyun "FRAG Q FAILED", \ 215*4882a593Smuzhiyun "GET ActionFrame failed", \ 216*4882a593Smuzhiyun "scheduler not ready", \ 217*4882a593Smuzhiyun "Last IOV batched sub-cmd", \ 218*4882a593Smuzhiyun "Mini PMU Cal failed", \ 219*4882a593Smuzhiyun "R-cal failed", \ 220*4882a593Smuzhiyun "LPF RC Cal failed", \ 221*4882a593Smuzhiyun "DAC buf RC Cal failed", \ 222*4882a593Smuzhiyun "VCO Cal failed", \ 223*4882a593Smuzhiyun "band locked", \ 224*4882a593Smuzhiyun "Recieved ie with invalid data", \ 225*4882a593Smuzhiyun "registration failed", \ 226*4882a593Smuzhiyun "Registration with zero channels", \ 227*4882a593Smuzhiyun "pkt toss", \ 228*4882a593Smuzhiyun "Dongle Devreset", \ 229*4882a593Smuzhiyun "Critical roam in progress", \ 230*4882a593Smuzhiyun "Signature file is missing", \ 231*4882a593Smuzhiyun } 232*4882a593Smuzhiyun 233*4882a593Smuzhiyun /** status - TBD BCME_ vs proxd status - range reserved for BCME_ */ 234*4882a593Smuzhiyun enum { 235*4882a593Smuzhiyun WL_PROXD_E_LAST = -1057, 236*4882a593Smuzhiyun WL_PROXD_E_ASSOC_INPROG = -1057, 237*4882a593Smuzhiyun WL_PROXD_E_NOAVAIL = -1056, 238*4882a593Smuzhiyun WL_PROXD_E_EXT_SCHED = -1055, 239*4882a593Smuzhiyun WL_PROXD_E_NOT_BCM = -1054, 240*4882a593Smuzhiyun WL_PROXD_E_FRAME_TYPE = -1053, 241*4882a593Smuzhiyun WL_PROXD_E_VERNOSUPPORT = -1052, 242*4882a593Smuzhiyun WL_PROXD_E_SEC_NOKEY = -1051, 243*4882a593Smuzhiyun WL_PROXD_E_SEC_POLICY = -1050, 244*4882a593Smuzhiyun WL_PROXD_E_SCAN_INPROCESS = -1049, 245*4882a593Smuzhiyun WL_PROXD_E_BAD_PARTIAL_TSF = -1048, 246*4882a593Smuzhiyun WL_PROXD_E_SCANFAIL = -1047, 247*4882a593Smuzhiyun WL_PROXD_E_NOTSF = -1046, 248*4882a593Smuzhiyun WL_PROXD_E_POLICY = -1045, 249*4882a593Smuzhiyun WL_PROXD_E_INCOMPLETE = -1044, 250*4882a593Smuzhiyun WL_PROXD_E_OVERRIDDEN = -1043, 251*4882a593Smuzhiyun WL_PROXD_E_ASAP_FAILED = -1042, 252*4882a593Smuzhiyun WL_PROXD_E_NOTSTARTED = -1041, 253*4882a593Smuzhiyun WL_PROXD_E_INVALIDMEAS = -1040, 254*4882a593Smuzhiyun WL_PROXD_E_INCAPABLE = -1039, 255*4882a593Smuzhiyun WL_PROXD_E_MISMATCH = -1038, 256*4882a593Smuzhiyun WL_PROXD_E_DUP_SESSION = -1037, 257*4882a593Smuzhiyun WL_PROXD_E_REMOTE_FAIL = -1036, 258*4882a593Smuzhiyun WL_PROXD_E_REMOTE_INCAPABLE = -1035, 259*4882a593Smuzhiyun WL_PROXD_E_SCHED_FAIL = -1034, 260*4882a593Smuzhiyun WL_PROXD_E_PROTO = -1033, 261*4882a593Smuzhiyun WL_PROXD_E_EXPIRED = -1032, 262*4882a593Smuzhiyun WL_PROXD_E_TIMEOUT = -1031, 263*4882a593Smuzhiyun WL_PROXD_E_NOACK = -1030, 264*4882a593Smuzhiyun WL_PROXD_E_DEFERRED = -1029, 265*4882a593Smuzhiyun WL_PROXD_E_INVALID_SID = -1028, 266*4882a593Smuzhiyun WL_PROXD_E_REMOTE_CANCEL = -1027, 267*4882a593Smuzhiyun WL_PROXD_E_CANCELED = -1026, /**< local */ 268*4882a593Smuzhiyun WL_PROXD_E_INVALID_SESSION = -1025, 269*4882a593Smuzhiyun WL_PROXD_E_BAD_STATE = -1024, 270*4882a593Smuzhiyun WL_PROXD_E_START = -1024, 271*4882a593Smuzhiyun WL_PROXD_E_ERROR = -1, 272*4882a593Smuzhiyun WL_PROXD_E_OK = 0 273*4882a593Smuzhiyun }; 274*4882a593Smuzhiyun typedef int32 wl_proxd_status_t; 275*4882a593Smuzhiyun 276*4882a593Smuzhiyun /** status - TBD BCME_ vs NAN status - range reserved for BCME_ */ 277*4882a593Smuzhiyun enum { 278*4882a593Smuzhiyun /* add new status here... */ 279*4882a593Smuzhiyun WL_NAN_E_NO_ACTION = -2136, /* status for no action */ 280*4882a593Smuzhiyun WL_NAN_E_INVALID_TOKEN = -2135, /* invalid token or mismatch */ 281*4882a593Smuzhiyun WL_NAN_E_INVALID_ATTR = -2134, /* generic invalid attr error */ 282*4882a593Smuzhiyun WL_NAN_E_INVALID_NDL_ATTR = -2133, /* invalid NDL attribute */ 283*4882a593Smuzhiyun WL_NAN_E_SCB_NORESOURCE = -2132, /* no more peer scb available */ 284*4882a593Smuzhiyun WL_NAN_E_PEER_NOTAVAIL = -2131, 285*4882a593Smuzhiyun WL_NAN_E_SCB_EXISTS = -2130, 286*4882a593Smuzhiyun WL_NAN_E_INVALID_PEER_NDI = -2129, 287*4882a593Smuzhiyun WL_NAN_E_INVALID_LOCAL_NDI = -2128, 288*4882a593Smuzhiyun WL_NAN_E_ALREADY_EXISTS = -2127, /* generic NAN error for duplication */ 289*4882a593Smuzhiyun WL_NAN_E_EXCEED_MAX_NUM_MAPS = -2126, 290*4882a593Smuzhiyun WL_NAN_E_INVALID_DEV_CHAN_SCHED = -2125, 291*4882a593Smuzhiyun WL_NAN_E_INVALID_PEER_BLOB_TYPE = -2124, 292*4882a593Smuzhiyun WL_NAN_E_INVALID_LCL_BLOB_TYPE = -2123, 293*4882a593Smuzhiyun WL_NAN_E_BCMC_PDPA = -2122, /* BCMC NAF PDPA */ 294*4882a593Smuzhiyun WL_NAN_E_TIMEOUT = -2121, 295*4882a593Smuzhiyun WL_NAN_E_HOST_CFG = -2120, 296*4882a593Smuzhiyun WL_NAN_E_NO_ACK = -2119, 297*4882a593Smuzhiyun WL_NAN_E_SECINST_FAIL = -2118, 298*4882a593Smuzhiyun WL_NAN_E_REJECT_NDL = -2117, /* generic NDL rejection error */ 299*4882a593Smuzhiyun WL_NAN_E_INVALID_NDP_ATTR = -2116, 300*4882a593Smuzhiyun WL_NAN_E_HOST_REJECTED = -2115, 301*4882a593Smuzhiyun WL_NAN_E_PCB_NORESOURCE = -2114, 302*4882a593Smuzhiyun WL_NAN_E_NDC_EXISTS = -2113, 303*4882a593Smuzhiyun WL_NAN_E_NO_NDC_ENTRY_AVAIL = -2112, 304*4882a593Smuzhiyun WL_NAN_E_INVALID_NDC_ENTRY = -2111, 305*4882a593Smuzhiyun WL_NAN_E_SD_TX_LIST_FULL = -2110, 306*4882a593Smuzhiyun WL_NAN_E_SVC_SUB_LIST_FULL = -2109, 307*4882a593Smuzhiyun WL_NAN_E_SVC_PUB_LIST_FULL = -2108, 308*4882a593Smuzhiyun WL_NAN_E_SDF_MAX_LEN_EXCEEDED = -2107, 309*4882a593Smuzhiyun WL_NAN_E_ZERO_CRB = -2106, /* no CRB between local and peer */ 310*4882a593Smuzhiyun WL_NAN_E_PEER_NDC_NOT_SELECTED = -2105, /* peer ndc not selected */ 311*4882a593Smuzhiyun WL_NAN_E_DAM_CHAN_CONFLICT = -2104, /* dam schedule channel conflict */ 312*4882a593Smuzhiyun WL_NAN_E_DAM_SCHED_PERIOD = -2103, /* dam schedule period mismatch */ 313*4882a593Smuzhiyun WL_NAN_E_LCL_NDC_NOT_SELECTED = -2102, /* local selected ndc not configured */ 314*4882a593Smuzhiyun WL_NAN_E_NDL_QOS_INVALID_NA = -2101, /* na doesn't comply with ndl qos */ 315*4882a593Smuzhiyun WL_NAN_E_CLEAR_NAF_WITH_SA_AS_RNDI = -2100, /* rx clear naf with peer rndi */ 316*4882a593Smuzhiyun WL_NAN_E_SEC_CLEAR_PKT = -2099, /* rx clear pkt from a peer with sec_sa */ 317*4882a593Smuzhiyun WL_NAN_E_PROT_NON_PDPA_NAF = -2098, /* rx protected non PDPA frame */ 318*4882a593Smuzhiyun WL_NAN_E_DAM_DOUBLE_REMOVE = -2097, /* remove peer schedule already removed */ 319*4882a593Smuzhiyun WL_NAN_E_DAM_DOUBLE_MERGE = -2096, /* merge peer schedule already merged */ 320*4882a593Smuzhiyun WL_NAN_E_DAM_REJECT_INVALID = -2095, /* reject for invalid schedule */ 321*4882a593Smuzhiyun WL_NAN_E_DAM_REJECT_RANGE = -2094, 322*4882a593Smuzhiyun WL_NAN_E_DAM_REJECT_QOS = -2093, 323*4882a593Smuzhiyun WL_NAN_E_DAM_REJECT_NDC = -2092, 324*4882a593Smuzhiyun WL_NAN_E_DAM_REJECT_PEER_IMMUT = -2091, 325*4882a593Smuzhiyun WL_NAN_E_DAM_REJECT_LCL_IMMUT = -2090, 326*4882a593Smuzhiyun WL_NAN_E_DAM_EXCEED_NUM_SCHED = -2089, 327*4882a593Smuzhiyun WL_NAN_E_DAM_INVALID_SCHED_MAP = -2088, /* invalid schedule map list */ 328*4882a593Smuzhiyun WL_NAN_E_DAM_INVALID_LCL_SCHED = -2087, 329*4882a593Smuzhiyun WL_NAN_E_INVALID_MAP_ID = -2086, 330*4882a593Smuzhiyun WL_NAN_E_CHAN_OVERLAP_ACROSS_MAP = -2085, 331*4882a593Smuzhiyun WL_NAN_E_INVALID_CHAN_LIST = -2084, 332*4882a593Smuzhiyun WL_NAN_E_INVALID_RANGE_TBMP = -2083, 333*4882a593Smuzhiyun WL_NAN_E_INVALID_IMMUT_SCHED = -2082, 334*4882a593Smuzhiyun WL_NAN_E_INVALID_NDC_ATTR = -2081, 335*4882a593Smuzhiyun WL_NAN_E_INVALID_TIME_BITMAP = -2080, 336*4882a593Smuzhiyun WL_NAN_E_INVALID_NA_ATTR = -2079, 337*4882a593Smuzhiyun WL_NAN_E_NO_NA_ATTR_IN_AVAIL_MAP = -2078, /* no na attr saved in avail map */ 338*4882a593Smuzhiyun WL_NAN_E_INVALID_MAP_IDX = -2077, 339*4882a593Smuzhiyun WL_NAN_E_SEC_SA_NOTFOUND = -2076, 340*4882a593Smuzhiyun WL_NAN_E_BSSCFG_NOTFOUND = -2075, 341*4882a593Smuzhiyun WL_NAN_E_SCB_NOTFOUND = -2074, 342*4882a593Smuzhiyun WL_NAN_E_NCS_SK_KDESC_TYPE = -2073, 343*4882a593Smuzhiyun WL_NAN_E_NCS_SK_KEY_DESC_VER = -2072, /* key descr ver */ 344*4882a593Smuzhiyun WL_NAN_E_NCS_SK_KEY_TYPE = -2071, /* key descr type */ 345*4882a593Smuzhiyun WL_NAN_E_NCS_SK_KEYINFO_FAIL = -2070, /* key info (generic) */ 346*4882a593Smuzhiyun WL_NAN_E_NCS_SK_KEY_LEN = -2069, /* key len */ 347*4882a593Smuzhiyun WL_NAN_E_NCS_SK_KDESC_NOT_FOUND = -2068, /* key desc not found */ 348*4882a593Smuzhiyun WL_NAN_E_NCS_SK_INVALID_PARAMS = -2067, /* invalid args */ 349*4882a593Smuzhiyun WL_NAN_E_NCS_SK_KDESC_INVALID = -2066, /* key descr is not valid */ 350*4882a593Smuzhiyun WL_NAN_E_NCS_SK_NONCE_MISMATCH = -2065, 351*4882a593Smuzhiyun WL_NAN_E_NCS_SK_KDATA_SAVE_FAIL = -2064, /* not able to save key data */ 352*4882a593Smuzhiyun WL_NAN_E_NCS_SK_AUTH_TOKEN_CALC_FAIL = -2063, 353*4882a593Smuzhiyun WL_NAN_E_NCS_SK_PTK_CALC_FAIL = -2062, 354*4882a593Smuzhiyun WL_NAN_E_INVALID_STARTOFFSET = -2061, 355*4882a593Smuzhiyun WL_NAN_E_BAD_NA_ENTRY_TYPE = -2060, 356*4882a593Smuzhiyun WL_NAN_E_INVALID_CHANBMP = -2059, 357*4882a593Smuzhiyun WL_NAN_E_INVALID_OP_CLASS = -2058, 358*4882a593Smuzhiyun WL_NAN_E_NO_IES = -2057, 359*4882a593Smuzhiyun WL_NAN_E_NO_PEER_ENTRY_AVAIL = -2056, 360*4882a593Smuzhiyun WL_NAN_E_INVALID_PEER = -2055, 361*4882a593Smuzhiyun WL_NAN_E_PEER_EXISTS = -2054, 362*4882a593Smuzhiyun WL_NAN_E_PEER_NOTFOUND = -2053, 363*4882a593Smuzhiyun WL_NAN_E_NO_MEM = -2052, 364*4882a593Smuzhiyun WL_NAN_E_INVALID_OPTION = -2051, 365*4882a593Smuzhiyun WL_NAN_E_INVALID_BAND = -2050, 366*4882a593Smuzhiyun WL_NAN_E_INVALID_MAC = -2049, 367*4882a593Smuzhiyun WL_NAN_E_BAD_INSTANCE = -2048, 368*4882a593Smuzhiyun /* NAN status code reserved from -2048 to -3071 */ 369*4882a593Smuzhiyun /* Do NOT add new status below -2048 */ 370*4882a593Smuzhiyun WL_NAN_E_ERROR = -1, 371*4882a593Smuzhiyun WL_NAN_E_OK = 0 372*4882a593Smuzhiyun }; 373*4882a593Smuzhiyun 374*4882a593Smuzhiyun /* SAE (Simultaneous Authentication of Equals) status codes. 375*4882a593Smuzhiyun * SAE status codes are reserved from -3072 to -4095 (1K) 376*4882a593Smuzhiyun */ 377*4882a593Smuzhiyun enum { 378*4882a593Smuzhiyun WL_SAE_E_AUTH_FAILURE = -3072, 379*4882a593Smuzhiyun /* Discard silently */ 380*4882a593Smuzhiyun WL_SAE_E_AUTH_DISCARD = -3073, 381*4882a593Smuzhiyun /* Authentication in progress */ 382*4882a593Smuzhiyun WL_SAE_E_AUTH_CONTINUE = -3074, 383*4882a593Smuzhiyun /* Invalid scalar/elt */ 384*4882a593Smuzhiyun WL_SAE_E_AUTH_COMMIT_INVALID = -3075, 385*4882a593Smuzhiyun /* Invalid confirm token */ 386*4882a593Smuzhiyun WL_SAE_E_AUTH_CONFIRM_INVALID = -3076, 387*4882a593Smuzhiyun /* Peer scalar validation failure */ 388*4882a593Smuzhiyun WL_SAE_E_CRYPTO_SCALAR_VALIDATION = -3077, 389*4882a593Smuzhiyun /* Peer element prime validation failure */ 390*4882a593Smuzhiyun WL_SAE_E_CRYPTO_ELE_PRIME_VALIDATION = -3078, 391*4882a593Smuzhiyun /* Peer element is not on the curve */ 392*4882a593Smuzhiyun WL_SAE_E_CRYPTO_ELE_NOT_ON_CURVE = -3079, 393*4882a593Smuzhiyun /* Generic EC error (eliptic curve related) */ 394*4882a593Smuzhiyun WL_SAE_E_CRYPTO_EC_ERROR = -3080, 395*4882a593Smuzhiyun /* Both local and peer mac addrs are same */ 396*4882a593Smuzhiyun WL_SAE_E_CRYPTO_EQUAL_MACADDRS = -3081, 397*4882a593Smuzhiyun /* Loop exceeded in deriving the scalar */ 398*4882a593Smuzhiyun WL_SAE_E_CRYPTO_SCALAR_ITER_EXCEEDED = -3082, 399*4882a593Smuzhiyun /* ECC group is unsupported */ 400*4882a593Smuzhiyun WL_SAE_E_CRYPTO_UNSUPPORTED_GROUP = -3083, 401*4882a593Smuzhiyun /* Exceeded the hunting-and-pecking counter */ 402*4882a593Smuzhiyun WL_SAE_E_CRYPTO_PWE_COUNTER_EXCEEDED = -3084, 403*4882a593Smuzhiyun /* SAE crypto component is not initialized */ 404*4882a593Smuzhiyun WL_SAE_E_CRYPTO_NOT_INITED = -3085, 405*4882a593Smuzhiyun /* bn_get has failed */ 406*4882a593Smuzhiyun WL_SAE_E_CRYPTO_BN_GET_ERROR = -3086, 407*4882a593Smuzhiyun /* bn_set has failed */ 408*4882a593Smuzhiyun WL_SAE_E_CRYPTO_BN_SET_ERROR = -3087, 409*4882a593Smuzhiyun /* PMK is not computed yet */ 410*4882a593Smuzhiyun WL_SAE_E_CRYPTO_PMK_UNAVAILABLE = -3088, 411*4882a593Smuzhiyun /* Peer confirm did not match */ 412*4882a593Smuzhiyun WL_SAE_E_CRYPTO_CONFIRM_MISMATCH = -3089, 413*4882a593Smuzhiyun /* Element K is at infinity no the curve */ 414*4882a593Smuzhiyun WL_SAE_E_CRYPTO_KEY_AT_INFINITY = -3090, 415*4882a593Smuzhiyun /* SAE Crypto private data magic number mismatch */ 416*4882a593Smuzhiyun WL_SAE_E_CRYPTO_PRIV_MAGIC_MISMATCH = -3091, 417*4882a593Smuzhiyun /* Max retry exhausted */ 418*4882a593Smuzhiyun WL_SAE_E_MAX_RETRY_LIMIT_REACHED = -3092, 419*4882a593Smuzhiyun /* peer sent password ID mismatch to local */ 420*4882a593Smuzhiyun WL_SAE_E_AUTH_PEER_PWDID_MISMATCH = -3093, 421*4882a593Smuzhiyun /* user not configured password */ 422*4882a593Smuzhiyun WL_SAE_E_AUTH_PASSWORD_NOT_CONFIGURED = -3094, 423*4882a593Smuzhiyun /* user not configured password ID */ 424*4882a593Smuzhiyun WL_SAE_E_AUTH_PWDID_NOT_CONFIGURED = -3095, 425*4882a593Smuzhiyun /* Anti-clogging token mismatch */ 426*4882a593Smuzhiyun WL_SAE_E_AUTH_ANTI_CLOG_MISMATCH = -3096, 427*4882a593Smuzhiyun /* SAE PWE method mismatch */ 428*4882a593Smuzhiyun WL_SAE_E_AUTH_PWE_MISMATCH = -3097 429*4882a593Smuzhiyun }; 430*4882a593Smuzhiyun 431*4882a593Smuzhiyun /* 432*4882a593Smuzhiyun * Firmware signing error code range: -4096...-5119 433*4882a593Smuzhiyun */ 434*4882a593Smuzhiyun enum { 435*4882a593Smuzhiyun /* okay */ 436*4882a593Smuzhiyun BCM_FWSIGN_E_OK = 0, 437*4882a593Smuzhiyun 438*4882a593Smuzhiyun /* Operation is in progress */ 439*4882a593Smuzhiyun BCM_FWSIGN_E_INPROGRESS = -4096, 440*4882a593Smuzhiyun 441*4882a593Smuzhiyun /* version mismatch */ 442*4882a593Smuzhiyun BCM_FWSIGN_E_VERSION = -4097, 443*4882a593Smuzhiyun 444*4882a593Smuzhiyun /* key not found */ 445*4882a593Smuzhiyun BCM_FWSIGN_E_KEY_NOT_FOUND = -4098, 446*4882a593Smuzhiyun 447*4882a593Smuzhiyun /* key found, but is not valid (revoked) */ 448*4882a593Smuzhiyun BCM_FWSIGN_E_KEY_NOT_VALID = -4099, 449*4882a593Smuzhiyun 450*4882a593Smuzhiyun /* Cipher suite id mismatch for the key */ 451*4882a593Smuzhiyun BCM_FWSIGN_E_CS_ID_MISMATCH = -4100, 452*4882a593Smuzhiyun 453*4882a593Smuzhiyun /* Signature does not match */ 454*4882a593Smuzhiyun BCM_FWSIGN_E_SIGNATURE = -4101, 455*4882a593Smuzhiyun 456*4882a593Smuzhiyun /* Continue */ 457*4882a593Smuzhiyun BCM_FWSIGN_E_CONTINUE = -4102, 458*4882a593Smuzhiyun 459*4882a593Smuzhiyun /* Heap is too small */ 460*4882a593Smuzhiyun BCM_FWSIGN_E_HEAP_TOO_SMALL = -4103, 461*4882a593Smuzhiyun 462*4882a593Smuzhiyun /* Allocation of bn ctx failed */ 463*4882a593Smuzhiyun BCM_FWSIGN_E_BN_CTX_ALLOC_FAILED = -4104, 464*4882a593Smuzhiyun 465*4882a593Smuzhiyun /* possible bug */ 466*4882a593Smuzhiyun BCM_FWSIGN_E_BUGCHECK = -4105, 467*4882a593Smuzhiyun 468*4882a593Smuzhiyun /* chosen key is invalid */ 469*4882a593Smuzhiyun BCM_FWSIGN_E_INVALID_KEY = -4106, 470*4882a593Smuzhiyun 471*4882a593Smuzhiyun /* signature is invalid */ 472*4882a593Smuzhiyun BCM_FWSIGN_E_INVALID_SIGNATURE = -4107, 473*4882a593Smuzhiyun 474*4882a593Smuzhiyun /* signature tlv missing */ 475*4882a593Smuzhiyun BCM_FWSIGN_E_NO_CSID_SIG = -4108, 476*4882a593Smuzhiyun 477*4882a593Smuzhiyun /* chosen key is invalid */ 478*4882a593Smuzhiyun BCM_FWSIGN_E_REVOKED_KEY = -4109, 479*4882a593Smuzhiyun 480*4882a593Smuzhiyun /* signature has no matching valid key in ROM */ 481*4882a593Smuzhiyun BCM_FWSIGN_E_NO_OTP_FOR_ROM_KEY = -4110, 482*4882a593Smuzhiyun 483*4882a593Smuzhiyun /* Compression not supported */ 484*4882a593Smuzhiyun BCM_FWSIGN_E_COMPNOTSUP = -4111, 485*4882a593Smuzhiyun 486*4882a593Smuzhiyun /* OTP read error */ 487*4882a593Smuzhiyun BCM_FWSIGN_E_OTP_READ = -4112, 488*4882a593Smuzhiyun 489*4882a593Smuzhiyun /* heap address overlaps with FW address space */ 490*4882a593Smuzhiyun BCM_FWSIGN_E_HEAP_OVR_FW = -4113, 491*4882a593Smuzhiyun 492*4882a593Smuzhiyun /* heap address overlaps with bootloader data/bss region */ 493*4882a593Smuzhiyun BCM_FWSIGN_E_HEAP_OVR_BSS = -4114, 494*4882a593Smuzhiyun 495*4882a593Smuzhiyun /* heap address overlaps with bootloader stack region */ 496*4882a593Smuzhiyun BCM_FWSIGN_E_HEAP_OVR_STACK = -4115, 497*4882a593Smuzhiyun 498*4882a593Smuzhiyun /* firmware encryption header tlv is missing */ 499*4882a593Smuzhiyun BCM_FWSIGN_E_NO_FWENC_HDR = -4116, 500*4882a593Smuzhiyun 501*4882a593Smuzhiyun /* firmware encryption algo not supported */ 502*4882a593Smuzhiyun BCM_FWSIGN_E_FWENC_ALGO_NOTSUP = -4117, 503*4882a593Smuzhiyun 504*4882a593Smuzhiyun /* firmware encryption tag tlv is missing */ 505*4882a593Smuzhiyun BCM_FWSIGN_E_NO_FW_TAG = -4118, 506*4882a593Smuzhiyun 507*4882a593Smuzhiyun /* firmware encryption tag tlv is not valid */ 508*4882a593Smuzhiyun BCM_FWSIGN_E_FW_TAG_INVALID_TLV = -4119, 509*4882a593Smuzhiyun 510*4882a593Smuzhiyun /* firmware encryption tag verification fail */ 511*4882a593Smuzhiyun BCM_FWSIGN_E_FW_TAG_MISMATCH = -4120, 512*4882a593Smuzhiyun 513*4882a593Smuzhiyun /* signature package is invalid */ 514*4882a593Smuzhiyun BCM_FWSIGN_E_PACKAGE_INVALID = -4121, 515*4882a593Smuzhiyun 516*4882a593Smuzhiyun /* last error */ 517*4882a593Smuzhiyun BCM_FWSIGN_E_LAST = -5119 518*4882a593Smuzhiyun }; 519*4882a593Smuzhiyun typedef int32 bcm_fwsign_status_t; 520*4882a593Smuzhiyun 521*4882a593Smuzhiyun /* PMK manager block. Event codes from -5120 to -6143 */ 522*4882a593Smuzhiyun /* PSK hashing event codes */ 523*4882a593Smuzhiyun enum { 524*4882a593Smuzhiyun WL_PMK_E_PSK_HASH_FAILED = -5120, 525*4882a593Smuzhiyun WL_PMK_E_PSK_HASH_DONE = -5121, 526*4882a593Smuzhiyun WL_PMK_E_PSK_HASH_RUNNING = -5122, 527*4882a593Smuzhiyun WL_PMK_E_PSK_INVALID = -5123, 528*4882a593Smuzhiyun WL_PMK_E_PSK_NOMEM = -5124 529*4882a593Smuzhiyun }; 530*4882a593Smuzhiyun 531*4882a593Smuzhiyun /* 532*4882a593Smuzhiyun * SOE (Security Offload Engine) status codes. 533*4882a593Smuzhiyun * SOE status codes are reserved from -6144 to -7167 (1K) 534*4882a593Smuzhiyun */ 535*4882a593Smuzhiyun enum { 536*4882a593Smuzhiyun /* Invalid operational context */ 537*4882a593Smuzhiyun WL_SOE_E_BAD_OP_CONTEXT = -6144, 538*4882a593Smuzhiyun 539*4882a593Smuzhiyun /* Invalid operational type */ 540*4882a593Smuzhiyun WL_SOE_E_BAD_OP_TYPE = -6145, 541*4882a593Smuzhiyun 542*4882a593Smuzhiyun /* Failure to get NAF3 encoded scalar */ 543*4882a593Smuzhiyun WL_SOE_E_BN_NAF3_GET_ERROR = -6146, 544*4882a593Smuzhiyun 545*4882a593Smuzhiyun /* Failure to get NAF3 params */ 546*4882a593Smuzhiyun WL_SOE_E_NAF3_PARAMS_GET_ERROR = -6147 547*4882a593Smuzhiyun }; 548*4882a593Smuzhiyun 549*4882a593Smuzhiyun /* BCM crypto ASN.1 status codes. */ 550*4882a593Smuzhiyun /* Reserved range is from -7168 to -8291 */ 551*4882a593Smuzhiyun enum { 552*4882a593Smuzhiyun /* tag mismatch */ 553*4882a593Smuzhiyun BCM_CRYPTO_E_ASN1_TAG_MISMATCH = -7168, 554*4882a593Smuzhiyun 555*4882a593Smuzhiyun /* OID mismatch */ 556*4882a593Smuzhiyun BCM_CRYPTO_E_ASN1_OID_MISMATCH = -7169, 557*4882a593Smuzhiyun 558*4882a593Smuzhiyun /* Bad key type */ 559*4882a593Smuzhiyun BCM_CRYPTO_E_ASN1_BAD_KEY_TYPE = -7170, 560*4882a593Smuzhiyun 561*4882a593Smuzhiyun /* value length is invalid */ 562*4882a593Smuzhiyun BCM_CRYPTO_E_ASN1_INVALID_LENGTH = -7171, 563*4882a593Smuzhiyun 564*4882a593Smuzhiyun /* Invalid public key length */ 565*4882a593Smuzhiyun BCM_CRYPTO_E_ASN1_INVALID_PKLEN = -7172, 566*4882a593Smuzhiyun 567*4882a593Smuzhiyun /* Unsupported elliptic curve group */ 568*4882a593Smuzhiyun BCM_CRYPTO_E_ASN1_UNSUPPORTED_ECG = -7173 569*4882a593Smuzhiyun }; 570*4882a593Smuzhiyun 571*4882a593Smuzhiyun #endif /* BCMUTILS_ERR_CODES */ 572*4882a593Smuzhiyun 573*4882a593Smuzhiyun #endif /* _bcmerror_h_ */ 574