Re: [PATCH v2] tpm: return a TPM_RC_COMMAND_CODE response if a command isn't implemented

From: Javier Martinez Canillas
Date: Wed Nov 29 2017 - 13:25:33 EST


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).

> * 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]
> https://trustedcomputinggroup.org/wp-content/uploads/TCG-TSS-2.0-Overview-and-Common-Structures-Specification-Version-0.90-Revision-02.pdf
>
> /Jarkko
>

Best regards,
--
Javier Martinez Canillas
Software Engineer - Desktop Hardware Enablement
Red Hat