xref: /openbmc/u-boot/include/fsl_secboot_err.h (revision fd6dbc98)
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