xref: /aosp_15_r20/external/vboot_reference/firmware/2lib/include/2gbb_flags.h (revision 8617a60d3594060b7ecbd21bc622a7c14f3cf2bc)
1 /* Copyright 2019 The ChromiumOS Authors
2  * Use of this source code is governed by a BSD-style license that can be
3  * found in the LICENSE file.
4  *
5  * Flags for vb2_gbb_header.flags.
6  *
7  * Should be imported externally via vb2_api.h.
8  */
9 
10 #ifndef VBOOT_REFERENCE_2GBB_FLAGS_H_
11 #define VBOOT_REFERENCE_2GBB_FLAGS_H_
12 
13 #include "2return_codes.h"
14 
15 enum vb2_gbb_flag {
16 	/*
17 	 * Reduce the dev screen delay to 2 sec from 30 sec to speed up
18 	 * factory.
19 	 */
20 	VB2_GBB_FLAG_DEV_SCREEN_SHORT_DELAY = 1 << 0,
21 
22 	/*
23 	 * BIOS should load option ROMs from arbitrary PCI devices. We'll never
24 	 * enable this ourselves because it executes non-verified code, but if
25 	 * a customer wants to void their warranty and set this flag in the
26 	 * read-only flash, they should be able to do so.
27 	 *
28 	 * (TODO: Currently not supported. Mark as deprecated/unused?)
29 	 */
30 	VB2_GBB_FLAG_LOAD_OPTION_ROMS = 1 << 1,
31 
32 	/*
33 	 * The factory flow may need the BIOS to boot a non-ChromeOS kernel if
34 	 * the dev-switch is on. This flag allows that.
35 	 *
36 	 * (TODO: Currently not supported. Mark as deprecated/unused?)
37 	 */
38 	VB2_GBB_FLAG_ENABLE_ALTERNATE_OS = 1 << 2,
39 
40 	/*
41 	 * Force dev switch on, regardless of physical/keyboard dev switch
42 	 * position.
43 	 */
44 	VB2_GBB_FLAG_FORCE_DEV_SWITCH_ON = 1 << 3,
45 
46 	/*
47 	 * Allow booting from external disk in dev mode even if
48 	 * dev_boot_usb=0.
49 	 */
50 	VB2_GBB_FLAG_FORCE_DEV_BOOT_USB = 1 << 4,
51 
52 	/* Disable firmware rollback protection. */
53 	VB2_GBB_FLAG_DISABLE_FW_ROLLBACK_CHECK = 1 << 5,
54 
55 	/* Allow Enter key to trigger dev->tonorm screen transition */
56 	VB2_GBB_FLAG_ENTER_TRIGGERS_TONORM = 1 << 6,
57 
58 	/* Allow booting Legacy OSes in dev mode even if dev_boot_altfw=0. */
59 	VB2_GBB_FLAG_FORCE_DEV_BOOT_ALTFW = 1 << 7,
60 
61 	/*
62 	 * This flag must never be used by anyone for any reason. It was created to
63 	 * disable certain debugging features in vendor provided blobs so that they
64 	 * could be used while running FAFT, but the flag has been misused elsewhere
65 	 * and is now deprecated.
66 	 * TODO: Remove VB2_GBB_FLAG_RUNNING_FAFT
67 	 */
68 	VB2_GBB_FLAG_DEPRECATED_RUNNING_FAFT = 1 << 8,
69 	VB2_GBB_FLAG_RUNNING_FAFT = 1 << 8,
70 
71 	/* Disable EC software sync */
72 	VB2_GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC = 1 << 9,
73 
74 	/* Default to booting legacy OS when dev screen times out */
75 	VB2_GBB_FLAG_DEFAULT_DEV_BOOT_ALTFW = 1 << 10,
76 
77 	/* Disable auxiliary firmware (auxfw) software sync */
78 	VB2_GBB_FLAG_DISABLE_AUXFW_SOFTWARE_SYNC = 1 << 11,
79 
80 	/* Disable shutdown on lid closed */
81 	VB2_GBB_FLAG_DISABLE_LID_SHUTDOWN = 1 << 12,
82 
83 	/*
84 	 * Allow full fastboot capability in firmware even if
85 	 * dev_boot_fastboot_full_cap=0.  Deprecated; see chromium:995172.
86 	 */
87 	VB2_GBB_FLAG_DEPRECATED_FORCE_DEV_BOOT_FASTBOOT_FULL_CAP = 1 << 13,
88 
89 	/* Recovery mode always assumes manual recovery, even if EC_IN_RW=1 */
90 	VB2_GBB_FLAG_FORCE_MANUAL_RECOVERY = 1 << 14,
91 
92 	/* Disable FWMP */
93 	VB2_GBB_FLAG_DISABLE_FWMP = 1 << 15,
94 
95 	/* Enable USB Device Controller */
96 	VB2_GBB_FLAG_ENABLE_UDC = 1 << 16,
97 
98 	/* Enforce CSE SYNC, even if current CSE is same as CBFS CSE */
99 	VB2_GBB_FLAG_FORCE_CSE_SYNC = 1 << 17,
100 };
101 
102 vb2_error_t vb2_get_gbb_flag_description(enum vb2_gbb_flag flag,
103 					 const char **name,
104 					 const char **description);
105 
106 #endif  /* VBOOT_REFERENCE_2GBB_FLAGS_H_ */
107