Re: [PATCH v2] tpm: return a TPM_RC_COMMAND_CODE response if a command isn't implemented
From: Philip Tricca
Date: Wed Nov 29 2017 - 21:14:08 EST
On 11/29/2017 10:24 AM, Javier Martinez Canillas wrote:
> Hello Jarkko,
>
> On 11/29/2017 06:57 PM, Jarkko Sakkinen wrote:
>> On Wed, Nov 29, 2017 at 12:08:46PM +0100, Javier Martinez Canillas
>> wrote:
>>> +#define TPM2_RC_LAYER_SHIFT 16 +#define TPM2_RESMGRTPM_RC_LAYER
>>> (11 << TPM2_RC_LAYER_SHIFT)
>>
>> I got this spec from Philip [1].
>>
>> Couple of remarks:
>>
>> * What is the difference between TSS2_RESMGR_RC_LAYER and
>> TSS2_RESMGR_TPM_RC_LAYER?
>
> The difference is the type of error returned in each case. TSS2_RESMGR_RC_LAYER
> means that's an error internal to the TAB/RM and so the response code is one of
> the TSS2_BASE_RC_* error values.
>
> But TSS2_RESMGR_TPM_RC_LAYER means that the resource manager is taking over some
> TPM functionality (i.e: validation) and so the response code is a TSS2_RC_* error
> value, liket is the case for this patch (TPM_RC_COMMAND_CODE).
This distinction predates my participation in the spec. Personally I
don't think users will really care so long as it's evident which 'layer'
produced the error. Using the TSS2_RESMGR_TPM_RC_LAYER is the right
thing to do though according to the spec.
>> * Should the driver code use TSS2 or TPM2 prefix?
>>
>
> That's a very good question. I used TPM2 as prefix instead of TSS2 to keep it
> consistent with the rest of the driver, but probably TSS2 should be used instead
> so people can search more easy the constant in the specification doc.
+1
Philip
>> [1]
>> https://trustedcomputinggroup.org/wp-content/uploads/TCG-TSS-2.0-Overview-and-Common-Structures-Specification-Version-0.90-Revision-02.pdf
>>
>> /Jarkko
>>
>
> Best regards,
>