Certain TPMs (observed on Infineon SLB9635 installed on revolve 810 g1) seem to need some delay between tis_wait_valid() and tis_has_valid_data(), or tis_has_valid_data() may invalidly return 0, ending the loop immaturely with some bytes left unread, and fail to pass the check below, causing the current command not finalized by tis_command_ready(), and blocking any later tis_wait_ready(). This time the added delay is controlled by a Kconfig option TPM_RDRESP_NEED_DELAY. Change-Id: Ic2a2f252e72a0bbce51e2863f8e46647b1570ba5 Signed-off-by: Bill XIE <persmule@gmail.com> Reviewed-on: https://review.coreboot.org/25322 Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
58 lines
1.4 KiB
Plaintext
58 lines
1.4 KiB
Plaintext
config LPC_TPM
|
|
bool "Enable TPM support"
|
|
depends on MAINBOARD_HAS_LPC_TPM
|
|
default n
|
|
help
|
|
Enable this option to enable LPC TPM support in coreboot.
|
|
|
|
If unsure, say N.
|
|
|
|
config TPM_TIS_BASE_ADDRESS
|
|
hex
|
|
default 0xfed40000
|
|
depends on LPC_TPM
|
|
help
|
|
This can be used to adjust the TPM memory base address.
|
|
The default is specified by the TCG PC Client Specific TPM
|
|
Interface Specification 1.2 and should not be changed unless
|
|
the TPM being used does not conform to TPM TIS 1.2.
|
|
|
|
config TPM_PIRQ
|
|
hex
|
|
default 0x0
|
|
depends on LPC_TPM
|
|
help
|
|
This can be used to specify a PIRQ to use instead of SERIRQ,
|
|
which is needed for SPI TPM interrupt support on x86.
|
|
|
|
config TPM_INIT_FAILURE_IS_FATAL
|
|
bool
|
|
default n
|
|
depends on LPC_TPM
|
|
help
|
|
What to do if TPM init failed. If true, force a hard reset,
|
|
otherwise just log error message to console.
|
|
|
|
config SKIP_TPM_STARTUP_ON_NORMAL_BOOT
|
|
bool
|
|
default n
|
|
depends on LPC_TPM
|
|
help
|
|
Skip TPM init on normal boot. Useful if payload does TPM init.
|
|
|
|
config TPM_DEACTIVATE
|
|
bool "Deactivate TPM"
|
|
default n
|
|
depends on LPC_TPM
|
|
help
|
|
Deactivate TPM by issuing deactivate command.
|
|
|
|
config TPM_RDRESP_NEED_DELAY
|
|
bool "Enable Delay Workaround for TPM"
|
|
default n
|
|
depends on LPC_TPM
|
|
help
|
|
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.
|