Patchwork [1/5] : Add tpm_tis driver to build process

login
register
mail settings
Submitter Stefan Berger
Date Feb. 24, 2011, 8:01 p.m.
Message ID <1298577709.17969.1.camel@d941e-10>
Download mbox | patch
Permalink /patch/84470/
State New
Headers show

Comments

Stefan Berger - Feb. 24, 2011, 8:01 p.m.
The TPM interface (tpm_tis) needs to be explicitly enabled via 
./configure --enable-tpm. I am restricting the building of the
TPM support to i386 and x86_64 targets since both backends I know
of, the Xen backend and the libtpms-based backend, will likely only
be available for these targets, at least initially. The list can be
easily extend. I am trying to prevent that one will end up with
support for a frontend but no available backend.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>

Index:qemu/Makefile.target

Patch

===================================================================
---
 Makefile.target |   10 ++++++++++
 configure       |   20 ++++++++++++++++++++
 2 files changed, 30 insertions(+)

Index: qemu-git/Makefile.target
===================================================================
--- qemu-git.orig/Makefile.target
+++ qemu-git/Makefile.target
@@ -290,6 +293,13 @@  obj-sparc-y += cs4231.o eccmemctl.o sbi.
 
 # GRLIB
 obj-sparc-y += grlib_gptimer.o grlib_irqmp.o grlib_apbuart.o
+
+ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),i386 x86_64))
+
+obj-i386-$(CONFIG_TPM) += tpm_tis.o qemu-thread.o
+
+endif
+
 endif
 
 obj-arm-y = integratorcp.o versatilepb.o arm_pic.o arm_timer.o
Index: qemu-git/configure
===================================================================
--- qemu-git.orig/configure
+++ qemu-git/configure
@@ -174,6 +174,7 @@  trace_backend="nop"
 trace_file="trace"
 spice=""
 rbd=""
+tpm="no"
 
 # parse CC options first
 for opt do
@@ -703,6 +704,8 @@  for opt do
   ;;
   --kerneldir=*) kerneldir="$optarg"
   ;;
+  --enable-tpm) tpm="yes"
+  ;;
   --with-pkgversion=*) pkgversion=" ($optarg)"
   ;;
   --disable-docs) docs="no"
@@ -914,6 +917,7 @@  echo "                           Default
 echo "  --disable-spice          disable spice"
 echo "  --enable-spice           enable spice"
 echo "  --enable-rbd             enable building the rados block device (rbd)"
+echo "  --enable-tpm             enables an emulated TPM"
 echo ""
 echo "NOTE: The object files are built at the place where configure is launched"
 exit 1
@@ -2525,6 +2529,7 @@  echo "Trace output file $trace_file-<pid
 echo "spice support     $spice"
 echo "rbd support       $rbd"
 echo "xfsctl support    $xfs"
+echo "TPM support       $tpm"
 
 if test $sdl_too_old = "yes"; then
 echo "-> Your SDL version is too old - please upgrade to have SDL support"
@@ -3303,6 +3308,21 @@  if test "$gprof" = "yes" ; then
   fi
 fi
 
+if test "$tpm" = "yes"; then
+  has_tpm=0
+  if test "$target_softmmu" = "yes" ; then
+    case "$TARGET_BASE_ARCH" in
+    i386)
+      has_tpm=1
+    ;;
+    esac
+  fi
+
+  if test "$has_tpm" = "1"; then
+      echo "CONFIG_TPM=y" >> $config_host_mak
+  fi
+fi
+
 linker_script="-Wl,-T../config-host.ld -Wl,-T,\$(SRC_PATH)/\$(ARCH).ld"
 if test "$target_linux_user" = "yes" -o "$target_bsd_user" = "yes" ; then
   case "$ARCH" in