]> git.proxmox.com Git - mirror_qemu.git/commit
spapr: initial implementation for H_TPM_COMM/spapr-tpm-proxy
authorMichael Roth <mdroth@linux.vnet.ibm.com>
Wed, 17 Jul 2019 20:58:42 +0000 (15:58 -0500)
committerDavid Gibson <david@gibson.dropbear.id.au>
Wed, 21 Aug 2019 07:17:12 +0000 (17:17 +1000)
commit0fb6bd07323019dc8d3f2c124323f71e2ddfc9f4
treeb58f56e89db22e181cbb27194767ffdd59fb3fb8
parent1daba4d1b296d23907b73735615b12588da670fb
spapr: initial implementation for H_TPM_COMM/spapr-tpm-proxy

This implements the H_TPM_COMM hypercall, which is used by an
Ultravisor to pass TPM commands directly to the host's TPM device, or
a TPM Resource Manager associated with the device.

This also introduces a new virtual device, spapr-tpm-proxy, which
is used to configure the host TPM path to be used to service
requests sent by H_TPM_COMM hcalls, for example:

  -device spapr-tpm-proxy,id=tpmp0,host-path=/dev/tpmrm0

By default, no spapr-tpm-proxy will be created, and hcalls will return
H_FUNCTION.

The full specification for this hypercall can be found in
docs/specs/ppc-spapr-uv-hcalls.txt

Since SVM-related hcalls like H_TPM_COMM use a reserved range of
0xEF00-0xEF80, we introduce a separate hcall table here to handle
them.

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com
Message-Id: <20190717205842.17827-3-mdroth@linux.vnet.ibm.com>
[dwg: Corrected #include for upstream change]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
hw/ppc/Makefile.objs
hw/ppc/spapr.c
hw/ppc/spapr_hcall.c
hw/ppc/spapr_tpm_proxy.c [new file with mode: 0644]
hw/ppc/trace-events
include/hw/ppc/spapr.h
include/hw/ppc/spapr_tpm_proxy.h [new file with mode: 0644]