• Jarkko Sakkinen's avatar
    tpm_crb: request and relinquish locality 0 · 877c57d0
    Jarkko Sakkinen authored
    This commit adds support for requesting and relinquishing locality 0 in
    tpm_crb for the course of command transmission.
    
    In order to achieve this, two new callbacks are added to struct
    tpm_class_ops:
    
    - request_locality
    - relinquish_locality
    
    With CRB interface you first set either requestAccess or relinquish bit
    from TPM_LOC_CTRL_x register and then wait for locAssigned and
    tpmRegValidSts bits to be set in the TPM_LOC_STATE_x register.
    
    The reason why were are doing this is to make sure that the driver
    will work properly with Intel TXT that uses locality 2. There's no
    explicit guarantee that it would relinquish this locality. In more
    general sense this commit enables tpm_crb to be a well behaving
    citizen in a multi locality environment.
    Signed-off-by: default avatarJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Reviewed-by: default avatarJerry Snitselaar <jsnitsel@redhat.com>
    Tested-by: default avatarJerry Snitselaar <jsnitsel@redhat.com>
    877c57d0
tpm-interface.c 31.1 KB