blob: adda8eb47967a884d0df2d58f2e8def51b486194 [file] [log] [blame]
# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# The constants of verified boot.
# Recovery reason codes, copied from:
# vboot_reference/firmware/include/vboot_nvstorage.h
# vboot_reference/firmware/include/vboot_struct.h
RECOVERY_REASON = {
# Recovery not requested
'NOT_REQUESTED': '0', # 0x00
# Recovery requested from legacy utility
'LEGACY': '1', # 0x01
# User manually requested recovery via recovery button
'RO_MANUAL': '2', # 0x02
# RW firmware failed signature check
'RO_INVALID_RW': '3', # 0x03
# S3 resume failed
'RO_S3_RESUME': '4', # 0x04
# TPM error in read-only firmware (deprecated)
'DEP_RO_TPM_ERROR': '5', # 0x05
# Shared data error in read-only firmware
'RO_SHARED_DATA': '6', # 0x06
# Test error from S3Resume()
'RO_TEST_S3': '7', # 0x07
# Test error from LoadFirmwareSetup()
'RO_TEST_LFS': '8', # 0x08
# Test error from LoadFirmware()
'RO_TEST_LF': '9', # 0x09
# RW firmware failed signature check
'RW_NOT_DONE': '16', # 0x10
'RW_DEV_MISMATCH': '17', # 0x11
'RW_REC_MISMATCH': '18', # 0x12
'RW_VERIFY_KEYBLOCK': '19', # 0x13
'RW_KEY_ROLLBACK': '20', # 0x14
'RW_DATA_KEY_PARSE': '21', # 0x15
'RW_VERIFY_PREAMBLE': '22', # 0x16
'RW_FW_ROLLBACK': '23', # 0x17
'RW_HEADER_VALID': '24', # 0x18
'RW_GET_FW_BODY': '25', # 0x19
'RW_HASH_WRONG_SIZE': '26', # 0x1A
'RW_VERIFY_BODY': '27', # 0x1B
'RW_VALID': '28', # 0x1C
# Read-only normal path requested by firmware preamble, but
# unsupported by firmware.
'RW_NO_RO_NORMAL': '29', # 0x1D
# Firmware boot failure outside of verified boot
'RO_FIRMWARE': '32', # 0x20
# Recovery mode TPM initialization requires a system reboot.
# The system was already in recovery mode for some other reason
# when this happened.
'RO_TPM_REBOOT': '33', # 0x21
# EC software sync - other error
'EC_SOFTWARE_SYNC': '34', # 0x22
# EC software sync - unable to determine active EC image
'EC_UNKNOWN_IMAGE': '35', # 0x23
# EC software sync - error obtaining EC image hash (deprecated)
'DEP_EC_HASH': '36', # 0x24
# EC software sync - error obtaining expected EC image
'EC_EXPECTED_IMAGE': '37', # 0x25
# EC software sync - error updating EC
'EC_UPDATE': '38', # 0x26
# EC software sync - unable to jump to EC-RW
'EC_JUMP_RW': '39', # 0x27
# EC software sync - unable to protect / unprotect EC-RW
'EC_PROTECT': '40', # 0x28
# Unspecified/unknown error in read-only firmware
'RO_UNSPECIFIED': '63', # 0x3F
# User manually requested recovery by pressing a key at developer
# warning screen.
'RW_DEV_SCREEN': '65', # 0x41
# No OS kernel detected
'RW_NO_OS': '66', # 0x42
# OS kernel failed signature check
'RW_INVALID_OS': '67', # 0x43
# TPM error in rewritable firmware (deprecated)
'DEP_RW_TPM_ERROR': '68', # 0x44
# RW firmware in dev mode, but dev switch is off.
'RW_DEV_MISMATCH': '69', # 0x45
# Shared data error in rewritable firmware
'RW_SHARED_DATA': '70', # 0x46
# Test error from LoadKernel()
'RW_TEST_LK': '71', # 0x47
# No bootable disk found (deprecated)
'DEP_RW_NO_DISK': '72', # 0x48
# Rebooting did not correct TPM_E_FAIL or TPM_E_FAILEDSELFTEST
'TPM_E_FAIL': '73', # 0x49
# TPM setup error in read-only firmware
'RO_TPM_S_ERROR': '80', # 0x50
# TPM write error in read-only firmware
'RO_TPM_W_ERROR': '81', # 0x51
# TPM lock error in read-only firmware
'RO_TPM_L_ERROR': '82', # 0x52
# TPM update error in read-only firmware
'RO_TPM_U_ERROR': '83', # 0x53
# TPM read error in rewritable firmware
'RW_TPM_R_ERROR': '84', # 0x54
# TPM write error in rewritable firmware
'RW_TPM_W_ERROR': '85', # 0x55
# TPM lock error in rewritable firmware
'RW_TPM_L_ERROR': '86', # 0x56
# EC software sync unable to get EC image hash
'EC_HASH_FAILED': '87', # 0x57
# EC software sync invalid image hash size
'EC_HASH_SIZE': '88', # 0x58
# Unspecified error while trying to load kernel
'LK_UNSPECIFIED': '89', # 0x59
# No bootable storage device in system
'RW_NO_DISK': '90', # 0x5A
# No bootable kernel found on disk
'RW_NO_KERNEL': '91', # 0x5B
# Unspecified/unknown error in rewritable firmware
'RW_UNSPECIFIED': '127', # 0x7F
# DM-verity error
'KE_DM_VERITY': '129', # 0x81
# Unspecified/unknown error in kernel
'KE_UNSPECIFIED': '191', # 0xBF
# Recovery mode test from user-mode
'US_TEST': '193', # 0xC1
# Unspecified/unknown error in user-mode
'US_UNSPECIFIED': '255', # 0xFF
}
# GBB flags, copied from:
# vboot_reference/firmware/2lib/include/2gbb_flags.h
GBB_FLAG_DEV_SCREEN_SHORT_DELAY = 1 << 0
GBB_FLAG_LOAD_OPTION_ROMS = 1 << 1
GBB_FLAG_ENABLE_ALTERNATE_OS = 1 << 2
GBB_FLAG_FORCE_DEV_SWITCH_ON = 1 << 3
GBB_FLAG_FORCE_DEV_BOOT_USB = 1 << 4
GBB_FLAG_DISABLE_FW_ROLLBACK_CHECK = 1 << 5
GBB_FLAG_ENTER_TRIGGERS_TONORM = 1 << 6
GBB_FLAG_FORCE_DEV_BOOT_ALTFW = 1 << 7
GBB_FLAG_RUNNING_FAFT = 1 << 8
GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC = 1 << 9
GBB_FLAG_DEFAULT_DEV_BOOT_ALTFW = 1 << 10
GBB_FLAG_DISABLE_AUXFW_SOFTWARE_SYNC = 1 << 11
GBB_FLAG_DISABLE_LID_SHUTDOWN = 1 << 12
GBB_FLAG_DEPRECATED_FORCE_DEV_BOOT_FASTBOOT_FULL_CAP = 1 << 13
GBB_FLAG_FORCE_MANUAL_RECOVERY = 1 << 14
GBB_FLAG_DISABLE_FWMP = 1 << 15
GBB_FLAG_ENABLE_UDC = 1 << 16
# Firmware preamble flags, copied from:
# vboot_reference/firmware/include/vboot_struct.h
PREAMBLE_USE_RO_NORMAL = 0x00000001