Re: [tpmdd-devel] [PATCH] TPM: Issue TPM_STARTUP at driver load ifthe TPM has not been started
From: Kent Yoder
Date: Mon Oct 01 2012 - 13:14:48 EST
On Mon, Oct 01, 2012 at 10:15:36AM -0600, Jason Gunthorpe wrote:
> On Mon, Oct 01, 2012 at 09:17:28AM +0000, Peter.Huewe@xxxxxxxxxxxx wrote:
> > Hi Jason,
> >
> > > The TPM will respond to TPM_GET_CAP with TPM_ERR_INVALID_POSTINIT if
> > > TPM_STARTUP has not been issued. This will result in the TPM driver
> > > failing to load and no way to recover. Detect this and automatically
> > > issue TPM_STARTUP.
> >
> > > This is for embedded applications where the kernel is the first thing
> > > to touch the TPM.
> >
> > Thanks for working on this.
> > I also thought about this scenario quite often.
> >
> > Shouldn't we then also add a TpmStartup(ST_STATE) in case of a resume?
> > rc=GetCapability()
> > if(rc==INVALID_POSTINIT)
> > tpm_transmit ("TPM_STARTUP(ST_STATE)")...
>
> I'm not familiar enough with how the power management flow works with
> the TPM to do this. I don't think that can be the general case
> because:
>
> 3. If stType = TPM_ST_STATE
> a. If the TPM has no state to restore, the TPM MUST set the internal
> state such that it returns TPM_FAILEDSELFTEST to all subsequent
> commands.
>
> So you need to know a save state exists in the TPM before attempting
> the command?
Presumably we'd have called TPM_SaveState on suspend. It might be
possible to set a flag based on whether we needed to call startup at
init time that tells the driver to call save/restore state during
suspend/resume.
Kent
> Would you agree that CLEAR is appropriate for an initial driver
> attach on probe?
>
> Jason
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/