]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: support MSDM ACPI table type
authorDaniel P. Berrangé <berrange@redhat.com>
Mon, 17 Feb 2025 16:58:27 +0000 (16:58 +0000)
committerDaniel P. Berrangé <berrange@redhat.com>
Fri, 7 Mar 2025 13:00:10 +0000 (13:00 +0000)
The MSDM ACPI table is a replacement for the SLIC table type, now
sometimes used by Microsoft for Windows Licensing checks:

  https://learn.microsoft.com/en-us/previous-versions/windows/hardware/design/dn653305(v=vs.85)

Resolves: https://gitlab.com/libvirt/libvirt/-/issues/748
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
docs/formatdomain.rst
src/qemu/qemu_command.c
src/qemu/qemu_validate.c
tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.args
tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.xml
tests/qemuxmlconfdata/acpi-table-many.xml

index e2d9e12a62672906c566ae4b08fdb39551b22a3f..bcae6a3443da8185d69929b5abd79b3751dc17b5 100644 (file)
@@ -506,7 +506,7 @@ These options apply to any form of booting of the guest OS.
    * ``msdm``: a single ACPI table with header and data, providing
      Microsoft Data Management information. The ACPI table signature
      in the header will be forced to ``MSDM``
-     (:since:`Since 11.2.0`).
+     (:since:`Since 11.2.0 (QEMU)`).
 
    Each type may be used only once, except for ``raw`` which can
    appear multiple times.
index 67797a8af87e888345f21fd46481a68decfb833c..92a634948eb67d1250d757319a1280ef9b93963e 100644 (file)
@@ -133,7 +133,7 @@ VIR_ENUM_IMPL(qemuACPITableSIG,
               "", /* raw */
               "", /* rawset */
               "SLIC",
-              "");
+              "MSDM");
 
 
 const char *
index 295be2de5aa99708105cec027decc25d72afded4..4ab7af36f38ffffd1bc94fd74c71aba1bd3307cd 100644 (file)
@@ -746,10 +746,10 @@ qemuValidateDomainDefBoot(const virDomainDef *def,
         switch (def->os.acpiTables[i]->type) {
         case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAW:
         case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_SLIC:
+        case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_MSDM:
             break;
 
         case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAWSET:
-        case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_MSDM:
             virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
                            _("ACPI table type '%1$s' is not supported"),
                            virDomainOsACPITableTypeToString(def->os.acpiTables[i]->type));
index 4d5d02cb3ca1e3383892eb950691c3b95a6c7660..2b0b4332581c054b53bb9cd86a197fdcdb343f95 100644 (file)
@@ -30,6 +30,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -acpitable file=/var/lib/libvirt/acpi/exm2.dat \
 -acpitable file=/var/lib/libvirt/acpi/exm3.dat \
 -acpitable sig=SLIC,file=/var/lib/libvirt/acpi/slic.dat \
+-acpitable sig=MSDM,file=/var/lib/libvirt/acpi/msdm.dat \
 -device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}' \
 -audiodev '{"id":"audio1","driver":"none"}' \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
index b7f7e18d2874769fb5e0d108ed10f4ac1cce725e..084bb4cda3706e5ea0082496e363c676fcf29204 100644 (file)
@@ -11,6 +11,7 @@
       <table type='raw'>/var/lib/libvirt/acpi/exm2.dat</table>
       <table type='raw'>/var/lib/libvirt/acpi/exm3.dat</table>
       <table type='slic'>/var/lib/libvirt/acpi/slic.dat</table>
+      <table type='msdm'>/var/lib/libvirt/acpi/msdm.dat</table>
     </acpi>
     <boot dev='hd'/>
   </os>
index cc75011990141f7d5c3a30cbed4422a386faf723..890078d4c3bc684e916fec18cbbdc85450b29cbc 100644 (file)
@@ -12,6 +12,7 @@
       <table type='raw'>/var/lib/libvirt/acpi/exm2.dat</table>
       <table type='raw'>/var/lib/libvirt/acpi/exm3.dat</table>
       <table type='slic'>/var/lib/libvirt/acpi/slic.dat</table>
+      <table type='msdm'>/var/lib/libvirt/acpi/msdm.dat</table>
     </acpi>
   </os>
   <features>