blob: 71902ec04c46254185c401a9aebf48faa527d9e0 [file] [log] [blame]
Tom Wai-Hong Tam6ec46e32012-10-05 16:39:21 +08001# Copyright (c) 2012 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# The constants of verified boot.
6
7# Recovery reason codes, copied from:
Tom Wai-Hong Tame38ee642012-10-18 16:44:04 +08008# vboot_reference/firmware/include/vboot_nvstorage.h
9# vboot_reference/firmware/include/vboot_struct.h
Tom Wai-Hong Tam6ec46e32012-10-05 16:39:21 +080010RECOVERY_REASON = {
11 # Recovery not requested
12 'NOT_REQUESTED': '0', # 0x00
13 # Recovery requested from legacy utility
14 'LEGACY': '1', # 0x01
15 # User manually requested recovery via recovery button
16 'RO_MANUAL': '2', # 0x02
17 # RW firmware failed signature check
18 'RO_INVALID_RW': '3', # 0x03
19 # S3 resume failed
20 'RO_S3_RESUME': '4', # 0x04
21 # TPM error in read-only firmware
22 'RO_TPM_ERROR': '5', # 0x05
23 # Shared data error in read-only firmware
24 'RO_SHARED_DATA': '6', # 0x06
25 # Test error from S3Resume()
26 'RO_TEST_S3': '7', # 0x07
27 # Test error from LoadFirmwareSetup()
28 'RO_TEST_LFS': '8', # 0x08
29 # Test error from LoadFirmware()
30 'RO_TEST_LF': '9', # 0x09
31 # RW firmware failed signature check
32 'RW_NOT_DONE': '16', # 0x10
33 'RW_DEV_MISMATCH': '17', # 0x11
34 'RW_REC_MISMATCH': '18', # 0x12
35 'RW_VERIFY_KEYBLOCK': '19', # 0x13
36 'RW_KEY_ROLLBACK': '20', # 0x14
37 'RW_DATA_KEY_PARSE': '21', # 0x15
38 'RW_VERIFY_PREAMBLE': '22', # 0x16
39 'RW_FW_ROLLBACK': '23', # 0x17
40 'RW_HEADER_VALID': '24', # 0x18
41 'RW_GET_FW_BODY': '25', # 0x19
42 'RW_HASH_WRONG_SIZE': '26', # 0x1A
43 'RW_VERIFY_BODY': '27', # 0x1B
44 'RW_VALID': '28', # 0x1C
45 # Read-only normal path requested by firmware preamble, but
46 # unsupported by firmware.
47 'RW_NO_RO_NORMAL': '29', # 0x1D
48 # Firmware boot failure outside of verified boot
49 'RO_FIRMWARE': '32', # 0x20
50 # Recovery mode TPM initialization requires a system reboot.
51 # The system was already in recovery mode for some other reason
52 # when this happened.
53 'RO_TPM_REBOOT': '33', # 0x21
Tom Wai-Hong Tame38ee642012-10-18 16:44:04 +080054 # EC software sync - other error
55 'EC_SOFTWARE_SYNC': '34', # 0x22
56 # EC software sync - unable to determine active EC image
57 'EC_UNKNOWN_IMAGE': '35', # 0x23
58 # EC software sync - error obtaining EC image hash
59 'EC_HASH': '36', # 0x24
60 # EC software sync - error obtaining expected EC image
61 'EC_EXPECTED_IMAGE': '37', # 0x25
62 # EC software sync - error updating EC
63 'EC_UPDATE': '38', # 0x26
64 # EC software sync - unable to jump to EC-RW
65 'EC_JUMP_RW': '39', # 0x27
66 # EC software sync - unable to protect / unprotect EC-RW
67 'EC_PROTECT': '40', # 0x28
Tom Wai-Hong Tam6ec46e32012-10-05 16:39:21 +080068 # Unspecified/unknown error in read-only firmware
69 'RO_UNSPECIFIED': '63', # 0x3F
70 # User manually requested recovery by pressing a key at developer
71 # warning screen.
72 'RW_DEV_SCREEN': '65', # 0x41
73 # No OS kernel detected
74 'RW_NO_OS': '66', # 0x42
75 # OS kernel failed signature check
76 'RW_INVALID_OS': '67', # 0x43
77 # TPM error in rewritable firmware
78 'RW_TPM_ERROR': '68', # 0x44
79 # RW firmware in dev mode, but dev switch is off.
80 'RW_DEV_MISMATCH': '69', # 0x45
81 # Shared data error in rewritable firmware
82 'RW_SHARED_DATA': '70', # 0x46
83 # Test error from LoadKernel()
84 'RW_TEST_LK': '71', # 0x47
85 # No bootable disk found
86 'RW_NO_DISK': '72', # 0x48
87 # Unspecified/unknown error in rewritable firmware
88 'RW_UNSPECIFIED': '127', # 0x7F
89 # DM-verity error
90 'KE_DM_VERITY': '129', # 0x81
91 # Unspecified/unknown error in kernel
92 'KE_UNSPECIFIED': '191', # 0xBF
93 # Recovery mode test from user-mode
94 'US_TEST': '193', # 0xC1
95 # Unspecified/unknown error in user-mode
96 'US_UNSPECIFIED': '255', # 0xFF
97}
98
99# GBB flags, copied from:
100# vboot_reference/firmware/include/gbb_header.h
101GBB_FLAG_DEV_SCREEN_SHORT_DELAY = 0x00000001
102GBB_FLAG_LOAD_OPTION_ROMS = 0x00000002
103GBB_FLAG_ENABLE_ALTERNATE_OS = 0x00000004
104GBB_FLAG_FORCE_DEV_SWITCH_ON = 0x00000008
105GBB_FLAG_FORCE_DEV_BOOT_USB = 0x00000010
106GBB_FLAG_DISABLE_FW_ROLLBACK_CHECK = 0x00000020
107GBB_FLAG_ENTER_TRIGGERS_TONORM = 0x00000040
Gediminas Ramanauskasba352ad2012-11-09 09:43:32 -0800108GBB_FLAG_FORCE_DEV_BOOT_LEGACY = 0x00000080
109GBB_FLAG_FAFT_KEY_OVERIDE = 0x00000100
Tom Wai-Hong Tam6ec46e32012-10-05 16:39:21 +0800110
111# VbSharedData flags, copied from:
112# vboot_reference/firmware/include/vboot_struct.h
113VDAT_FLAG_FWB_TRIED = 0x00000001
114VDAT_FLAG_KERNEL_KEY_VERIFIED = 0x00000002
115VDAT_FLAG_LF_DEV_SWITCH_ON = 0x00000004
116VDAT_FLAG_LF_USE_RO_NORMAL = 0x00000008
117VDAT_FLAG_BOOT_DEV_SWITCH_ON = 0x00000010
118VDAT_FLAG_BOOT_REC_SWITCH_ON = 0x00000020
119VDAT_FLAG_BOOT_FIRMWARE_WP_ENABLED = 0x00000040
120VDAT_FLAG_BOOT_S3_RESUME = 0x00000100
121VDAT_FLAG_BOOT_RO_NORMAL_SUPPORT = 0x00000200
122VDAT_FLAG_HONOR_VIRT_DEV_SWITCH = 0x00000400
123VDAT_FLAG_EC_SOFTWARE_SYNC = 0x00000800
124VDAT_FLAG_EC_SLOW_UPDATE = 0x00001000
125
126# Firmware preamble flags, copied from:
127# vboot_reference/firmware/include/vboot_struct.h
128PREAMBLE_USE_RO_NORMAL = 0x00000001