[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v1 5/5] i386: Hyper-V VMBus ACPI DSDT entry
From: |
Igor Mammedov |
Subject: |
Re: [PATCH v1 5/5] i386: Hyper-V VMBus ACPI DSDT entry |
Date: |
Mon, 6 Apr 2020 12:14:34 +0200 |
On Fri, 3 Apr 2020 17:23:08 +0300
Jon Doron <address@hidden> wrote:
> Guest OS uses ACPI to discover vmbus presence. Add a corresponding
> entry to DSDT in case vmbus has been enabled.
>
> Experimentally Windows guests were found to require this entry to
> include two IRQ resources, so this patch adds two semi-arbitrarily
> chosen ones (7 and 13). This results, in particular, in parallel port
> conflicting with vmbus.
>
> TODO: discover and use spare IRQs to avoid conflicts.
CCing Vitaly
as he might know whom to ping wrt 'spec' that describes vmbus
and confirm with ACPI tables that native hyperv generates.
> Signed-off-by: Evgeny Yakovlev <address@hidden>
> Signed-off-by: Roman Kagan <address@hidden>
> Signed-off-by: Jon Doron <address@hidden>
> ---
> hw/i386/acpi-build.c | 42 ++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 42 insertions(+)
>
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index 2a7e55bae7..6d7fdbbe9b 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -43,6 +43,7 @@
> #include "hw/acpi/tpm.h"
> #include "hw/acpi/vmgenid.h"
> #include "hw/boards.h"
> +#include "hw/vmbus/vmbus.h"
> #include "sysemu/tpm_backend.h"
> #include "hw/rtc/mc146818rtc_regs.h"
> #include "migration/vmstate.h"
> @@ -1270,6 +1271,43 @@ static Aml *build_com_device_aml(uint8_t uid)
> return dev;
> }
>
> +static Aml *build_vmbus_device_aml(void)
> +{
> + Aml *dev;
> + Aml *method;
> + Aml *crs;
> +
> + dev = aml_device("VMBS");
> + aml_append(dev, aml_name_decl("STA", aml_int(0xF)));
> + aml_append(dev, aml_name_decl("_HID", aml_string("VMBus")));
> + aml_append(dev, aml_name_decl("_UID", aml_int(0x0)));
> + aml_append(dev, aml_name_decl("_DDN", aml_string("VMBUS")));
> +
> + method = aml_method("_DIS", 0, AML_NOTSERIALIZED);
> + aml_append(method, aml_store(aml_and(aml_name("STA"), aml_int(0xD),
> NULL),
> + aml_name("STA")));
> + aml_append(dev, method);
> +
> + method = aml_method("_PS0", 0, AML_NOTSERIALIZED);
> + aml_append(method, aml_store(aml_or(aml_name("STA"), aml_int(0xF), NULL),
> + aml_name("STA")));
> + aml_append(dev, method);
> +
> + method = aml_method("_STA", 0, AML_NOTSERIALIZED);
> + aml_append(method, aml_store(aml_name("STA"), aml_local(0)));
> + aml_append(method, aml_return(aml_local(0)));
> + aml_append(dev, method);
does it need all that complicated _STA handling?
Would simple
aml_append(dev, aml_name_decl("_STA", aml_int(0xF)));
work for you?
> + aml_append(dev, aml_name_decl("_PS3", aml_int(0x0)));
> +
> + crs = aml_resource_template();
> + aml_append(crs, aml_irq_no_flags(7));
> + aml_append(crs, aml_irq_no_flags(13));
> + aml_append(dev, aml_name_decl("_CRS", crs));
> +
> + return dev;
> +}
> +
> static void build_isa_devices_aml(Aml *table)
> {
> ISADevice *fdc = pc_find_fdc0();
> @@ -1296,6 +1334,10 @@ static void build_isa_devices_aml(Aml *table)
> build_acpi_ipmi_devices(scope, BUS(obj), "\\_SB.PCI0.ISA");
> }
>
> + if (vmbus_exists()) {
> + aml_append(scope, build_vmbus_device_aml());
> + }
> +
> aml_append(table, scope);
> }
>
- Re: [PATCH v1 5/5] i386: Hyper-V VMBus ACPI DSDT entry, (continued)
- Re: [PATCH v1 5/5] i386: Hyper-V VMBus ACPI DSDT entry, Maciej S. Szmigiero, 2020/04/03
- Re: [PATCH v1 5/5] i386: Hyper-V VMBus ACPI DSDT entry, Roman Kagan, 2020/04/06
- Re: [PATCH v1 5/5] i386: Hyper-V VMBus ACPI DSDT entry, Jon Doron, 2020/04/06
- Re: [PATCH v1 5/5] i386: Hyper-V VMBus ACPI DSDT entry, Roman Kagan, 2020/04/07
- Re: [PATCH v1 5/5] i386: Hyper-V VMBus ACPI DSDT entry, Maciej S. Szmigiero, 2020/04/07
- Re: [PATCH v1 5/5] i386: Hyper-V VMBus ACPI DSDT entry, Jon Doron, 2020/04/08
- Re: [PATCH v1 5/5] i386: Hyper-V VMBus ACPI DSDT entry, Roman Kagan, 2020/04/08
- Re: [PATCH v1 5/5] i386: Hyper-V VMBus ACPI DSDT entry, Jon Doron, 2020/04/08
- Re: [PATCH v1 5/5] i386: Hyper-V VMBus ACPI DSDT entry, Roman Kagan, 2020/04/08
- Re: [PATCH v1 5/5] i386: Hyper-V VMBus ACPI DSDT entry, Maciej S. Szmigiero, 2020/04/08
Re: [PATCH v1 5/5] i386: Hyper-V VMBus ACPI DSDT entry,
Igor Mammedov <=
[PATCH v1 4/5] vmbus: vmbus implementation, Jon Doron, 2020/04/03
Re: [PATCH v1 0/5] hyperv: VMBus implementation, no-reply, 2020/04/03