===================================================================
---
Makefile.target | 10 ++++++++++
configure | 20 ++++++++++++++++++++
2 files changed, 30 insertions(+)
===================================================================
@@ -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
===================================================================
@@ -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
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