1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-20 07:59:00 +00:00

qemu: support MSDM ACPI table type

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>
This commit is contained in:
Daniel P. Berrangé 2025-02-17 16:58:27 +00:00
parent 32765cd14e
commit 288f90feb3
6 changed files with 6 additions and 3 deletions

View 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 * ``msdm``: a single ACPI table with header and data, providing
Microsoft Data Management information. The ACPI table signature Microsoft Data Management information. The ACPI table signature
in the header will be forced to ``MSDM`` 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 Each type may be used only once, except for ``raw`` which can
appear multiple times. appear multiple times.

View File

@ -133,7 +133,7 @@ VIR_ENUM_IMPL(qemuACPITableSIG,
"", /* raw */ "", /* raw */
"", /* rawset */ "", /* rawset */
"SLIC", "SLIC",
""); "MSDM");
const char * const char *

View File

@ -746,10 +746,10 @@ qemuValidateDomainDefBoot(const virDomainDef *def,
switch (def->os.acpiTables[i]->type) { switch (def->os.acpiTables[i]->type) {
case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAW: case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAW:
case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_SLIC: case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_SLIC:
case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_MSDM:
break; break;
case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAWSET: case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAWSET:
case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_MSDM:
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("ACPI table type '%1$s' is not supported"), _("ACPI table type '%1$s' is not supported"),
virDomainOsACPITableTypeToString(def->os.acpiTables[i]->type)); virDomainOsACPITableTypeToString(def->os.acpiTables[i]->type));

View 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/exm2.dat \
-acpitable file=/var/lib/libvirt/acpi/exm3.dat \ -acpitable file=/var/lib/libvirt/acpi/exm3.dat \
-acpitable sig=SLIC,file=/var/lib/libvirt/acpi/slic.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"}' \ -device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}' \
-audiodev '{"id":"audio1","driver":"none"}' \ -audiodev '{"id":"audio1","driver":"none"}' \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \

View File

@ -11,6 +11,7 @@
<table type='raw'>/var/lib/libvirt/acpi/exm2.dat</table> <table type='raw'>/var/lib/libvirt/acpi/exm2.dat</table>
<table type='raw'>/var/lib/libvirt/acpi/exm3.dat</table> <table type='raw'>/var/lib/libvirt/acpi/exm3.dat</table>
<table type='slic'>/var/lib/libvirt/acpi/slic.dat</table> <table type='slic'>/var/lib/libvirt/acpi/slic.dat</table>
<table type='msdm'>/var/lib/libvirt/acpi/msdm.dat</table>
</acpi> </acpi>
<boot dev='hd'/> <boot dev='hd'/>
</os> </os>

View File

@ -12,6 +12,7 @@
<table type='raw'>/var/lib/libvirt/acpi/exm2.dat</table> <table type='raw'>/var/lib/libvirt/acpi/exm2.dat</table>
<table type='raw'>/var/lib/libvirt/acpi/exm3.dat</table> <table type='raw'>/var/lib/libvirt/acpi/exm3.dat</table>
<table type='slic'>/var/lib/libvirt/acpi/slic.dat</table> <table type='slic'>/var/lib/libvirt/acpi/slic.dat</table>
<table type='msdm'>/var/lib/libvirt/acpi/msdm.dat</table>
</acpi> </acpi>
</os> </os>
<features> <features>