qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH V2 4/9] Add tpm_tis driver to build process


From: Stefan Berger
Subject: Re: [Qemu-devel] [PATCH V2 4/9] Add tpm_tis driver to build process
Date: Fri, 01 Apr 2011 15:57:16 -0400
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101209 Fedora/3.1.7-0.35.b3pre.fc14 Lightning/1.0b3pre Thunderbird/3.1.7

On 04/01/2011 02:14 PM, Blue Swirl wrote:
On Wed, Mar 30, 2011 at 10:42 PM, Stefan Berger
<address@hidden>  wrote:
The TPM interface (tpm_tis) needs to be explicitly enabled via
./configure --enable-tpm. This restricts 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. This measure prevents that one will end up with support
for a frontend but no available backend.

Signed-off-by: Stefan Berger<address@hidden>

Index:qemu/Makefile.target
===================================================================
---
  Makefile.target |    7 +++++++
  configure       |   20 ++++++++++++++++++++
  2 files changed, 27 insertions(+)

Index: qemu-git/Makefile.target
===================================================================
--- qemu-git.orig/Makefile.target
+++ qemu-git/Makefile.target
@@ -303,6 +303,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))
The ifeq above is not needed since the line below uses obj-i386.

Will remove.
+
+obj-i386-$(CONFIG_TPM) += tpm_tis.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
@@ -175,6 +175,7 @@ trace_backend="nop"
  trace_file="trace"
  spice=""
  rbd=""
+tpm="no"

  # parse CC options first
  for opt do
@@ -708,6 +709,8 @@ for opt do
   ;;
   --kerneldir=*) kerneldir="$optarg"
   ;;
+  --enable-tpm) tpm="yes"
+  ;;
   --with-pkgversion=*) pkgversion=" ($optarg)"
   ;;
   --disable-docs) docs="no"
@@ -921,6 +924,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
@@ -2540,6 +2544,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"
@@ -3324,6 +3329,21 @@ if test "$gprof" = "yes" ; then
   fi
  fi

+if test "$linux" = "yes"&&  test "$tpm" = "yes"; then
+  has_tpm=0
+  if test "$target_softmmu" = "yes" ; then
+    case "$TARGET_BASE_ARCH" in
+    i386)
+      has_tpm=1
This is not a real compile test, please try to build a dummy program
that depends on TPM headers like for example preadv probe. Then it is
not needed to check for Linux or i386 explicitly.
At this point there is no compile test needed since all code is 'there'. It's merely adding the front-end,i.e., the TPM TIS emulation to be compiled. The (libtpms-based) backend is then added later in patch [9/9]. There you then find this here:

   if test "$has_tpm" = "1"; then
+      if test -r /usr/include/libtpms/tpm_library.h ; then
+          echo "CONFIG_TPM_BUILTIN=y">>  $config_target_mak
+      fi
       echo "CONFIG_TPM=y">>  $config_host_mak
   fi
 fi


So this is then trying to test for the libtpms-devel package, and if found, adds the tpm_builtin.c to the build. Now did it look wrong for patch 4 and it does make sense in combination with patch 9?

    Stefan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]