Thread (25 messages) 25 messages, 6 authors, 2014-12-08

Re: [tpmdd-devel] [PATCH v8 6/8] tpm: TPM 2.0 baseline support

From: <hidden>
Date: 2014-12-08 16:18:25
Also in: lkml

Hi 

On 8. Dezember 2014 14:56:15 MEZ, Jarkko Sakkinen [off-list ref] wrote:
On Fri, Dec 05, 2014 at 12:13:18AM +0100, Peter Hüwe wrote:
quoted
Am Mittwoch, 3. Dezember 2014, 03:28:35 schrieb Stefan Berger:
quoted
On 12/02/2014 05:31 PM, Jarkko Sakkinen wrote:
quoted
+
+/**
+ * tpm2_startup() - send startup command to the TPM chip
+ * @chip:		TPM chip to use.
+ * @startup_type	startup type. The value is either
+ *			TPM_SU_CLEAR or TPM_SU_STATE.
+ *
+ * 0 is returned when the operation is successful. If a negative
number
quoted
quoted
quoted
is + * returned it remarks a POSIX error code. If a positive
number is
quoted
quoted
quoted
returned + * it remarks a TPM error.
+ */
+int tpm2_startup(struct tpm_chip *chip, __be16 startup_type)
+{
+	struct tpm2_cmd cmd;
+
+	cmd.header.in = tpm2_startup_header;
+
+	cmd.params.startup_in.startup_type = startup_type;
+	return tpm_transmit_cmd(chip, &cmd, sizeof(cmd),
+				"attempting to start the TPM");
+}
I suppose you need to send this command because your firmware does
not
quoted
quoted
do it ?Following TPM1.2 I guess the BIOS / UEFI should send this
instead
quoted
quoted
and sending it later would actually be wrong. Hm, I don't find from
where you are calling this... do you need it ? Can you remove it?

    Stefan
Hi,

I think it would be good to send a TPM2_Startup if the TPM sends a 
TPM_RC_INITIALIZE (0x100) - so it becomes atleast usable.
Of course the BIOS/UEFI/Firmware should send the TPM2_Startup, but if
there is 
quoted
no such thing, I would prefer Linux to do it, rather than nobody.
(analog: This was done for embedded platforms with TPM1.2).

In the current situation (v9) it is not possible to use the TPM2 on a
machine 
quoted
without bios integration. :( (so I cannot test here :( )
Should the place be if sending self-test fails? I think the type should
be TPM2_SU_CLEAR. Do you agree?
Yes. If the first command returns "invalid post init" or whatever it is called in tpm20 speech the driver should send the startup clear.


Not sure if we should send a startup state in the resume case (like on tpm1.2)

And also it might make sense to send a tpm_shutdown? (If we aren't already) I think even on a machine with bios integration we have to send this?

All other issues are now fixed except this and STS3 bit issue that I 
look for next. In my github there is tpm2-v10 branch now with fixes
on top. I squash the fixes right after these two remaining issues are
fixed.
quoted
Peter
/Jarkko
Peter
-- 
Sent from my mobile.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help