aboutsummaryrefslogtreecommitdiff
path: root/docs/system/arm
diff options
context:
space:
mode:
authorVikram Garhwal <vikram.garhwal@amd.com>2023-06-14 17:03:37 -0700
committerStefano Stabellini <stefano.stabellini@amd.com>2023-06-15 16:46:47 -0700
commit733766cd37338ea08cb6c22c6e040d55b26f326c (patch)
treee81698f37a2331f04aae195593199fedcde74f56 /docs/system/arm
parenta4b4b40be86f69a994bf614edd49d8f1fb79422e (diff)
downloadqemu-733766cd37338ea08cb6c22c6e040d55b26f326c.zip
qemu-733766cd37338ea08cb6c22c6e040d55b26f326c.tar.gz
qemu-733766cd37338ea08cb6c22c6e040d55b26f326c.tar.bz2
hw/arm: introduce xenpvh machine
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.garhwal@amd.com> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Diffstat (limited to 'docs/system/arm')
-rw-r--r--docs/system/arm/xenpvh.rst34
1 files changed, 34 insertions, 0 deletions
diff --git a/docs/system/arm/xenpvh.rst b/docs/system/arm/xenpvh.rst
new file mode 100644
index 0000000..e1655c7
--- /dev/null
+++ b/docs/system/arm/xenpvh.rst
@@ -0,0 +1,34 @@
+XENPVH (``xenpvh``)
+=========================================
+This machine creates a IOREQ server to register/connect with Xen Hypervisor.
+
+When TPM is enabled, this machine also creates a tpm-tis-device at a user input
+tpm base address, adds a TPM emulator and connects to a swtpm application
+running on host machine via chardev socket. This enables xenpvh to support TPM
+functionalities for a guest domain.
+
+More information about TPM use and installing swtpm linux application can be
+found at: docs/specs/tpm.rst.
+
+Example for starting swtpm on host machine:
+.. code-block:: console
+
+ mkdir /tmp/vtpm2
+ swtpm socket --tpmstate dir=/tmp/vtpm2 \
+ --ctrl type=unixio,path=/tmp/vtpm2/swtpm-sock &
+
+Sample QEMU xenpvh commands for running and connecting with Xen:
+.. code-block:: console
+
+ qemu-system-aarch64 -xen-domid 1 \
+ -chardev socket,id=libxl-cmd,path=qmp-libxl-1,server=on,wait=off \
+ -mon chardev=libxl-cmd,mode=control \
+ -chardev socket,id=libxenstat-cmd,path=qmp-libxenstat-1,server=on,wait=off \
+ -mon chardev=libxenstat-cmd,mode=control \
+ -xen-attach -name guest0 -vnc none -display none -nographic \
+ -machine xenpvh -m 1301 \
+ -chardev socket,id=chrtpm,path=tmp/vtpm2/swtpm-sock \
+ -tpmdev emulator,id=tpm0,chardev=chrtpm -machine tpm-base-addr=0x0C000000
+
+In above QEMU command, last two lines are for connecting xenpvh QEMU to swtpm
+via chardev socket.