qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [edk2] [PATCH v3 0/4] RFC: ovmf: Add support for TPM Ph


From: Laszlo Ersek
Subject: Re: [Qemu-devel] [edk2] [PATCH v3 0/4] RFC: ovmf: Add support for TPM Physical Presence interface
Date: Tue, 22 May 2018 16:38:12 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0

On 05/18/18 14:23, address@hidden wrote:
> From: Marc-André Lureau <address@hidden>
> 
> Hi,
> 
> The following series adds basic TPM PPI 1.3 support for OVMF-on-QEMU
> with TPM2 (I haven't looked at TPM1, for lack of interest).
> 
> PPI test runs successfully with Windows 10 WHLK, despite the limited
> number of supported funcions (tpm2_ppi_funcs table, in particular, no
> function allows to manipulate Tcg2PhysicalPresenceFlags)
> 
> The way it works is relatively simple: a memory region is allocated by
> QEMU to save PPI related variables. An ACPI interface is exposed by
> QEMU to let the guest manipulate those. At boot, ovmf processes and
> updates the PPI qemu region and request variables.
> 
> I build edk2 with:
> 
> $ build -DTPM2_ENABLE
> 
> I test with qemu & swtpm/libtpms (tpm2 branches, swtpm_setup.sh --tpm2
>  --tpm-state tpmstatedir)
> 
> $ swtpm socket --tpmstate tpmstatedir --ctrl type=unixio,path=tpmsock
>   --tpm2 &
> 
> $ qemu .. -chardev socket,id=chrtpm,path=tpmsock -tpmdev
>   emulator,id=tpm0,chardev=chrtpm -device tpm-crb,tpmdev=tpm0
> 
> Github trees:
> https://github.com/elmarco/edk2/tree/tpm-ppi
> https://github.com/elmarco/qemu/tree/tpm-ppi
> 
> Thanks
> 
> v3: after Laszlo review
>  - dropped DxeTcg2PhysicalPresenceLib.uni
>  - removed mTpm2PPIFuncs static initialization, use hard-coded assignments
>  - declared STATIC the functions that should be
>  - fixed an OUT/IN decorator
>  - use EFI_PROTOCOL_ERROR instead of EFI_INVALID_PARAMETER when PPI
>    initialization fails
>  - replaced EFI_D_INFO with DEBUG_INFO
>  - added a check for mPpi address that it doesn't cross a page boundary
>  - added a GetMemorySpaceDescriptor() check for memory type
>  - declared *mPpi as volatile, to correct mmio access
>  - a few more style changes
>  - comments updated
>  - some minor dead code/inclusion/defines removal
>  - added a few r-b tags
> 
> v2:
>  - style and commit message fixes
> 
> Marc-André Lureau (4):
>   OvmfPkg: add Tcg2PhysicalPresenceLibNull when !TPM2_ENABLE
>   OvmfPkg/IndustryStandard: add QemuTpm.h header
>   OvmfPkg: add Tcg2PhysicalPresenceLibQemu
>   OvmfPkg/PlatformBootManagerLib: process TPM PPI request
> 
>  OvmfPkg/OvmfPkgIa32.dsc                       |   4 +-
>  OvmfPkg/OvmfPkgIa32X64.dsc                    |   4 +-
>  OvmfPkg/OvmfPkgX64.dsc                        |   4 +-
>  .../PlatformBootManagerLib.inf                |   2 +
>  .../DxeTcg2PhysicalPresenceLib.inf            |  33 +
>  .../DxeTcg2PhysicalPresenceLib.inf            |  46 +-
>  OvmfPkg/Include/IndustryStandard/QemuTpm.h    |  69 ++
>  .../PlatformBootManagerLib/BdsPlatform.c      |   6 +
>  .../DxeTcg2PhysicalPresenceLib.c              |  20 +-
>  .../DxeTcg2PhysicalPresenceLib.c              | 919 ++++++++++++++++++
>  .../PhysicalPresenceStrings.uni               |  33 +-
>  11 files changed, 1081 insertions(+), 59 deletions(-)
>  create mode 100644 
> OvmfPkg/Library/Tcg2PhysicalPresenceLibNull/DxeTcg2PhysicalPresenceLib.inf
>  copy {SecurityPkg/Library/DxeTcg2PhysicalPresenceLib => 
> OvmfPkg/Library/Tcg2PhysicalPresenceLibQemu}/DxeTcg2PhysicalPresenceLib.inf 
> (66%)
>  create mode 100644 OvmfPkg/Include/IndustryStandard/QemuTpm.h
>  copy 
> EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/BaseLib/Ia32/CpuSleep.c
>  => OvmfPkg/Library/Tcg2PhysicalPresenceLibNull/DxeTcg2PhysicalPresenceLib.c 
> (55%)
>  create mode 100644 
> OvmfPkg/Library/Tcg2PhysicalPresenceLibQemu/DxeTcg2PhysicalPresenceLib.c
>  copy {SecurityPkg/Library/DxeTcg2PhysicalPresenceLib => 
> OvmfPkg/Library/Tcg2PhysicalPresenceLibQemu}/PhysicalPresenceStrings.uni (56%)
> 

I briefly summarized the updates that I mentioned in review on the
patches themselves, and pushed the series as commit range
75135cc6988e..8d65d3b25e35.

Thank you guys again!
Laszlo



reply via email to

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