Add TPM (frontend) hardware interface (TPM TIS) to QEMU
commitedff867807fefd9b8cc2bfd0e88a957987225f55
authorStefan Berger <stefanb@linux.vnet.ibm.com>
Wed, 27 Feb 2013 17:47:50 +0000 (27 12:47 -0500)
committerAnthony Liguori <aliguori@us.ibm.com>
Tue, 12 Mar 2013 18:40:11 +0000 (12 13:40 -0500)
tree33ee11615e87817b4d7c0aa32d4c627adcaa2475
parentd1a0cf738dab24fbfd8e9225b7f3df43dcfafc06
Add TPM (frontend) hardware interface (TPM TIS) to QEMU

This patch adds the main code of the TPM frontend driver, the TPM TIS
interface, to QEMU. The code is largely based on the previous implementation
for Xen but has been significantly extended to meet the standard's
requirements, such as the support for changing of localities and all the
functionality of the available flags.

Communication with the backend (i.e., for Xen or the libtpms-based one)
is cleanly separated through an interface which the backend driver needs
to implement.

Whenever the frontend has collected a complete packet, it will submit
a task to the backend, which then starts processing the command. Once
the result has been returned, the backend invokes a callback function
(tpm_tis_receive_cb()).

Testing the proper functioning of the different flags and localities
cannot be done from user space when running in Linux for example, since
access to the address space of the TPM TIS interface is not possible. Also
the Linux driver itself does not exercise all functionality. So, for
testing there is a fairly extensive test suite as part of the SeaBIOS patches
since from within the BIOS one can have full access to all the TPM's registers.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Reviewed-by: Corey Bryant <coreyb@linux.vnet.ibm.com>
Reviewed-by: Joel Schopp <jschopp@linux.vnet.ibm.com>
Message-id: 1361987275-26289-3-git-send-email-stefanb@linux.vnet.ibm.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
tpm/tpm_tis.c [new file with mode: 0644]