verified_boot_error.h 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. /* Copyright Statement:
  2. *
  3. * This software/firmware and related documentation ("MediaTek Software") are
  4. * protected under relevant copyright laws. The information contained herein
  5. * is confidential and proprietary to MediaTek Inc. and/or its licensors.
  6. * Without the prior written permission of MediaTek inc. and/or its licensors,
  7. * any reproduction, modification, use or disclosure of MediaTek Software,
  8. * and information contained herein, in whole or in part, shall be strictly prohibited.
  9. */
  10. /* MediaTek Inc. (C) 2017. All rights reserved.
  11. *
  12. * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  13. * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  14. * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER ON
  15. * AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  16. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  17. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  18. * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  19. * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  20. * SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO SUCH
  21. * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
  22. * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
  23. * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
  24. * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
  25. * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND
  26. * CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  27. * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  28. * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY RECEIVER TO
  29. * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
  30. *
  31. * The following software/firmware and/or related documentation ("MediaTek Software")
  32. * have been modified by MediaTek Inc. All revisions are subject to any receiver\'s
  33. * applicable license agreements with MediaTek Inc.
  34. */
  35. #ifndef __VERIFIED_BOOT_ERROR_H__
  36. #define __VERIFIED_BOOT_ERROR_H__
  37. #include <error.h>
  38. #define MOD_ID ERR_MOD_SECURITY_ID
  39. #define ERR_VB_LV1_GENERAL (0x0000)
  40. #define ERR_VB_LV1_AUTH (0x0001)
  41. #define ERR_VB_LV1_CRYPTO (0x0002)
  42. #define ERR_VB_LV1_SECCFG (0x0003)
  43. #define ERR_VB_LV1_ANTIROLLBACK (0x0004)
  44. #define ERR_VB_LV1_REGION (0x0005)
  45. #define ERR_VB_LV1_TRNG (0x0006)
  46. #define ERR_VB_LV1_VBSTATE (0x0007)
  47. #define ERR_VB_LV1_AVB (0x0008)
  48. /* MOD: offset: 20
  49. * MOD_LV1: offset: 12
  50. * MOD_LV2: offset: 0
  51. * for MOD = 0x01, MOD_LV1 = 0x02, MOD_LV2 = 0x03, error code
  52. * would be 0x0010_2003
  53. */
  54. /* 0x0010_0000 */
  55. #define ERR_VB_GENERAL_BASE (MAKE_ERR_MOD_LV1_BASE(MOD_ID, ERR_VB_LV1_GENERAL))
  56. /* 0x0010_1000 */
  57. #define ERR_VB_AUTH_BASE (MAKE_ERR_MOD_LV1_BASE(MOD_ID, ERR_VB_LV1_AUTH))
  58. /* 0x0010_2000 */
  59. #define ERR_VB_CRYPTO_BASE (MAKE_ERR_MOD_LV1_BASE(MOD_ID, ERR_VB_LV1_CRYPTO))
  60. /* 0x0010_3000 */
  61. #define ERR_VB_SECCFG_BASE (MAKE_ERR_MOD_LV1_BASE(MOD_ID, ERR_VB_LV1_SECCFG))
  62. /* 0x0010_4000 */
  63. #define ERR_VB_ANTIROLLBACK_BASE (MAKE_ERR_MOD_LV1_BASE(MOD_ID, ERR_VB_LV1_ANTIROLLBACK))
  64. /* 0x0010_5000 */
  65. #define ERR_VB_REGION_BASE (MAKE_ERR_MOD_LV1_BASE(MOD_ID, ERR_VB_LV1_REGION))
  66. /* 0x0010_6000 */
  67. #define ERR_VB_TRNG_BASE (MAKE_ERR_MOD_LV1_BASE(MOD_ID, ERR_VB_LV1_TRNG))
  68. /* 0x0010_7000 */
  69. #define ERR_VB_STATE_BASE (MAKE_ERR_MOD_LV1_BASE(MOD_ID, ERR_VB_LV1_VBSTATE))
  70. /* 0x0010_8000 */
  71. #define ERR_AVB_BASE (MAKE_ERR_MOD_LV1_BASE(MOD_ID, ERR_VB_LV1_AVB))
  72. /* GENERAL */
  73. #define ERR_VB_BUF_ADDR_INVALID (ERR_VB_GENERAL_BASE + 0x000)
  74. #define ERR_VB_BUF_OVERFLOW (ERR_VB_GENERAL_BASE + 0x001)
  75. #define ERR_VB_NOT_VALID_IMG_SZ (ERR_VB_GENERAL_BASE + 0x002)
  76. #define ERR_VB_NOT_VALID_IMG_ALIGN_SZ (ERR_VB_GENERAL_BASE + 0x003)
  77. #define ERR_VB_NOT_VALID_PAGE_SZ (ERR_VB_GENERAL_BASE + 0x004)
  78. #define ERR_VB_NOT_VALID_STRING (ERR_VB_GENERAL_BASE + 0x005)
  79. #define ERR_VB_INVALID_ADDR (ERR_VB_GENERAL_BASE + 0x006)
  80. #define ERR_VB_SEC_BUF_ALLOCATE_FAIL (ERR_VB_GENERAL_BASE + 0x007)
  81. /* AUTH */
  82. #define ERR_VB_SW_ID_MISMATCH (ERR_VB_AUTH_BASE + 0x000)
  83. #define ERR_VB_IMG_TYPE_INVALID (ERR_VB_AUTH_BASE + 0x001)
  84. #define ERR_VB_IMG_NOT_FOUND (ERR_VB_AUTH_BASE + 0x002)
  85. #define ERR_VB_IMG_HDR_HASH_VFY_FAIL (ERR_VB_AUTH_BASE + 0x003)
  86. #define ERR_VB_IMG_HASH_VFY_FAIL (ERR_VB_AUTH_BASE + 0x004)
  87. #define ERR_VB_OID_LEN_INVALID (ERR_VB_AUTH_BASE + 0x005)
  88. #define ERR_VB_OID_BUF_LEN_INVALID (ERR_VB_AUTH_BASE + 0x006)
  89. #define ERR_VB_SIG_LEN_INVALID (ERR_VB_AUTH_BASE + 0x007)
  90. #define ERR_VB_PADDING_LEN_INVALID (ERR_VB_AUTH_BASE + 0x008)
  91. #define ERR_VB_DA_VFY_FAIL (ERR_VB_AUTH_BASE + 0x009)
  92. #define ERR_VB_DA_KEY_INIT_FAIL (ERR_VB_AUTH_BASE + 0x00a)
  93. #define ERR_VB_DA_RELOCATE_LEN_NOT_ENOUGH (ERR_VB_AUTH_BASE + 0x00b)
  94. #define ERR_VB_PUBK_NOT_INITIALIZED (ERR_VB_AUTH_BASE + 0x00c)
  95. #define ERR_VB_CERT_OBJ_ID_MISMATCH (ERR_VB_AUTH_BASE + 0x00d)
  96. #define ERR_VB_CERT_OBJ_LEN_MISMATCH (ERR_VB_AUTH_BASE + 0x00e)
  97. #define ERR_VB_CERT_TRAVERSE_MODE_UNKNOWN (ERR_VB_AUTH_BASE + 0x00f)
  98. #define ERR_VB_CERT_OID_IDX_INVALID (ERR_VB_AUTH_BASE + 0x010)
  99. #define ERR_VB_CERT_OID_NOT_FOUND (ERR_VB_AUTH_BASE + 0x011)
  100. #define ERR_VB_CERT_OBJ_NOT_FOUND (ERR_VB_AUTH_BASE + 0x012)
  101. #define ERR_VB_CERT_E_KEY_LEN_MISMATCH (ERR_VB_AUTH_BASE + 0x013)
  102. #define ERR_VB_CERT_E_KEY_MISMATCH (ERR_VB_AUTH_BASE + 0x014)
  103. #define ERR_VB_CERT_N_KEY_LEN_MISMATCH (ERR_VB_AUTH_BASE + 0x015)
  104. #define ERR_VB_CERT_N_KEY_MISMATCH (ERR_VB_AUTH_BASE + 0x016)
  105. #define ERR_VB_PUBK_AUTH_FAIL (ERR_VB_AUTH_BASE + 0x017)
  106. #define ERR_VB_INVALID_IMG_HDR (ERR_VB_AUTH_BASE + 0x018)
  107. #define ERR_VB_NOT_EXPECTED_IMG_TYPE (ERR_VB_AUTH_BASE + 0x019)
  108. #define ERR_VB_GET_CUSTOM_PUBK_FAIL (ERR_VB_AUTH_BASE + 0x01a)
  109. #define ERR_VB_UNSUPPORTED_SIG_TYPE (ERR_VB_AUTH_BASE + 0x01b)
  110. #define ERR_VB_GFH_NOT_FOUND (ERR_VB_AUTH_BASE + 0x01c)
  111. #define ERR_VB_INVALID_SOCID_LEN (ERR_VB_AUTH_BASE + 0x01d)
  112. /* CRYPTO */
  113. #define ERR_VB_CRYPTO_HACC_MODE_INVALID (ERR_VB_CRYPTO_BASE + 0x000)
  114. #define ERR_VB_CRYPTO_HACC_KEY_LEN_INVALID (ERR_VB_CRYPTO_BASE + 0x001)
  115. #define ERR_VB_CRYPTO_HACC_DATA_UNALIGNED (ERR_VB_CRYPTO_BASE + 0x002)
  116. #define ERR_VB_CRYPTO_HACC_SEED_LEN_INVALID (ERR_VB_CRYPTO_BASE + 0x003)
  117. #define ERR_VB_CRYPTO_HASH_FAIL (ERR_VB_CRYPTO_BASE + 0x004)
  118. #define ERR_VB_CRYPTO_RSA_PSS_CHK_FAIL (ERR_VB_CRYPTO_BASE + 0x005)
  119. #define ERR_VB_CRYPTO_RSA_SIG_CHK_FAIL (ERR_VB_CRYPTO_BASE + 0x006)
  120. /* SECCFG */
  121. #define ERR_VB_SECCFG_NOT_FOUND (ERR_VB_SECCFG_BASE + 0x000)
  122. #define ERR_VB_SECCFG_STATUS_INVALID (ERR_VB_SECCFG_BASE + 0x001)
  123. #define ERR_VB_SECCFG_ERASE_FAIL (ERR_VB_SECCFG_BASE + 0x002)
  124. #define ERR_VB_SECCFG_WRITE_FAIL (ERR_VB_SECCFG_BASE + 0x003)
  125. #define ERR_VB_SECCFG_BUF_OVERFLOW (ERR_VB_SECCFG_BASE + 0x004)
  126. /* ANTI ROLLBACK */
  127. #define ERR_VB_CERT_IMG_VER_NOT_SYNC (ERR_VB_ANTIROLLBACK_BASE + 0x000)
  128. #define ERR_VB_IMG_VER_ROLLBACK (ERR_VB_ANTIROLLBACK_BASE + 0x001)
  129. #define ERR_VB_IMG_VER_OVERFLOW (ERR_VB_ANTIROLLBACK_BASE + 0x002)
  130. #define ERR_VB_UNKNOWN_NV_CNT_GROUP (ERR_VB_ANTIROLLBACK_BASE + 0x003)
  131. #define ERR_VB_GET_NV_CNT_FAIL (ERR_VB_ANTIROLLBACK_BASE + 0x004)
  132. #define ERR_VB_WRITE_NV_CNT_FAIL (ERR_VB_ANTIROLLBACK_BASE + 0x005)
  133. #define ERR_VB_SW_VER_MISMATCH (ERR_VB_ANTIROLLBACK_BASE + 0x006)
  134. #define ERR_VB_INVALID_IMG_OTP_UNIT (ERR_VB_ANTIROLLBACK_BASE + 0x007)
  135. #define ERR_VB_INVALID_OTP_INDEX (ERR_VB_ANTIROLLBACK_BASE + 0x008)
  136. #define ERR_VB_INVALID_GROUP_IDX (ERR_VB_ANTIROLLBACK_BASE + 0x009)
  137. #define ERR_VB_INVALID_GROUP_NUM (ERR_VB_ANTIROLLBACK_BASE + 0x00A)
  138. #define ERR_VB_SEC_VER_BUF_INIT_FAIL (ERR_VB_ANTIROLLBACK_BASE + 0x00B)
  139. #define ERR_VB_SEC_OTP_TABLE_NOT_INIT (ERR_VB_ANTIROLLBACK_BASE + 0x00C)
  140. #define ERR_VB_IMG_VER_UNDERFLOW (ERR_VB_ANTIROLLBACK_BASE + 0x00D)
  141. #define ERR_VB_CERT_INVALID_VER_ID (ERR_VB_ANTIROLLBACK_BASE + 0x00E)
  142. /* REGION CHECK */
  143. #define ERR_VB_REGION_INCLUDE (ERR_VB_REGION_BASE + 0x000)
  144. #define ERR_VB_REGION_OVERLAP (ERR_VB_REGION_BASE + 0x001)
  145. #define ERR_VB_REGION_OVERFLOW (ERR_VB_REGION_BASE + 0x002)
  146. #define ERR_VB_DA_ADDR_INVALID (ERR_VB_REGION_BASE + 0x003)
  147. #define ERR_VB_DA_LEN_INVALID (ERR_VB_REGION_BASE + 0x004)
  148. #define ERR_VB_INVALID_LOAD_ADDR (ERR_VB_REGION_BASE + 0x005)
  149. #define ERR_VB_INVALID_VER (ERR_VB_REGION_BASE + 0x006)
  150. /* TRNG */
  151. #define ERR_VB_TRNG_WRITE_DATA_FAIL (ERR_VB_TRNG_BASE + 0x000)
  152. /* VBOOT STATE */
  153. #define ERR_VB_STATE_PRINT_FAIL (ERR_VB_STATE_BASE + 0x000)
  154. #define ERR_VB_STATE_SHOW_WARNING_FAIL (ERR_VB_STATE_BASE + 0x001)
  155. #define ERR_VB_STATE_SET_CMDLINE_FAIL (ERR_VB_STATE_BASE + 0x002)
  156. /* AVB */
  157. #define ERR_AVB_CMDLINE_ENTRY_NOT_FOUND (ERR_AVB_BASE + 0x000)
  158. #define ERR_AVB_INVALID_KEY_BUF (ERR_AVB_BASE + 0x001)
  159. #define ERR_AVB_INVALID_OUTPUT_BUF (ERR_AVB_BASE + 0x002)
  160. #define ERR_AVB_INVALID_VALUE_SZ (ERR_AVB_BASE + 0x003)
  161. #define ERR_AVB_INVALID_INPUT_BUF (ERR_AVB_BASE + 0x004)
  162. #define ERR_AVB_INVALID_CMDLINE_FMT (ERR_AVB_BASE + 0x005)
  163. #define ERR_AVB_CMDLINE_OVERFLOW (ERR_AVB_BASE + 0x006)
  164. #define ERR_AVB_UNLOCK_DEVICE_FAILED (ERR_AVB_BASE + 0x007)
  165. #define ERR_AVB_SET_VERIFICATION_FAILED (ERR_AVB_BASE + 0x008)
  166. #define ERR_AVB_SET_VERITY_FAILED (ERR_AVB_BASE + 0x009)
  167. #define ERR_AVB_VERIFICAITON_FAILED (ERR_AVB_BASE + 0x00A)
  168. #define ERR_AVB_NO_SUCH_PARTITION (ERR_AVB_BASE + 0x00B)
  169. #define ERR_AVB_INVALID_OFFSET (ERR_AVB_BASE + 0x00C)
  170. #define ERR_AVB_UNINITIAL_PERSIST_VALUE (ERR_AVB_BASE + 0x00D)
  171. #endif /* __VERIFIED_BOOT_ERROR_H__ */