From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:46222) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QzIMl-0003r6-09 for qemu-devel@nongnu.org; Thu, 01 Sep 2011 21:16:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QzIMj-0007KN-Ka for qemu-devel@nongnu.org; Thu, 01 Sep 2011 21:16:18 -0400 Received: from e36.co.us.ibm.com ([32.97.110.154]:36566) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QzIMj-0007KJ-E0 for qemu-devel@nongnu.org; Thu, 01 Sep 2011 21:16:17 -0400 Received: from d03relay03.boulder.ibm.com (d03relay03.boulder.ibm.com [9.17.195.228]) by e36.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p8219hQ9031554 for ; Thu, 1 Sep 2011 19:09:43 -0600 Received: from d03av06.boulder.ibm.com (d03av06.boulder.ibm.com [9.17.195.245]) by d03relay03.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p821GGvL169084 for ; Thu, 1 Sep 2011 19:16:16 -0600 Received: from d03av06.boulder.ibm.com (loopback [127.0.0.1]) by d03av06.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p821M4HN008541 for ; Thu, 1 Sep 2011 19:22:05 -0600 Message-ID: <4E602E5F.2090503@linux.vnet.ibm.com> Date: Thu, 01 Sep 2011 21:16:15 -0400 From: Stefan Berger MIME-Version: 1.0 References: <20110831143551.127339744@linux.vnet.ibm.com> <20110831143618.872204992@linux.vnet.ibm.com> <20110901172354.GF10989@redhat.com> In-Reply-To: <20110901172354.GF10989@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH V8 04/14] Add tpm_tis driver to build process List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" Cc: chrisw@redhat.com, anbang.ruan@cs.ox.ac.uk, qemu-devel@nongnu.org, rrelyea@redhat.com, alevy@redhat.com, andreas.niederl@iaik.tugraz.at, serge@hallyn.com On 09/01/2011 01:23 PM, Michael S. Tsirkin wrote: > On Wed, Aug 31, 2011 at 10:35:55AM -0400, Stefan Berger wrote: >> The TPM interface (tpm_tis) needs to be explicitly enabled via >> ./configure --enable-tpm. This patch also restricts the building of the >> TPM support to i386 and x86_64 targets since only there it is currently >> supported. This prevents that one will end up with support for a frontend >> but no available backend. > This can happen anyway - just don't load the tpms driver :) > Presumably if libtpms exists on the system, we should > assume it's there for a reason. configure should test > that IMO and not limit architectures artificially. Well, what above means is that one a ppc machine you can still build a qemu-system-x86_64 with tpm 'builtin' (libtpms) support if libtpms is found on the system. However, I am not building the arm, ppc, mips etc. emulators with TPM support simply because I only have code in hw/pc.c enabling a x86_64/i386 pc with a TPM. If someone wants to extend and test those other machines then this restriction would have to be opened up to those targets that they extended. Stefan >> v3: >> - fixed and moved hunks in Makefile.target into right place >> >> Signed-off-by: Stefan Berger >> Index:qemu/Makefile.target >> =================================================================== >> --- >> Makefile.target | 1 + >> configure | 20 ++++++++++++++++++++ >> 2 files changed, 21 insertions(+) >> >> Index: qemu-git/Makefile.target >> =================================================================== >> --- qemu-git.orig/Makefile.target >> +++ qemu-git/Makefile.target >> @@ -233,6 +233,7 @@ obj-i386-y += debugcon.o multiboot.o >> obj-i386-y += pc_piix.o >> obj-i386-$(CONFIG_KVM) += kvmclock.o >> obj-i386-$(CONFIG_SPICE) += qxl.o qxl-logger.o qxl-render.o >> +obj-i386-$(CONFIG_TPM) += tpm_tis.o >> >> # shared objects >> obj-ppc-y = ppc.o >> Index: qemu-git/configure >> =================================================================== >> --- qemu-git.orig/configure >> +++ qemu-git/configure >> @@ -183,6 +183,7 @@ usb_redir="" >> opengl="" >> zlib="yes" >> guest_agent="yes" >> +tpm="no" >> >> # parse CC options first >> for opt do >> @@ -765,6 +766,8 @@ for opt do >> ;; >> --disable-guest-agent) guest_agent="no" >> ;; >> + --enable-tpm) tpm="yes" >> + ;; >> *) echo "ERROR: unknown option $opt"; show_help="yes" >> ;; >> esac >> @@ -1044,6 +1047,7 @@ echo " --disable-usb-redir disable >> echo " --enable-usb-redir enable usb network redirection support" >> echo " --disable-guest-agent disable building of the QEMU Guest Agent" >> echo " --enable-guest-agent enable building of the QEMU Guest Agent" >> +echo " --enable-tpm enable an emulated TPM" >> echo "" >> echo "NOTE: The object files are built at the place where configure is launched" >> exit 1 >> @@ -2731,6 +2735,7 @@ echo "nss used $smartcard_nss" >> echo "usb net redir $usb_redir" >> echo "OpenGL support $opengl" >> echo "build guest agent $guest_agent" >> +echo "TPM support $tpm" >> >> if test "$sdl_too_old" = "yes"; then >> echo "-> Your SDL version is too old - please upgrade to have SDL support" >> @@ -3555,6 +3560,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 >>