[Top][All Lists]
[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: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] [PATCH V2 4/9] Add tpm_tis driver to build process |
Date: |
Sun, 3 Apr 2011 12:20:27 +0300 |
On Fri, Apr 1, 2011 at 10:57 PM, Stefan Berger
<address@hidden> wrote:
> 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.
If the basic device (without the tpms-devel library) can be built on
any OS, the flag should go to default-configs/*86*-softmmu.mak.
> 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
Here you make assumptions on the header file location, but it could be
in /usr/local, /opt or somewhere where the cross compiler happens to
find it. Please just do the compile test.
> + 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?
The test should be added when the code which uses the library is added.
- Re: [Qemu-devel] [PATCH V2 4/9] Add tpm_tis driver to build process, Blue Swirl, 2011/04/01
- Re: [Qemu-devel] [PATCH V2 4/9] Add tpm_tis driver to build process, Stefan Berger, 2011/04/01
- Re: [Qemu-devel] [PATCH V2 4/9] Add tpm_tis driver to build process,
Blue Swirl <=
- Re: [Qemu-devel] [PATCH V2 4/9] Add tpm_tis driver to build process, Stefan Berger, 2011/04/04
- Re: [Qemu-devel] [PATCH V2 4/9] Add tpm_tis driver to build process, Blue Swirl, 2011/04/05
- Re: [Qemu-devel] [PATCH V2 4/9] Add tpm_tis driver to build process, Stefan Berger, 2011/04/05
- Re: [Qemu-devel] [PATCH V2 4/9] Add tpm_tis driver to build process, Blue Swirl, 2011/04/05
- Re: [Qemu-devel] [PATCH V2 4/9] Add tpm_tis driver to build process, Stefan Berger, 2011/04/05