• Jason Gunthorpe's avatar
    TPM: Wait for TPM_ACCESS tpmRegValidSts to go high at startup · 7240b983
    Jason Gunthorpe authored
    The TIS specification (pg 47) says the valid bit must be set, but
    the TPM will not set it until it has completed its internal startup.
    
    The driver checks that the valid bit is set during request_locality,
    but it issues a TPM_ACCESS_REQUEST_USE without validating the
    valid bit is set.
    
    Some TPMs will ignore the TPM_ACCESS_REQUEST_USE, until valid is
    set which causes the request_locality to timeout, which breaks the
    driver attach.
    
    Wait one timeout unit for valid to assert. If valid does not assert
    then assume -ENODEV.
    
    Seen on embedded with a:
    1.2 TPM (device-id 0x3204, rev-id 64)
    Signed-off-by: default avatarJason Gunthorpe <jgunthorpe@obsidianresearch.com>
    Signed-off-by: default avatarKent Yoder <key@linux.vnet.ibm.com>
    7240b983
tpm_tis.c 23.1 KB