blob: e67c108d4afa13e4475b253a59844d20483568bb [file] [log] [blame]
Daisuke Nojiri742fc8d2014-10-10 10:51:06 -07001## 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 Nojiri742fc8d2014-10-10 10:51:06 -070014
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -070015config 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
23config VBOOT_VBNV_CMOS
24 bool "Vboot non-volatile storage in CMOS."
25 default n
26 help
27 VBNV is stored in CMOS
28
29config VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
30 bool "Back up Vboot non-volatile storage from CMOS to flash."
31 default n
Aaron Durbinb18a6662016-08-12 12:48:58 -050032 depends on VBOOT_VBNV_CMOS && BOOT_DEVICE_SUPPORTS_WRITES
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -070033 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
37config VBOOT_VBNV_EC
38 bool "Vboot non-volatile storage in EC."
39 default n
40 help
41 VBNV is stored in EC
42
43config VBOOT_VBNV_FLASH
44 def_bool n
Aaron Durbinb18a6662016-08-12 12:48:58 -050045 depends on BOOT_DEVICE_SUPPORTS_WRITES
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -070046 help
47 VBNV is stored in flash storage
48
Aaron Durbin57e37282015-04-28 16:17:25 -050049config VBOOT_STARTS_IN_BOOTBLOCK
Aaron Durbind2ab4e42015-05-08 16:01:31 -050050 bool "Vboot starts verifying in bootblock"
Aaron Durbin57e37282015-04-28 16:17:25 -050051 default n
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -070052 depends on VBOOT
Aaron Durbin57e37282015-04-28 16:17:25 -050053 help
54 Firmware verification happens during or at the end of bootblock.
55
56config VBOOT_STARTS_IN_ROMSTAGE
Aaron Durbind2ab4e42015-05-08 16:01:31 -050057 bool "Vboot starts verifying in romstage"
Aaron Durbin57e37282015-04-28 16:17:25 -050058 default n
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -070059 depends on VBOOT && !VBOOT_STARTS_IN_BOOTBLOCK
Aaron Durbin57e37282015-04-28 16:17:25 -050060 help
61 Firmware verification happens during or at the end of romstage.
62
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -070063config VBOOT_MOCK_SECDATA
Daisuke Nojiri5d302c72015-04-09 08:18:22 -070064 bool "Mock secdata for firmware verification"
65 default n
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -070066 depends on VBOOT
Daisuke Nojiri5d302c72015-04-09 08:18:22 -070067 help
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -070068 Enabling VBOOT_MOCK_SECDATA will mock secdata for the firmware
Daisuke Nojiri5d302c72015-04-09 08:18:22 -070069 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 Bendebury30773d22015-03-20 16:11:13 -070074config VBOOT_DISABLE_DEV_ON_RECOVERY
75 bool "Disable dev mode on recovery requests"
76 default n
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -070077 depends on VBOOT
Vadim Bendebury30773d22015-03-20 16:11:13 -070078 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 Georgiefc6aa02015-04-27 18:13:50 +020082
Aaron Durbin57e37282015-04-28 16:17:25 -050083config SEPARATE_VERSTAGE
Aaron Durbind2ab4e42015-05-08 16:01:31 -050084 bool "Vboot verification is built into a separate stage"
Patrick Georgiefc6aa02015-04-27 18:13:50 +020085 default n
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -070086 depends on VBOOT
Patrick Georgiefc6aa02015-04-27 18:13:50 +020087
Aaron Durbin57e37282015-04-28 16:17:25 -050088config RETURN_FROM_VERSTAGE
Aaron Durbind2ab4e42015-05-08 16:01:31 -050089 bool "The separate verification stage returns to its caller"
Aaron Durbin57e37282015-04-28 16:17:25 -050090 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 HAOUAS2a600262016-07-30 16:18:46 +020095 reused by the succeeding stage. This is useful if a RAM space is too
Aaron Durbin57e37282015-04-28 16:17:25 -050096 small to fit both the verstage and the succeeding stage.
Aaron Durbin5abcba72015-04-28 16:02:17 -050097
Aaron Durbin3c96e802015-10-01 16:27:55 -050098config 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 Durbin0e571fd2015-05-08 17:14:15 -0500105config VBOOT_DYNAMIC_WORK_BUFFER
106 bool "Vboot's work buffer is dynamically allocated."
Aaron Durbin75c51d92015-09-29 16:31:20 -0500107 default y if ARCH_ROMSTAGE_X86_32 && !SEPARATE_VERSTAGE
Aaron Durbin0e571fd2015-05-08 17:14:15 -0500108 default n
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -0700109 depends on VBOOT
Aaron Durbin0e571fd2015-05-08 17:14:15 -0500110 help
111 This option is used when there isn't enough pre-main memory
Elyes HAOUAS2a600262016-07-30 16:18:46 +0200112 RAM to allocate the vboot work buffer. That means vboot verification
Aaron Durbin0e571fd2015-05-08 17:14:15 -0500113 is after memory init and requires main memory to back the work
114 buffer.
Furquan Shaikh85aa1352016-07-22 08:56:43 -0700115
116config VBOOT_SAVE_RECOVERY_REASON_ON_REBOOT
117 bool
118 default n
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -0700119 depends on VBOOT
Furquan Shaikh85aa1352016-07-22 08:56:43 -0700120 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 Shaikh2a12e2e2016-07-25 11:48:03 -0700124
125config 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 Shaikhb038f412016-11-07 23:47:11 -0800137config 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
Lee Leahy33efd982017-03-13 17:25:36 -0700145config VBOOT_SOFT_REBOOT_WORKAROUND
146 bool
147 default n
148
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -0700149config VBOOT
150 bool "Verify firmware with vboot."
151 default n
Julius Werner4157bd82016-08-15 16:10:27 -0700152 select TPM if !MAINBOARD_HAS_TPM2
153 select TPM2 if MAINBOARD_HAS_TPM2
154 select TPM_INIT_FAILURE_IS_FATAL if PC80_SYSTEM && LPC_TPM
155 select SKIP_TPM_STARTUP_ON_NORMAL_BOOT if PC80_SYSTEM && LPC_TPM
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -0700156 depends on HAVE_HARD_RESET
157 help
158 Enabling VBOOT will use vboot to verify the components of the firmware
159 (stages, payload, etc).