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

From: Jarkko Sakkinen
Date: Thu Nov 30 2017 - 11:44:06 EST


On Wed, Nov 29, 2017 at 06:13:51PM -0800, Philip Tricca wrote:
> 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

Please response with Reviewed/Tested-by if these changes work for
you.

/Jarkko