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