On Mon, Oct 01, 2012 at 10:15:36AM -0600, Jason Gunthorpe wrote: > On Mon, Oct 01, 2012 at 09:17:28AM +0000, peter.hu...@infineon.com 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 majord...@vger.kernel.org > 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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/