xref: /aosp_15_r20/external/autotest/server/cros/vboot_constants.py (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
1*9c5db199SXin Li# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
2*9c5db199SXin Li# Use of this source code is governed by a BSD-style license that can be
3*9c5db199SXin Li# found in the LICENSE file.
4*9c5db199SXin Li
5*9c5db199SXin Li# The constants of verified boot.
6*9c5db199SXin Li
7*9c5db199SXin Li# Recovery reason codes, copied from:
8*9c5db199SXin Li#     vboot_reference/firmware/include/vboot_nvstorage.h
9*9c5db199SXin Li#     vboot_reference/firmware/include/vboot_struct.h
10*9c5db199SXin LiRECOVERY_REASON = {
11*9c5db199SXin Li    # Recovery not requested
12*9c5db199SXin Li    'NOT_REQUESTED':      '0',   # 0x00
13*9c5db199SXin Li    # Recovery requested from legacy utility
14*9c5db199SXin Li    'LEGACY':             '1',   # 0x01
15*9c5db199SXin Li    # User manually requested recovery via recovery button
16*9c5db199SXin Li    'RO_MANUAL':          '2',   # 0x02
17*9c5db199SXin Li    # RW firmware failed signature check
18*9c5db199SXin Li    'RO_INVALID_RW':      '3',   # 0x03
19*9c5db199SXin Li    # S3 resume failed
20*9c5db199SXin Li    'RO_S3_RESUME':       '4',   # 0x04
21*9c5db199SXin Li    # TPM error in read-only firmware (deprecated)
22*9c5db199SXin Li    'DEP_RO_TPM_ERROR':   '5',   # 0x05
23*9c5db199SXin Li    # Shared data error in read-only firmware
24*9c5db199SXin Li    'RO_SHARED_DATA':     '6',   # 0x06
25*9c5db199SXin Li    # Test error from S3Resume()
26*9c5db199SXin Li    'RO_TEST_S3':         '7',   # 0x07
27*9c5db199SXin Li    # Test error from LoadFirmwareSetup()
28*9c5db199SXin Li    'RO_TEST_LFS':        '8',   # 0x08
29*9c5db199SXin Li    # Test error from LoadFirmware()
30*9c5db199SXin Li    'RO_TEST_LF':         '9',   # 0x09
31*9c5db199SXin Li    # RW firmware failed signature check
32*9c5db199SXin Li    'RW_NOT_DONE':        '16',  # 0x10
33*9c5db199SXin Li    'RW_DEV_MISMATCH':    '17',  # 0x11
34*9c5db199SXin Li    'RW_REC_MISMATCH':    '18',  # 0x12
35*9c5db199SXin Li    'RW_VERIFY_KEYBLOCK': '19',  # 0x13
36*9c5db199SXin Li    'RW_KEY_ROLLBACK':    '20',  # 0x14
37*9c5db199SXin Li    'RW_DATA_KEY_PARSE':  '21',  # 0x15
38*9c5db199SXin Li    'RW_VERIFY_PREAMBLE': '22',  # 0x16
39*9c5db199SXin Li    'RW_FW_ROLLBACK':     '23',  # 0x17
40*9c5db199SXin Li    'RW_HEADER_VALID':    '24',  # 0x18
41*9c5db199SXin Li    'RW_GET_FW_BODY':     '25',  # 0x19
42*9c5db199SXin Li    'RW_HASH_WRONG_SIZE': '26',  # 0x1A
43*9c5db199SXin Li    'RW_VERIFY_BODY':     '27',  # 0x1B
44*9c5db199SXin Li    'RW_VALID':           '28',  # 0x1C
45*9c5db199SXin Li    # Read-only normal path requested by firmware preamble, but
46*9c5db199SXin Li    # unsupported by firmware.
47*9c5db199SXin Li    'RW_NO_RO_NORMAL':    '29',  # 0x1D
48*9c5db199SXin Li    # Firmware boot failure outside of verified boot
49*9c5db199SXin Li    'RO_FIRMWARE':        '32',  # 0x20
50*9c5db199SXin Li    # Recovery mode TPM initialization requires a system reboot.
51*9c5db199SXin Li    # The system was already in recovery mode for some other reason
52*9c5db199SXin Li    # when this happened.
53*9c5db199SXin Li    'RO_TPM_REBOOT':      '33',  # 0x21
54*9c5db199SXin Li    # EC software sync - other error
55*9c5db199SXin Li    'EC_SOFTWARE_SYNC':   '34',  # 0x22
56*9c5db199SXin Li    # EC software sync - unable to determine active EC image
57*9c5db199SXin Li    'EC_UNKNOWN_IMAGE':   '35',  # 0x23
58*9c5db199SXin Li    # EC software sync - error obtaining EC image hash (deprecated)
59*9c5db199SXin Li    'DEP_EC_HASH':        '36',  # 0x24
60*9c5db199SXin Li    # EC software sync - error obtaining expected EC image
61*9c5db199SXin Li    'EC_EXPECTED_IMAGE':  '37',  # 0x25
62*9c5db199SXin Li    # EC software sync - error updating EC
63*9c5db199SXin Li    'EC_UPDATE':          '38',  # 0x26
64*9c5db199SXin Li    # EC software sync - unable to jump to EC-RW
65*9c5db199SXin Li    'EC_JUMP_RW':         '39',  # 0x27
66*9c5db199SXin Li    # EC software sync - unable to protect / unprotect EC-RW
67*9c5db199SXin Li    'EC_PROTECT':         '40',  # 0x28
68*9c5db199SXin Li    # Unspecified/unknown error in read-only firmware
69*9c5db199SXin Li    'RO_UNSPECIFIED':     '63',  # 0x3F
70*9c5db199SXin Li    # User manually requested recovery by pressing a key at developer
71*9c5db199SXin Li    # warning screen.
72*9c5db199SXin Li    'RW_DEV_SCREEN':      '65',  # 0x41
73*9c5db199SXin Li    # No OS kernel detected
74*9c5db199SXin Li    'RW_NO_OS':           '66',  # 0x42
75*9c5db199SXin Li    # OS kernel failed signature check
76*9c5db199SXin Li    'RW_INVALID_OS':      '67',  # 0x43
77*9c5db199SXin Li    # TPM error in rewritable firmware (deprecated)
78*9c5db199SXin Li    'DEP_RW_TPM_ERROR':   '68',  # 0x44
79*9c5db199SXin Li    # RW firmware in dev mode, but dev switch is off.
80*9c5db199SXin Li    'RW_DEV_MISMATCH':    '69',  # 0x45
81*9c5db199SXin Li    # Shared data error in rewritable firmware
82*9c5db199SXin Li    'RW_SHARED_DATA':     '70',  # 0x46
83*9c5db199SXin Li    # Test error from LoadKernel()
84*9c5db199SXin Li    'RW_TEST_LK':         '71',  # 0x47
85*9c5db199SXin Li    # No bootable disk found (deprecated)
86*9c5db199SXin Li    'DEP_RW_NO_DISK':     '72',  # 0x48
87*9c5db199SXin Li    # Rebooting did not correct TPM_E_FAIL or TPM_E_FAILEDSELFTEST
88*9c5db199SXin Li    'TPM_E_FAIL':         '73',  # 0x49
89*9c5db199SXin Li    # TPM setup error in read-only firmware
90*9c5db199SXin Li    'RO_TPM_S_ERROR':     '80',  # 0x50
91*9c5db199SXin Li    # TPM write error in read-only firmware
92*9c5db199SXin Li    'RO_TPM_W_ERROR':     '81',  # 0x51
93*9c5db199SXin Li    # TPM lock error in read-only firmware
94*9c5db199SXin Li    'RO_TPM_L_ERROR':     '82',  # 0x52
95*9c5db199SXin Li    # TPM update error in read-only firmware
96*9c5db199SXin Li    'RO_TPM_U_ERROR':     '83',  # 0x53
97*9c5db199SXin Li    # TPM read error in rewritable firmware
98*9c5db199SXin Li    'RW_TPM_R_ERROR':     '84',  # 0x54
99*9c5db199SXin Li    # TPM write error in rewritable firmware
100*9c5db199SXin Li    'RW_TPM_W_ERROR':     '85',  # 0x55
101*9c5db199SXin Li    # TPM lock error in rewritable firmware
102*9c5db199SXin Li    'RW_TPM_L_ERROR':     '86',  # 0x56
103*9c5db199SXin Li    # EC software sync unable to get EC image hash
104*9c5db199SXin Li    'EC_HASH_FAILED':     '87',  # 0x57
105*9c5db199SXin Li    # EC software sync invalid image hash size
106*9c5db199SXin Li    'EC_HASH_SIZE':       '88',  # 0x58
107*9c5db199SXin Li    # Unspecified error while trying to load kernel
108*9c5db199SXin Li    'LK_UNSPECIFIED':     '89',  # 0x59
109*9c5db199SXin Li    # No bootable storage device in system
110*9c5db199SXin Li    'RW_NO_DISK':         '90',  # 0x5A
111*9c5db199SXin Li    # No bootable kernel found on disk
112*9c5db199SXin Li    'RW_NO_KERNEL':       '91',  # 0x5B
113*9c5db199SXin Li    # Unspecified/unknown error in rewritable firmware
114*9c5db199SXin Li    'RW_UNSPECIFIED':     '127', # 0x7F
115*9c5db199SXin Li    # DM-verity error
116*9c5db199SXin Li    'KE_DM_VERITY':       '129', # 0x81
117*9c5db199SXin Li    # Unspecified/unknown error in kernel
118*9c5db199SXin Li    'KE_UNSPECIFIED':     '191', # 0xBF
119*9c5db199SXin Li    # Recovery mode test from user-mode
120*9c5db199SXin Li    'US_TEST':            '193', # 0xC1
121*9c5db199SXin Li    # Unspecified/unknown error in user-mode
122*9c5db199SXin Li    'US_UNSPECIFIED':     '255', # 0xFF
123*9c5db199SXin Li}
124*9c5db199SXin Li
125*9c5db199SXin Li# GBB flags, copied from:
126*9c5db199SXin Li#     vboot_reference/firmware/2lib/include/2gbb_flags.h
127*9c5db199SXin LiGBB_FLAG_DEV_SCREEN_SHORT_DELAY = 1 << 0
128*9c5db199SXin LiGBB_FLAG_LOAD_OPTION_ROMS = 1 << 1
129*9c5db199SXin LiGBB_FLAG_ENABLE_ALTERNATE_OS = 1 << 2
130*9c5db199SXin LiGBB_FLAG_FORCE_DEV_SWITCH_ON = 1 << 3
131*9c5db199SXin LiGBB_FLAG_FORCE_DEV_BOOT_USB = 1 << 4
132*9c5db199SXin LiGBB_FLAG_DISABLE_FW_ROLLBACK_CHECK = 1 << 5
133*9c5db199SXin LiGBB_FLAG_ENTER_TRIGGERS_TONORM = 1 << 6
134*9c5db199SXin LiGBB_FLAG_FORCE_DEV_BOOT_ALTFW = 1 << 7
135*9c5db199SXin LiGBB_FLAG_RUNNING_FAFT = 1 << 8
136*9c5db199SXin LiGBB_FLAG_DISABLE_EC_SOFTWARE_SYNC = 1 << 9
137*9c5db199SXin LiGBB_FLAG_DEFAULT_DEV_BOOT_ALTFW = 1 << 10
138*9c5db199SXin LiGBB_FLAG_DISABLE_AUXFW_SOFTWARE_SYNC = 1 << 11
139*9c5db199SXin LiGBB_FLAG_DISABLE_LID_SHUTDOWN = 1 << 12
140*9c5db199SXin LiGBB_FLAG_DEPRECATED_FORCE_DEV_BOOT_FASTBOOT_FULL_CAP = 1 << 13
141*9c5db199SXin LiGBB_FLAG_FORCE_MANUAL_RECOVERY = 1 << 14
142*9c5db199SXin LiGBB_FLAG_DISABLE_FWMP = 1 << 15
143*9c5db199SXin LiGBB_FLAG_ENABLE_UDC = 1 << 16
144*9c5db199SXin Li
145*9c5db199SXin Li# Firmware preamble flags, copied from:
146*9c5db199SXin Li#     vboot_reference/firmware/include/vboot_struct.h
147*9c5db199SXin LiPREAMBLE_USE_RO_NORMAL             = 0x00000001
148