]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: expose SGX feature in domain capabilities
authorHaibin Huang <haibin.huang@intel.com>
Fri, 11 Nov 2022 01:21:22 +0000 (17:21 -0800)
committerMichal Privoznik <mprivozn@redhat.com>
Fri, 11 Nov 2022 13:06:31 +0000 (14:06 +0100)
Extend hypervisor capabilities to include sgx feature. When available,
the hypervisor supports launching an VM with SGX on Intel platfrom.
The SGX feature tag privides additional details like section size and
sgx1 or sgx2.

Signed-off-by: Haibin Huang <haibin.huang@intel.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
62 files changed:
docs/formatdomaincaps.rst
src/conf/domain_capabilities.c
src/conf/schemas/domaincaps.rng
src/qemu/qemu_capabilities.c
tests/domaincapsdata/bhyve_basic.x86_64.xml
tests/domaincapsdata/bhyve_fbuf.x86_64.xml
tests/domaincapsdata/bhyve_uefi.x86_64.xml
tests/domaincapsdata/empty.xml
tests/domaincapsdata/libxl-xenfv.xml
tests/domaincapsdata/libxl-xenpv.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
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_7.0.0-virt.aarch64.xml
tests/domaincapsdata/qemu_7.0.0.aarch64.xml
tests/domaincapsdata/qemu_7.0.0.ppc64.xml
tests/domaincapsdata/qemu_7.0.0.x86_64.xml
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_7.1.0.ppc64.xml
tests/domaincapsdata/qemu_7.1.0.x86_64.xml
tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_7.2.0.x86_64.xml

index f95d3a7083dc736daeb02e0d02204417e330466e..532fea0f60a8f405e83caefdbc26bbfe83e8d095 100644 (file)
@@ -614,6 +614,16 @@ capabilities. All features occur as children of the main ``features`` element.
          <cbitpos>47</cbitpos>
          <reduced-phys-bits>1</reduced-phys-bits>
        </sev>
+       <sgx supported='yes'>
+         <flc>no</flc>
+         <sgx1>yes</sgx1>
+         <sgx2>no</sgx2>
+         <section_size unit='KiB'>524288</section_size>
+         <sections>
+           <section node='0' size='262144' unit='KiB'/>
+           <section node='1' size='262144' unit='KiB'/>
+         </sections>
+       </sgx>
      </features>
    </domainCapabilities>
 
@@ -693,3 +703,33 @@ in domain XML <formatdomain.html#launch-security>`__
 ``maxESGuests``
    The maximum number of SEV-ES guests that can be launched on the host. This
    value may be configurable in the firmware for some hosts.
+
+SGX capabilities
+^^^^^^^^^^^^^^^^
+
+Intel Software Guard Extensions (Intel SGX) capabilities are exposed under the
+``sgx`` element.
+
+Intel SGX helps protect data in use via unique application isolation technology.
+Protect selected code and data from modification using hardened enclaves with
+Intel SGX.
+
+For more details on the SGX feature, please follow resources in the SGX developer's
+document store. In order to use SGX with libvirt have a look at `SGX in domain XML
+<formatdomain.html#memory-devices>`__
+
+``flc``
+   FLC (Flexible Launch Control), not strictly part of SGX2, but was not part of
+   original SGX hardware either.
+
+``sgx1``
+   the sgx version 1.
+
+``sgx2``
+   The sgx version 2.
+
+``section_size``
+   The size of the SGX enclave page cache (called EPC).
+
+``sections``
+   The sections of the SGX enclave page cache (called EPC).
index daeaee3c5c23401b0dfe777c2295333e6ad9c196..247cfa49dee500c9b4fe5800d9a9c4bd576c4df1 100644 (file)
@@ -99,6 +99,7 @@ virDomainCapsDispose(void *obj)
     virObjectUnref(caps->cpu.custom);
     virCPUDefFree(caps->cpu.hostModel);
     virSEVCapabilitiesFree(caps->sev);
+    virSGXCapabilitiesFree(caps->sgx);
 
     values = &caps->os.loader.values;
     for (i = 0; i < values->nvalues; i++)
@@ -648,6 +649,40 @@ virDomainCapsFeatureSEVFormat(virBuffer *buf,
     virBufferAddLit(buf, "</sev>\n");
 }
 
+static void
+virDomainCapsFeatureSGXFormat(virBuffer *buf,
+                              const virSGXCapability *sgx)
+{
+    if (!sgx) {
+        virBufferAddLit(buf, "<sgx supported='no'/>\n");
+        return;
+    }
+
+    virBufferAddLit(buf, "<sgx supported='yes'>\n");
+    virBufferAdjustIndent(buf, 2);
+    virBufferAsprintf(buf, "<flc>%s</flc>\n", sgx->flc ? "yes" : "no");
+    virBufferAsprintf(buf, "<sgx1>%s</sgx1>\n", sgx->sgx1 ? "yes" : "no");
+    virBufferAsprintf(buf, "<sgx2>%s</sgx2>\n", sgx->sgx2 ? "yes" : "no");
+    virBufferAsprintf(buf, "<section_size unit='KiB'>%llu</section_size>\n", sgx->section_size);
+
+    if (sgx->nSgxSections > 0) {
+        size_t i;
+
+        virBufferAddLit(buf, "<sections>\n");
+
+        for (i = 0; i < sgx->nSgxSections; i++) {
+            virBufferAdjustIndent(buf, 2);
+            virBufferAsprintf(buf, "<section node='%d' ", sgx->sgxSections[i].node);
+            virBufferAsprintf(buf, "size='%llu' ", sgx->sgxSections[i].size);
+            virBufferAddLit(buf, "unit='KiB'/>\n");
+            virBufferAdjustIndent(buf, -2);
+        }
+        virBufferAddLit(buf, "</sections>\n");
+    }
+
+    virBufferAdjustIndent(buf, -2);
+    virBufferAddLit(buf, "</sgx>\n");
+}
 
 static void
 virDomainCapsFormatFeatures(const virDomainCaps *caps,
@@ -668,6 +703,7 @@ virDomainCapsFormatFeatures(const virDomainCaps *caps,
     }
 
     virDomainCapsFeatureSEVFormat(&childBuf, caps->sev);
+    virDomainCapsFeatureSGXFormat(&childBuf, caps->sgx);
 
     virXMLFormatElement(buf, "features", NULL, &childBuf);
 }
index a6747b20efd304e120271198a81647cc569e0d67..b6408bca88bd087e3f0933543d3ccc8f72d3ae46 100644 (file)
       <optional>
         <ref name="sev"/>
       </optional>
+      <optional>
+        <ref name="sgx"/>
+      </optional>
     </element>
   </define>
 
     </element>
   </define>
 
+  <define name="sgx">
+    <element name="sgx">
+      <ref name="supported"/>
+      <optional>
+        <element name="flc">
+          <ref name="virYesNo"/>
+        </element>
+        <element name="sgx1">
+          <ref name="virYesNo"/>
+        </element>
+        <element name="sgx2">
+          <ref name="virYesNo"/>
+        </element>
+        <element name="section_size">
+          <attribute name="unit">
+            <value>KiB</value>
+          </attribute>
+          <data type="unsignedLong"/>
+        </element>
+        <optional>
+          <element name="sections">
+            <zeroOrMore>
+              <element name="section">
+                <attribute name="node">
+                  <data type="unsignedInt"/>
+                </attribute>
+                <attribute name="size">
+                  <data type="unsignedLong"/>
+                </attribute>
+                <attribute name="unit">
+                  <value>KiB</value>
+                </attribute>
+              </element>
+            </zeroOrMore>
+          </element>
+        </optional>
+      </optional>
+    </element>
+  </define>
+
   <define name="value">
     <zeroOrMore>
       <element name="value">
index 7c9d7ed885bc81f8fa2ffc8a0f7928f818ea321f..d3ba8c85c90a5700d5bc7a226dd80c8b19c5dbe2 100644 (file)
@@ -6633,6 +6633,21 @@ virQEMUCapsFillDomainFeatureS390PVCaps(virQEMUCaps *qemuCaps,
     }
 }
 
+/**
+ * virQEMUCapsFillDomainFeatureSGXCaps:
+ * @qemuCaps: QEMU capabilities
+ * @domCaps: domain capabilities
+ *
+ * Take the information about SGX capabilities that has been obtained
+ * using the 'query-sgx-capabilities' QMP command and stored in @qemuCaps
+ * and convert it to a form suitable for @domCaps.
+ */
+static void
+virQEMUCapsFillDomainFeatureSGXCaps(virQEMUCaps *qemuCaps,
+                                    virDomainCaps *domCaps)
+{
+    virQEMUCapsSGXInfoCopy(&domCaps->sgx, qemuCaps->sgxCapabilities);
+}
 
 int
 virQEMUCapsFillDomainCaps(virQEMUCaps *qemuCaps,
@@ -6689,6 +6704,7 @@ virQEMUCapsFillDomainCaps(virQEMUCaps *qemuCaps,
     virQEMUCapsFillDomainFeatureGICCaps(qemuCaps, domCaps);
     virQEMUCapsFillDomainFeatureSEVCaps(qemuCaps, domCaps);
     virQEMUCapsFillDomainFeatureS390PVCaps(qemuCaps, domCaps);
+    virQEMUCapsFillDomainFeatureSGXCaps(qemuCaps, domCaps);
 
     return 0;
 }
index 745f325531c0ae0536bbee4994cc3a9a06917896..dd054577c0c2e7fb97aa9c766b044a5d4c74b0f4 100644 (file)
@@ -33,5 +33,6 @@
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index bb11c02ae90ec8521bd67b27c0279fb9bfcbe274..0b1d9c17d74d15229db47d7636d655efb5d0e76b 100644 (file)
@@ -50,5 +50,6 @@
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index dfd2360d74216ad6ec68e4a255f652bd3dce4b87..69fff197a753bb86fb58f760668cc935a27a0d22 100644 (file)
@@ -42,5 +42,6 @@
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index d3e2d89b60cd819d4128df01e53d469c7673b9f6..97752ca04a12f62a45f0c468da76f2996f5f86c9 100644 (file)
@@ -13,5 +13,6 @@
   </devices>
   <features>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index cc5b3847e287389da1fd68cab1657fc5787918b5..c71d759517177b05ed6f11a10e74f8a32904153a 100644 (file)
@@ -76,5 +76,6 @@
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 325f1e50b3cedb35c7aa4f05ddb7988831053c9f..8ae2370b7efc15ec3fef1668f2a163f6ca098d88 100644 (file)
@@ -66,5 +66,6 @@
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index def80fe8cd65402935216913cc18604ede6aae12..9375fc9457a05f8b376e20be0ebe9f2dab518f02 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 9e920d1ccbe893f30cac9e8a04ec5216367885de..860ffd1047d14f12fba2aab895bf3a86c36420e0 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 776173e60e347611984744f5566c29d937069356..02aca3e448d47c6ce7d292041a690da60748abf5 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index b6711fc3a45e94bd94df38dcb372d3190fc9cd86..676e1b073910fb08c2e8eab8cb1999d0fb4a5fe8 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 88790451b050f3ee164fb891bf5c18147a6402bf..bcc415d7de100098f62cf244ca124a1ece4f78e0 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index fa416af03882c88fc583a496412f41a8259e9258..4f176e2d3771cd067f9977707623630a7e45f7e0 100644 (file)
     <backup supported='no'/>
     <s390-pv supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index ed9de89dfabdd78074a3f9301ff08b2c47885481..0187584e6bf717a18971b804bfbb7f3db6943f70 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index af0335eb3aa84cb14a5985aa662d4b6fbb6d06c3..3f534b77a26c3c70bf35c1789f861f7b3b60123f 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index fc09e9ff28d7050eceec5aad9b3c01648355173c..2826ce58e1d730a0f8e9556bcd8f3e154566ac7f 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 88bc77f50bbb5923f41da676abcec0f4b0bfd904..1ae7dfdc01c954952c4381f42643042ee2eb90a5 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 5e030047d1f32073b3d1ca65dd466679f8b7395c..74db0a256140bf06bbb1edbdb8646751d5974b59 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 0c5aaade405e71099c47c0f63e1d700104ca8723..804172d0130aca9352f4d6f871b7fe0cc731c2ca 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 5b2a0bc83d8b1ef36aa8bf1888aefe574d2d5511..a83e942ca5753d28417231653314f0ad853b466b 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index fb9f69bb9ad7f47044ae27658175e80234b30800..f10a106d9acfb51b2ecc197fcb4550108a20cd9a 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index ea31348ab104acb5226d4c1e042073c856aa01b8..a2a3b501cc9fb6c0e9c90f8788baa7e66494a923 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 5bbf4720dc745aed9daff49573516bc41de675f6..cde31462bcfeb0a5415656baf896111f61bbcb73 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 584dad5a89b54b263bbaf0269046784528a71066..926ac6c231d3882297bef197896105f9f18a7fe0 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index f1d20991e9be8adfadf0e239b410a5ae851f2735..31ff03f9f0d91a010ebcc3dfb3a1b78cfc5548c5 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index cec260f56d3dafe75efe82d682604495bf748a33..fdaa0ae5bc06b6b583e8c680c0f503043a8efd72 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index be7262211c695a813364005f59a8af5f46f39956..762fbe2f50df4b798e61f317ae28ee4e7c118d54 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 5e030047d1f32073b3d1ca65dd466679f8b7395c..74db0a256140bf06bbb1edbdb8646751d5974b59 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 93677381575cc34e44f0e226fe6a3264e744efca..02e038d44533190bff02379ae3a58714308a5668 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index adc197648feea919b31de20d28cdb37953a40e15..760f514d7b2d44f181e075c5879a3635ef11eb79 100644 (file)
     <backup supported='no'/>
     <s390-pv supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index a3707e680409e3dda19447ebc354846b59e0ffca..cfd6ff1d84b7c7be59fc5412a16388f42b055b01 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 7edb84e9bc73f774325c13bb0940beadfbd179c4..048c47e9f605d2cad1ccc2fd1613ff6b190f509a 100644 (file)
       <maxGuests>59</maxGuests>
       <maxESGuests>450</maxESGuests>
     </sev>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index a7b5d3047aaafad316b175dba2348f399277d480..75bf330a79ac6f8bceb9850da169d75a00b1ec6b 100644 (file)
       <maxGuests>59</maxGuests>
       <maxESGuests>450</maxESGuests>
     </sev>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index db9b45d74edf8a0d0ee15f28ce3986794dd38d19..30446b75f765fe5f33bfc0a113353b67faefce47 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 1a6515654459c6ebe492521071723a9594e05f0f..6c30318d347e5853150ead5a0c244743b9d4d8a9 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='no'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 56d87f7a2f6486cd4549a0adab5419992b9a8220..b1968668db11cb6215dd3edea41be9ae7bc813f9 100644 (file)
     <backup supported='no'/>
     <s390-pv supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 3afab2f4c2ec0c688e7968b9aa87701e0da5c931..8b9e910fdc89c76f9304c23c8e8f7ad50b390b2e 100644 (file)
       <maxGuests>59</maxGuests>
       <maxESGuests>450</maxESGuests>
     </sev>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index d0dbadd6d31202fc9e30e0e0d8ec495d16c5ed3a..bc4912bc6283a759275fdb82b1ce2f581c109cc1 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 6354573c6162b4533bf9b51106f7ec96caad28f0..6cbdb1d6aea357fcce2b9e604a561a04bac03f7e 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 17c30b394d5963e908debf7d11bede69f9fcc501..5efb7b595ce76e50b0e156229bb164a107aaedd5 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index c185ae45104a92f5e01e5d09a97530a003bb2012..1281dc5ff80485bb34511768fd0707e35c85960e 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 8a009ee0703ea1f1999f993b1855a977d3cece93..2fcff7a96fe91855cb3f1eedae3733b5683e31f2 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 3d79cd748603ff1fe7cd7297c7caad7498a1195e..5aa882061282add7d8c689eda245f6d0c10f4a1e 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 4ccffb36952725fcb64d961c796a21f9176b06bf..96c426cd4fe95a95a798dd2007fe5dcd30e0a116 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index ba7bc17a98f476c44e19517223df4ce11b605e2c..350c55e2c0149ea10ce407aa30d6ea50d769d3a8 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index ba407284898031d1ad7e1cba681285d64bf796c7..ae789c3a9b88d21eaa9e3b1e4c50e5c3e982ad10 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 94c6f3d71266dd1e83f7539ebb0a08aaf4fe7194..59b2988de0dffab78b38702bba713706c0531517 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='yes'>
+      <flc>no</flc>
+      <sgx1>yes</sgx1>
+      <sgx2>no</sgx2>
+      <section_size unit='KiB'>524288</section_size>
+      <sections>
+        <section node='0' size='262144' unit='KiB'/>
+        <section node='1' size='262144' unit='KiB'/>
+      </sections>
+    </sgx>
   </features>
 </domainCapabilities>
index 945ad91c666f696dae7d63dd5bd86eee5bc615da..58d8bdee3fb19e1ab5250baae55e719b81c2ec25 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='yes'>
+      <flc>no</flc>
+      <sgx1>yes</sgx1>
+      <sgx2>no</sgx2>
+      <section_size unit='KiB'>524288</section_size>
+      <sections>
+        <section node='0' size='262144' unit='KiB'/>
+        <section node='1' size='262144' unit='KiB'/>
+      </sections>
+    </sgx>
   </features>
 </domainCapabilities>
index 3addb1fc574ac9507532d75dc4546722d6c9da66..4ec23a8b85a77c00207af08cd7bc43994e2877df 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 9f07a10a901d5020889fc81990baca05f8191f24..d3f90db5a8a7df368f3e325aabb8331d88ad8675 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index ed6c74aac12837ddce8a77ddf0ce2f7788dd98e0..e9322a02e2e79cad493f04a19f207ca4b4c6f664 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 5913f449376d8d1667285b7bdd0e0e2afc5a910b..368c359dcfdec9ebaeade1bcd7d782d9dddf2e3c 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='yes'>
+      <flc>no</flc>
+      <sgx1>yes</sgx1>
+      <sgx2>no</sgx2>
+      <section_size unit='KiB'>524288</section_size>
+      <sections>
+        <section node='0' size='262144' unit='KiB'/>
+        <section node='1' size='262144' unit='KiB'/>
+      </sections>
+    </sgx>
   </features>
 </domainCapabilities>
index 2d7658191530523378b56e9ade4659b7993fc7c7..831ef667e911996d4cc7d04c3a3bd897b3242257 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index f4933e435fe5926558d37bf5b3e53b3d1e6b0a39..e5d5768b402089b0b7f0497f9154973fc64466b5 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index a5c2d8e59873312c038b71e07a1ac3af80cfda4f..73c2cb84e49d369de9214be2f1d4f89ff4a9d464 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index a419005ee3891272c012fdb67f78e14845e4e851..0e2aa77a7dd9c8628753c7b9e5f13e7de80165a7 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 2d0d0ad8e361b4d3af67cfc02dc952bfad60461f..8c6399a7b6b5a1e070be62e97a8f1ba3e855c4b9 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 5f2269840026bd79d1e5fc14a6ebe9d3b2502880..b04beaa9d6ff4428bdd84bb1f7f81a1d1b4d056a 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>
index 234d2f36723a7e0da9a508138d4c8fa424110fd8..86385dacbd7d2602ec06417a4db9ad244de699af 100644 (file)
     <backingStoreInput supported='yes'/>
     <backup supported='yes'/>
     <sev supported='no'/>
+    <sgx supported='no'/>
   </features>
 </domainCapabilities>