Closed crawfxrd closed 1 year ago
None of the following resolve the issue:
TPM_RDRESP_NEED_DELAY
TPM_RDRESP_NEED_DELAY
to 50ustpm_tis
from interrupt to pollingAdditionally, all commands from tpm2-tools
fail when in this state, including tpm2_getcap
.
The error we get back is TPM_RC_VALUE
, which should mean that TPM state is not being saved or is being lost.
If a TPM receives Startup(STATE) and that was not preceded by Shutdown(STATE), the TPM shall return TPM_RC_VALUE.
If, during TPM Restart or TPM Resume, the TPM fails to restore the state saved at the last Shutdown(STATE), the TPM shall enter Failure Mode and return TPM_RC_FAILURE.
If the startupType is TPM_SU_STATE and the TPM requires TPM_SU_CLEAR, then the TPM shall return TPM_RC_VALUE.
Also does not fix the issue:
TPM_MEASURED_BOOT
in corebootTPM_ENABLE
in edk2https://trustedcomputinggroup.org/wp-content/uploads/TCG_TPM2_r1p59_Part1_Architecture_pub.pdf
If the TPM receives Startup(STATE) that was not preceded by Shutdown(STATE), then there is no state to restore and the TPM will return TPM_RC_VALUE. The CRTM is expected to take corrective action to prevent malicious software from manipulating the PCR values such that they would misrepresent the state of the platform. The CRTM would abort the Startup(State) and restart with Startup(CLEAR).
NOTE 2: The startup behavior defined by this specification is different than TPM 1.2 with respect to Startup(STATE). A TPM 1.2 device will enter Failure Mode if no state is available when the TPM receives Startup(STATE). This is not the case in this specification. It is up to the CRTM to take corrective action if it the TPM returns TPM_RC_VALUE in response to Startup(STATE).
https://trustedcomputinggroup.org/wp-content/uploads/TCG_TPM2_r1p59_Part3_Commands_code_pub.pdf
If a TPM receives Startup(STATE) and that was not preceded by Shutdown(STATE), the TPM shall return TPM_RC_VALUE.
If, during TPM Restart or TPM Resume, the TPM fails to restore the state saved at the last Shutdown(STATE), the TPM shall enter Failure Mode and return TPM_RC_FAILURE.
The new Infineon TPM chip sometimes fail init on resume from S3. (So presumably it can also happen on boot.)
Steps to reproduce
Expected behavior
Actual behavior
TPM_RC_VALUE
.Additional info