<tt><font size=2>"Kevin O'Connor" <kevin@koconnor.net>
wrote on 12/22/2015 11:06:17 AM:<br><br>> <br>> On Tue, Dec 22, 2015 at 11:03:09AM -0500, Stefan Berger wrote:<br>> > "Kevin O'Connor" <kevin@koconnor.net> wrote on
12/22/2015 10:40:03 AM:<br>> > > On Mon, Dec 21, 2015 at 11:50:07AM -0500, Stefan Berger
wrote:<br>> > > > tpm_foo()<br>> > > > {<br>> > > >     [...]<br>> > > > <br>> > > >     switch (tpmversion) {<br>> > > >     case TPM_VERSION_1_2:<br>> > > >         tpm12_foo()<br>> > > >         break;<br>> > > >     case TPM_VERSION_2:<br>> > > >         tpm2_foo();<br>> > > >         break;<br>> > > >     }<br>> > > > <br>> > > >     [...]<br>> > > > }<br>> > > <br>> > > Is the difference between 1.2 and 2.0 so large that the
above is<br>> > > needed?<br>> > <br>> > TPM 2 and TPM 1.2 have completely different commands, so yes,
<br>> > unfortunately it's needed.<br>> <br>> Okay.  Just so I understand, is TPM 2.0 a new interface to the<br>> hardware, new BIOS API, or both?</font></tt><br><br><tt><font size=2>TPM 2.0 is a new device with incompatible commands
compared to TPM 1.2. The TPM TIS interface has been extended with a few
registers for TPM 2 and TPM 2 can be recognized by a flag in one of those
registers. In terms of API I am not sure whether TCG has defined a BIOS
API for TPM 2 (UEFI for sure). However, I have been trying with an implementation
of trusted Grub and the current BIOS API is abstract enough so that it
works with both TPM 1.2 and TPM 2. So from that perspective there is at
least not necessarily  a need to disable the API for the TPM 2 case.</font></tt><br><br><tt><font size=2>   Stefan</font></tt><br><tt><font size=2><br>> <br>> -Kevin<br>> <br></font></tt><BR>