Daisuke Nojiri | 742fc8d | 2014-10-10 10:51:06 -0700 | [diff] [blame] | 1 | ## This file is part of the coreboot project. |
| 2 | ## |
| 3 | ## Copyright (C) 2014 The ChromiumOS Authors. All rights reserved. |
| 4 | ## |
| 5 | ## This program is free software; you can redistribute it and/or modify |
| 6 | ## it under the terms of the GNU General Public License as published by |
| 7 | ## the Free Software Foundation; version 2 of the License. |
| 8 | ## |
| 9 | ## This program is distributed in the hope that it will be useful, |
| 10 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 11 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 12 | ## GNU General Public License for more details. |
| 13 | ## |
Daisuke Nojiri | 742fc8d | 2014-10-10 10:51:06 -0700 | [diff] [blame] | 14 | |
Furquan Shaikh | 2a12e2e | 2016-07-25 11:48:03 -0700 | [diff] [blame] | 15 | config VBOOT_VBNV_OFFSET |
| 16 | hex |
| 17 | default 0x26 |
| 18 | depends on PC80_SYSTEM |
| 19 | help |
| 20 | CMOS offset for VbNv data. This value must match cmos.layout |
| 21 | in the mainboard directory, minus 14 bytes for the RTC. |
| 22 | |
| 23 | config VBOOT_VBNV_CMOS |
| 24 | bool "Vboot non-volatile storage in CMOS." |
| 25 | default n |
| 26 | help |
| 27 | VBNV is stored in CMOS |
| 28 | |
| 29 | config VBOOT_VBNV_CMOS_BACKUP_TO_FLASH |
| 30 | bool "Back up Vboot non-volatile storage from CMOS to flash." |
| 31 | default n |
Aaron Durbin | b18a666 | 2016-08-12 12:48:58 -0500 | [diff] [blame] | 32 | depends on VBOOT_VBNV_CMOS && BOOT_DEVICE_SUPPORTS_WRITES |
Furquan Shaikh | 2a12e2e | 2016-07-25 11:48:03 -0700 | [diff] [blame] | 33 | help |
| 34 | Vboot non-volatile storage data will be backed up from CMOS to flash |
| 35 | and restored from flash if the CMOS is invalid due to power loss. |
| 36 | |
| 37 | config VBOOT_VBNV_EC |
| 38 | bool "Vboot non-volatile storage in EC." |
| 39 | default n |
| 40 | help |
| 41 | VBNV is stored in EC |
| 42 | |
| 43 | config VBOOT_VBNV_FLASH |
| 44 | def_bool n |
Aaron Durbin | b18a666 | 2016-08-12 12:48:58 -0500 | [diff] [blame] | 45 | depends on BOOT_DEVICE_SUPPORTS_WRITES |
Furquan Shaikh | 2a12e2e | 2016-07-25 11:48:03 -0700 | [diff] [blame] | 46 | help |
| 47 | VBNV is stored in flash storage |
| 48 | |
Aaron Durbin | 57e3728 | 2015-04-28 16:17:25 -0500 | [diff] [blame] | 49 | config VBOOT_STARTS_IN_BOOTBLOCK |
Aaron Durbin | d2ab4e4 | 2015-05-08 16:01:31 -0500 | [diff] [blame] | 50 | bool "Vboot starts verifying in bootblock" |
Aaron Durbin | 57e3728 | 2015-04-28 16:17:25 -0500 | [diff] [blame] | 51 | default n |
Furquan Shaikh | 2a12e2e | 2016-07-25 11:48:03 -0700 | [diff] [blame] | 52 | depends on VBOOT |
Aaron Durbin | 57e3728 | 2015-04-28 16:17:25 -0500 | [diff] [blame] | 53 | help |
| 54 | Firmware verification happens during or at the end of bootblock. |
| 55 | |
| 56 | config VBOOT_STARTS_IN_ROMSTAGE |
Aaron Durbin | d2ab4e4 | 2015-05-08 16:01:31 -0500 | [diff] [blame] | 57 | bool "Vboot starts verifying in romstage" |
Aaron Durbin | 57e3728 | 2015-04-28 16:17:25 -0500 | [diff] [blame] | 58 | default n |
Furquan Shaikh | 2a12e2e | 2016-07-25 11:48:03 -0700 | [diff] [blame] | 59 | depends on VBOOT && !VBOOT_STARTS_IN_BOOTBLOCK |
Aaron Durbin | 57e3728 | 2015-04-28 16:17:25 -0500 | [diff] [blame] | 60 | help |
| 61 | Firmware verification happens during or at the end of romstage. |
| 62 | |
Furquan Shaikh | 2a12e2e | 2016-07-25 11:48:03 -0700 | [diff] [blame] | 63 | config VBOOT_MOCK_SECDATA |
Daisuke Nojiri | 5d302c7 | 2015-04-09 08:18:22 -0700 | [diff] [blame] | 64 | bool "Mock secdata for firmware verification" |
| 65 | default n |
Furquan Shaikh | 2a12e2e | 2016-07-25 11:48:03 -0700 | [diff] [blame] | 66 | depends on VBOOT |
Daisuke Nojiri | 5d302c7 | 2015-04-09 08:18:22 -0700 | [diff] [blame] | 67 | help |
Furquan Shaikh | 2a12e2e | 2016-07-25 11:48:03 -0700 | [diff] [blame] | 68 | Enabling VBOOT_MOCK_SECDATA will mock secdata for the firmware |
Daisuke Nojiri | 5d302c7 | 2015-04-09 08:18:22 -0700 | [diff] [blame] | 69 | verification to avoid access to a secdata storage (typically TPM). |
| 70 | All operations for a secdata storage will be successful. This option |
| 71 | can be used during development when a TPM is not present or broken. |
| 72 | THIS SHOULD NOT BE LEFT ON FOR PRODUCTION DEVICES. |
| 73 | |
Vadim Bendebury | 30773d2 | 2015-03-20 16:11:13 -0700 | [diff] [blame] | 74 | config VBOOT_DISABLE_DEV_ON_RECOVERY |
| 75 | bool "Disable dev mode on recovery requests" |
| 76 | default n |
Furquan Shaikh | 2a12e2e | 2016-07-25 11:48:03 -0700 | [diff] [blame] | 77 | depends on VBOOT |
Vadim Bendebury | 30773d2 | 2015-03-20 16:11:13 -0700 | [diff] [blame] | 78 | help |
| 79 | When this option is enabled, the Chrome OS device leaves the |
| 80 | developer mode as soon as recovery request is detected. This is |
| 81 | handy on embedded devices with limited input capabilities. |
Patrick Georgi | efc6aa0 | 2015-04-27 18:13:50 +0200 | [diff] [blame] | 82 | |
Aaron Durbin | 57e3728 | 2015-04-28 16:17:25 -0500 | [diff] [blame] | 83 | config SEPARATE_VERSTAGE |
Aaron Durbin | d2ab4e4 | 2015-05-08 16:01:31 -0500 | [diff] [blame] | 84 | bool "Vboot verification is built into a separate stage" |
Patrick Georgi | efc6aa0 | 2015-04-27 18:13:50 +0200 | [diff] [blame] | 85 | default n |
Furquan Shaikh | 2a12e2e | 2016-07-25 11:48:03 -0700 | [diff] [blame] | 86 | depends on VBOOT |
Patrick Georgi | efc6aa0 | 2015-04-27 18:13:50 +0200 | [diff] [blame] | 87 | |
Aaron Durbin | 57e3728 | 2015-04-28 16:17:25 -0500 | [diff] [blame] | 88 | config RETURN_FROM_VERSTAGE |
Aaron Durbin | d2ab4e4 | 2015-05-08 16:01:31 -0500 | [diff] [blame] | 89 | bool "The separate verification stage returns to its caller" |
Aaron Durbin | 57e3728 | 2015-04-28 16:17:25 -0500 | [diff] [blame] | 90 | default n |
| 91 | depends on SEPARATE_VERSTAGE |
| 92 | help |
| 93 | If this is set, the verstage returns back to the calling stage instead |
| 94 | of exiting to the succeeding stage so that the verstage space can be |
Elyes HAOUAS | 2a60026 | 2016-07-30 16:18:46 +0200 | [diff] [blame] | 95 | reused by the succeeding stage. This is useful if a RAM space is too |
Aaron Durbin | 57e3728 | 2015-04-28 16:17:25 -0500 | [diff] [blame] | 96 | small to fit both the verstage and the succeeding stage. |
Aaron Durbin | 5abcba7 | 2015-04-28 16:02:17 -0500 | [diff] [blame] | 97 | |
Aaron Durbin | 3c96e80 | 2015-10-01 16:27:55 -0500 | [diff] [blame] | 98 | config CHIPSET_PROVIDES_VERSTAGE_MAIN_SYMBOL |
| 99 | bool "The chipset provides the main() entry point for verstage" |
| 100 | default n |
| 101 | depends on SEPARATE_VERSTAGE |
| 102 | help |
| 103 | The chipset code provides their own main() entry point. |
| 104 | |
Aaron Durbin | 0e571fd | 2015-05-08 17:14:15 -0500 | [diff] [blame] | 105 | config VBOOT_DYNAMIC_WORK_BUFFER |
| 106 | bool "Vboot's work buffer is dynamically allocated." |
Aaron Durbin | 75c51d9 | 2015-09-29 16:31:20 -0500 | [diff] [blame] | 107 | default y if ARCH_ROMSTAGE_X86_32 && !SEPARATE_VERSTAGE |
Aaron Durbin | 0e571fd | 2015-05-08 17:14:15 -0500 | [diff] [blame] | 108 | default n |
Furquan Shaikh | 2a12e2e | 2016-07-25 11:48:03 -0700 | [diff] [blame] | 109 | depends on VBOOT |
Aaron Durbin | 0e571fd | 2015-05-08 17:14:15 -0500 | [diff] [blame] | 110 | help |
| 111 | This option is used when there isn't enough pre-main memory |
Elyes HAOUAS | 2a60026 | 2016-07-30 16:18:46 +0200 | [diff] [blame] | 112 | RAM to allocate the vboot work buffer. That means vboot verification |
Aaron Durbin | 0e571fd | 2015-05-08 17:14:15 -0500 | [diff] [blame] | 113 | is after memory init and requires main memory to back the work |
| 114 | buffer. |
Furquan Shaikh | 85aa135 | 2016-07-22 08:56:43 -0700 | [diff] [blame] | 115 | |
| 116 | config VBOOT_SAVE_RECOVERY_REASON_ON_REBOOT |
| 117 | bool |
| 118 | default n |
Furquan Shaikh | 2a12e2e | 2016-07-25 11:48:03 -0700 | [diff] [blame] | 119 | depends on VBOOT |
Furquan Shaikh | 85aa135 | 2016-07-22 08:56:43 -0700 | [diff] [blame] | 120 | help |
| 121 | This option ensures that the recovery request is not lost because of |
| 122 | reboots caused after vboot verification is run. e.g. reboots caused by |
| 123 | FSP components on Intel platforms. |
Furquan Shaikh | 2a12e2e | 2016-07-25 11:48:03 -0700 | [diff] [blame] | 124 | |
| 125 | config VBOOT_OPROM_MATTERS |
| 126 | bool "Video option ROM matters (= can skip display init)" |
| 127 | default n |
| 128 | depends on VBOOT |
| 129 | help |
| 130 | Set this option to indicate to vboot that this platform will skip its |
| 131 | display initialization on a normal (non-recovery, non-developer) boot. |
| 132 | Vboot calls this "oprom matters" because on x86 devices this |
| 133 | traditionally meant that the video option ROM will not be loaded, but |
| 134 | it works functionally the same for other platforms that can skip their |
| 135 | native display initialization code instead. |
| 136 | |
Furquan Shaikh | b038f41 | 2016-11-07 23:47:11 -0800 | [diff] [blame] | 137 | config VBOOT_HAS_REC_HASH_SPACE |
| 138 | bool |
| 139 | default n |
| 140 | depends on VBOOT |
| 141 | help |
| 142 | Set this option to indicate to vboot that recovery data hash space |
| 143 | is present in TPM. |
| 144 | |
Furquan Shaikh | 2a12e2e | 2016-07-25 11:48:03 -0700 | [diff] [blame] | 145 | config VBOOT |
| 146 | bool "Verify firmware with vboot." |
| 147 | default n |
Julius Werner | 4157bd8 | 2016-08-15 16:10:27 -0700 | [diff] [blame] | 148 | select TPM if !MAINBOARD_HAS_TPM2 |
| 149 | select TPM2 if MAINBOARD_HAS_TPM2 |
| 150 | select TPM_INIT_FAILURE_IS_FATAL if PC80_SYSTEM && LPC_TPM |
| 151 | select SKIP_TPM_STARTUP_ON_NORMAL_BOOT if PC80_SYSTEM && LPC_TPM |
Furquan Shaikh | 2a12e2e | 2016-07-25 11:48:03 -0700 | [diff] [blame] | 152 | depends on HAVE_HARD_RESET |
| 153 | help |
| 154 | Enabling VBOOT will use vboot to verify the components of the firmware |
| 155 | (stages, payload, etc). |