From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=39223 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q5kTB-0004Lj-55 for qemu-devel@nongnu.org; Fri, 01 Apr 2011 15:57:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q5kT9-00019L-Eq for qemu-devel@nongnu.org; Fri, 01 Apr 2011 15:57:21 -0400 Received: from e8.ny.us.ibm.com ([32.97.182.138]:38242) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q5kT9-00018h-C7 for qemu-devel@nongnu.org; Fri, 01 Apr 2011 15:57:19 -0400 Received: from d01dlp02.pok.ibm.com (d01dlp02.pok.ibm.com [9.56.224.85]) by e8.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p31JWOhR004059 for ; Fri, 1 Apr 2011 15:32:24 -0400 Received: from d01relay01.pok.ibm.com (d01relay01.pok.ibm.com [9.56.227.233]) by d01dlp02.pok.ibm.com (Postfix) with ESMTP id 5D1356E803C for ; Fri, 1 Apr 2011 15:57:17 -0400 (EDT) Received: from d01av04.pok.ibm.com (d01av04.pok.ibm.com [9.56.224.64]) by d01relay01.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p31JvHfd350208 for ; Fri, 1 Apr 2011 15:57:17 -0400 Received: from d01av04.pok.ibm.com (loopback [127.0.0.1]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p31JvGc8018203 for ; Fri, 1 Apr 2011 15:57:17 -0400 Message-ID: <4D962E1C.2000203@linux.vnet.ibm.com> Date: Fri, 01 Apr 2011 15:57:16 -0400 From: Stefan Berger MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH V2 4/9] Add tpm_tis driver to build process References: <20110330194211.732385449@linux.vnet.ibm.com> <20110330194237.138721858@linux.vnet.ibm.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Blue Swirl Cc: qemu-devel@nongnu.org, andreas.niederl@iaik.tugraz.at On 04/01/2011 02:14 PM, Blue Swirl wrote: > On Wed, Mar 30, 2011 at 10:42 PM, Stefan Berger > 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 >> >> 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-> 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