147151e4bSgaurav rana /* 247151e4bSgaurav rana * Copyright 2015 Freescale Semiconductor, Inc. 347151e4bSgaurav rana * 447151e4bSgaurav rana * SPDX-License-Identifier: GPL-2.0+ 547151e4bSgaurav rana */ 647151e4bSgaurav rana 747151e4bSgaurav rana #ifndef _FSL_SECBOOT_ERR_H 847151e4bSgaurav rana #define _FSL_SECBOOT_ERR_H 947151e4bSgaurav rana 1047151e4bSgaurav rana #define ERROR_ESBC_PAMU_INIT 0x100000 1147151e4bSgaurav rana #define ERROR_ESBC_SEC_RESET 0x200000 1247151e4bSgaurav rana #define ERROR_ESBC_SEC_INIT 0x400000 1347151e4bSgaurav rana #define ERROR_ESBC_SEC_DEQ 0x800000 1447151e4bSgaurav rana #define ERROR_ESBC_SEC_DEQ_TO 0x1000000 1547151e4bSgaurav rana #define ERROR_ESBC_SEC_ENQ 0x2000000 1647151e4bSgaurav rana #define ERROR_ESBC_SEC_JOBQ_STATUS 0x4000000 1747151e4bSgaurav rana #define ERROR_ESBC_CLIENT_CPUID_NO_MATCH 0x1 1847151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HDR_LOC 0x2 1947151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HEADER_BARKER 0x4 2047151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HEADER_KEY_LEN 0x8 2147151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HEADER_SIG_LEN 0x10 2247151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HEADER_KEY_REVOKED 0x11 2347151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HEADER_INVALID_SRK_NUM_ENTRY 0x12 2447151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HEADER_INVALID_KEY_NUM 0x13 2547151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HEADER_INV_SRK_ENTRY_KEYLEN 0x14 2647151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HEADER_IE_KEY_REVOKED 0x15 2747151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HEADER_INVALID_IE_NUM_ENTRY 0x16 2847151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HEADER_INVALID_IE_KEY_NUM 0x17 2947151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HEADER_INV_IE_ENTRY_KEYLEN 0x18 3047151e4bSgaurav rana #define ERROR_IE_TABLE_NOT_FOUND 0x19 3147151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HEADER_KEY_LEN_NOT_TWICE_SIG_LEN 0x20 32*fd6dbc98SSaksham Jain #define ERROR_KEY_TABLE_NOT_FOUND 0x21 3347151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HEADER_KEY_MOD_1 0x40 3447151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HEADER_KEY_MOD_2 0x80 3547151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HEADER_SIG_KEY_MOD 0x100 3647151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HEADER_SG_ESBC_EP 0x200 3747151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HASH_COMPARE_KEY 0x400 3847151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HASH_COMPARE_EM 0x800 3947151e4bSgaurav rana #define ERROR_ESBC_CLIENT_SSM_TRUSTSTS 0x1000 4047151e4bSgaurav rana #define ERROR_ESBC_CLIENT_BAD_ADDRESS 0x2000 4147151e4bSgaurav rana #define ERROR_ESBC_CLIENT_MISC 0x4000 4247151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HEADER_SG_ENTIRES_BAD 0x8000 4347151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HEADER_SG 0x10000 4447151e4bSgaurav rana #define ERROR_ESBC_CLIENT_HEADER_IMG_SIZE 0x20000 4547151e4bSgaurav rana #define ERROR_ESBC_WRONG_CMD 0x40000 4647151e4bSgaurav rana #define ERROR_ESBC_MISSING_BOOTM 0x80000 4747151e4bSgaurav rana #define ERROR_ESBC_CLIENT_MAX 0x0 4847151e4bSgaurav rana 4947151e4bSgaurav rana struct fsl_secboot_errcode { 5047151e4bSgaurav rana int errcode; 5147151e4bSgaurav rana const char *name; 5247151e4bSgaurav rana }; 5347151e4bSgaurav rana 5447151e4bSgaurav rana static const struct fsl_secboot_errcode fsl_secboot_errcodes[] = { 5547151e4bSgaurav rana { ERROR_ESBC_PAMU_INIT, 5647151e4bSgaurav rana "Error in initializing PAMU"}, 5747151e4bSgaurav rana { ERROR_ESBC_SEC_RESET, 5847151e4bSgaurav rana "Error in resetting Job ring of SEC"}, 5947151e4bSgaurav rana { ERROR_ESBC_SEC_INIT, 6047151e4bSgaurav rana "Error in initializing SEC"}, 6147151e4bSgaurav rana { ERROR_ESBC_SEC_ENQ, 6247151e4bSgaurav rana "Error in enqueue operation by SEC"}, 6347151e4bSgaurav rana { ERROR_ESBC_SEC_DEQ_TO, 6447151e4bSgaurav rana "Dequeue operation by SEC is timed out"}, 6547151e4bSgaurav rana { ERROR_ESBC_SEC_DEQ, 6647151e4bSgaurav rana "Error in dequeue operation by SEC"}, 6747151e4bSgaurav rana { ERROR_ESBC_SEC_JOBQ_STATUS, 6847151e4bSgaurav rana "Error in status of the job submitted to SEC"}, 6947151e4bSgaurav rana { ERROR_ESBC_CLIENT_CPUID_NO_MATCH, 7047151e4bSgaurav rana "Current core is not boot core i.e core0" }, 7147151e4bSgaurav rana { ERROR_ESBC_CLIENT_HDR_LOC, 7247151e4bSgaurav rana "Header address not in allowed memory range" }, 7347151e4bSgaurav rana { ERROR_ESBC_CLIENT_HEADER_BARKER, 7447151e4bSgaurav rana "Wrong barker code in header" }, 7547151e4bSgaurav rana { ERROR_ESBC_CLIENT_HEADER_KEY_LEN, 7647151e4bSgaurav rana "Wrong public key length in header" }, 7747151e4bSgaurav rana { ERROR_ESBC_CLIENT_HEADER_SIG_LEN, 7847151e4bSgaurav rana "Wrong signature length in header" }, 7947151e4bSgaurav rana { ERROR_ESBC_CLIENT_HEADER_KEY_LEN_NOT_TWICE_SIG_LEN, 8047151e4bSgaurav rana "Public key length not twice of signature length" }, 8147151e4bSgaurav rana { ERROR_ESBC_CLIENT_HEADER_KEY_MOD_1, 8247151e4bSgaurav rana "Public key Modulus most significant bit not set" }, 8347151e4bSgaurav rana { ERROR_ESBC_CLIENT_HEADER_KEY_MOD_2, 8447151e4bSgaurav rana "Public key Modulus in header not odd" }, 8547151e4bSgaurav rana { ERROR_ESBC_CLIENT_HEADER_SIG_KEY_MOD, 8647151e4bSgaurav rana "Signature not less than modulus" }, 8747151e4bSgaurav rana { ERROR_ESBC_CLIENT_HEADER_SG_ESBC_EP, 8847151e4bSgaurav rana "Entry point not in allowed space or one of the SG entries" }, 8947151e4bSgaurav rana { ERROR_ESBC_CLIENT_HASH_COMPARE_KEY, 9047151e4bSgaurav rana "Public key hash comparison failed" }, 9147151e4bSgaurav rana { ERROR_ESBC_CLIENT_HASH_COMPARE_EM, 9247151e4bSgaurav rana "RSA verification failed" }, 9347151e4bSgaurav rana { ERROR_ESBC_CLIENT_SSM_TRUSTSTS, 9447151e4bSgaurav rana "SNVS not in TRUSTED state" }, 9547151e4bSgaurav rana { ERROR_ESBC_CLIENT_BAD_ADDRESS, 9647151e4bSgaurav rana "Bad address error" }, 9747151e4bSgaurav rana { ERROR_ESBC_CLIENT_MISC, 9847151e4bSgaurav rana "Miscallaneous error" }, 9947151e4bSgaurav rana { ERROR_ESBC_CLIENT_HEADER_SG, 10047151e4bSgaurav rana "No SG support" }, 10147151e4bSgaurav rana { ERROR_ESBC_CLIENT_HEADER_IMG_SIZE, 10247151e4bSgaurav rana "Invalid Image size" }, 10347151e4bSgaurav rana { ERROR_ESBC_WRONG_CMD, 10447151e4bSgaurav rana "Unknown cmd/Wrong arguments. Core in infinite loop"}, 10547151e4bSgaurav rana { ERROR_ESBC_MISSING_BOOTM, 10647151e4bSgaurav rana "Bootm command missing from bootscript" }, 10747151e4bSgaurav rana { ERROR_ESBC_CLIENT_HEADER_KEY_REVOKED, 10847151e4bSgaurav rana "Selected key is revoked" }, 10947151e4bSgaurav rana { ERROR_ESBC_CLIENT_HEADER_INVALID_SRK_NUM_ENTRY, 11047151e4bSgaurav rana "Wrong key entry" }, 11147151e4bSgaurav rana { ERROR_ESBC_CLIENT_HEADER_INVALID_KEY_NUM, 11247151e4bSgaurav rana "Wrong key is selected" }, 11347151e4bSgaurav rana { ERROR_ESBC_CLIENT_HEADER_INV_SRK_ENTRY_KEYLEN, 11447151e4bSgaurav rana "Wrong srk public key len in header" }, 11547151e4bSgaurav rana { ERROR_ESBC_CLIENT_HEADER_IE_KEY_REVOKED, 11647151e4bSgaurav rana "Selected IE key is revoked" }, 11747151e4bSgaurav rana { ERROR_ESBC_CLIENT_HEADER_INVALID_IE_NUM_ENTRY, 11847151e4bSgaurav rana "Wrong key entry in IE Table" }, 11947151e4bSgaurav rana { ERROR_ESBC_CLIENT_HEADER_INVALID_IE_KEY_NUM, 12047151e4bSgaurav rana "Wrong IE key is selected" }, 12147151e4bSgaurav rana { ERROR_ESBC_CLIENT_HEADER_INV_IE_ENTRY_KEYLEN, 12247151e4bSgaurav rana "Wrong IE public key len in header" }, 12347151e4bSgaurav rana { ERROR_IE_TABLE_NOT_FOUND, 12447151e4bSgaurav rana "Information about IE Table missing" }, 125*fd6dbc98SSaksham Jain { ERROR_KEY_TABLE_NOT_FOUND, 126*fd6dbc98SSaksham Jain "No Key/ Key Table Found in header"}, 12747151e4bSgaurav rana { ERROR_ESBC_CLIENT_MAX, "NULL" } 12847151e4bSgaurav rana }; 12947151e4bSgaurav rana 13047151e4bSgaurav rana void fsl_secboot_handle_error(int error); 13147151e4bSgaurav rana #endif 132