Elyes HAOUAS | f7b2fe6 | 2020-05-07 12:38:15 +0200 | [diff] [blame] | 1 | # SPDX-License-Identifier: GPL-2.0-only |
Daisuke Nojiri | 742fc8d | 2014-10-10 10:51:06 -0700 | [diff] [blame] | 2 | |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 3 | menu "Verified Boot (vboot)" |
Lee Leahy | 33efd98 | 2017-03-13 17:25:36 -0700 | [diff] [blame] | 4 | |
Bill XIE | cdf6f3a | 2019-12-17 15:56:43 +0800 | [diff] [blame] | 5 | config VBOOT_LIB |
| 6 | bool |
Bill XIE | cdf6f3a | 2019-12-17 15:56:43 +0800 | [diff] [blame] | 7 | help |
| 8 | Build and link the vboot library. Makes the vboot API accessible across |
| 9 | all coreboot stages, without enabling vboot verification. For verification, |
| 10 | please see the VBOOT option below. |
| 11 | |
Furquan Shaikh | 2a12e2e | 2016-07-25 11:48:03 -0700 | [diff] [blame] | 12 | config VBOOT |
| 13 | bool "Verify firmware with vboot." |
| 14 | default n |
Bill XIE | cdf6f3a | 2019-12-17 15:56:43 +0800 | [diff] [blame] | 15 | select VBOOT_LIB |
Kyösti Mälkki | f303b4f | 2021-05-27 19:33:57 +0300 | [diff] [blame] | 16 | select VBOOT_MOCK_SECDATA if !TPM |
Julius Werner | b38586f | 2020-01-14 16:25:56 -0800 | [diff] [blame] | 17 | depends on 0 = 0 # Must have a 'depends on' or board overrides will break it. |
Furquan Shaikh | 2a12e2e | 2016-07-25 11:48:03 -0700 | [diff] [blame] | 18 | help |
| 19 | Enabling VBOOT will use vboot to verify the components of the firmware |
| 20 | (stages, payload, etc). |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 21 | |
| 22 | if VBOOT |
| 23 | |
Christian Walter | 0bd84ed | 2019-07-23 10:26:30 +0200 | [diff] [blame] | 24 | comment "Anti-Rollback Protection disabled because mocking secdata is enabled." |
| 25 | depends on VBOOT_MOCK_SECDATA |
| 26 | |
Philipp Deppenwiese | a558ca9 | 2018-07-28 23:30:49 +0200 | [diff] [blame] | 27 | config VBOOT_SLOTS_RW_A |
| 28 | bool "Firmware RO + RW_A" |
| 29 | help |
| 30 | Have one update partition beside the RO partition. |
| 31 | |
| 32 | config VBOOT_SLOTS_RW_AB |
| 33 | bool "Firmware RO + RW_A + RW_B" |
| 34 | select VBOOT_SLOTS_RW_A |
| 35 | help |
| 36 | Have two update partitions beside the RO partition. |
| 37 | |
Jakub Czapiga | 967a76b | 2022-08-19 12:25:27 +0200 | [diff] [blame] | 38 | config VBOOT_CBFS_INTEGRATION |
| 39 | bool "Enable vboot and CBFS integration" |
| 40 | default n |
| 41 | depends on VBOOT_SLOTS_RW_A |
| 42 | depends on CBFS_VERIFICATION |
Julius Werner | 7a9bd2b | 2022-11-30 15:18:36 -0800 | [diff] [blame] | 43 | select INCLUDE_CONFIG_FILE # futility needs this to auto-detect signing type |
Jakub Czapiga | 967a76b | 2022-08-19 12:25:27 +0200 | [diff] [blame] | 44 | help |
| 45 | Say yes here to enable cryptographic verification of RW slots CBFS |
| 46 | metadata. This will replace body hash verification. |
| 47 | |
| 48 | This option enables integration of vboot and CBFS. Verification of RW |
| 49 | slots is performed by calculation of their CBFS metadata hash. |
| 50 | It also requires CBFS_VERIFICATION to be enabled, so that CBFS files |
| 51 | contents are correctly verified. |
| 52 | |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 53 | config VBOOT_VBNV_CMOS |
| 54 | bool |
| 55 | default n |
| 56 | depends on PC80_SYSTEM |
| 57 | help |
| 58 | VBNV is stored in CMOS |
| 59 | |
| 60 | config VBOOT_VBNV_OFFSET |
| 61 | hex |
| 62 | default 0x26 |
| 63 | depends on VBOOT_VBNV_CMOS |
| 64 | help |
| 65 | CMOS offset for VbNv data. This value must match cmos.layout |
| 66 | in the mainboard directory, minus 14 bytes for the RTC. |
| 67 | |
| 68 | config VBOOT_VBNV_CMOS_BACKUP_TO_FLASH |
| 69 | bool |
| 70 | default n |
| 71 | depends on VBOOT_VBNV_CMOS && BOOT_DEVICE_SUPPORTS_WRITES |
| 72 | help |
| 73 | Vboot non-volatile storage data will be backed up from CMOS to flash |
| 74 | and restored from flash if the CMOS is invalid due to power loss. |
| 75 | |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 76 | config VBOOT_VBNV_FLASH |
| 77 | bool |
| 78 | default n |
| 79 | depends on BOOT_DEVICE_SUPPORTS_WRITES |
| 80 | help |
| 81 | VBNV is stored in flash storage |
| 82 | |
Martin Roth | 8a3a3c8 | 2020-05-04 10:13:45 -0600 | [diff] [blame] | 83 | config VBOOT_STARTS_BEFORE_BOOTBLOCK |
| 84 | def_bool n |
| 85 | select VBOOT_SEPARATE_VERSTAGE |
| 86 | help |
| 87 | Firmware verification happens before the main processor is brought |
| 88 | online. |
| 89 | |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 90 | config VBOOT_STARTS_IN_BOOTBLOCK |
| 91 | bool |
| 92 | default n |
Arthur Heymans | 9bbfafb | 2024-02-18 14:02:35 +0100 | [diff] [blame^] | 93 | select SEPARATE_ROMSTAGE |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 94 | help |
| 95 | Firmware verification happens during the end of or right after the |
| 96 | bootblock. This implies that a static VBOOT2_WORK() buffer must be |
| 97 | allocated in memlayout. |
| 98 | |
| 99 | config VBOOT_STARTS_IN_ROMSTAGE |
| 100 | bool |
| 101 | default n |
| 102 | depends on !VBOOT_STARTS_IN_BOOTBLOCK |
| 103 | help |
| 104 | Firmware verification happens during the end of romstage (after |
Yu-Ping Wu | 214fb9b | 2020-02-14 17:16:53 +0800 | [diff] [blame] | 105 | memory initialization). This implies that the vboot work buffer is |
| 106 | in CBMEM from the start and doesn't need to be reserved in memlayout. |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 107 | |
| 108 | config VBOOT_MOCK_SECDATA |
| 109 | bool "Mock secdata for firmware verification" |
| 110 | default n |
| 111 | help |
| 112 | Enabling VBOOT_MOCK_SECDATA will mock secdata for the firmware |
| 113 | verification to avoid access to a secdata storage (typically TPM). |
| 114 | All operations for a secdata storage will be successful. This option |
| 115 | can be used during development when a TPM is not present or broken. |
| 116 | THIS SHOULD NOT BE LEFT ON FOR PRODUCTION DEVICES. |
| 117 | |
| 118 | config VBOOT_DISABLE_DEV_ON_RECOVERY |
| 119 | bool |
| 120 | default n |
| 121 | help |
Jon Murphy | c4e9045 | 2022-06-28 10:36:23 -0600 | [diff] [blame] | 122 | When this option is enabled, the ChromeOS device leaves the |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 123 | developer mode as soon as recovery request is detected. This is |
| 124 | handy on embedded devices with limited input capabilities. |
| 125 | |
| 126 | config VBOOT_SEPARATE_VERSTAGE |
| 127 | bool |
| 128 | default n |
Martin Roth | 8a3a3c8 | 2020-05-04 10:13:45 -0600 | [diff] [blame] | 129 | depends on VBOOT_STARTS_IN_BOOTBLOCK || VBOOT_STARTS_BEFORE_BOOTBLOCK |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 130 | help |
| 131 | If this option is set, vboot verification runs in a standalone stage |
| 132 | that is loaded from the bootblock and exits into romstage. If it is |
| 133 | not set, the verification code is linked directly into the bootblock |
| 134 | or the romstage and runs as part of that stage (cf. related options |
| 135 | VBOOT_STARTS_IN_BOOTBLOCK/_ROMSTAGE and VBOOT_RETURN_FROM_VERSTAGE). |
| 136 | |
| 137 | config VBOOT_RETURN_FROM_VERSTAGE |
| 138 | bool |
| 139 | default n |
| 140 | depends on VBOOT_SEPARATE_VERSTAGE |
| 141 | help |
| 142 | If this is set, the verstage returns back to the calling stage instead |
| 143 | of exiting to the succeeding stage so that the verstage space can be |
| 144 | reused by the succeeding stage. This is useful if a RAM space is too |
| 145 | small to fit both the verstage and the succeeding stage. |
| 146 | |
Joel Kitching | 6672bd8 | 2019-04-10 16:06:21 +0800 | [diff] [blame] | 147 | config VBOOT_MUST_REQUEST_DISPLAY |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 148 | bool |
Julius Werner | 9993b6f | 2019-03-28 18:01:26 -0700 | [diff] [blame] | 149 | default y if VGA_ROM_RUN |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 150 | default n |
| 151 | help |
| 152 | Set this option to indicate to vboot that this platform will skip its |
| 153 | display initialization on a normal (non-recovery, non-developer) boot. |
Joel Kitching | 6672bd8 | 2019-04-10 16:06:21 +0800 | [diff] [blame] | 154 | Unless display is specifically requested, the video option ROM is not |
| 155 | loaded, and any other native display initialization code is not run. |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 156 | |
Wim Vervoorn | e7087a1 | 2019-11-15 14:02:02 +0100 | [diff] [blame] | 157 | config VBOOT_ALWAYS_ENABLE_DISPLAY |
| 158 | bool "Force to always enable display" |
| 159 | default n |
| 160 | help |
| 161 | Set this option to indicate to vboot that display should always be enabled. |
| 162 | |
Wim Vervoorn | 50337f16 | 2020-01-14 16:18:27 +0100 | [diff] [blame] | 163 | config VBOOT_ALWAYS_ALLOW_UDC |
| 164 | bool "Always allow UDC" |
| 165 | default n |
| 166 | depends on !CHROMEOS |
| 167 | help |
| 168 | This option allows UDC to be enabled regardless of the vboot state. |
| 169 | |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 170 | config VBOOT_HAS_REC_HASH_SPACE |
| 171 | bool |
Shelley Chen | 9f8ac64 | 2020-10-16 12:20:16 -0700 | [diff] [blame] | 172 | default y if MRC_SAVE_HASH_IN_TPM && HAS_RECOVERY_MRC_CACHE |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 173 | default n |
| 174 | help |
| 175 | Set this option to indicate to vboot that recovery data hash space |
| 176 | is present in TPM. |
| 177 | |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 178 | config VBOOT_LID_SWITCH |
| 179 | bool |
| 180 | default n |
| 181 | help |
| 182 | Whether this platform has a lid switch. If it does, vboot will not |
| 183 | decrement try counters for boot failures if the lid is closed. |
| 184 | |
| 185 | config VBOOT_WIPEOUT_SUPPORTED |
| 186 | bool |
| 187 | default n |
| 188 | help |
| 189 | When this option is enabled, the firmware provides the ability to |
| 190 | signal the application the need for factory reset (a.k.a. wipe |
| 191 | out) of the device |
| 192 | |
| 193 | config VBOOT_FWID_MODEL |
| 194 | string "Firmware ID model" |
Patrick Georgi | b8fba86 | 2020-06-17 21:06:53 +0200 | [diff] [blame] | 195 | default "Google_\$(CONFIG_MAINBOARD_PART_NUMBER)" if CHROMEOS |
| 196 | default "\$(CONFIG_MAINBOARD_VENDOR)_\$(CONFIG_MAINBOARD_PART_NUMBER)" |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 197 | help |
| 198 | This is the first part of the FWID written to various regions of a |
| 199 | vboot firmware image to identify its version. |
| 200 | |
| 201 | config VBOOT_FWID_VERSION |
| 202 | string "Firmware ID version" |
Patrick Georgi | b8fba86 | 2020-06-17 21:06:53 +0200 | [diff] [blame] | 203 | default ".\$(KERNELVERSION)" |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 204 | help |
| 205 | This is the second part of the FWID written to various regions of a |
| 206 | vboot firmware image to identify its version. |
| 207 | |
Philipp Deppenwiese | 7410f8b | 2017-10-18 15:29:26 +0200 | [diff] [blame] | 208 | config VBOOT_NO_BOARD_SUPPORT |
| 209 | bool "Allow the use of vboot without board support" |
| 210 | default n |
| 211 | help |
| 212 | Enable weak functions for get_write_protect_state and |
| 213 | get_recovery_mode_switch in order to proceed with refactoring |
| 214 | of the vboot2 code base. Later on this code is removed and replaced |
| 215 | by interfaces. |
| 216 | |
Martin Roth | bbd5ee41 | 2017-10-05 13:53:16 -0600 | [diff] [blame] | 217 | config RO_REGION_ONLY |
| 218 | string "Additional files that should not be copied to RW" |
| 219 | default "" |
| 220 | help |
| 221 | Add a space delimited list of filenames that should only be in the |
| 222 | RO section. |
| 223 | |
Wim Vervoorn | a1c259b | 2019-11-01 10:47:01 +0100 | [diff] [blame] | 224 | config RW_REGION_ONLY |
| 225 | string |
| 226 | default "" |
| 227 | depends on VBOOT_SLOTS_RW_A |
| 228 | help |
| 229 | Add a space delimited list of filenames that should only be in the |
| 230 | RW sections. |
Wim Vervoorn | 114e2e8 | 2019-11-05 14:09:16 +0100 | [diff] [blame] | 231 | |
Martin Roth | 6303671 | 2020-06-25 17:20:32 -0600 | [diff] [blame] | 232 | config RWA_REGION_ONLY |
| 233 | string |
| 234 | default "" |
| 235 | depends on VBOOT_SLOTS_RW_AB |
| 236 | help |
| 237 | Add a space-delimited list of filenames that should only be in the |
| 238 | RW-A section. |
| 239 | |
| 240 | config RWB_REGION_ONLY |
| 241 | string |
| 242 | default "" |
| 243 | depends on VBOOT_SLOTS_RW_AB |
| 244 | help |
| 245 | Add a space-delimited list of filenames that should only be in the |
| 246 | RW-B section. |
| 247 | |
Julius Werner | 40acfe7 | 2021-05-12 15:59:58 -0700 | [diff] [blame] | 248 | config CBFS_MCACHE_RW_PERCENTAGE |
| 249 | int "Percentage of CBFS metadata cache used for RW CBFS" |
| 250 | depends on !NO_CBFS_MCACHE |
| 251 | default 50 |
| 252 | help |
| 253 | The amount of the CBFS_MCACHE area that's used for the RW CBFS, in |
| 254 | percent from 0 to 100. The remaining area will be used for the RO |
| 255 | CBFS. Default is an even 50/50 split. When VBOOT is disabled, this |
| 256 | will automatically be 0 (meaning the whole MCACHE is used for RO). |
| 257 | Do NOT change this value for vboot RW updates! |
| 258 | |
Michał Żygowski | a87ab39 | 2023-04-11 16:01:14 +0200 | [diff] [blame] | 259 | config VBOOT_CLEAR_RECOVERY_IN_RAMSTAGE |
| 260 | bool "Clear the recovery request at the end of ramstage" |
| 261 | default n |
| 262 | help |
| 263 | If this option is enabled, the recovery request will be cleared and |
| 264 | saved to VBNV storage at the end of ramstage. This is useful for |
| 265 | platforms without vboot-integrated payloads, to avoid being stuck in |
| 266 | the recovery mode. |
| 267 | |
Wim Vervoorn | 114e2e8 | 2019-11-05 14:09:16 +0100 | [diff] [blame] | 268 | config VBOOT_ENABLE_CBFS_FALLBACK |
| 269 | bool |
| 270 | default n |
| 271 | depends on VBOOT_SLOTS_RW_A |
| 272 | help |
Julius Werner | 9f37647 | 2021-08-11 18:20:11 -0700 | [diff] [blame] | 273 | When this option is enabled, the CBFS code will look for a file in the |
| 274 | RO (COREBOOT) region if it isn't available in the active RW region. |
Wim Vervoorn | 114e2e8 | 2019-11-05 14:09:16 +0100 | [diff] [blame] | 275 | |
Tim Wawrzynczak | d6fc557 | 2019-10-25 14:58:15 -0600 | [diff] [blame] | 276 | config VBOOT_EARLY_EC_SYNC |
| 277 | bool |
| 278 | default n |
| 279 | depends on EC_GOOGLE_CHROMEEC |
| 280 | help |
| 281 | Enables CrOS EC software sync in romstage, before memory training |
| 282 | runs. This is useful mainly as a way to achieve full USB-PD |
| 283 | negotiation earlier in the boot flow, as the EC will only do this once |
| 284 | it has made the sysjump to its RW firmware. It should not |
| 285 | significantly impact boot time, as this operation will be performed |
| 286 | later in the boot flow if it is disabled here. |
| 287 | |
Sam McNally | eded500 | 2020-03-04 16:08:06 +1100 | [diff] [blame] | 288 | config VBOOT_EC_EFS |
| 289 | bool "Early firmware selection (EFS) EC" |
| 290 | default n |
| 291 | help |
| 292 | CrosEC can support EFS: Early Firmware Selection. If it's enabled, |
| 293 | software sync needs to also support it. This setting tells vboot to |
| 294 | perform EFS software sync. |
| 295 | |
Subrata Banik | 9479037 | 2021-06-17 19:27:12 +0530 | [diff] [blame] | 296 | config VBOOT_X86_SHA256_ACCELERATION |
| 297 | bool "Use sha extension for sha256 hash calculation" |
| 298 | default n |
| 299 | depends on ARCH_X86 |
| 300 | help |
| 301 | Use sha256msg1, sha256msg2, sha256rnds2 instruction to accelerate |
| 302 | SHA hash calculation in vboot. |
| 303 | |
Jeremy Compostella | b6dfcb7 | 2023-11-27 14:56:29 -0800 | [diff] [blame] | 304 | config VBOOT_X86_RSA_ACCELERATION |
| 305 | bool "Use SSE2 instructions for RSA signature verification" |
| 306 | default n |
| 307 | depends on ARCH_X86 |
| 308 | help |
| 309 | Use paddq, pmuludq, psrlq, punpckldq and punpcklqdq SSE2 |
| 310 | instructions to accelerate the modulus exponentiation which |
| 311 | is part of the RSA signature verification process. |
| 312 | |
Yidi Lin | bd6b81d | 2023-01-31 15:18:57 +0800 | [diff] [blame] | 313 | config VBOOT_ARMV8_CE_SHA256_ACCELERATION |
| 314 | bool "Use ARMv8 Crypto Extension for sha256 hash calculation" |
| 315 | default y if CHROMEOS |
| 316 | default n |
| 317 | depends on ARCH_ARM64 |
| 318 | help |
| 319 | Use ARMv8 Crypto Extension to accelerate SHA hash calculation in vboot. |
| 320 | |
Julius Werner | 366ceee | 2024-01-05 10:40:43 -0800 | [diff] [blame] | 321 | config VBOOT_ARM64_RSA_ACCELERATION |
| 322 | bool "Use arm64 SIMD instructions to accelerate RSA signature verification" |
| 323 | default y |
| 324 | depends on ARCH_VERSTAGE_ARM64 |
| 325 | help |
| 326 | Use arm64 SIMD instructions (NEON) to parallelize two multiplications |
| 327 | in the modulus exponentiation algorithm, which speeds up RSA signature |
| 328 | verification in vboot. This is supported on all arm64 CPUs so you'd |
| 329 | generally always want this enabled, unless your SoC is overriding |
| 330 | vboot's hwcrypto API with its own crypto accelerator IP instead (or |
| 331 | you're trying really hard to save on code size). |
| 332 | |
Karthikeyan Ramasubramanian | 4fcf13a | 2021-11-17 17:33:08 -0700 | [diff] [blame] | 333 | config VBOOT_DEFINE_WIDEVINE_COUNTERS |
| 334 | bool |
| 335 | default n |
| 336 | help |
| 337 | Set up Widevine Secure Counters in TPM NVRAM by defining space. Enabling this |
| 338 | config will only define the counter space. Counters need to be incremented |
| 339 | separately before any read operation is performed on them. |
| 340 | |
Julius Werner | 5eda52a | 2022-05-19 14:37:21 -0700 | [diff] [blame] | 341 | config VBOOT_HASH_BLOCK_SIZE |
| 342 | hex |
| 343 | default 0x400 |
| 344 | help |
| 345 | Set the default hash size. Generally 1k is reasonable, but in some |
| 346 | cases it may improve hashing speed to increase the size. |
| 347 | |
| 348 | Note that this buffer is allocated in the stack. Although the |
| 349 | build should fail if the stack size is exceeded, it's something to |
| 350 | be aware of when changing the size. |
| 351 | |
| 352 | config VBOOT_GSCVD |
| 353 | bool "Generate GSC verification data" |
| 354 | depends on TPM_GOOGLE |
| 355 | select CBFS_VERIFICATION |
| 356 | default n if TPM_GOOGLE_CR50 |
| 357 | default y |
| 358 | help |
| 359 | Generate a Google Security Chip Verification Data (GSCVD) structure on the flash to |
| 360 | allow the GSC to verify the CBFS verification anchor. Used by default with Ti50 GSCs. |
| 361 | Requires an RO_GSCVD FMAP section. |
| 362 | |
| 363 | config VBOOT_GSC_BOARD_ID |
| 364 | string |
| 365 | depends on VBOOT_GSCVD |
| 366 | default "ZZCR" |
| 367 | help |
| 368 | GSC board ID to be embedded in the GSCVD. Usually each specific mainboard variant |
| 369 | has its own. Google engineers can find these in the go/cros-dlm database ("Products"). |
Reka Norman | b9dd037 | 2023-06-05 09:54:45 +1000 | [diff] [blame] | 370 | The specific board IDs are filled in as part of the production signing process, so |
| 371 | this value is just a default and doesn't need to be set per-variant in coreboot. |
Julius Werner | 5eda52a | 2022-05-19 14:37:21 -0700 | [diff] [blame] | 372 | (Note: This is a completely separate thing from coreboot's `board_id()` function.) |
| 373 | |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 374 | menu "GBB configuration" |
| 375 | |
| 376 | config GBB_HWID |
| 377 | string "Hardware ID" |
Hung-Te Lin | 117453e | 2019-09-27 12:23:20 +0800 | [diff] [blame] | 378 | default "" |
| 379 | help |
Jon Murphy | c4e9045 | 2022-06-28 10:36:23 -0600 | [diff] [blame] | 380 | A hardware identifier for device. On ChromeOS this is used for auto |
Hung-Te Lin | 117453e | 2019-09-27 12:23:20 +0800 | [diff] [blame] | 381 | update and recovery, and will be generated when manufacturing by the |
| 382 | factory software, in a strictly defined format. |
Jon Murphy | c4e9045 | 2022-06-28 10:36:23 -0600 | [diff] [blame] | 383 | Leave empty to get a test-only ChromeOS HWID v2 string generated. |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 384 | |
| 385 | config GBB_BMPFV_FILE |
| 386 | string "Path to bmpfv image" |
| 387 | default "" |
| 388 | |
| 389 | config GBB_FLAG_DEV_SCREEN_SHORT_DELAY |
| 390 | bool "Reduce dev screen delay" |
| 391 | default n |
| 392 | |
| 393 | config GBB_FLAG_LOAD_OPTION_ROMS |
| 394 | bool "Load option ROMs" |
| 395 | default n |
| 396 | |
| 397 | config GBB_FLAG_ENABLE_ALTERNATE_OS |
Jon Murphy | c4e9045 | 2022-06-28 10:36:23 -0600 | [diff] [blame] | 398 | bool "Allow booting a non-ChromeOS kernel if dev switch is on" |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 399 | default n |
| 400 | |
| 401 | config GBB_FLAG_FORCE_DEV_SWITCH_ON |
| 402 | bool "Force dev switch on" |
| 403 | default n |
| 404 | |
| 405 | config GBB_FLAG_FORCE_DEV_BOOT_USB |
| 406 | bool "Allow booting from USB in dev mode even if dev_boot_usb=0" |
| 407 | default y |
| 408 | |
| 409 | config GBB_FLAG_DISABLE_FW_ROLLBACK_CHECK |
| 410 | bool "Disable firmware rollback protection" |
| 411 | default y |
| 412 | |
| 413 | config GBB_FLAG_ENTER_TRIGGERS_TONORM |
| 414 | bool "Return to normal boot with Enter" |
| 415 | default n |
| 416 | |
Joel Kitching | a904fd6 | 2021-02-19 18:10:58 +0800 | [diff] [blame] | 417 | config GBB_FLAG_FORCE_DEV_BOOT_ALTFW |
| 418 | bool "Allow booting altfw in dev mode even if dev_boot_altfw=0" |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 419 | default n |
| 420 | |
Joel Kitching | 984d0c6 | 2019-12-04 15:33:57 +0800 | [diff] [blame] | 421 | config GBB_FLAG_RUNNING_FAFT |
| 422 | bool "Running FAFT tests; used as a hint to disable other debug features" |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 423 | default n |
| 424 | |
| 425 | config GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC |
| 426 | bool "Disable EC software sync" |
| 427 | default n |
| 428 | |
Joel Kitching | a904fd6 | 2021-02-19 18:10:58 +0800 | [diff] [blame] | 429 | config GBB_FLAG_DEFAULT_DEV_BOOT_ALTFW |
| 430 | bool "Default to booting altfw in dev mode" |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 431 | default n |
| 432 | |
| 433 | config GBB_FLAG_DISABLE_PD_SOFTWARE_SYNC |
| 434 | bool "Disable PD software sync" |
| 435 | default n |
| 436 | |
| 437 | config GBB_FLAG_DISABLE_LID_SHUTDOWN |
| 438 | bool "Disable shutdown on closed lid" |
| 439 | default n |
| 440 | |
Julius Werner | ae42385 | 2018-03-23 21:02:48 -0700 | [diff] [blame] | 441 | config GBB_FLAG_FORCE_MANUAL_RECOVERY |
| 442 | bool "Always assume manual recovery in recovery mode" |
| 443 | default n |
| 444 | |
| 445 | config GBB_FLAG_DISABLE_FWMP |
| 446 | bool "Disable Firmware Management Parameters (FWMP)" |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 447 | default n |
| 448 | |
Eric Lai | 1cf2427 | 2021-01-29 16:14:37 +0800 | [diff] [blame] | 449 | config GBB_FLAG_ENABLE_UDC |
| 450 | bool "Enable USB Device Controller" |
| 451 | default n |
| 452 | |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 453 | endmenu # GBB |
| 454 | |
| 455 | menu "Vboot Keys" |
| 456 | config VBOOT_ROOT_KEY |
| 457 | string "Root key (public)" |
Patrick Georgi | b8fba86 | 2020-06-17 21:06:53 +0200 | [diff] [blame] | 458 | default "\$(VBOOT_SOURCE)/tests/devkeys/root_key.vbpubk" |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 459 | |
| 460 | config VBOOT_RECOVERY_KEY |
| 461 | string "Recovery key (public)" |
Patrick Georgi | b8fba86 | 2020-06-17 21:06:53 +0200 | [diff] [blame] | 462 | default "\$(VBOOT_SOURCE)/tests/devkeys/recovery_key.vbpubk" |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 463 | |
| 464 | config VBOOT_FIRMWARE_PRIVKEY |
| 465 | string "Firmware key (private)" |
Patrick Georgi | b8fba86 | 2020-06-17 21:06:53 +0200 | [diff] [blame] | 466 | default "\$(VBOOT_SOURCE)/tests/devkeys/firmware_data_key.vbprivk" |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 467 | |
| 468 | config VBOOT_KERNEL_KEY |
| 469 | string "Kernel subkey (public)" |
Patrick Georgi | b8fba86 | 2020-06-17 21:06:53 +0200 | [diff] [blame] | 470 | default "\$(VBOOT_SOURCE)/tests/devkeys/kernel_subkey.vbpubk" |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 471 | |
| 472 | config VBOOT_KEYBLOCK |
| 473 | string "Keyblock to use for the RW regions" |
Patrick Georgi | b8fba86 | 2020-06-17 21:06:53 +0200 | [diff] [blame] | 474 | default "\$(VBOOT_SOURCE)/tests/devkeys/firmware.keyblock" |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 475 | |
| 476 | config VBOOT_KEYBLOCK_VERSION |
| 477 | int "Keyblock version number" |
| 478 | default 1 |
| 479 | |
| 480 | config VBOOT_KEYBLOCK_PREAMBLE_FLAGS |
| 481 | hex "Keyblock preamble flags" |
| 482 | default 0x0 |
| 483 | |
Julius Werner | 5eda52a | 2022-05-19 14:37:21 -0700 | [diff] [blame] | 484 | if VBOOT_GSCVD |
Martin Roth | 8839b7f | 2020-10-28 11:38:57 -0600 | [diff] [blame] | 485 | |
Julius Werner | 5eda52a | 2022-05-19 14:37:21 -0700 | [diff] [blame] | 486 | config VBOOT_GSCVD_ROOT_PUBKEY |
| 487 | string "GSCVD root key (public)" |
| 488 | default "\$(VBOOT_SOURCE)/tests/devkeys/arv_root.vbpubk" |
| 489 | |
| 490 | config VBOOT_GSCVD_PLATFORM_PRIVKEY |
| 491 | string "GSCVD platform key (private)" |
| 492 | default "\$(VBOOT_SOURCE)/tests/devkeys/arv_platform.vbprivk" |
| 493 | |
| 494 | config VBOOT_GSCVD_PLATFORM_KEYBLOCK |
| 495 | string "GSCVD platform keyblock (public)" |
| 496 | default "\$(VBOOT_SOURCE)/tests/devkeys/arv_platform.keyblock" |
| 497 | |
| 498 | endif # VBOOT_GSCVD |
Martin Roth | 8839b7f | 2020-10-28 11:38:57 -0600 | [diff] [blame] | 499 | |
Julius Werner | 58c3938 | 2017-02-13 17:53:29 -0800 | [diff] [blame] | 500 | endmenu # Keys |
| 501 | endif # VBOOT |
| 502 | endmenu # Verified Boot (vboot) |