util/docker/doc.coreboot.org: Allow git to work in envs owned by root
[coreboot2.git] / src / security / tpm / Kconfig
blob377d6dcb88799cc2bb5c2d9b5c44cc1396c9e90d
1 # SPDX-License-Identifier: GPL-2.0-only
3 source "src/security/tpm/tss/vendor/cr50/Kconfig"
5 menu "Trusted Platform Module"
7 config NO_TPM
8         bool
9         default y if !TPM1 && !TPM2
10         help
11           No TPM support. Select this option if your system doesn't have a TPM,
12           or if you don't want coreboot to communicate with your TPM in any way.
13           (If your board doesn't offer a TPM interface, this will be the only
14           possible option.)
16 config TPM1
17         bool "TPM 1.2"
18         depends on I2C_TPM || MEMORY_MAPPED_TPM || SPI_TPM || CRB_TPM
19         default y if MAINBOARD_HAS_TPM1
20         help
21           Select this option if your TPM uses the older TPM 1.2 protocol.
23 config TPM2
24         bool "TPM 2.0"
25         depends on I2C_TPM || MEMORY_MAPPED_TPM || SPI_TPM || CRB_TPM
26         default y if MAINBOARD_HAS_TPM2
27         help
28           Select this option if your TPM uses the newer TPM 2.0 protocol.
30 config TPM
31         bool
32         default y
33         depends on TPM1 || TPM2
35 config MAINBOARD_HAS_TPM1
36         bool
37         help
38           This option can be selected by a mainboard to represent that its TPM
39           always uses the 1.2 protocol, and that it should be on by default.
41 config MAINBOARD_HAS_TPM2
42         bool
43         help
44           This option can be selected by a mainboard to represent that its TPM
45           always uses the 2.0 protocol, and that it should be on by default.
47 config TPM_DEACTIVATE
48         bool "Deactivate TPM (for TPM1)"
49         default n
50         depends on !VBOOT
51         depends on TPM1
52         help
53           Deactivate TPM by issuing deactivate command.
55 config DEBUG_TPM
56         bool "Output verbose TPM debug messages"
57         default n
58         select DRIVER_TPM_DISPLAY_TIS_BYTES if I2C_TPM
59         depends on TPM
60         help
61           This option enables additional TPM related debug messages.
63 config TPM_STARTUP_IGNORE_POSTINIT
64         bool
65         help
66           Select this to ignore POSTINIT INVALID return codes on TPM
67           startup. This is useful on platforms where a previous stage
68           issued a TPM startup. Examples of use cases are Intel TXT
69           or VBOOT on the Intel Arrandale processor, which issues a
70           CPU-only reset during the romstage.
72 config TPM_MEASURED_BOOT
73         bool "Enable Measured Boot"
74         default n
75         select VBOOT_LIB
76         depends on TPM
77         depends on !VBOOT_RETURN_FROM_VERSTAGE
78         help
79           Enables measured boot (experimental)
81 choice
82         prompt "TPM event log format"
83         depends on TPM_MEASURED_BOOT
84         default TPM_LOG_TPM1 if TPM1
85         default TPM_LOG_TPM2 if TPM2
87 config TPM_LOG_CB
88         bool "coreboot's custom format"
89         help
90           Custom coreboot-specific format of the log derived from TPM1 log format.
91 config TPM_LOG_TPM1
92         bool "TPM 1.2 format"
93         depends on TPM1 && !TPM2
94         help
95           Log per TPM 1.2 specification.
96           See "TCG PC Client Specific Implementation Specification for Conventional BIOS".
97 config TPM_LOG_TPM2
98         bool "TPM 2.0 format"
99         depends on TPM1 || TPM2
100         help
101           Log per TPM 2.0 specification.
102           See "TCG PC Client Platform Firmware Profile Specification".
104 endchoice
106 choice
107         prompt "TPM2 hashing algorithm"
108         depends on TPM_MEASURED_BOOT && TPM_LOG_TPM2
109         default TPM_HASH_SHA1 if TPM1
110         default TPM_HASH_SHA256 if TPM2
112 config TPM_HASH_SHA1
113         bool "SHA1"
114 config TPM_HASH_SHA256
115         bool "SHA256"
116 config TPM_HASH_SHA384
117         bool "SHA384"
118 config TPM_HASH_SHA512
119         bool "SHA512"
121 endchoice
123 config TPM_MEASURED_BOOT_INIT_BOOTBLOCK
124         bool
125         depends on TPM_MEASURED_BOOT && !VBOOT
126         help
127           Initialize TPM inside the bootblock instead of ramstage. This is
128           useful with some form of hardware assisted root of trust
129           measurement like Intel TXT/CBnT.
131 config TPM_MEASURED_BOOT_RUNTIME_DATA
132         string "Runtime data whitelist"
133         default ""
134         depends on TPM_MEASURED_BOOT
135         help
136           Runtime data whitelist of cbfs filenames. Needs to be a
137           space delimited list
139 config PCR_BOOT_MODE
140         int
141         default 0 if CHROMEOS
142         default 1
144 config PCR_HWID
145         int
146         default 1
148 config PCR_SRTM
149         int
150         default 2
152 config PCR_FW_VER
153         int
154         default 10
156 # PCR for measuring data which changes during runtime
157 # e.g. CMOS, NVRAM...
158 config PCR_RUNTIME_DATA
159         int
160         default 3
162 endmenu # Trusted Platform Module (tpm)
164 config TPM_SETUP_HIBERNATE_ON_ERR
165         bool
166         depends on EC_GOOGLE_CHROMEEC
167         default y
168         help
169           Select this to force a device to hibernate on the next AP shutdown when a TPM
170           setup error occurs. This will cause a cold boot of the system and offer an
171           opportunity to recover the TPM should it be hung. This is only effective if
172           the Z-State brings the power rail down.