]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: fill in domain capabilities for TPMs
authorDaniel P. Berrangé <berrange@redhat.com>
Tue, 23 Nov 2021 17:18:36 +0000 (17:18 +0000)
committerDaniel P. Berrangé <berrange@redhat.com>
Wed, 1 Dec 2021 12:14:03 +0000 (12:14 +0000)
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>
71 files changed:
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h
tests/domaincapsdata/qemu_2.11.0-q35.x86_64.xml
tests/domaincapsdata/qemu_2.11.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_2.11.0.s390x.xml
tests/domaincapsdata/qemu_2.11.0.x86_64.xml
tests/domaincapsdata/qemu_2.12.0-q35.x86_64.xml
tests/domaincapsdata/qemu_2.12.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_2.12.0-virt.aarch64.xml
tests/domaincapsdata/qemu_2.12.0.aarch64.xml
tests/domaincapsdata/qemu_2.12.0.ppc64.xml
tests/domaincapsdata/qemu_2.12.0.s390x.xml
tests/domaincapsdata/qemu_2.12.0.x86_64.xml
tests/domaincapsdata/qemu_3.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_3.0.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_3.0.0.ppc64.xml
tests/domaincapsdata/qemu_3.0.0.s390x.xml
tests/domaincapsdata/qemu_3.0.0.x86_64.xml
tests/domaincapsdata/qemu_3.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_3.1.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_3.1.0.ppc64.xml
tests/domaincapsdata/qemu_3.1.0.x86_64.xml
tests/domaincapsdata/qemu_4.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_4.0.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_4.0.0-virt.aarch64.xml
tests/domaincapsdata/qemu_4.0.0.aarch64.xml
tests/domaincapsdata/qemu_4.0.0.ppc64.xml
tests/domaincapsdata/qemu_4.0.0.s390x.xml
tests/domaincapsdata/qemu_4.0.0.x86_64.xml
tests/domaincapsdata/qemu_4.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_4.1.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_4.1.0.x86_64.xml
tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml
tests/domaincapsdata/qemu_4.2.0.aarch64.xml
tests/domaincapsdata/qemu_4.2.0.ppc64.xml
tests/domaincapsdata/qemu_4.2.0.s390x.xml
tests/domaincapsdata/qemu_4.2.0.x86_64.xml
tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml
tests/domaincapsdata/qemu_5.0.0.aarch64.xml
tests/domaincapsdata/qemu_5.0.0.ppc64.xml
tests/domaincapsdata/qemu_5.0.0.x86_64.xml
tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_5.1.0.sparc.xml
tests/domaincapsdata/qemu_5.1.0.x86_64.xml
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml
tests/domaincapsdata/qemu_5.2.0.aarch64.xml
tests/domaincapsdata/qemu_5.2.0.ppc64.xml
tests/domaincapsdata/qemu_5.2.0.s390x.xml
tests/domaincapsdata/qemu_5.2.0.x86_64.xml
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_6.0.0-virt.aarch64.xml
tests/domaincapsdata/qemu_6.0.0.aarch64.xml
tests/domaincapsdata/qemu_6.0.0.s390x.xml
tests/domaincapsdata/qemu_6.0.0.x86_64.xml
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_6.1.0.x86_64.xml
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_6.2.0-virt.aarch64.xml
tests/domaincapsdata/qemu_6.2.0.aarch64.xml
tests/domaincapsdata/qemu_6.2.0.ppc64.xml
tests/domaincapsdata/qemu_6.2.0.x86_64.xml

index 30a557706b8873803bccabd065157e1a59150dba..0e6e73774a0408b85ed687d4d3d1872c5ec25c40 100644 (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);
index 61bdbdb2ac2b975db8cb4c183d8a130a64364f13..716e09123c331642f95c2b144a94bcc3d293d4d7 100644 (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);
 
index e18b33e044cb9ce7f91e3cff3f08a2b8052d7e1e..79d14234fe78c5fba432e76f3547bbe89782ee84 100644 (file)
         <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'/>
index 97402b1d4c3b041528d56c93d7d40247ee91723c..fc71f9cc7c9cbb383db5c34c546cc2441bcb5b19 100644 (file)
         <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'/>
index a52e436538c04548f2db9a1abdfd0f10e8a56494..804bf8020ec81562aa4863178437f0c0f8e3a6b4 100644 (file)
         <value>handle</value>
       </enum>
     </filesystem>
+    <tpm supported='no'/>
   </devices>
   <features>
     <gic supported='no'/>
index 83ebb741cc715abeabc10b9d081978beabe02ac2..44d57900e20484b94286ed5444f7ad54e319f288 100644 (file)
         <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'/>
index eb876a374847357ef134f63f54b0ee9f540a93aa..e9082540b74cc482676e6f1ae673f5d76c782058 100644 (file)
         <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'/>
index 2c9a7a1c22b8507d316a8e886350e8460c0a10d1..1c91661942433368799dede11f21f1ff2a820be3 100644 (file)
         <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'/>
index 6407b7ca36d421e9994c5be4b76c95938fe2ca7a..2074c898752e5d5d3aee4b0d19ba6c41d54ff2af 100644 (file)
         <value>handle</value>
       </enum>
     </filesystem>
+    <tpm supported='no'/>
   </devices>
   <features>
     <gic supported='yes'>
index 27b717318a56a538a3ba355839c22bfc5a5c94d5..a93313f98081df6979872f18daee11ff1ce1657a 100644 (file)
         <value>handle</value>
       </enum>
     </filesystem>
+    <tpm supported='no'/>
   </devices>
   <features>
     <gic supported='no'/>
index 26006d2c081eea8668e3409206b5c76fc1e2fa39..cb3edcbd560cb213d13647519bbedea512f08a90 100644 (file)
         <value>handle</value>
       </enum>
     </filesystem>
+    <tpm supported='no'/>
   </devices>
   <features>
     <gic supported='no'/>
index f289a4893cb31e4f93a704f42164787368f1624b..5c3d9ce7dbd9558fa981f3bc13d5692579fb27df 100644 (file)
         <value>handle</value>
       </enum>
     </filesystem>
+    <tpm supported='no'/>
   </devices>
   <features>
     <gic supported='no'/>
index 8d9cebe20c13edf7ca9b223a7b9b2430951596e1..2e5e63308dc39fe87de946ccec657891f5480a8e 100644 (file)
         <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'/>
index 20b30564f42ae33c9cfde863ce81857a206f8414..ab63745e977b485572c3e9eb7826ba8db5546c24 100644 (file)
         <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'/>
index 45f578183efd51ecf2e689fcb9b0cbdd0e5ba001..119b7020a7ca79a34e8981395e78ae832aebf3ac 100644 (file)
         <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'/>
index 36fc07f20c60f264fb55b99186a955e78bc924c2..8605db5cc8cf62ae1bd9430bd831eab34661227d 100644 (file)
         <value>handle</value>
       </enum>
     </filesystem>
+    <tpm supported='no'/>
   </devices>
   <features>
     <gic supported='no'/>
index 2aa34677c03467fb38fa428d0212f60e3fa5a0a0..f49b6907ff9464787ef19ffeb5e861341c280065 100644 (file)
         <value>handle</value>
       </enum>
     </filesystem>
+    <tpm supported='no'/>
   </devices>
   <features>
     <gic supported='no'/>
index 19595be2b4343b4788bcb70ecea8830ddfc078b3..087f3608b2a456db046410d3724d10a285b0bb52 100644 (file)
         <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'/>
index 62fbd05ccc47ca93709f1a2db43daf6db0dc1140..5c0cf79efdf25a9d9b9d0bb04eef996b91b21fc7 100644 (file)
         <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'/>
index 092a8db6b33fa870233414f255dd2d3c2781b5aa..e51dc28f79a63ccbacc37684e4747c2f5e961d02 100644 (file)
         <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'/>
index a45bbc7fe514bb49e188b1de4e755a13025fc63e..8035f7230acf4a606109613c87912ea5054aed12 100644 (file)
         <value>handle</value>
       </enum>
     </filesystem>
+    <tpm supported='no'/>
   </devices>
   <features>
     <gic supported='no'/>
index 3c4b6d9e00c4c8be00d88477f14a9fb339bc32a1..5b42add078ec79a3f848d96f7952fd2412355e64 100644 (file)
         <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'/>
index ba406ef7fdfbad0bf6a876e3b216d5697310fdc0..5e20814beb568776559e01fb4bb00e39925c641e 100644 (file)
         <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'/>
index 72b5c236d2cd6a5149aa12b324b933f943a04aa1..fa41ed288b9679065bf10e5218f53e18e1d6e094 100644 (file)
         <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'/>
index 5dd21b50dcf8545da7c4805891fef1b1dc7de6a6..7108efe3b43c1b02a171c7bce7243cab093efaeb 100644 (file)
         <value>handle</value>
       </enum>
     </filesystem>
+    <tpm supported='no'/>
   </devices>
   <features>
     <gic supported='yes'>
index fd0543974d6469a4d374a74846b7c48f54b74e3d..1e7db635d0e916ea40143224bf5fe4fbe63955c0 100644 (file)
         <value>handle</value>
       </enum>
     </filesystem>
+    <tpm supported='no'/>
   </devices>
   <features>
     <gic supported='no'/>
index ad1a1a399acff9fafbb5142093f9906389c1eeb4..f109d362667ae7bd17e7a07919cac4f54d1dc66b 100644 (file)
         <value>handle</value>
       </enum>
     </filesystem>
+    <tpm supported='no'/>
   </devices>
   <features>
     <gic supported='no'/>
index ede04824e9970dae0fcf993bc8e54fe75ac0137a..b810ad737a6540baa660a9022e77f42c2f725781 100644 (file)
         <value>handle</value>
       </enum>
     </filesystem>
+    <tpm supported='no'/>
   </devices>
   <features>
     <gic supported='no'/>
index cd086b7e3a76f53955d1e7883bbe04994575060c..14f00628178daa9538b042ded31f89a26575e724 100644 (file)
         <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'/>
index 233f49a21bfa6f445ea5119dec2043a2df13b41e..f1446f86555bd2480420c838fff1299ff3b884a1 100644 (file)
         <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'/>
index 03ebf381d03e0ebcf9ea00328b600a963f76ea7e..77aca157b1305d9f147303b8e94000c71bb9b167 100644 (file)
         <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'/>
index 8806f2d8d64132ca59976baa3abad7d0e192e5fb..854d62b89e62cae0d34e96eb19c00049f5639141 100644 (file)
         <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'/>
index 5df0f5f488076dc25338eedbe4fecdcececc2b5d..739e0c6a13914cf4893c11d4482fdd1e8ee75daa 100644 (file)
         <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'/>
index 2b306b27f3c69fd14ceff580ff0f872a2d64b793..30de3cede78ebb56f5957c8e1c5c14c3c58a2e0d 100644 (file)
         <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'/>
index 792bac12989b11ba41125b2c6cb466e07ddc6c82..05d606967b0bdf71fa3e9496f067dbd8135808f9 100644 (file)
         <value>virtiofs</value>
       </enum>
     </filesystem>
+    <tpm supported='no'/>
   </devices>
   <features>
     <gic supported='yes'>
index 7b6f3a851a2be780b15b9a68821f8be44684da57..f19ad5e6dbedfa1ca2a0f8f10890963ff2bbcecd 100644 (file)
         <value>virtiofs</value>
       </enum>
     </filesystem>
+    <tpm supported='no'/>
   </devices>
   <features>
     <gic supported='no'/>
index 728f4e87fcb5a6fbeef9094b01917ae3f5e23dcf..4c3a2c6d989865b35df2b84c28f5d7756f8d21f9 100644 (file)
         <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'/>
index f344b289b27187625ef9bbc71f8bdc3c846fee53..fb162ea57846a3da67316420e7c44881ae9d01e9 100644 (file)
         <value>virtiofs</value>
       </enum>
     </filesystem>
+    <tpm supported='no'/>
   </devices>
   <features>
     <gic supported='no'/>
index fd8d3a86562de8db0d333410c1a97348aa93830d..6b8e895ff65a182c04d7438368f0e59a7ee7ba11 100644 (file)
         <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'/>
index 941d65431e788a72afd2e4928faa065ecd82b06d..b0eba3550ac951a46601cad1945b5d112d03db02 100644 (file)
         <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'/>
index 98511dffd7d9393164ea7a9c153f795a10d38613..fdce0eaaad755387ebc731aceba9f37bbf4dc44c 100644 (file)
         <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'/>
index d673ddfaad3d070240695f55aaca130ca19c5d42..f926e025aaa5e91f02e24b8aa7c0b39ad20524fe 100644 (file)
         <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'>
index b879287180f1c9634daced61eb1426d05020af75..3c842d3642f6634f50f836f891b942a6c582ba1f 100644 (file)
         <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'/>
index 14d0bc3eafbd5de9533a6a88e8dcca92ab9b6fa5..f85f4e6268db9afae3523bc093ed447af2b22c18 100644 (file)
         <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'/>
index 6bab719f7eed288b56b02d27daa1f91e3518ff1d..4a4893c0302b77c4417f3d8e106e122b014b2816 100644 (file)
         <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'/>
index addffcd0805fda24de0830b16111ad8bb57fe113..5b4bb4246e120e61856be054f94a4f7bf84ba784 100644 (file)
         <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'/>
index 5a094acbdb38896658f5a61b77281ff26f3c7cc1..b28f7dd5493fa8954d7e02deeaeede19fc2e4173 100644 (file)
         <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'/>
index ddcffd9d446f0f551bb7acd564489bef61ed694b..5c1c0c4680db10d7f7e540c24204d8fecc1611d0 100644 (file)
         <value>handle</value>
       </enum>
     </filesystem>
+    <tpm supported='no'/>
   </devices>
   <features>
     <gic supported='no'/>
index 428c6e30e80e0d992867a34b6b2670bc9c453b29..1eabdf1a6d2a7a62a801be61850f19b5d184e2eb 100644 (file)
         <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'/>
index db262241c7ff2255555efeb64d01aaa07f90c011..794e1d7b227f02ec86ec12b6c23e380cda6c279c 100644 (file)
         <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'/>
index 4538cf0dc888a5f64831c0bb81dd3eed6908956f..e8ec912cee647c56dde65acfeaeeeec32aef2d4a 100644 (file)
         <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'/>
index fb1118e33e3e4f4916076176cbe3196f53a2761e..14d93448e906ea1105df7c68cb493389cd2147f4 100644 (file)
         <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'>
index b879287180f1c9634daced61eb1426d05020af75..3c842d3642f6634f50f836f891b942a6c582ba1f 100644 (file)
         <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'/>
index 094295ff29e3945cb9c4c2db6a020ce07ff078df..7691d1d76277ecdff13015b0d9eb80f805333c37 100644 (file)
         <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'/>
index c30de65f887c4b660ff5ceae37352297a38d54de..2a2ca8abcf1691dd525a80bf3d363226cde0f167 100644 (file)
         <value>virtiofs</value>
       </enum>
     </filesystem>
+    <tpm supported='no'/>
   </devices>
   <features>
     <gic supported='no'/>
index a6a8f0ab4361a6b81f58eae5d2910de2e772d3e7..f6911b06b3039b70b5a71ce2f36bcc6b4e063753 100644 (file)
         <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'/>
index b7ac45c73166e06970176439e063d3ba7f36e1d2..d59772cbf64d6085e95fe4563321c1762052dbe9 100644 (file)
         <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'/>
index 6f53b3ea0f01257c73d2bc34552614528b0d67ba..7a0ee2685465cbf993e373d0d2e9c6ca5544d799 100644 (file)
         <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'/>
index 7a52cce114006700e7ce0d5ad257061fdadb94bd..ca66634456e07abfc85e166790878bd87d675344 100644 (file)
         <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'>
index c51e361c7f8a7e3352bf3820c5ef9a311459e025..7c2d0c6120945d7c0ec8be8d059dc2150dea9a11 100644 (file)
         <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'/>
index d6d8262a346bd4d8fa3a7aa05884ad0a68b142fb..13fa3a637e57efbf67ebad55f7ddd391f42eff91 100644 (file)
         <value>virtiofs</value>
       </enum>
     </filesystem>
+    <tpm supported='no'/>
   </devices>
   <features>
     <gic supported='no'/>
index 71aefb5bff802407fdce91665f473840f6163e1f..3255765c75b09640e7f023d9376b7b85e19d4dea 100644 (file)
         <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'/>
index bae2187aa2c411c82c7417566ef47816094b144c..86fdf9b884af33d25a06eb999fc5d1aefcf8e58b 100644 (file)
         <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'/>
index a9b40115576d0a9ad7a01a8e752c895168f2f8b7..034273c84702402bfd20e321bf6d959d8f34ea66 100644 (file)
         <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'/>
index 5a261f2d0e72c494d304940780af107f1995fda7..4a943c4f362910faf2da70b529ea007c65e50a05 100644 (file)
         <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'/>
index df8bdae10227d49dc1f4b550bfd48da4a619f2ff..52819a95323d6abb46f2f33934a45fb1fb2ff22f 100644 (file)
         <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'/>
index 4d1210565968a63f2640ce2f955abaeda220ca74..7d14e5325566967f653b3e20be7348fbe65e86e5 100644 (file)
         <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'/>
index 8b590fd40d58d00828b777424b9ea448c8519c59..665f7e568f892cca24ef5d2af8203e205d3fb352 100644 (file)
         <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'>
index 496b9103364d9a8dea784bea53604250d3602d22..e1005392e16bdc8bb8b7e15ed4ac780b108206d7 100644 (file)
         <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'/>
index 93c901816ebea4d6704b67cb39361077b4291a0e..720d6ad8852e908bf86d75f9509932bf88abddd4 100644 (file)
         <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'/>
index c382ec462ca65899e4db55d3265cd2491c6e14f5..beb473cd73e969d0a41524a23b14cb09a89c8b36 100644 (file)
         <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'/>