crypto: move includes to kern/include
[akaros.git] / kern / include / crypto / 2recovery_reasons.h
1 /* Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
2  * Use of this source code is governed by a BSD-style license that can be
3  * found in the LICENSE file.
4  *
5  * Recovery reasons
6  */
7
8 #ifndef VBOOT_REFERENCE_VBOOT_2RECOVERY_REASONS_H_
9 #define VBOOT_REFERENCE_VBOOT_2RECOVERY_REASONS_H_
10
11 /* Recovery reason codes */
12 enum vb2_nv_recovery {
13         /* Recovery not requested. */
14         VB2_RECOVERY_NOT_REQUESTED = 0x00,
15
16         /*
17          * Recovery requested from legacy utility.  (Prior to the NV storage
18          * spec, recovery mode was a single bitfield; this value is reserved so
19          * that scripts which wrote 1 to the recovery field are distinguishable
20          * from scripts whch use the recovery reasons listed here.
21          */
22         VB2_RECOVERY_LEGACY = 0x01,
23
24         /* User manually requested recovery via recovery button */
25         VB2_RECOVERY_RO_MANUAL = 0x02,
26
27         /*
28          * RW firmware failed signature check (neither RW firmware slot was
29          * valid)
30          */
31         VB2_RECOVERY_RO_INVALID_RW = 0x03,
32
33         /* S3 resume failed */
34         VB2_RECOVERY_RO_S3_RESUME = 0x04,
35
36         /* TPM error in read-only firmware (deprecated) */
37         VB2_RECOVERY_DEP_RO_TPM_ERROR = 0x05,
38
39         /* Shared data error in read-only firmware */
40         VB2_RECOVERY_RO_SHARED_DATA = 0x06,
41
42         /* Test error from S3Resume() */
43         VB2_RECOVERY_RO_TEST_S3 = 0x07,
44
45         /* Test error from LoadFirmwareSetup() (deprecated) */
46         VB2_RECOVERY_RO_TEST_LFS = 0x08,
47
48         /* Test error from LoadFirmware() (deprecated) */
49         VB2_RECOVERY_RO_TEST_LF = 0x09,
50
51         /* Latest tried RW firmware keyblock verification failed */
52         VB2_RECOVERY_FW_KEYBLOCK = 0x13,
53
54         /* Latest tried RW firmware key version too old */
55         VB2_RECOVERY_FW_KEY_ROLLBACK = 0x14,
56
57         /* Latest tried RW firmware preamble verification failed */
58         VB2_RECOVERY_FW_PREAMBLE = 0x16,
59
60         /* Latest tried RW firmware version too old */
61         VB2_RECOVERY_FW_ROLLBACK = 0x17,
62
63         /* Latest tried RW firmware body verification failed */
64         VB2_RECOVERY_FW_BODY = 0x1b,
65
66         /*
67          * Firmware boot failure outside of verified boot (RAM init, missing
68          * SSD, etc.).
69          */
70         VB2_RECOVERY_RO_FIRMWARE = 0x20,
71
72         /*
73          * Recovery mode TPM initialization requires a system reboot.  The
74          * system was already in recovery mode for some other reason when this
75          * happened.
76          */
77         VB2_RECOVERY_RO_TPM_REBOOT = 0x21,
78
79         /* EC software sync - other error */
80         VB2_RECOVERY_EC_SOFTWARE_SYNC = 0x22,
81
82         /* EC software sync - unable to determine active EC image */
83         VB2_RECOVERY_EC_UNKNOWN_IMAGE = 0x23,
84
85         /* EC software sync - error obtaining EC image hash (deprecated) */
86         VB2_RECOVERY_DEP_EC_HASH = 0x24,
87
88         /* EC software sync - error obtaining expected EC image */
89         VB2_RECOVERY_EC_EXPECTED_IMAGE = 0x25,
90
91         /* EC software sync - error updating EC */
92         VB2_RECOVERY_EC_UPDATE = 0x26,
93
94         /* EC software sync - unable to jump to EC-RW */
95         VB2_RECOVERY_EC_JUMP_RW = 0x27,
96
97         /* EC software sync - unable to protect / unprotect EC-RW */
98         VB2_RECOVERY_EC_PROTECT = 0x28,
99
100         /* EC software sync - error obtaining expected EC hash */
101         VB2_RECOVERY_EC_EXPECTED_HASH = 0x29,
102
103         /* EC software sync - expected EC image doesn't match hash */
104         VB2_RECOVERY_EC_HASH_MISMATCH = 0x2a,
105
106         /* New error codes from VB2 */
107         /* TODO: may need to add strings for these in the original fwlib */
108
109         /* Secure data inititalization error */
110         VB2_RECOVERY_SECDATA_INIT = 0x2b,
111
112         /* GBB header is bad */
113         VB2_RECOVERY_GBB_HEADER = 0x2c,
114
115         /* Unable to clear TPM owner */
116         VB2_RECOVERY_TPM_CLEAR_OWNER = 0x2d,
117
118         /* Error determining/updating virtual dev switch */
119         VB2_RECOVERY_DEV_SWITCH = 0x2e,
120
121         /* Error determining firmware slot */
122         VB2_RECOVERY_FW_SLOT = 0x2f,
123
124         /* Unspecified/unknown error in read-only firmware */
125         VB2_RECOVERY_RO_UNSPECIFIED = 0x3f,
126
127         /*
128          * User manually requested recovery by pressing a key at developer
129          * warning screen
130          */
131         VB2_RECOVERY_RW_DEV_SCREEN = 0x41,
132
133         /* No OS kernel detected */
134         VB2_RECOVERY_RW_NO_OS = 0x42,
135
136         /* OS kernel failed signature check */
137         VB2_RECOVERY_RW_INVALID_OS = 0x43,
138
139         /* TPM error in rewritable firmware (deprecated) */
140         VB2_RECOVERY_DEP_RW_TPM_ERROR = 0x44,
141
142         /* RW firmware in dev mode, but dev switch is off */
143         VB2_RECOVERY_RW_DEV_MISMATCH = 0x45,
144
145         /* Shared data error in rewritable firmware */
146         VB2_RECOVERY_RW_SHARED_DATA = 0x46,
147
148         /* Test error from LoadKernel() */
149         VB2_RECOVERY_RW_TEST_LK = 0x47,
150
151         /* No bootable disk found (deprecated)*/
152         VB2_RECOVERY_DEP_RW_NO_DISK = 0x48,
153
154         /* Rebooting did not correct TPM_E_FAIL or TPM_E_FAILEDSELFTEST  */
155         VB2_RECOVERY_TPM_E_FAIL = 0x49,
156
157         /* TPM setup error in read-only firmware */
158         VB2_RECOVERY_RO_TPM_S_ERROR = 0x50,
159
160         /* TPM write error in read-only firmware */
161         VB2_RECOVERY_RO_TPM_W_ERROR = 0x51,
162
163         /* TPM lock error in read-only firmware */
164         VB2_RECOVERY_RO_TPM_L_ERROR = 0x52,
165
166         /* TPM update error in read-only firmware */
167         VB2_RECOVERY_RO_TPM_U_ERROR = 0x53,
168
169         /* TPM read error in rewritable firmware */
170         VB2_RECOVERY_RW_TPM_R_ERROR = 0x54,
171
172         /* TPM write error in rewritable firmware */
173         VB2_RECOVERY_RW_TPM_W_ERROR = 0x55,
174
175         /* TPM lock error in rewritable firmware */
176         VB2_RECOVERY_RW_TPM_L_ERROR = 0x56,
177
178         /* EC software sync unable to get EC image hash */
179         VB2_RECOVERY_EC_HASH_FAILED = 0x57,
180
181         /* EC software sync invalid image hash size */
182         VB2_RECOVERY_EC_HASH_SIZE    = 0x58,
183
184         /* Unspecified error while trying to load kernel */
185         VB2_RECOVERY_LK_UNSPECIFIED  = 0x59,
186
187         /* No bootable storage device in system */
188         VB2_RECOVERY_RW_NO_DISK      = 0x5a,
189
190         /* No bootable kernel found on disk */
191         VB2_RECOVERY_RW_NO_KERNEL    = 0x5b,
192
193         /* BCB related error in RW firmware */
194         VB2_RECOVERY_RW_BCB_ERROR    = 0x5c,
195
196         /* New error codes from VB2 */
197         /* TODO: may need to add strings for these in the original fwlib */
198
199         /* Secure data inititalization error */
200         VB2_RECOVERY_SECDATAK_INIT = 0x5d,
201
202         /* Fastboot mode requested in firmware */
203         VB2_RECOVERY_FW_FASTBOOT     = 0x5e,
204
205         /* Unspecified/unknown error in rewritable firmware */
206         VB2_RECOVERY_RW_UNSPECIFIED  = 0x7f,
207
208         /* DM-verity error */
209         VB2_RECOVERY_KE_DM_VERITY    = 0x81,
210
211         /* Unspecified/unknown error in kernel */
212         VB2_RECOVERY_KE_UNSPECIFIED  = 0xbf,
213
214         /* Recovery mode test from user-mode */
215         VB2_RECOVERY_US_TEST         = 0xc1,
216
217         /* Recovery requested by user-mode via BCB */
218         VB2_RECOVERY_BCB_USER_MODE   = 0xc2,
219
220         /* Fastboot mode requested by user-mode */
221         VB2_RECOVERY_US_FASTBOOT     = 0xc3,
222
223         /* Unspecified/unknown error in user-mode */
224         VB2_RECOVERY_US_UNSPECIFIED  = 0xff,
225 };
226
227 #endif  /* VBOOT_REFERENCE_VBOOT_2RECOVERY_REASONS_H_ */