qemu: fill in domain capabilities for TPMs

This reports what TPM features QEMU supports, provided that swtpm is
installed in the host.

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2021-11-23 17:18:36 +00:00
parent fd0aa7879f
commit 6f7fc0b54a
71 changed files with 500 additions and 0 deletions

View File

@ -49,6 +49,7 @@
#include "qemu_process.h"
#include "qemu_firmware.h"
#include "virutil.h"
#include "virtpm.h"
#include <fcntl.h>
#include <sys/stat.h>
@ -6201,6 +6202,37 @@ virQEMUCapsFillDomainDeviceFSCaps(virQEMUCaps *qemuCaps,
}
void
virQEMUCapsFillDomainDeviceTPMCaps(virQEMUCaps *qemuCaps,
virDomainCapsDeviceTPM *tpm)
{
tpm->supported = VIR_TRISTATE_BOOL_YES;
tpm->model.report = true;
tpm->backendModel.report = true;
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_TPM_TIS))
VIR_DOMAIN_CAPS_ENUM_SET(tpm->model, VIR_DOMAIN_TPM_MODEL_TIS);
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_TPM_CRB))
VIR_DOMAIN_CAPS_ENUM_SET(tpm->model, VIR_DOMAIN_TPM_MODEL_CRB);
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_TPM_SPAPR))
VIR_DOMAIN_CAPS_ENUM_SET(tpm->model, VIR_DOMAIN_TPM_MODEL_SPAPR);
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_SPAPR_TPM_PROXY))
VIR_DOMAIN_CAPS_ENUM_SET(tpm->model, VIR_DOMAIN_TPM_MODEL_SPAPR_PROXY);
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_TPM_PASSTHROUGH))
VIR_DOMAIN_CAPS_ENUM_SET(tpm->backendModel, VIR_DOMAIN_TPM_TYPE_PASSTHROUGH);
if (virTPMHasSwtpm() &&
virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_TPM_EMULATOR))
VIR_DOMAIN_CAPS_ENUM_SET(tpm->backendModel, VIR_DOMAIN_TPM_TYPE_EMULATOR);
/*
* Need at least one frontend if it is to be usable by applications
*/
if (!tpm->model.values)
tpm->supported = VIR_TRISTATE_BOOL_NO;
}
/**
* virQEMUCapsSupportsGICVersion:
* @qemuCaps: QEMU capabilities
@ -6345,6 +6377,7 @@ virQEMUCapsFillDomainCaps(virQEMUCaps *qemuCaps,
virDomainCapsDeviceVideo *video = &domCaps->video;
virDomainCapsDeviceRNG *rng = &domCaps->rng;
virDomainCapsDeviceFilesystem *filesystem = &domCaps->filesystem;
virDomainCapsDeviceTPM *tpm = &domCaps->tpm;
virDomainCapsMemoryBacking *memoryBacking = &domCaps->memoryBacking;
virQEMUCapsFillDomainFeaturesFromQEMUCaps(qemuCaps, domCaps);
@ -6376,6 +6409,7 @@ virQEMUCapsFillDomainCaps(virQEMUCaps *qemuCaps,
virQEMUCapsFillDomainDeviceHostdevCaps(qemuCaps, hostdev);
virQEMUCapsFillDomainDeviceRNGCaps(qemuCaps, rng);
virQEMUCapsFillDomainDeviceFSCaps(qemuCaps, filesystem);
virQEMUCapsFillDomainDeviceTPMCaps(qemuCaps, tpm);
virQEMUCapsFillDomainFeatureGICCaps(qemuCaps, domCaps);
virQEMUCapsFillDomainFeatureSEVCaps(qemuCaps, domCaps);
virQEMUCapsFillDomainFeatureS390PVCaps(qemuCaps, domCaps);

View File

@ -803,6 +803,9 @@ void virQEMUCapsFillDomainDeviceRNGCaps(virQEMUCaps *qemuCaps,
void virQEMUCapsFillDomainDeviceFSCaps(virQEMUCaps *qemuCaps,
virDomainCapsDeviceFilesystem *filesystem);
void virQEMUCapsFillDomainDeviceTPMCaps(virQEMUCaps *qemuCaps,
virDomainCapsDeviceTPM *tpm);
bool virQEMUCapsGuestIsNative(virArch host,
virArch guest);

View File

@ -170,6 +170,14 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -183,6 +183,14 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -205,6 +205,7 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='no'/>
</devices>
<features>
<gic supported='no'/>

View File

@ -170,6 +170,14 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -185,6 +185,15 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -195,6 +195,15 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -155,6 +155,7 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='no'/>
</devices>
<features>
<gic supported='yes'>

View File

@ -153,6 +153,7 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='no'/>
</devices>
<features>
<gic supported='no'/>

View File

@ -123,6 +123,7 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='no'/>
</devices>
<features>
<gic supported='no'/>

View File

@ -205,6 +205,7 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='no'/>
</devices>
<features>
<gic supported='no'/>

View File

@ -185,6 +185,15 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -186,6 +186,15 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -198,6 +198,15 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -125,6 +125,7 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='no'/>
</devices>
<features>
<gic supported='no'/>

View File

@ -212,6 +212,7 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='no'/>
</devices>
<features>
<gic supported='no'/>

View File

@ -186,6 +186,15 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -189,6 +189,15 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -201,6 +201,15 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -125,6 +125,7 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='no'/>
</devices>
<features>
<gic supported='no'/>

View File

@ -189,6 +189,15 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -189,6 +189,15 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -202,6 +202,15 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -162,6 +162,7 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='no'/>
</devices>
<features>
<gic supported='yes'>

View File

@ -160,6 +160,7 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='no'/>
</devices>
<features>
<gic supported='no'/>

View File

@ -126,6 +126,7 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='no'/>
</devices>
<features>
<gic supported='no'/>

View File

@ -222,6 +222,7 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='no'/>
</devices>
<features>
<gic supported='no'/>

View File

@ -189,6 +189,15 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -195,6 +195,15 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -204,6 +204,15 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -195,6 +195,15 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -203,6 +203,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -211,6 +211,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -164,6 +164,7 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='no'/>
</devices>
<features>
<gic supported='yes'>

View File

@ -162,6 +162,7 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='no'/>
</devices>
<features>
<gic supported='no'/>

View File

@ -127,6 +127,12 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>spapr-tpm-proxy</value>
</enum>
<enum name='backendModel'/>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -237,6 +237,7 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='no'/>
</devices>
<features>
<gic supported='no'/>

View File

@ -203,6 +203,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -205,6 +205,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -212,6 +212,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -165,6 +165,14 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='yes'>

View File

@ -163,6 +163,14 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -128,6 +128,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-spapr</value>
<value>spapr-tpm-proxy</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -205,6 +205,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -206,6 +206,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -212,6 +212,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -104,6 +104,7 @@
<value>handle</value>
</enum>
</filesystem>
<tpm supported='no'/>
</devices>
<features>
<gic supported='no'/>

View File

@ -206,6 +206,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -206,6 +206,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -212,6 +212,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -165,6 +165,14 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='yes'>

View File

@ -163,6 +163,14 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -128,6 +128,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-spapr</value>
<value>spapr-tpm-proxy</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -239,6 +239,7 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='no'/>
</devices>
<features>
<gic supported='no'/>

View File

@ -206,6 +206,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -207,6 +207,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -213,6 +213,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -166,6 +166,14 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='yes'>

View File

@ -164,6 +164,14 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -240,6 +240,7 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='no'/>
</devices>
<features>
<gic supported='no'/>

View File

@ -207,6 +207,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -208,6 +208,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -213,6 +213,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -208,6 +208,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -208,6 +208,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -214,6 +214,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -168,6 +168,14 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='yes'>

View File

@ -166,6 +166,14 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -126,6 +126,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-spapr</value>
<value>spapr-tpm-proxy</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>

View File

@ -208,6 +208,15 @@
<value>virtiofs</value>
</enum>
</filesystem>
<tpm supported='yes'>
<enum name='model'>
<value>tpm-tis</value>
<value>tpm-crb</value>
</enum>
<enum name='backendModel'>
<value>passthrough</value>
</enum>
</tpm>
</devices>
<features>
<gic supported='no'/>