[SeaBIOS] [PATCH 1/3] tpm: Wait for tpmRegValidSts flags on CRQ interface before probing

Stefan Berger stefanb at linux.vnet.ibm.com
Mon Mar 19 13:55:49 CET 2018


On 03/14/2018 03:42 PM, Kevin O'Connor wrote:
> On Wed, Mar 14, 2018 at 01:42:41PM -0400, Stefan Berger wrote:
>> Wait for the tpmRegValidSts flag on the TPM_LOC_STATE_x register.
>>
>> Since it's not quite clear when this flag may become valid, we request
>> access to the interace on locality 0, which must then make it valid.
>>
>> Signed-off-by: Stefan Berger <stefanb at linux.vnet.ibm.com>
>> ---
>>   src/hw/tpm_drivers.c | 11 +++++++++++
>>   1 file changed, 11 insertions(+)
>>
>> diff --git a/src/hw/tpm_drivers.c b/src/hw/tpm_drivers.c
>> index ed58bf5..ad97f67 100644
>> --- a/src/hw/tpm_drivers.c
>> +++ b/src/hw/tpm_drivers.c
>> @@ -374,12 +374,23 @@ static u32 tis_waitrespready(enum tpmDurationType to_t)
>>       return rc;
>>   }
>>   
>> +#define CRB_STATE_VALID_STS 0b10000000
>> +
>>   /* if device is not there, return '0', '1' otherwise */
>>   static u32 crb_probe(void)
>>   {
>>       if (!CONFIG_TCGBIOS)
>>           return 0;
>>   
>> +    /* request access -- this must cause a valid STS flag */
>> +    writeb(CRB_REG(0, CRB_REG_LOC_CTRL), 1);
> Would it be possible to do a sanity check with read operations before
> doing a write operation?  The fear is that the device is not present
> and the write operation corrupts some other device, causes a bus
> error, or something else undesirable.
>
> -Kevin

If this one is controversal, the other two patches fix real bugs and we 
should consider applying them. I think for testing Stephen's feedback is 
primarily important on 1/3. Stephen, can you comment?

    Stefan
>




More information about the SeaBIOS mailing list