[Qemu-devel] [PATCH v8 0/5] Add support for TPM Physical Presence interface

Marc-André Lureau posted 5 patches 7 years, 6 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20180716125948.11666-1-marcandre.lureau@redhat.com
Test checkpatch passed
Test docker-mingw@fedora passed
Test docker-quick@centos7 passed
There is a newer version of this series
hw/tpm/tpm_ppi.h      |  26 +++
include/hw/acpi/tpm.h |  17 ++
include/hw/compat.h   |  10 +
hw/i386/acpi-build.c  | 456 +++++++++++++++++++++++++++++++++++++++++-
hw/tpm/tpm_crb.c      |  11 +
hw/tpm/tpm_ppi.c      |  56 ++++++
hw/tpm/tpm_tis.c      |  11 +
docs/specs/tpm.txt    | 101 ++++++++++
hw/tpm/Makefile.objs  |   1 +
hw/tpm/trace-events   |   3 +
10 files changed, 690 insertions(+), 2 deletions(-)
create mode 100644 hw/tpm/tpm_ppi.h
create mode 100644 hw/tpm/tpm_ppi.c
[Qemu-devel] [PATCH v8 0/5] Add support for TPM Physical Presence interface
Posted by Marc-André Lureau 7 years, 6 months ago
Hi,

The following patches implement the TPM Physical Presence Interface
that allows a user to set a command via ACPI (sysfs entry in Linux)
that, upon the next reboot, the firmware looks for and acts upon by
sending sequences of commands to the TPM.

A dedicated memory region is added to the TPM CRB & TIS devices, at
address/size 0xFED45000/0x400. A new "etc/tpm/config" fw_cfg entry
holds the location for that PPI region and some version details, to
allow for future flexibility.

With the associated edk2/ovmf firmware, the Windows HLK "PPI 1.3" test
now runs successfully.

It is based on previous work from Stefan Berger ("[PATCH v2 0/4]
Implement Physical Presence interface for TPM 1.2 and 2")

The edk2 support is merged upstream.

v8: ACPI code improvements
- replace various aml_int() with variables
- make op/op_flags common variables
- replace the switch field indexing hack by a dynamic operation region

v7:
- relace RAM with RAM device ptr
- a few ACPI code & comments improvements
- add back proof-of-concept ACPI memory clear interface, handled in
  qemu (pass again WHLK TCG tests)

Marc-André Lureau (2):
  tpm: add a "ppi" boolean property
  PoC: tpm: add ACPI memory clear interface

Stefan Berger (3):
  tpm: implement virtual memory device for TPM PPI
  acpi: add fw_cfg file for TPM and PPI virtual memory device
  acpi: build TPM Physical Presence interface

 hw/tpm/tpm_ppi.h      |  26 +++
 include/hw/acpi/tpm.h |  17 ++
 include/hw/compat.h   |  10 +
 hw/i386/acpi-build.c  | 456 +++++++++++++++++++++++++++++++++++++++++-
 hw/tpm/tpm_crb.c      |  11 +
 hw/tpm/tpm_ppi.c      |  56 ++++++
 hw/tpm/tpm_tis.c      |  11 +
 docs/specs/tpm.txt    | 101 ++++++++++
 hw/tpm/Makefile.objs  |   1 +
 hw/tpm/trace-events   |   3 +
 10 files changed, 690 insertions(+), 2 deletions(-)
 create mode 100644 hw/tpm/tpm_ppi.h
 create mode 100644 hw/tpm/tpm_ppi.c

-- 
2.18.0.129.ge3331758f1


Re: [Qemu-devel] [PATCH v8 0/5] Add support for TPM Physical Presence interface
Posted by Michael S. Tsirkin 7 years, 6 months ago
On Mon, Jul 16, 2018 at 02:59:43PM +0200, Marc-André Lureau wrote:
> Hi,
> 
> The following patches implement the TPM Physical Presence Interface
> that allows a user to set a command via ACPI (sysfs entry in Linux)
> that, upon the next reboot, the firmware looks for and acts upon by
> sending sequences of commands to the TPM.
> 
> A dedicated memory region is added to the TPM CRB & TIS devices, at
> address/size 0xFED45000/0x400. A new "etc/tpm/config" fw_cfg entry
> holds the location for that PPI region and some version details, to
> allow for future flexibility.
> 
> With the associated edk2/ovmf firmware, the Windows HLK "PPI 1.3" test
> now runs successfully.
> 
> It is based on previous work from Stefan Berger ("[PATCH v2 0/4]
> Implement Physical Presence interface for TPM 1.2 and 2")
> 
> The edk2 support is merged upstream.

ACPI bits:

Acked-by: Michael S. Tsirkin <mst@redhat.com>


> v8: ACPI code improvements
> - replace various aml_int() with variables
> - make op/op_flags common variables
> - replace the switch field indexing hack by a dynamic operation region
> 
> v7:
> - relace RAM with RAM device ptr
> - a few ACPI code & comments improvements
> - add back proof-of-concept ACPI memory clear interface, handled in
>   qemu (pass again WHLK TCG tests)
> 
> Marc-André Lureau (2):
>   tpm: add a "ppi" boolean property
>   PoC: tpm: add ACPI memory clear interface
> 
> Stefan Berger (3):
>   tpm: implement virtual memory device for TPM PPI
>   acpi: add fw_cfg file for TPM and PPI virtual memory device
>   acpi: build TPM Physical Presence interface
> 
>  hw/tpm/tpm_ppi.h      |  26 +++
>  include/hw/acpi/tpm.h |  17 ++
>  include/hw/compat.h   |  10 +
>  hw/i386/acpi-build.c  | 456 +++++++++++++++++++++++++++++++++++++++++-
>  hw/tpm/tpm_crb.c      |  11 +
>  hw/tpm/tpm_ppi.c      |  56 ++++++
>  hw/tpm/tpm_tis.c      |  11 +
>  docs/specs/tpm.txt    | 101 ++++++++++
>  hw/tpm/Makefile.objs  |   1 +
>  hw/tpm/trace-events   |   3 +
>  10 files changed, 690 insertions(+), 2 deletions(-)
>  create mode 100644 hw/tpm/tpm_ppi.h
>  create mode 100644 hw/tpm/tpm_ppi.c
> 
> -- 
> 2.18.0.129.ge3331758f1