On Mon, 2021-09-13 at 17:43 +0300, amirmizi6@xxxxxxxxx wrote: > From: Amir Mizinski <amirmizi6@xxxxxxxxx> > > Detected an incorrect implementation of the send command. > Currently, the driver polls the TPM_STS.stsValid field until TRUE; then it > reads TPM_STS register again to verify only that TPM_STS.expect field is > FALSE (i.e., it ignores TPM_STS.stsValid). > Since TPM_STS.stsValid represents the TPM_STS.expect validity, both fields > fields should be checked in the same TPM_STS register read value. > > This fix modifies the signature of 'wait_for_tpm_stat()', adding an > additional "mask_result" parameter to its call and renaming it to > 'tpm_tis_wait_for_stat()' for better alignment with other naming. > 'tpm_tis_wait_for_stat()' is now polling the TPM_STS with a mask and waits > for the value in mask_result. The fix adds the ability to check if certain > TPM_STS bits have been cleared. Use imprative form, e.g. "Modify the signature...". > > This change is also aligned to verifying the CRC on I2C TPM. The CRC > verification should be done after the TPM_STS.expect field is cleared > (TPM received all expected command bytes and set the calculated CRC value > in the register). What does it mean when you "align to verifying"? > In addition, the send command was changed to comply with > TCG_DesignPrinciples_TPM2p0Driver_vp24_pubrev.pdf as follows: > - send all command bytes in one loop > - remove special handling of the last byte > > Suggested-by: Benoit Houyere <benoit.houyere@xxxxxx> > Signed-off-by: Amir Mizinski <amirmizi6@xxxxxxxxx> I don't think the rename is important enough to be done, and it definitely should not be melded into another patch. /Jarkko