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, >