On 6/9/23 10:07, Stefano Stabellini wrote:
From: Vikram Garhwal<vikram.garh...@amd.com>
Add a new machine xenpvh which creates a IOREQ server to register/connect with
Xen Hypervisor.
Optional: When CONFIG_TPM is enabled, it also creates a tpm-tis-device, adds a
TPM emulator and connects to swtpm running on host machine via chardev socket
and support TPM functionalities for a guest domain.
Extra command line for aarch64 xenpvh QEMU to connect to swtpm:
-chardev socket,id=chrtpm,path=/tmp/myvtpm2/swtpm-sock \
-tpmdev emulator,id=tpm0,chardev=chrtpm \
-machine tpm-base-addr=0x0c000000 \
swtpm implements a TPM software emulator(TPM 1.2 & TPM 2) built on libtpms and
provides access to TPM functionality over socket, chardev and CUSE interface.
Github repo:https://github.com/stefanberger/swtpm
Example for starting swtpm on host machine:
mkdir /tmp/vtpm2
swtpm socket --tpmstate dir=/tmp/vtpm2 \
--ctrl type=unixio,path=/tmp/vtpm2/swtpm-sock &
Signed-off-by: Vikram Garhwal<vikram.garh...@amd.com>
Signed-off-by: Stefano Stabellini<stefano.stabell...@amd.com>
Reviewed-by: Stefano Stabellini<sstabell...@kernel.org>
---
docs/system/arm/xenpvh.rst | 34 +++++++
docs/system/target-arm.rst | 1 +
hw/arm/meson.build | 2 +
hw/arm/xen_arm.c | 181 ++++++++++++++++++++++++++++++++++
include/hw/arm/xen_arch_hvm.h | 9 ++
include/hw/xen/arch_hvm.h | 2 +
6 files changed, 229 insertions(+)
create mode 100644 docs/system/arm/xenpvh.rst
create mode 100644 hw/arm/xen_arm.c
create mode 100644 include/hw/arm/xen_arch_hvm.h
Fails testing.
Summary of Failures:
10/423 qemu:qtest+qtest-aarch64 / qtest-aarch64/test-hmp ERROR
161.45s killed by signal 6 SIGABRT
210/423 qemu:qtest+qtest-aarch64 / qtest-aarch64/qom-test ERROR
327.56s killed by signal 6 SIGABRT
# starting QEMU: exec ./qemu-system-aarch64 -qtest unix:/tmp/qtest-669817.sock -qtest-log
/dev/null -chardev socket,path=/tmp/qtest-669817.qmp,id=char0 -mon
chardev=char0,mode=control -display none -machine xenpvh -accel qtest
qemu-system-aarch64: The -accel and "-machine accel=" options are incompatible
socket_accept failed: Resource temporarily unavailable
**
ERROR:../src/tests/qtest/libqtest.c:474:qtest_init_without_qmp_handshake: assertion
failed: (s->fd >= 0 && s->qmp_fd >= 0)
Bail out! ERROR:../src/tests/qtest/libqtest.c:474:qtest_init_without_qmp_handshake:
assertion failed: (s->fd >= 0 && s->qmp_fd >= 0)
../src/tests/qtest/libqtest.c:186: kill_qemu() tried to terminate QEMU process but
encountered exit status 1 (expected 0)
r~