2020-05-07 12:38:15 +02:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
2017-10-18 17:13:07 +02:00
|
|
|
|
2018-02-27 19:40:52 +01:00
|
|
|
source "src/security/tpm/tss/vendor/cr50/Kconfig"
|
|
|
|
|
2017-10-18 17:13:07 +02:00
|
|
|
menu "Trusted Platform Module"
|
|
|
|
|
2018-02-27 19:40:52 +01:00
|
|
|
config TPM1
|
2017-10-18 17:13:07 +02:00
|
|
|
bool
|
2018-02-27 19:40:52 +01:00
|
|
|
default y if MAINBOARD_HAS_TPM1 || USER_TPM1
|
2020-03-20 09:55:43 +01:00
|
|
|
depends on MAINBOARD_HAS_LPC_TPM || \
|
|
|
|
MAINBOARD_HAS_I2C_TPM_GENERIC || \
|
|
|
|
MAINBOARD_HAS_I2C_TPM_ATMEL
|
2017-10-18 17:13:07 +02:00
|
|
|
|
|
|
|
config TPM2
|
|
|
|
bool
|
2018-02-27 19:40:52 +01:00
|
|
|
default y if MAINBOARD_HAS_TPM2 || USER_TPM2
|
2020-03-20 09:55:43 +01:00
|
|
|
depends on MAINBOARD_HAS_I2C_TPM_GENERIC || \
|
|
|
|
MAINBOARD_HAS_LPC_TPM || \
|
|
|
|
MAINBOARD_HAS_I2C_TPM_ATMEL || \
|
|
|
|
MAINBOARD_HAS_I2C_TPM_CR50 || \
|
|
|
|
MAINBOARD_HAS_SPI_TPM || \
|
|
|
|
MAINBOARD_HAS_CRB_TPM
|
2018-02-27 19:40:52 +01:00
|
|
|
|
|
|
|
config MAINBOARD_HAS_TPM1
|
|
|
|
bool
|
|
|
|
|
|
|
|
config MAINBOARD_HAS_TPM2
|
|
|
|
bool
|
|
|
|
|
|
|
|
if !MAINBOARD_HAS_TPM1 && !MAINBOARD_HAS_TPM2
|
|
|
|
|
|
|
|
choice
|
|
|
|
prompt "Trusted Platform Module"
|
|
|
|
default USER_NO_TPM
|
|
|
|
|
|
|
|
config USER_NO_TPM
|
|
|
|
bool "disabled"
|
|
|
|
|
|
|
|
config USER_TPM1
|
|
|
|
bool "1.2"
|
2020-03-20 09:55:43 +01:00
|
|
|
depends on MAINBOARD_HAS_LPC_TPM || \
|
|
|
|
MAINBOARD_HAS_I2C_TPM_GENERIC || \
|
|
|
|
MAINBOARD_HAS_I2C_TPM_ATMEL
|
2017-10-18 17:13:07 +02:00
|
|
|
help
|
2018-02-27 19:40:52 +01:00
|
|
|
Enable this option to enable TPM 1.0 - 1.2 support in coreboot.
|
2017-10-18 17:13:07 +02:00
|
|
|
|
2018-02-27 19:40:52 +01:00
|
|
|
If unsure, say N.
|
2017-10-18 17:13:07 +02:00
|
|
|
|
2018-02-27 19:40:52 +01:00
|
|
|
config USER_TPM2
|
|
|
|
bool "2.0"
|
2020-03-20 09:55:43 +01:00
|
|
|
depends on MAINBOARD_HAS_I2C_TPM_GENERIC || \
|
|
|
|
MAINBOARD_HAS_LPC_TPM || \
|
|
|
|
MAINBOARD_HAS_I2C_TPM_ATMEL || \
|
|
|
|
MAINBOARD_HAS_I2C_TPM_CR50 || \
|
|
|
|
MAINBOARD_HAS_SPI_TPM || \
|
|
|
|
MAINBOARD_HAS_CRB_TPM
|
2017-10-18 17:13:07 +02:00
|
|
|
help
|
2018-02-27 19:40:52 +01:00
|
|
|
Enable this option to enable TPM 2.0 support in coreboot.
|
2017-10-18 17:13:07 +02:00
|
|
|
|
2018-02-27 19:40:52 +01:00
|
|
|
If unsure, say N.
|
2017-10-18 17:13:07 +02:00
|
|
|
|
2018-02-27 19:40:52 +01:00
|
|
|
endchoice
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
config TPM_DEACTIVATE
|
|
|
|
bool "Deactivate TPM"
|
|
|
|
default n
|
|
|
|
depends on !VBOOT
|
|
|
|
depends on TPM1
|
2017-10-18 17:13:07 +02:00
|
|
|
help
|
2018-02-27 19:40:52 +01:00
|
|
|
Deactivate TPM by issuing deactivate command.
|
2017-10-18 17:13:07 +02:00
|
|
|
|
2018-02-27 19:40:52 +01:00
|
|
|
config DEBUG_TPM
|
|
|
|
bool "Output verbose TPM debug messages"
|
2017-10-18 17:13:07 +02:00
|
|
|
default n
|
2018-02-27 19:40:52 +01:00
|
|
|
select DRIVER_TPM_DISPLAY_TIS_BYTES if I2C_TPM
|
|
|
|
depends on TPM1 || TPM2
|
2017-10-18 17:13:07 +02:00
|
|
|
help
|
2018-02-27 19:40:52 +01:00
|
|
|
This option enables additional TPM related debug messages.
|
2017-10-18 17:13:07 +02:00
|
|
|
|
2018-02-27 19:40:52 +01:00
|
|
|
config TPM_RDRESP_NEED_DELAY
|
|
|
|
bool "Enable Delay Workaround for TPM"
|
2017-10-18 17:13:07 +02:00
|
|
|
default n
|
2020-05-29 18:42:07 +02:00
|
|
|
depends on MAINBOARD_HAS_LPC_TPM
|
2017-10-18 17:13:07 +02:00
|
|
|
help
|
2018-02-27 19:40:52 +01:00
|
|
|
Certain TPMs seem to need some delay when reading response
|
|
|
|
to work around a race-condition-related issue, possibly
|
|
|
|
caused by ill-programmed TPM firmware.
|
2017-10-18 17:13:07 +02:00
|
|
|
|
2019-10-14 17:06:27 +02:00
|
|
|
config TPM_STARTUP_IGNORE_POSTINIT
|
|
|
|
bool
|
|
|
|
help
|
|
|
|
Select this to ignore POSTINIT INVALID return codes on TPM
|
|
|
|
startup. This is useful on platforms where a previous stage
|
|
|
|
issued a TPM startup. Examples of use cases are Intel TXT
|
2020-02-17 14:04:28 +01:00
|
|
|
or VBOOT on the Intel Arrandale processor, which issues a
|
2019-10-14 17:06:27 +02:00
|
|
|
CPU-only reset during the romstage.
|
|
|
|
|
security/vboot: Decouple measured boot from verified boot
Currently, those who want to use measured boot implemented within
vboot should enable verified boot first, along with sections such
as GBB and RW slots defined with manually written fmd files, even
if they do not actually want to verify anything.
As discussed in CB:34977, measured boot should be decoupled from
verified boot and make them two fully independent options. Crypto
routines necessary for measurement could be reused, and TPM and CRTM
init should be done somewhere other than vboot_logic_executed() if
verified boot is not enabled.
In this revision, only TCPA log is initialized during bootblock.
Before TPM gets set up, digests are not measured into tpm immediately,
but cached in TCPA log, and measured into determined PCRs right after
TPM is up.
This change allows those who do not want to use the verified boot
scheme implemented by vboot as well as its requirement of a more
complex partition scheme designed for chromeos to make use of the
measured boot functionality implemented within vboot library to
measure the boot process.
TODO: Measure MRC Cache somewhere, as MRC Cache has never resided in
CBFS any more, so it cannot be covered by tspi_measure_cbfs_hook().
Change-Id: I1fb376b4a8b98baffaee4d574937797bba1f8aee
Signed-off-by: Bill XIE <persmule@hardenedlinux.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/35077
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
2019-08-22 14:28:36 +02:00
|
|
|
config TPM_MEASURED_BOOT
|
|
|
|
bool "Enable Measured Boot"
|
|
|
|
default n
|
|
|
|
select VBOOT_LIB
|
|
|
|
depends on TPM1 || TPM2
|
|
|
|
depends on !VBOOT_RETURN_FROM_VERSTAGE
|
|
|
|
help
|
|
|
|
Enables measured boot (experimental)
|
|
|
|
|
|
|
|
config TPM_MEASURED_BOOT_RUNTIME_DATA
|
|
|
|
string "Runtime data whitelist"
|
|
|
|
default ""
|
|
|
|
depends on TPM_MEASURED_BOOT
|
|
|
|
help
|
|
|
|
Runtime data whitelist of cbfs filenames. Needs to be a
|
2020-05-12 09:25:39 +02:00
|
|
|
space delimited list
|
security/vboot: Decouple measured boot from verified boot
Currently, those who want to use measured boot implemented within
vboot should enable verified boot first, along with sections such
as GBB and RW slots defined with manually written fmd files, even
if they do not actually want to verify anything.
As discussed in CB:34977, measured boot should be decoupled from
verified boot and make them two fully independent options. Crypto
routines necessary for measurement could be reused, and TPM and CRTM
init should be done somewhere other than vboot_logic_executed() if
verified boot is not enabled.
In this revision, only TCPA log is initialized during bootblock.
Before TPM gets set up, digests are not measured into tpm immediately,
but cached in TCPA log, and measured into determined PCRs right after
TPM is up.
This change allows those who do not want to use the verified boot
scheme implemented by vboot as well as its requirement of a more
complex partition scheme designed for chromeos to make use of the
measured boot functionality implemented within vboot library to
measure the boot process.
TODO: Measure MRC Cache somewhere, as MRC Cache has never resided in
CBFS any more, so it cannot be covered by tspi_measure_cbfs_hook().
Change-Id: I1fb376b4a8b98baffaee4d574937797bba1f8aee
Signed-off-by: Bill XIE <persmule@hardenedlinux.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/35077
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
2019-08-22 14:28:36 +02:00
|
|
|
|
2017-10-18 17:13:07 +02:00
|
|
|
endmenu # Trusted Platform Module (tpm)
|