From nobody Thu May 2 11:57:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584604979; cv=none; d=zohomail.com; s=zohoarc; b=ljEPVmwmiEvLKT+zPUqNCSHkiWPqy1joknYzEOOBh6JCHqoigldN6RVuCIsYIRRKkRfLYC/nzmBZ7iumt6hL7H69OotSrBRRDDaHgc6vUmW9RkydByWM+g0vchguGWR49l4NghMRs1aECX6b2dIxnvLFtBSlP4mEzcyd9XR++n8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584604979; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=aTOl9V1tW+equkBFrFW1bOI3Sc3aPlZ699ReWgCv7Jg=; b=lMegQObe2EncdhQ44N8jGTBddgAK1gHdUbcEZHIznO1zz47JAfm5MFLSyKg22DWaXpVJ0dozLc5NI3TY5ETJSzObu3GcHfyW1WePW6rARxnqozrJ7HOav1dFQHtkBvSuLci1P8K4xvEULuR4w4RQMa2s5mkOXFwA6KpyqX09kdY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584604979230978.5369957691731; Thu, 19 Mar 2020 01:02:59 -0700 (PDT) Received: from localhost ([::1]:34502 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEq8n-0003BK-Nm for importer@patchew.org; Thu, 19 Mar 2020 04:02:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39594) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEq7P-0001T2-Va for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEq7O-0004j7-KC for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:31 -0400 Received: from us-smtp-delivery-74.mimecast.com ([63.128.21.74]:37344) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jEq7O-0004fm-FA for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:30 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-286-N_2-T-3uPWCOG3V6BrflKQ-1; Thu, 19 Mar 2020 04:01:27 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 98EEF18B9FC2; Thu, 19 Mar 2020 08:01:26 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-49.ams2.redhat.com [10.36.112.49]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6D9A01001B07; Thu, 19 Mar 2020 08:01:18 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id A645131EAC; Thu, 19 Mar 2020 09:01:17 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584604889; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=aTOl9V1tW+equkBFrFW1bOI3Sc3aPlZ699ReWgCv7Jg=; b=cRTgJFy9/nZHbDyxnrs7Z1S4rugvXr6MIk8+wAHzJNm68pIhkTvpIfOe79vtdp8U6uj2/5 C1ZG03ZyqmbHiWCSYKB23np1Qco8DuIq0WUoPb7mNAJ2f15YTJYTE7XTK8mtj2G2OLX37H d/8H/2LiTmLKYMSGYf4sVgppcFzf9hI= X-MC-Unique: N_2-T-3uPWCOG3V6BrflKQ-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH 01/13] acpi: make build_madt() more generic. Date: Thu, 19 Mar 2020 09:01:05 +0100 Message-Id: <20200319080117.7725-2-kraxel@redhat.com> In-Reply-To: <20200319080117.7725-1-kraxel@redhat.com> References: <20200319080117.7725-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 63.128.21.74 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Gerd Hoffmann , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Remove PCMachineState dependency from build_madt(). Pass AcpiDeviceIf as separate argument instead of depending on PCMachineState->acpi_dev. Signed-off-by: Gerd Hoffmann Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/i386/acpi-build.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 9a19c14e661b..1b0684c433e3 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -360,14 +360,13 @@ void pc_madt_cpu_entry(AcpiDeviceIf *adev, int uid, } =20 static void -build_madt(GArray *table_data, BIOSLinker *linker, PCMachineState *pcms) +build_madt(GArray *table_data, BIOSLinker *linker, + X86MachineState *x86ms, AcpiDeviceIf *adev) { - MachineClass *mc =3D MACHINE_GET_CLASS(pcms); - X86MachineState *x86ms =3D X86_MACHINE(pcms); - const CPUArchIdList *apic_ids =3D mc->possible_cpu_arch_ids(MACHINE(pc= ms)); + MachineClass *mc =3D MACHINE_GET_CLASS(x86ms); + const CPUArchIdList *apic_ids =3D mc->possible_cpu_arch_ids(MACHINE(x8= 6ms)); int madt_start =3D table_data->len; - AcpiDeviceIfClass *adevc =3D ACPI_DEVICE_IF_GET_CLASS(pcms->acpi_dev); - AcpiDeviceIf *adev =3D ACPI_DEVICE_IF(pcms->acpi_dev); + AcpiDeviceIfClass *adevc =3D ACPI_DEVICE_IF_GET_CLASS(adev); bool x2apic_mode =3D false; =20 AcpiMultipleApicTable *madt; @@ -2807,7 +2806,8 @@ void acpi_build(AcpiBuildTables *tables, MachineState= *machine) aml_len +=3D tables_blob->len - fadt; =20 acpi_add_table(table_offsets, tables_blob); - build_madt(tables_blob, tables->linker, pcms); + build_madt(tables_blob, tables->linker, x86ms, + ACPI_DEVICE_IF(pcms->acpi_dev)); =20 vmgenid_dev =3D find_vmgenid_dev(); if (vmgenid_dev) { --=20 2.18.2 From nobody Thu May 2 11:57:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584604979; cv=none; d=zohomail.com; s=zohoarc; b=ButeTpJfG4tsVyp+Zb36uXySpny7xOiv86SjVI9iqtn0UypJPUBsgNtkJ5DFYms5Fwdgum+pFzDA9/c7WiLpRTu70TDj0bySnHQi0wnIp8k296G/301iT/r5oEvjRbIw9enxCjBzE+9b39TVEzsWcg+iC+aWfLR9Q2uRh9L6Fkw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584604979; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=wxx+HDP3PblSEYn7hc5uWwJhnLPJ5TFBBPYfzgZ8K7E=; b=eZXRq5YqWdfm95jchmPKUdiUvPugQZHDLZdB54MZpDSIgHbsGlr2md+UPEu09hKw6VUzjT2urpMTwODLKhwWP6x7GZ9BUxvhrLq7LFD61k4sEjhEjNkc8WnEQ6Q6cJJprDr6R0A4b4Zf/elcn0djExQnobsMlss/twNpsDhkSP0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584604979143913.1772818874283; Thu, 19 Mar 2020 01:02:59 -0700 (PDT) Received: from localhost ([::1]:34500 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEq8n-00038r-O2 for importer@patchew.org; Thu, 19 Mar 2020 04:02:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39606) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEq7Q-0001T5-0R for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEq7O-0004jE-Lb for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:31 -0400 Received: from us-smtp-delivery-74.mimecast.com ([216.205.24.74]:49280) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jEq7O-0004fp-HS for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:30 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-143-eHV0_m9IOteX-Ltb8VEB-A-1; Thu, 19 Mar 2020 04:01:27 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id AC0C61005510; Thu, 19 Mar 2020 08:01:26 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-49.ams2.redhat.com [10.36.112.49]) by smtp.corp.redhat.com (Postfix) with ESMTP id 689F91001938; Thu, 19 Mar 2020 08:01:18 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id AF32231F24; Thu, 19 Mar 2020 09:01:17 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584604889; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wxx+HDP3PblSEYn7hc5uWwJhnLPJ5TFBBPYfzgZ8K7E=; b=NaSiEtXXggPR+JoQbiKxeueIFsWTG+25aSTDCPuLD9rYihUxJ7gG+Txy7j8QMEITUJnoSG leKcdZ6s0WUTWVavCI7lMnGtv34sT+8X36022ez7pTCnwr2QN8ZAfrb54Zwbm+aGUTwZRQ mNsr9626/H6cPORi41l/7yRFvqZmQSA= X-MC-Unique: eHV0_m9IOteX-Ltb8VEB-A-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH 02/13] acpi: factor out acpi_dsdt_add_fw_cfg() Date: Thu, 19 Mar 2020 09:01:06 +0100 Message-Id: <20200319080117.7725-3-kraxel@redhat.com> In-Reply-To: <20200319080117.7725-1-kraxel@redhat.com> References: <20200319080117.7725-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 216.205.24.74 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Gerd Hoffmann , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Add helper function to add fw_cfg device. Signed-off-by: Gerd Hoffmann Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/i386/acpi-build.c | 50 ++++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 1b0684c433e3..9c98b07116cc 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -1822,6 +1822,32 @@ static void build_smb0(Aml *table, I2CBus *smbus, in= t devnr, int func) aml_append(table, scope); } =20 +static void acpi_dsdt_add_fw_cfg(Aml *scope, Object *fw_cfg) +{ + /* + * when using port i/o, the 8-bit data register *always* overlaps + * with half of the 16-bit control register. Hence, the total size + * of the i/o region used is FW_CFG_CTL_SIZE; when using DMA, the + * DMA control register is located at FW_CFG_DMA_IO_BASE + 4 + */ + uint8_t io_size =3D object_property_get_bool(fw_cfg, "dma_enabled", NU= LL) ? + ROUND_UP(FW_CFG_CTL_SIZE, 4) + sizeof(dma_addr_t) : + FW_CFG_CTL_SIZE; + Aml *dev =3D aml_device("FWCF"); + Aml *crs =3D aml_resource_template(); + + aml_append(dev, aml_name_decl("_HID", aml_string("QEMU0002"))); + + /* device present, functioning, decoding, not shown in UI */ + aml_append(dev, aml_name_decl("_STA", aml_int(0xB))); + + aml_append(crs, + aml_io(AML_DECODE16, FW_CFG_IO_BASE, FW_CFG_IO_BASE, 0x01, io_size= )); + + aml_append(dev, aml_name_decl("_CRS", crs)); + aml_append(scope, dev); +} + static void build_dsdt(GArray *table_data, BIOSLinker *linker, AcpiPmInfo *pm, AcpiMiscInfo *misc, @@ -2101,30 +2127,8 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, =20 /* create fw_cfg node, unconditionally */ { - /* when using port i/o, the 8-bit data register *always* overlaps - * with half of the 16-bit control register. Hence, the total size - * of the i/o region used is FW_CFG_CTL_SIZE; when using DMA, the - * DMA control register is located at FW_CFG_DMA_IO_BASE + 4 */ - uint8_t io_size =3D object_property_get_bool(OBJECT(x86ms->fw_cfg), - "dma_enabled", NULL) ? - ROUND_UP(FW_CFG_CTL_SIZE, 4) + sizeof(dma_addr_t= ) : - FW_CFG_CTL_SIZE; - scope =3D aml_scope("\\_SB.PCI0"); - dev =3D aml_device("FWCF"); - - aml_append(dev, aml_name_decl("_HID", aml_string("QEMU0002"))); - - /* device present, functioning, decoding, not shown in UI */ - aml_append(dev, aml_name_decl("_STA", aml_int(0xB))); - - crs =3D aml_resource_template(); - aml_append(crs, - aml_io(AML_DECODE16, FW_CFG_IO_BASE, FW_CFG_IO_BASE, 0x01, io_= size) - ); - aml_append(dev, aml_name_decl("_CRS", crs)); - - aml_append(scope, dev); + acpi_dsdt_add_fw_cfg(scope, OBJECT(x86ms->fw_cfg)); aml_append(dsdt, scope); } =20 --=20 2.18.2 From nobody Thu May 2 11:57:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584604978; cv=none; d=zohomail.com; s=zohoarc; b=WkdkWrhin6U3WHPS+C63SQzTcRC741vHf97AZoNcrH1mHIpGEWpNkuYh9rsHCOHoNxN6Z9qj6N0OCIi0cQNdpw7BXIki4jq/bPbnSfiJCXtyNTibz5EsCTrDQkaSWJK2IBr7FtYI+f+c4mRUTdplyezGW5aQGK0MTWIfNAlDKLY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584604978; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=HTYhOkELmHFCgie3ThSBryZcp/TC9L9pIbajWLjOzNU=; b=brGttItEjd7c9wnW5+gEWmSudbhtdpcxhYv3SuruP7I1lAYnBP1n/sQZfeWz2RyRg0RLn5LhcKHreIEA46FzIqrquePYPr5FpCrIC1j9xmgpERbgtu1JBe4u/TtzbNtASQo1K3Y4/rDZZKx5gEXB3gDDKWhILK/Ut+rayBJhWoM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584604977999646.8851065751376; Thu, 19 Mar 2020 01:02:57 -0700 (PDT) Received: from localhost ([::1]:34498 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEq8m-000377-AJ for importer@patchew.org; Thu, 19 Mar 2020 04:02:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39603) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEq7Q-0001T4-1j for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEq7O-0004ix-Jg for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:31 -0400 Received: from us-smtp-delivery-74.mimecast.com ([63.128.21.74]:23126) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jEq7O-0004gt-E2 for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:30 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-286-GE7tqcOTPsuVSK6D42K-yw-1; Thu, 19 Mar 2020 04:01:28 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0AC65800D54; Thu, 19 Mar 2020 08:01:27 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-49.ams2.redhat.com [10.36.112.49]) by smtp.corp.redhat.com (Postfix) with ESMTP id 665265DA81; Thu, 19 Mar 2020 08:01:18 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id B98C731F2D; Thu, 19 Mar 2020 09:01:17 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584604890; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=HTYhOkELmHFCgie3ThSBryZcp/TC9L9pIbajWLjOzNU=; b=GXI6L1GRxmBSWqJLwG6DPBY5C8xZIsm/5Ty6rmwEtyI0gGUCFSjSf/ZGOBz8KqOAXzbqMK j2MeRvsBgNWjHEC8q0oKnSqtsTJ6PQNTLiVimyWuHo0Hem0YKVVk61za8gM/6NDicJf4/R SypjSLDCy1XEieQ+BaT7dJ71zt7LJn8= X-MC-Unique: GE7tqcOTPsuVSK6D42K-yw-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH 03/13] microvm: add isa-acpi device Date: Thu, 19 Mar 2020 09:01:07 +0100 Message-Id: <20200319080117.7725-4-kraxel@redhat.com> In-Reply-To: <20200319080117.7725-1-kraxel@redhat.com> References: <20200319080117.7725-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 63.128.21.74 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Gerd Hoffmann , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Minimal ACPI device for PCI-less machines like microvm. Signed-off-by: Gerd Hoffmann --- hw/acpi/isa-acpi.c | 114 ++++++++++++++++++++++++++++++++++++++++++ hw/acpi/Makefile.objs | 1 + 2 files changed, 115 insertions(+) create mode 100644 hw/acpi/isa-acpi.c diff --git a/hw/acpi/isa-acpi.c b/hw/acpi/isa-acpi.c new file mode 100644 index 000000000000..5d7d770a5c0b --- /dev/null +++ b/hw/acpi/isa-acpi.c @@ -0,0 +1,114 @@ +#include "qemu/osdep.h" +#include "hw/i386/pc.h" +#include "hw/acpi/acpi.h" +#include "sysemu/runstate.h" + +typedef struct ISAACPI { + ISADevice base; + + uint32_t io_base; + uint16_t sci_irq; + uint32_t gpe_base; + uint32_t gpe_len; + + qemu_irq irq; + MemoryRegion io; + ACPIREGS acpi; + Notifier powerdown_req; +} ISAACPI; + +#define TYPE_ISA_ACPI "isa-acpi" +#define ISA_ACPI(obj) \ + OBJECT_CHECK(ISAACPI, (obj), TYPE_ISA_ACPI) + +static void isa_acpi_timer(ACPIREGS *acpi) +{ + ISAACPI *s =3D container_of(acpi, ISAACPI, acpi); + acpi_update_sci(&s->acpi, s->irq); +} + +static void isa_acpi_init(Object *obj) +{ + ISAACPI *s =3D ISA_ACPI(obj); + + s->io_base =3D 0x600; + s->sci_irq =3D 9; + s->gpe_base =3D 0x680; + s->gpe_len =3D 4; +} + +static void isa_acpi_powerdown_req(Notifier *n, void *opaque) +{ + ISAACPI *s =3D container_of(n, ISAACPI, powerdown_req); + + acpi_pm1_evt_power_down(&s->acpi); +} + +static void isa_acpi_add_propeties(ISAACPI *s) +{ + static const uint8_t zero; + + object_property_add_uint8_ptr(OBJECT(s), ACPI_PM_PROP_ACPI_ENABLE_CMD, + &zero, NULL); + object_property_add_uint8_ptr(OBJECT(s), ACPI_PM_PROP_ACPI_DISABLE_CMD, + &zero, NULL); + object_property_add_uint32_ptr(OBJECT(s), ACPI_PM_PROP_GPE0_BLK, + &s->gpe_base, NULL); + object_property_add_uint32_ptr(OBJECT(s), ACPI_PM_PROP_GPE0_BLK_LEN, + &s->gpe_len, NULL); + object_property_add_uint16_ptr(OBJECT(s), ACPI_PM_PROP_SCI_INT, + &s->sci_irq, NULL); + object_property_add_uint32_ptr(OBJECT(s), ACPI_PM_PROP_PM_IO_BASE, + &s->io_base, NULL); +} + +static void isa_acpi_realize(DeviceState *dev, Error **errp) +{ + ISADevice *isa =3D ISA_DEVICE(dev); + ISAACPI *s =3D ISA_ACPI(dev); + + memory_region_init(&s->io, OBJECT(s), "isa-acpi", 64); + memory_region_set_enabled(&s->io, true); + isa_register_ioport(isa, &s->io, s->io_base); + isa_init_irq(isa, &s->irq, s->sci_irq); + + acpi_pm_tmr_init(&s->acpi, isa_acpi_timer, &s->io); + acpi_pm1_evt_init(&s->acpi, isa_acpi_timer, &s->io); + acpi_pm1_cnt_init(&s->acpi, &s->io, true, true, 0); + acpi_gpe_init(&s->acpi, 4); + + s->powerdown_req.notify =3D isa_acpi_powerdown_req; + qemu_register_powerdown_notifier(&s->powerdown_req); + + isa_acpi_add_propeties(s); +} + +static void isa_acpi_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc =3D DEVICE_CLASS(klass); + AcpiDeviceIfClass *adevc =3D ACPI_DEVICE_IF_CLASS(klass); + + dc->realize =3D isa_acpi_realize; + dc->user_creatable =3D false; + dc->hotpluggable =3D false; + adevc->madt_cpu =3D pc_madt_cpu_entry; +} + +static const TypeInfo isa_acpi_info =3D { + .name =3D TYPE_ISA_ACPI, + .parent =3D TYPE_ISA_DEVICE, + .instance_size =3D sizeof(ISAACPI), + .instance_init =3D isa_acpi_init, + .class_init =3D isa_acpi_class_init, + .interfaces =3D (InterfaceInfo[]) { + { TYPE_ACPI_DEVICE_IF }, + { } + } +}; + +static void register_types(void) +{ + type_register_static(&isa_acpi_info); +} + +type_init(register_types) diff --git a/hw/acpi/Makefile.objs b/hw/acpi/Makefile.objs index 777da07f4d70..aae53c73ebbd 100644 --- a/hw/acpi/Makefile.objs +++ b/hw/acpi/Makefile.objs @@ -14,6 +14,7 @@ common-obj-$(call lnot,$(CONFIG_PC)) +=3D acpi-x86-stub.o common-obj-y +=3D acpi_interface.o common-obj-y +=3D bios-linker-loader.o common-obj-y +=3D aml-build.o utils.o +common-obj-$(CONFIG_PC) +=3D isa-acpi.o common-obj-$(CONFIG_ACPI_PCI) +=3D pci.o common-obj-$(CONFIG_TPM) +=3D tpm.o =20 --=20 2.18.2 From nobody Thu May 2 11:57:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584605098; cv=none; d=zohomail.com; s=zohoarc; b=HXuhO2/TPhJ6QhnWi6hlWcPU4P84bV9Tl7xjx/85RFJm9OF4C3Ymx5PmhmGyPG92Poktq/blB16RMFUj1DKTvQTyRYtFd96qK9eGf7L96qvAn1CDG0YcNv7uwIEMXbERJcfxJhP+LBNhjQuqq2KjpwsJCY89513ko67M7N7IpFc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584605098; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=NWvxDS7H8AaigA0bd8Nw3S4+C3ckHHyPdHX9C8DG2i8=; b=SL7zdRdo3rbOE25m2K1Me1z4ROXVdX0BMqb5aXI0VypSN0g2+Nvx1fnC3qZpjhLYFXl2I6zU3kxw6b/v6fgT5Idadah6vLNUEjEFxTRyh19EcSQgJ2C80HfrnecTtl9AvTgFjONT7keT1kLWUnLOuLD9u07HYqvQ38KAOPQLJ2U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584605098666835.160710872521; Thu, 19 Mar 2020 01:04:58 -0700 (PDT) Received: from localhost ([::1]:34528 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEqAj-0006eG-84 for importer@patchew.org; Thu, 19 Mar 2020 04:04:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39613) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEq7Q-0001T6-9H for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEq7O-0004j2-Jr for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:32 -0400 Received: from us-smtp-delivery-74.mimecast.com ([216.205.24.74]:41404) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jEq7O-0004h7-FQ for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:30 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-427-JEYTNV1pPdSDumNQOTuXsw-1; Thu, 19 Mar 2020 04:01:28 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 02994107ACCC; Thu, 19 Mar 2020 08:01:27 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-49.ams2.redhat.com [10.36.112.49]) by smtp.corp.redhat.com (Postfix) with ESMTP id 703996EFA7; Thu, 19 Mar 2020 08:01:18 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id C5C1F31F3B; Thu, 19 Mar 2020 09:01:17 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584604890; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=NWvxDS7H8AaigA0bd8Nw3S4+C3ckHHyPdHX9C8DG2i8=; b=L8j0szI6xp3Lxa0/KaXpsW0h2IF9h+jUel0FzEX0J9LZmbJa8/l5I4XKXaGiA5Bqe+vOpF DB4eXoCwF0P8wLC36unUJmdKRbMaOK5WE6eb3LoLnOMv2xYwrQ4jIW0wWteqvk+08b+hyX 72xjrwSChumlMbdqwsOODMHvhxUpAA4= X-MC-Unique: JEYTNV1pPdSDumNQOTuXsw-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH 04/13] microvm: add minimal acpi support. Date: Thu, 19 Mar 2020 09:01:08 +0100 Message-Id: <20200319080117.7725-5-kraxel@redhat.com> In-Reply-To: <20200319080117.7725-1-kraxel@redhat.com> References: <20200319080117.7725-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 216.205.24.74 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Gerd Hoffmann , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" $subject says all. Can be disabled using the usual -no-acpi switch. Signed-off-by: Gerd Hoffmann --- include/hw/i386/microvm.h | 3 + hw/i386/acpi-build.c | 124 +++++++++++++++++++++++++++++++++++--- hw/i386/microvm.c | 14 +++++ 3 files changed, 133 insertions(+), 8 deletions(-) diff --git a/include/hw/i386/microvm.h b/include/hw/i386/microvm.h index ba68d1f22bb3..da2852a70195 100644 --- a/include/hw/i386/microvm.h +++ b/include/hw/i386/microvm.h @@ -24,6 +24,7 @@ =20 #include "hw/boards.h" #include "hw/i386/x86.h" +#include "hw/acpi/acpi_dev_interface.h" =20 /* Platform virtio definitions */ #define VIRTIO_MMIO_BASE 0xc0000000 @@ -58,6 +59,8 @@ typedef struct { =20 /* Machine state */ bool kernel_cmdline_fixed; + Notifier machine_done; + AcpiDeviceIf *acpi_dev; } MicrovmMachineState; =20 #define TYPE_MICROVM_MACHINE MACHINE_TYPE_NAME("microvm") diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 9c98b07116cc..0e45a646af56 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -59,6 +59,7 @@ #include "hw/pci/pci_bus.h" #include "hw/pci-host/q35.h" #include "hw/i386/x86-iommu.h" +#include "hw/i386/microvm.h" =20 #include "hw/acpi/aml-build.h" #include "hw/acpi/utils.h" @@ -2749,12 +2750,103 @@ static bool acpi_get_mcfg(AcpiMcfgInfo *mcfg) return true; } =20 +static void +build_dsdt_microvm(GArray *table_data, BIOSLinker *linker, + MicrovmMachineState *mms) +{ + X86MachineState *x86ms =3D X86_MACHINE(mms); + Aml *dsdt, *sb_scope, *scope, *pkg; + + dsdt =3D init_aml_allocator(); + + /* Reserve space for header */ + acpi_data_push(dsdt->buf, sizeof(AcpiTableHeader)); + + build_dbg_aml(dsdt); + + sb_scope =3D aml_scope("_SB"); + acpi_dsdt_add_fw_cfg(sb_scope, OBJECT(x86ms->fw_cfg)); + aml_append(dsdt, sb_scope); + + scope =3D aml_scope("\\"); + pkg =3D aml_package(4); + aml_append(pkg, aml_int(0)); /* PM1a_CNT.SLP_TYP */ + aml_append(pkg, aml_int(0)); /* PM1b_CNT.SLP_TYP not impl. */ + aml_append(pkg, aml_int(0)); /* reserved */ + aml_append(pkg, aml_int(0)); /* reserved */ + aml_append(scope, aml_name_decl("_S5", pkg)); + aml_append(dsdt, scope); + + /* copy AML table into ACPI tables blob and patch header there */ + g_array_append_vals(table_data, dsdt->buf->data, dsdt->buf->len); + build_header(linker, table_data, + (void *)(table_data->data + table_data->len - dsdt->buf->len), + "DSDT", dsdt->buf->len, 1, NULL, NULL); + free_aml_allocator(); +} + +static +void acpi_build_microvm(AcpiBuildTables *tables, MachineState *machine) +{ + MicrovmMachineState *mms =3D MICROVM_MACHINE(machine); + GArray *table_offsets; + GArray *tables_blob =3D tables->table_data; + AcpiFadtData pmfadt; + unsigned facs, dsdt, rsdt; + + init_common_fadt_data(machine, OBJECT(mms->acpi_dev), &pmfadt); + pmfadt.smi_cmd =3D 0; + + table_offsets =3D g_array_new(false, true /* clear */, + sizeof(uint32_t)); + bios_linker_loader_alloc(tables->linker, + ACPI_BUILD_TABLE_FILE, tables_blob, + 64 /* Ensure FACS is aligned */, + false /* high memory */); + + facs =3D tables_blob->len; + build_facs(tables_blob); + + dsdt =3D tables_blob->len; + build_dsdt_microvm(tables_blob, tables->linker, mms); + + pmfadt.facs_tbl_offset =3D &facs; + pmfadt.dsdt_tbl_offset =3D &dsdt; + pmfadt.xdsdt_tbl_offset =3D &dsdt; + acpi_add_table(table_offsets, tables_blob); + build_fadt(tables_blob, tables->linker, &pmfadt, NULL, NULL); + + acpi_add_table(table_offsets, tables_blob); + build_madt(tables_blob, tables->linker, X86_MACHINE(machine), + mms->acpi_dev); + + rsdt =3D tables_blob->len; + build_rsdt(tables_blob, tables->linker, table_offsets, NULL, NULL); + + /* RSDP is in FSEG memory, so allocate it separately */ + { + AcpiRsdpData rsdp_data =3D { + .revision =3D 0, + .oem_id =3D ACPI_BUILD_APPNAME6, + .xsdt_tbl_offset =3D NULL, + .rsdt_tbl_offset =3D &rsdt, + }; + build_rsdp(tables->rsdp, tables->linker, &rsdp_data); + } + + acpi_align_size(tables_blob, ACPI_BUILD_TABLE_SIZE); + acpi_align_size(tables->linker->cmd_blob, ACPI_BUILD_ALIGN_SIZE); + + /* Cleanup memory that's no longer used. */ + g_array_free(table_offsets, true); +} + static void acpi_build(AcpiBuildTables *tables, MachineState *machine) { - PCMachineState *pcms =3D PC_MACHINE(machine); - PCMachineClass *pcmc =3D PC_MACHINE_GET_CLASS(pcms); X86MachineState *x86ms =3D X86_MACHINE(machine); + PCMachineState *pcms; + PCMachineClass *pcmc; GArray *table_offsets; unsigned facs, dsdt, rsdt, fadt; AcpiPmInfo pm; @@ -2767,6 +2859,14 @@ void acpi_build(AcpiBuildTables *tables, MachineStat= e *machine) AcpiSlicOem slic_oem =3D { .id =3D NULL, .table_id =3D NULL }; Object *vmgenid_dev; =20 + if (strcmp(object_get_typename(OBJECT(x86ms)), TYPE_MICROVM_MACHINE) = =3D=3D 0) { + acpi_build_microvm(tables, machine); + return; + } else { + pcms =3D PC_MACHINE(machine); + pcmc =3D PC_MACHINE_GET_CLASS(pcms); + } + acpi_get_pm_info(machine, &pm); acpi_get_misc_info(&misc); acpi_get_pci_holes(&pci_hole, &pci_hole64); @@ -3009,21 +3109,29 @@ static const VMStateDescription vmstate_acpi_build = =3D { =20 void acpi_setup(void) { - PCMachineState *pcms =3D PC_MACHINE(qdev_get_machine()); - PCMachineClass *pcmc =3D PC_MACHINE_GET_CLASS(pcms); - X86MachineState *x86ms =3D X86_MACHINE(pcms); + X86MachineState *x86ms =3D X86_MACHINE(qdev_get_machine()); + PCMachineState *pcms; + PCMachineClass *pcmc; AcpiBuildTables tables; AcpiBuildState *build_state; Object *vmgenid_dev; TPMIf *tpm; static FwCfgTPMConfig tpm_config; =20 + if (strcmp(object_get_typename(OBJECT(x86ms)), TYPE_MICROVM_MACHINE) = =3D=3D 0) { + pcms =3D NULL; + pcmc =3D NULL; + } else { + pcms =3D PC_MACHINE(x86ms); + pcmc =3D PC_MACHINE_GET_CLASS(pcms); + } + if (!x86ms->fw_cfg) { ACPI_BUILD_DPRINTF("No fw cfg. Bailing out.\n"); return; } =20 - if (!pcms->acpi_build_enabled) { + if (pcms && !pcms->acpi_build_enabled) { ACPI_BUILD_DPRINTF("ACPI build disabled. Bailing out.\n"); return; } @@ -3036,7 +3144,7 @@ void acpi_setup(void) build_state =3D g_malloc0(sizeof *build_state); =20 acpi_build_tables_init(&tables); - acpi_build(&tables, MACHINE(pcms)); + acpi_build(&tables, MACHINE(x86ms)); =20 /* Now expose it all to Guest */ build_state->table_mr =3D acpi_add_rom_blob(acpi_build_update, @@ -3069,7 +3177,7 @@ void acpi_setup(void) tables.vmgenid); } =20 - if (!pcmc->rsdp_in_ram) { + if (pcmc && !pcmc->rsdp_in_ram) { /* * Keep for compatibility with old machine types. * Though RSDP is small, its contents isn't immutable, so diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index 38d8e5170323..362d513f38e1 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -26,6 +26,7 @@ #include "sysemu/cpus.h" #include "sysemu/numa.h" #include "sysemu/reset.h" +#include "acpi-build.h" =20 #include "hw/loader.h" #include "hw/irq.h" @@ -41,6 +42,7 @@ #include "hw/i386/e820_memory_layout.h" #include "hw/i386/fw_cfg.h" #include "hw/virtio/virtio-mmio.h" +#include "hw/acpi/acpi.h" =20 #include "cpu.h" #include "elf.h" @@ -128,6 +130,10 @@ static void microvm_devices_init(MicrovmMachineState *= mms) } =20 /* Optional and legacy devices */ + if (acpi_enabled) { + ISADevice *acpi =3D isa_create_simple(isa_bus, "isa-acpi" /* FIXME= */); + mms->acpi_dev =3D ACPI_DEVICE_IF(acpi); + } =20 if (mms->pic =3D=3D ON_OFF_AUTO_ON || mms->pic =3D=3D ON_OFF_AUTO_AUTO= ) { qemu_irq *i8259; @@ -468,6 +474,11 @@ static void microvm_machine_set_auto_kernel_cmdline(Ob= ject *obj, bool value, mms->auto_kernel_cmdline =3D value; } =20 +static void microvm_machine_done(Notifier *notifier, void *data) +{ + acpi_setup(); +} + static void microvm_machine_initfn(Object *obj) { MicrovmMachineState *mms =3D MICROVM_MACHINE(obj); @@ -482,6 +493,9 @@ static void microvm_machine_initfn(Object *obj) =20 /* State */ mms->kernel_cmdline_fixed =3D false; + + mms->machine_done.notify =3D microvm_machine_done; + qemu_add_machine_init_done_notifier(&mms->machine_done); } =20 static void microvm_class_init(ObjectClass *oc, void *data) --=20 2.18.2 From nobody Thu May 2 11:57:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584605463; cv=none; d=zohomail.com; s=zohoarc; b=j3h7L/6nOfynR3W62omTTPC7K+aX4NNr75aiLcMl6EUaUx8maZx0TPCkD+fLFJQxiGwsd96NW6DPH/HgvN5Dq8V1GtJXztK5tamTVocRZJRqxWhziLt2QkqmXfL0m5OzJLFzaUeb2AMDT79fww6KZMkjBzjLSjGpBr5ZWZcYuLE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584605463; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=1hIQzOVownPUgeOfpivxGQH7GbNiuNjbqeCCe9FxpM4=; b=nefiB1dLOEU55RdcO/0/CpG1SD3U2OEHTlRnH/5EsJjLTokEYVmv3HEhLQhrJbMaEygNzHZfzlyVAQGnnGINTpjjGxL5CfDdEJrgw0Pvj2+/02xsBK7qiOE7GI78GSu1HmADNpaUNY926HHhV3uQTFvuF6rxJXbS45LqJVY8a3s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584605463128656.620350780792; Thu, 19 Mar 2020 01:11:03 -0700 (PDT) Received: from localhost ([::1]:34624 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEqGb-00064z-Ur for importer@patchew.org; Thu, 19 Mar 2020 04:11:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39758) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEq7e-0001kU-BK for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEq7Y-0005XZ-Qx for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:43 -0400 Received: from us-smtp-delivery-74.mimecast.com ([63.128.21.74]:42583) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jEq7Y-0005V3-M0 for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:40 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-336-wxmEcOsFPcuNQnXPC_y32w-1; Thu, 19 Mar 2020 04:01:38 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 10C19107B76A; Thu, 19 Mar 2020 08:01:37 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-49.ams2.redhat.com [10.36.112.49]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7843D90812; Thu, 19 Mar 2020 08:01:28 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id CEC9431F48; Thu, 19 Mar 2020 09:01:17 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584604900; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1hIQzOVownPUgeOfpivxGQH7GbNiuNjbqeCCe9FxpM4=; b=gvOgjVIdxgXdS4r6F9DdHY36nt/isWbuYL6/RYWWObw1MYy3EFPLg26ld7O6HzRCUDqS9d aoatdc39+GS/ATPzzY+Pn+XVeN6+K2099C9C9AVmJCp4w5GkkVsoPQ7NsJgmNSUTFswz1k qx5VP4PxCmkeVoWa8GtgJ4vAmWhWFO8= X-MC-Unique: wxmEcOsFPcuNQnXPC_y32w-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH 05/13] microvm: add acpi_dsdt_add_virtio() for x86 Date: Thu, 19 Mar 2020 09:01:09 +0100 Message-Id: <20200319080117.7725-6-kraxel@redhat.com> In-Reply-To: <20200319080117.7725-1-kraxel@redhat.com> References: <20200319080117.7725-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 63.128.21.74 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Gerd Hoffmann , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Makes x86 linux kernel find virtio-mmio devices automatically. Signed-off-by: Gerd Hoffmann --- hw/i386/acpi-build.c | 51 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 0e45a646af56..80844db24d6b 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -21,6 +21,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/cutils.h" #include "qapi/error.h" #include "qapi/qmp/qnum.h" #include "acpi-build.h" @@ -60,6 +61,7 @@ #include "hw/pci-host/q35.h" #include "hw/i386/x86-iommu.h" #include "hw/i386/microvm.h" +#include "hw/virtio/virtio-mmio.h" =20 #include "hw/acpi/aml-build.h" #include "hw/acpi/utils.h" @@ -2750,6 +2752,54 @@ static bool acpi_get_mcfg(AcpiMcfgInfo *mcfg) return true; } =20 +static void acpi_dsdt_add_virtio(Aml *scope) +{ + gchar *separator; + long int index; + BusState *bus; + BusChild *kid; + + bus =3D sysbus_get_default(); + QTAILQ_FOREACH(kid, &bus->children, sibling) { + DeviceState *dev =3D kid->child; + ObjectClass *class =3D object_get_class(OBJECT(dev)); + + if (class =3D=3D object_class_by_name(TYPE_VIRTIO_MMIO)) { + VirtIOMMIOProxy *mmio =3D VIRTIO_MMIO(OBJECT(dev)); + VirtioBusState *mmio_virtio_bus =3D &mmio->bus; + BusState *mmio_bus =3D &mmio_virtio_bus->parent_obj; + + if (QTAILQ_EMPTY(&mmio_bus->children)) { + continue; + } + separator =3D g_strrstr(mmio_bus->name, "."); + if (!separator) { + continue; + } + if (qemu_strtol(separator + 1, NULL, 10, &index) !=3D 0) { + continue; + } + + uint32_t irq =3D VIRTIO_IRQ_BASE + index; + hwaddr base =3D VIRTIO_MMIO_BASE + index * 512; + hwaddr size =3D 512; + + Aml *dev =3D aml_device("VR%02u", (unsigned)index); + aml_append(dev, aml_name_decl("_HID", aml_string("LNRO0005"))); + aml_append(dev, aml_name_decl("_UID", aml_int(index))); + aml_append(dev, aml_name_decl("_CCA", aml_int(1))); + + Aml *crs =3D aml_resource_template(); + aml_append(crs, aml_memory32_fixed(base, size, AML_READ_WRITE)= ); + aml_append(crs, + aml_interrupt(AML_CONSUMER, AML_LEVEL, AML_ACTIVE_H= IGH, + AML_EXCLUSIVE, &irq, 1)); + aml_append(dev, aml_name_decl("_CRS", crs)); + aml_append(scope, dev); + } + } +} + static void build_dsdt_microvm(GArray *table_data, BIOSLinker *linker, MicrovmMachineState *mms) @@ -2766,6 +2816,7 @@ build_dsdt_microvm(GArray *table_data, BIOSLinker *li= nker, =20 sb_scope =3D aml_scope("_SB"); acpi_dsdt_add_fw_cfg(sb_scope, OBJECT(x86ms->fw_cfg)); + acpi_dsdt_add_virtio(sb_scope); aml_append(dsdt, sb_scope); =20 scope =3D aml_scope("\\"); --=20 2.18.2 From nobody Thu May 2 11:57:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584605292; cv=none; d=zohomail.com; s=zohoarc; b=Be62z1YrOcHwyzdGQr/jR1CMK38GpgK/Y9oqYiy5gClJu7UUf98OwOcSYk2H4nT/qtb3lJjBsBVKxHEmwSmDDUEA6ae1ZUTeZ2xqxUaFt5yZ8JhmVTKCYv6wSYj+xKHCvg07mmDAfaK/q17iJw+9vGS7aU5msPLb66cBLDa4OQM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584605292; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=ru0ezrnSjCOFrcw7qNzHSdv4vQBpHGBoNyHGfyYxptM=; b=drnz4pmvN+OE/wydjpDHYKCuA7iWRAIXMYzyoZ3udcSSs7fQypRXFTitXeAS+E5yAOLhMQ8HWaW0o5eLscCkBfpizjvzbOvsWGY3hG+wpNd9uKuwc7MqKPoWX3r0+3akSWDW8iMDvKGUda+Q6IgV7W22x8lL9MlrzMuv7pZ4xTM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584605292819345.7453486607276; Thu, 19 Mar 2020 01:08:12 -0700 (PDT) Received: from localhost ([::1]:34586 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEqDq-0004Cr-W3 for importer@patchew.org; Thu, 19 Mar 2020 04:08:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39746) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEq7a-0001k5-25 for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEq7Y-0005YP-VY for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:41 -0400 Received: from us-smtp-delivery-74.mimecast.com ([63.128.21.74]:57793) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jEq7Y-0005W4-Ql for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:40 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-62-iwQyjvadPGOwwfTDglbeBw-1; Thu, 19 Mar 2020 04:01:36 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C9BAF800D5B; Thu, 19 Mar 2020 08:01:35 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-49.ams2.redhat.com [10.36.112.49]) by smtp.corp.redhat.com (Postfix) with ESMTP id 89FC85C1D8; Thu, 19 Mar 2020 08:01:27 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id D7A3831F62; Thu, 19 Mar 2020 09:01:17 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584604900; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ru0ezrnSjCOFrcw7qNzHSdv4vQBpHGBoNyHGfyYxptM=; b=VG2X2c65jo+hbaCPMpHP+dX/tB5wRDrh5QYhz1Ed5nDjpKF1TVnZokGsjx3tqvOCr+u0ei f0c+SYpM8do7nn59S9QH0YXTJVVdxVMKi/WeXjeJhVcwP0S+1TGpxCZlD4p9A5Z/fXB2/r GRDQT6cqmwRLH+1vVdP6+TTJlvGJ80Y= X-MC-Unique: iwQyjvadPGOwwfTDglbeBw-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH 06/13] microvm: disable virtio-mmio cmdline hack Date: Thu, 19 Mar 2020 09:01:10 +0100 Message-Id: <20200319080117.7725-7-kraxel@redhat.com> In-Reply-To: <20200319080117.7725-1-kraxel@redhat.com> References: <20200319080117.7725-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 63.128.21.74 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Gerd Hoffmann , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" ... in case we are using ACPI. Signed-off-by: Gerd Hoffmann --- hw/i386/microvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index 362d513f38e1..fd753764fc10 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -361,7 +361,7 @@ static void microvm_machine_reset(MachineState *machine) CPUState *cs; X86CPU *cpu; =20 - if (machine->kernel_filename !=3D NULL && + if (!acpi_enabled && machine->kernel_filename !=3D NULL && mms->auto_kernel_cmdline && !mms->kernel_cmdline_fixed) { microvm_fix_kernel_cmdline(machine); mms->kernel_cmdline_fixed =3D true; --=20 2.18.2 From nobody Thu May 2 11:57:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584605391; cv=none; d=zohomail.com; s=zohoarc; b=DgHYYbnVV5x9NL1CPnpNq+cYOGCI7j3gk1fsTQmUQmXbv7d4wv74fct+Gch6rCZZmajzoWEOR34VIa0yQNvflZuDgIp4uaQNNel5eNAOuseNgTp3sT7ZxlOmNhXo4wawO8uJObvdhdE7QX9xsEi1L/woDJ9snrnqZmi1nV5Jgns= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584605391; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=E9hfy3vdBCnyEY97AeX6cPqCQtaybV53wcmgVyMvvIk=; b=DHz30NKxzWdW+BPj6Gd8Megjs89VsSqMBkR7RLQR57DiSdY6XQAkJrHDJfwUshOfHqODqOsqmSNg7MA9/SVD8WnSh0utYs4LxseHQ+jcztigli9xRzZb7SzMjLC45ZQiPFmEnLhaTlnJ7ZjikpSXMZ0D/6F6S349nI4VfMk01ig= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584605391156738.3476441978117; Thu, 19 Mar 2020 01:09:51 -0700 (PDT) Received: from localhost ([::1]:34606 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEqFR-00055G-PQ for importer@patchew.org; Thu, 19 Mar 2020 04:09:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39771) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEq7e-0001mX-F5 for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEq7b-0005gv-9E for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:46 -0400 Received: from us-smtp-delivery-74.mimecast.com ([63.128.21.74]:20801) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jEq7a-0005bU-0C for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:42 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-62-XiL95cPsNp6bCCFWkWNjEg-1; Thu, 19 Mar 2020 04:01:36 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 96C658010C4; Thu, 19 Mar 2020 08:01:35 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-49.ams2.redhat.com [10.36.112.49]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8375119756; Thu, 19 Mar 2020 08:01:27 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id E00D931FAA; Thu, 19 Mar 2020 09:01:17 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584604901; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=E9hfy3vdBCnyEY97AeX6cPqCQtaybV53wcmgVyMvvIk=; b=U0ji4ZJMexqYUkaDZKltf+D3EFD5AqPstBDBZxQS93RRh3vssNNkfDpLyLPRukLCNYhA9g UsiJrVLwTw3qdmAVBkLXqHJMuJSEGZZrE+9o8Abwh4Pgl/fDDWKUpVA+d7DA79ua4CebPq EridEjULU1KJPTutoPWgVcDTy0YGBsg= X-MC-Unique: XiL95cPsNp6bCCFWkWNjEg-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH 07/13] [testing] seabios: update submodule to experimental microvm branch Date: Thu, 19 Mar 2020 09:01:11 +0100 Message-Id: <20200319080117.7725-8-kraxel@redhat.com> In-Reply-To: <20200319080117.7725-1-kraxel@redhat.com> References: <20200319080117.7725-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 63.128.21.74 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Gerd Hoffmann , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" https://git.kraxel.org/cgit/seabios/log/?h=3Dmicrovm Signed-off-by: Gerd Hoffmann --- roms/seabios | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roms/seabios b/roms/seabios index f21b5a4aeb02..81a6f4b87318 160000 --- a/roms/seabios +++ b/roms/seabios @@ -1 +1 @@ -Subproject commit f21b5a4aeb020f2a5e2c6503f906a9349dd2f069 +Subproject commit 81a6f4b87318a945e3a4cd014c2efa89482a0cd0 --=20 2.18.2 From nobody Thu May 2 11:57:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584605097; cv=none; d=zohomail.com; s=zohoarc; b=c8jObUI9uHug0mE+ndq6F69hDgSyPJqHa7V2ps7wlGSrd8BDPfKvLRz2jkR4ocvABXk2ZXl+ctRvplJfFXClwrjmYpkEXETImBoh1o5Mc3tF64h1LDZIxuDiCAf/Nc8WuuWibxYek5WfRpBJ70eOKnXkX+yqNiYFussm7b/Qupo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584605097; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=Ssy9iYBYNdlyaM+qTxCdmrI48NkNzUMw9zb+KooWCBc=; b=CjQZLTyfZR+tbdIMTNDufTYa5C1Ta6HS0KzVq9gi5v6hePZ73kMCqJThZ7f5pI6JYb48lLQre5kLqgrokhxi3zf+Ck+1TL1kSSt6VVhiR9yjPMV7iez/kjqHm9+85xHb8JFp2A6YXK0GoKp47sX3FRJWxjKtdZnTSZPNMa9ZvQA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584605097852756.1906781268854; Thu, 19 Mar 2020 01:04:57 -0700 (PDT) Received: from localhost ([::1]:34526 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEqAi-0006dq-MC for importer@patchew.org; Thu, 19 Mar 2020 04:04:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39701) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEq7Y-0001fm-2P for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEq7W-0005N0-U8 for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:39 -0400 Received: from us-smtp-delivery-74.mimecast.com ([216.205.24.74]:24006) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jEq7W-0005KC-Oq for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:38 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-259-uo82Brs9O6CaKmy7Sa_LBg-1; Thu, 19 Mar 2020 04:01:36 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 9174C18B9FC4; Thu, 19 Mar 2020 08:01:35 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-49.ams2.redhat.com [10.36.112.49]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7D5A719757; Thu, 19 Mar 2020 08:01:28 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id EB5B03EBB9; Thu, 19 Mar 2020 09:01:17 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584604898; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Ssy9iYBYNdlyaM+qTxCdmrI48NkNzUMw9zb+KooWCBc=; b=AT+8vAnVk8MPy0viq7Mf7tZPAHX48+tBerSzFzc6SO9UNE7mjpaEEKAJtiVp8zGXJhoDIO Yo4JrqBRyQWNM+2XsqEsBEXgiDXKIwgzgr1ewrE0J6rihIyE0t6GtYHhj8URKUDKrwHHuA hRNhfNGDsikPEK40uGAm/wEy0LDrTF4= X-MC-Unique: uo82Brs9O6CaKmy7Sa_LBg-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH 08/13] [testing] seabios: update config & build rules Date: Thu, 19 Mar 2020 09:01:12 +0100 Message-Id: <20200319080117.7725-9-kraxel@redhat.com> In-Reply-To: <20200319080117.7725-1-kraxel@redhat.com> References: <20200319080117.7725-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 216.205.24.74 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Gerd Hoffmann , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Gerd Hoffmann --- roms/Makefile | 5 ++++- roms/config.seabios-128k | 2 ++ roms/config.seabios-microvm | 25 +++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 roms/config.seabios-microvm diff --git a/roms/Makefile b/roms/Makefile index f9acf39954dc..c0dde0a063c6 100644 --- a/roms/Makefile +++ b/roms/Makefile @@ -72,9 +72,12 @@ default help: @echo " clean -- delete the files generated by the previous= " \ "build targets" =20 -bios: build-seabios-config-seabios-128k build-seabios-config-seabios-256k +bios: build-seabios-config-seabios-128k \ + build-seabios-config-seabios-256k \ + build-seabios-config-seabios-microvm cp seabios/builds/seabios-128k/bios.bin ../pc-bios/bios.bin cp seabios/builds/seabios-256k/bios.bin ../pc-bios/bios-256k.bin + cp seabios/builds/seabios-microvm/bios.bin ../pc-bios/bios-microvm.bin =20 vgabios seavgabios: $(patsubst %,seavgabios-%,$(vgabios_variants)) =20 diff --git a/roms/config.seabios-128k b/roms/config.seabios-128k index c43912bf9de4..bbed77cfc5c5 100644 --- a/roms/config.seabios-128k +++ b/roms/config.seabios-128k @@ -11,6 +11,8 @@ CONFIG_USB_UAS=3Dn CONFIG_SDCARD=3Dn CONFIG_TCGBIOS=3Dn CONFIG_MPT_SCSI=3Dn +CONFIG_ESP_SCSI=3Dn +CONFIG_MEGASAS=3Dn CONFIG_PVSCSI=3Dn CONFIG_NVME=3Dn CONFIG_USE_SMM=3Dn diff --git a/roms/config.seabios-microvm b/roms/config.seabios-microvm new file mode 100644 index 000000000000..46bb019ada68 --- /dev/null +++ b/roms/config.seabios-microvm @@ -0,0 +1,25 @@ +CONFIG_QEMU=3Dy +CONFIG_QEMU_HARDWARE=3Dy +CONFIG_PERMIT_UNALIGNED_PCIROM=3Dy +CONFIG_ROM_SIZE=3D128 +CONFIG_XEN=3Dn +CONFIG_BOOTSPLASH=3Dn +CONFIG_ATA=3Dn +CONFIG_AHCI=3Dn +CONFIG_SDCARD=3Dn +CONFIG_PVSCSI=3Dn +CONFIG_ESP_SCSI=3Dn +CONFIG_LSI_SCSI=3Dn +CONFIG_MEGASAS=3Dn +CONFIG_MPT_SCSI=3Dn +CONFIG_FLOPPY=3Dn +CONFIG_FLASH_FLOPPY=3Dn +CONFIG_NVME=3Dn +CONFIG_PS2PORT=3Dn +CONFIG_USB=3Dn +CONFIG_LPT=3Dn +CONFIG_RTC_TIMER=3Dn +CONFIG_USE_SMM=3Dn +CONFIG_PMTIMER=3Dn +CONFIG_TCGBIOS=3Dn +CONFIG_HARDWARE_IRQ=3Dn --=20 2.18.2 From nobody Thu May 2 11:57:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584605234; cv=none; d=zohomail.com; s=zohoarc; b=WDcicpo9WQjWThL3Xns32LCk0TsTRXmsKqD4YvVXMPx6bqFMia6RaoMQnmX/rF+vd74CmBccsH3aKo23BZvmE0mgpgu0xgM6M6t7CEPut/EIJ71tcWEZxF7LeOdXdansVFnH7SQfIudG0UVPXnY/avJ4JYjaMPtcChaCoJpSK+g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584605234; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=vKdHN31GbwZUDufXn0O9kpqkEwB0fiQDUzo4toF+EJE=; b=fO0UHX4KVWtVVIQv71OWCDxoNZdn9xItrBMrX06MhOqoxkCc4NPWdU/n/5xJzKuSfkFHjr2M+2BTKyLErkFWbXxLhYi4vz5+Ipik52EEj8fYv47jR/P00VjRBAI/0IfKAa2Uvtt4/jObb4l4ECJgqDGOgGp3/vZ43jLn7G+sfso= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584605234262800.4135433007968; Thu, 19 Mar 2020 01:07:14 -0700 (PDT) Received: from localhost ([::1]:34566 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEqCt-0001wY-L0 for importer@patchew.org; Thu, 19 Mar 2020 04:07:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39917) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEq7v-0002Hm-5e for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:02:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEq7k-0006DX-UX for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:02:03 -0400 Received: from us-smtp-delivery-74.mimecast.com ([216.205.24.74]:24194) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jEq7k-0006Bu-Hk for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:52 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-483-YDthHy6tOdW8VekgiByaYw-1; Thu, 19 Mar 2020 04:01:46 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 061AE8017CC; Thu, 19 Mar 2020 08:01:45 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-49.ams2.redhat.com [10.36.112.49]) by smtp.corp.redhat.com (Postfix) with ESMTP id 81DABBBBC0; Thu, 19 Mar 2020 08:01:28 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 057C03EC00; Thu, 19 Mar 2020 09:01:18 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584604912; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vKdHN31GbwZUDufXn0O9kpqkEwB0fiQDUzo4toF+EJE=; b=AESymbi5VaLq2I/IqNh15AAHUDH4I2NFEUK9hMgftrpHxWVDClZ8wjkOZqWY5qr3qPQDlQ kvlujmleZ8PCuSdkjYavyevhY3+45VZVkSX7HeNnSGCfAyEhTY5vKOqXyLFBhzbZ3cLSc/ yBad7kAYxutnEwRD/UdTPzu+T34nZqQ= X-MC-Unique: YDthHy6tOdW8VekgiByaYw-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH 09/13] [testing] seabios: update binaries to experimental microvm branch Date: Thu, 19 Mar 2020 09:01:13 +0100 Message-Id: <20200319080117.7725-10-kraxel@redhat.com> In-Reply-To: <20200319080117.7725-1-kraxel@redhat.com> References: <20200319080117.7725-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 216.205.24.74 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Gerd Hoffmann , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" --- pc-bios/bios-256k.bin | Bin 262144 -> 262144 bytes pc-bios/bios-microvm.bin | Bin 65536 -> 131072 bytes pc-bios/bios.bin | Bin 131072 -> 131072 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/pc-bios/bios-256k.bin b/pc-bios/bios-256k.bin index 4af7f7d5a91bcc19905e1742b0706e034e2a655c..2353030885b29d3daa7186e9ce9= bc4cf234cec93 100644 GIT binary patch delta 59451 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 R#rnI_06c7i?n>V^{6Bz&ND}}6 delta 55400 zcmaI930zgx8nD0D<{+Tp0R=3D?`MLi-a4j9guC^(enkVBetb!jp+1+}XM2B^m)YF%qJ zXgQT;SvDygClm!WE43^fDl4;%SfP2+*Sm(j_9-hX zG>iW}QOR9D3|(F)^C>^WI1b;#6tjC=3DeI<9^76rSL606KEJOz-rhYWEerU45J(L zhv#7#tcCYrD|lggxM8$xU>FI|r;%ZFX<`@;!*lQ})Qd4Pjd3xC@hK!VH;jHT6h^?K zFazemEATPwfe9|dmv``6N=3D$8_zLQ^GK`~Owl)k8tc2@OtBqldgUzr#-Z1`#N7@=3Djjdq5S2!8DiVR@?OITA7~hzzzx4Z{XrBw zoM6RKkeKJU>J_k5Gs-!a)};#6M>k_rap) zGAS*52Sc;aTDS%`VbFZTXqRmmDew}Ugc}f+V;B#?cW?=3DM=3DHd?)JiWj$X2AidgfR;Z zqYOqY;tDZt++Y@LgOW`Cj9g4acm+1WQTQ4Dh7gZow16(~BCLlU@CE!0AxjLSHH^q3 z!)1mM^`c??2#xcYQv)9&wc^Kc<;4;%LI40ZQnkRSz~ zfxls95dy+4Q-;y%2f7%Pox$@bGK437#`^tg7_Kr(dY%%OqnN)VTm>bCj+ZDEJoP8K za+xNCg^+fYE_sbGaPMD+G4{G)H2j;M0%`CDWOlD4F#HEzg-^f>n+#=3Dq0AIp!$WY37 z6~2X^;5>L7%6I`Ztb#JQ0+kTquZ(uE9zFywd;#UKJU|(HAuvc~8Z&~FF|wvIVuO`& zH#`7AAY$8!U=3D@r` zKwvlxKZ6CYc2q{>UCI~$gYL>y#!zlXz-Sl;li(3}45q+zNQXHvPp&>v*R)#S| z8F7#VL*Wsa1502vd;$mHG*p0ND4D|}!w3fznfK!`Tp3Z|f;fnW4v+||VLfbw_h1X0 zfwOP{D&R8Q0AmChKrmngX+Fa^0)K#scc24{2j2uTiq^sgK<2aji3?%4g*l*MBW#D9 z+9(N>K@F#2yc>?if?pvzf&mNiU^|?LO6XIMz75AAvc6%ofg$iH?11i(^rQwDGAL+3 z|No4e@1O$AhG;1?ZN%gP7Dgcu?1w8*34zfF0dbA7|1b#t1)1s)NPL4hTSekuvknkoCZfr1|dj*>2MU5#?iGPrj=3Dpb1*H(& z8uJTjunvwxoi z@GLBcHSjA0c3}91x8OTynm`&*0+*pdM+yZ!;0bsZ7DDDm{^Y|~a1wrl%TVhsB0)Py zhg^6C*1~D{11h0zBBh2&FbkfCm*6_o>tq=3D1p%2^-Q{YobWP)|}~?~0bfRM6n;MpeUTm;=3DGxvG1?}zJTvR^}vw9PH39Mcn_oC1$Yy-!U4DpHG85P zJ!${W+@!)tm<_MOTTlo`;3xPU>fen?hP&ZjmE!f-BU;mo`xl`AC{(~knk(a?n`aJ38;WB z{b*J&`qTEX5-#3@(DxcfuYoiPWIoTI6<`b^5X^$*a1)x{N4FWw&~@@4)?lVY~yMK{Vhkh$@8kk6`isMdoQV!=3Do4)cor7Jn~xdB7I^q^B!|N=3D@JS{jPz2vW$P^NX{!dYR z;FyZG!zrjejottcLMAMOk0JVLo-_FKI_!kHGtgk@4jC{h9n+eDVnMrEi~)17=3D}_ z;s?8-!#YeadCHMe|`HN9PbMX zsDF?!&`2A`l%kPh#`{u8wSC2l@AiPZ4y zDJB`P8FoMs90v;mPt&#Fk?-g!-($;vplZQ9Lz6%pB*TMH0p^c1BQ%2w2>c1nhv(r} z=3D=3Dn4AhM#Hwv)nW|OJb1n3yVaU04DyVueFCs8p$>dM%ODGO}0<-_*9#+D)(Ec)|f~Ao3U$h>~ zE9eUxf^VVqRrCa2hAG#W-NJ~!Xj^D@9TN_-VAzn$DvfL|ahALs?6;Bj~n-h!*pk#*u^aKl=3Dt$C~j4I0}~`xt22WVRA5wRagqg zpe}34TcOI>6vm(W?8%n%P&e}$Lko#oM0Xucr zI8`q^9*4Y@H7Wz>7e5=3D{Bu(Pww+-0>=3D*)|qODGduO3@v6Uhc*nMy6Vz(6)g*6i!yV1?D=3D(nB|?@OlZytaHdw;2=3DY< z{2`@Y_vz5rRCLF!|LftDdfQuGH!nHPjzHuagK#QNIOeVxGj{9*J?&p=3DyZNtCIzCNB zngd7aerf6+v#7s*Ax$+hzwW>7{WLYgztb?O=3DkhuUg;_oA+w{=3Dvo~2ZT;e4skxwWt; zp|I$IDp}p%*wSXWzZ7{R0s;}yTH9ZL_L^#FF6ghfY*O|0t=3DCjQjkNwqlBB&L8W=3De!A&O)waRI#PT`U#o1jd*_Gv|vf-$gjWR#Kq$f;MU4lhXW;CB2 z*dt{14!vfYN;WT!&_7R8?I(>%QU*2x4J@djFy2rpODc}eZGHup{i;jXvC3t-go%_e zF;y<<5=3DP`3TNYwFq2ESMmYq=3D9-#zq<=3D_>9`h}-ey+(_> zW4z|5sy=3D@zJzVd)ZK6_u5X`u~l~x(dB#hDxjxj*Tk+tq7U3dl=3D~f zmSdC-n5p8;Z$|1)GgVCU!+%v)mZU^U!_fb%--c3&MQCtOtP6c0!1~WfJ!hucX?{II zcS%c43I6Wn&G~ebSCl zJW{vMP%X`eM(WWSszu^4dY1Qqo$xV_!)2wB(3mpWOUx}ykF-Xet*qq6>0Pn5wvo?p zWt2TRT7Q_K>i6qF+8b3yuy@58yj~Tl8)Tok;V#ZguIwqMeO6tc*Bf|QuF=3DY1IA|md zF12QNc`M?ou02cDf3oixY)Ps0Xk}&P{GQ_`ISnBrn11kJQ>S6Acz``vv2$A+X8rA) z73z(Di!7PTpbl$E*d6@JEpx1NU3al3Un-F5{rP9oETS>$db^77AB!02qxJGxs(bDD zH*sk$2}~%9AFWGgseuVwB$T*i?+X^gRrUqhK3Nf-_eR%oPNUVHCl7`vKUo;=3DFHi21 z*3TEVjhL-gD06YSK0imbH^-FgM$f1;^Jr(C{fugPca>579}8OBcr!hOX7pc)DNgHI z=3D@k3B$TqRE1-?#hOZ=3DDY(AG1maYq^0tcQM(M#yNxKvN(+#~aU|`~l+C-{%$TU5W5p z?zaw)&|Uvcm;B*-z5L%8D(4USy??8i-jYrk6;f#@;NF`*LL83W;V?)X_Tb>&lRs4M zKfS|q=3DuRCnSH+ljCFu5ZRijpt_t>&W2r(8Fbr-w8B9<-dP~4C;)P2!?5)t*xxhl>~ z-Kkg2RS6;Qo+NpTu6OCNM$7c6x$6FUgT(2K<-KV~3r9!8tyU*>$~@II-cB&_76FP$ zvYz*m)ils>EP?gZ{i01}FH#TgzZeX*x7QoyA>WY#eQ=3D(d7jOgltbqP{(6cJ4+rITg zJAu+!%juov(FI~hh;*hMn$y_*T%h|>{+6LcIFAth%eQCGjg&6`#6Z2~S#?)%x~N5O zqFAnB`pmOxSYHc;Ps{&JG47xxMbh^>xaS1AA9LiM%JAR57L|364)#O`BLylf7d%3< z3qw8Ot}%8b|582cIn~Jw->El0r;^*|h(69mMxS>L(kxiv6LU24v%C~XK^Bk1w^o0v z8)mA8&KDPk7;9t}e&qIBLVP(|6qDv0x?v^!p}Bar#hH~L(r z8WYr&UbLmBwPUazkfq|H;@1)Puu0rS*c&=3D)=3DK@hQYU-OddP$ZVU@mE+zsXX~8;X8d zb*|GeDK%)BFz=3DLAq?BS^yieDiuR55~cDSZdHEd0?)?qBGLynV>3D)!X>F4K@V(1!u zc)l9aCsb_6HgcQ4FBA#vI{JzczQ91?8RV~7&6(d6>dKURzLc;*5jX7&zKJl z(xuOF;@-gkSM`eDH>LNf|WV&Enp2Mbyi_L zgu$*7oQWuvI4o9&El{bZ^KSjX0@WlU@oqb}GH;wDQzXf(7@$21R94OE;#}#iBNnR8 zkrAv{q!9Cem07!cp35c0$l9qNUdXuEe1Lvop;}R=3D2dkd~nW@-C54PI4beBb{jd`oN zeq@nq?iwYtjXmg0W9PPFOCz%V6zVk)oX#I?{Wd_qyGX^kE{l#G>tV|m?oATi93Xn# zQRYhrD$B#H@ML{;k!q6JgFx<*0+}z^^U-cd`c7COjnO6h%$X=3DrDa1AFAz!j# z-qE6VBxqQBnV*#hSR1JR@=3DvPfUv@$4B(F%Z#Pr%vr99C_VUl#H5me>+l}o?jR;iiO zm~F7Y2xwZ-tu#Frh1rG!!Na{f#C~CPXe)A)LIhcV(E{bis%OgfM)lfIxwY+JTfVS1OPE#|Cih>? zt$(@a#1W`3J%?hPvDOdKOBSm>W_CAyWU&fw+5%Csel{~=3DklEYKmie@IfaG^pWNw(M z{XJ?-@M&p^A4P)KQuGrZ)o}FZT}hF-swXAfV^Ap@&GdF2o~;mHDh<7M99v7DLZZqL zQLeH{lIlIYE-f!6W=3DXQlu#JLL{@5LUL5x1_VXf6OMz>g^`kL2v>M2W9=3DZIZR$PGpG zq(qUat%cKf>TOF@qUlW0zb#Q?!dYrKw-t&=3DwB#O{L1ZQCkMmU1Nj+G}r>&8p*SYOT z_FjiOBAn4YyD*UOWg8f~MpiY!{wv9mna*66yoBuP?SND$&fSuCaREb8Wwp~AScmHS zCQWqWQq{#A(^x;XRP_p|Y$jRv(jPBXefkuB=3D4(XH2v;yBGhT)j_Js`VzGSK(z+GlN z_6s2{RwwpmG|r5p)z8bKb(dwTW%ME5;pP@Pb50P~xwXH!=3DS+~5VyEqmTC3+SQ%!;| ze_dJW-1>kis~r9IGAwdNYhAjGDgDWg`o=3DQVyytW#c+Rb3%{@N{G4EP*$R2&`dKV#7 zTK;lnMbQsLK_l1LE9o3RSxL8$h4i}koqF7I(v%`o$OL(Ov-X%!+DVd^TjjE=3DoZ=3DBNV zMb#=3DMh86wp3nX-<$V~U&{S$Y)?8g!wcm38}-}|C!7jRW_`nHG8d{H$IxZB0U<{tW; z7u7@N&0#v^KdNcwV-3;3o}C+IJm-~6sQppml6_63JNX-&9)!Tlh*>^5;flM$x%Ge- z3nSqo_fg@+Ifdz6om;QvJ>ZAaJw&~AAfq(z0h6a5JS8=3Dm9l=3DVrO7{ofmR;rHEaAk~{&IH$XF z+wb0*B9mq1;h5IbQ6r;CfeZ`Y20rJeI42zRHuOE!m6$9%%eT9)V;6$0j~eLSD^yH} zPF1m;x!dVy?kWFA<~=3D0yquuCTwq>udIyKNQtWe>dhKR=3D|JUoM3k=3D33HBke-Yv%CCs z39(3`+VWIb7b5k^6{^_~w|ET4W3k_&R979T+^P_5eDO!v@!ykR@e9=3Ddh<&v=3D8@mz;du<>V)8L4v~w$eq<-b5ZdLo# zk0sPNU#Q?ke&sZsFO(RrB=3DPKpr*rEdS8%l`jq2N#X<2*g>x7rtm>46$g1YMaURE!d z`wH}#msOj9h2ognMc2`)hxuBB9-`HQp|3>Ptzz3U)Gk67XcZMY#pl{l+N#uQ9ie~G zs)gwnp@UyxBK1qSZv6^|V^6pq%yYuJaJ$}JUYS$Um!I-I$J=3DWXp2zc?*DuBzu?uCb zux5RyUw?(Q(WC->SdtkYt}9+qaRDVFUzbk0$*Zd2sBcaac4nM6-6w(v8y%NoZ>UiV zWfJnQM0=3DBD?1U<1?Mm1G#<|Tz$E0&u{^UmcbS&t?6Qf6|HKeXSvQjnZ5QRMW+%+J{ z;apfG)_iMWr7O2|CHCpN^0d4sYvw%=3D>fBbtT345PP3fo`tWy00YPBTO4vG5FRjOs^ zY=3D|I+3G8U%9VGCOnrzFUJYVHxc zalGF$j4`LO_m8^TbMEH&Wbd=3D@?W&%CVKx4%lZHEuB$XbNWTtm1+Ymzes`t%uUeix3 zG@E38!Z28tfro52Ov_UIeVUlzTr((cKXHD>2y`Z3W{x`(toOqdl@NBGjxg6f!j*~l zAh9W29bAmOajrqKu{y{#HgAM$T0)_9hVfA5HrewCnGwKcvXNfX`jRPK*^Nx1NEUkuJ8vEy4A0}{}_U9&FAx+YfLMD`?X4<7}g~Kz+zPz8sBd8?DHJ>X^LB%<) zh1{w%+!k|Vgy-#WE#dm1Kbep=3DaR*e_fCz|i?h{pIKgUiJs*@Ya#6twE>CE-_-QI6F zbFbg3%&hd*i*uq!M6^DlN)k?yo*e743%r9N4h`W+%(A$m1?QN?reyyem~lKmmbg|3 z8@ibH2m;D;!a=3DqPDhO%~V|QkatYY)#RAg6HICEY?X*>bh*Gy-QlqoZCKuUUtvZ=3DUc zU-NV3$P&G$l-rs6Ah*tK4>+9L`q$WV#*uK)if8Iu7AFY|ad?Na&6B@;BALgQR_edq zX3u6<7!^Ge*+loxKu*-7tNVmkZu5^wxRP%x^@EGe7`89xE;i#c=3D^O(aduGO@(Fqbg zGlRJ#d4`83A=3D)=3DcFgxhhf%Gbr$oVmPjGdwdLX`YlCX=3DD+Xe}leL_B*cG z*A3^w4z&3Ed9EbG@i$M+c-qxVVx+o~5{_NH;@-RGe9fJbW}1%mn4Rm@q`E{U;(8h7 z^U`Rbj-k%nO?rmMj2*vNO7TUSXNs$1{zY<0n}5r2%&M1m^!KB`q-EdCob@~AAu)|U z5LX^^`?e{W;Yym-k+1#}*?*ToqJ&M-e|pU3nTZ6$hGGA>33d;11u{Pti_k`z^%?dL z(%es)Y3`X05{*k^DUOI;m2=3DrnDT0UkONo-KI(o)ZkK`v8|9LBl2=3D8f?4+w+qn z@4=3D9?k`#2#E?rQA!t68GvaPO*QUcT5`lTgiqb?mYYS|)pBa8GFY3_kRjC>szrPSh* zxG2R@oZ`3I-mXRShB8r!OL2-6`qw39=3DS*W4Q?O8!!TK*#SI+|uPk=3DSV%U%D_vWfDt z=3DUBdU39AQg+{?ttYR`REPl;)y-*3JAy{)|WlUF#RjYGrbxmxjU$S1AXSRy)4`u`?vM0Rm6Rq~J?=3DhjK(kJuG0Yd_?l%7t5WO`be zdnLVw`>LmN`4vz9K+lk1JLIJxhQ%ntA*Z4Ont-{ z1@4m&PZ1(znb|C}gy})6qD9eIefCmTQ*L{@OfQLYZcAzGYv!3Tp5ei0Trxd{OKMu~ z!SvZ_3=3DlKYDBV+J9S5kvQTLInkJt}!go|g*E@PSVgCjg8iH{%G9;7h4>x>#bQeDaa zn%yCdp3~8A%&wD`{a5Jh;Do}o>|4E@3tqcU6-uHX?BN}gX*k~~OfJjCaf>Q@j!U(g zpO>CE=3DkLnO{5yJ;t?+h_D|;I+{rj72z%Zw%xmq=3D;T`!O+$M8UVN55vE?y_3Nh5sUz z@_QT&+Gz!gJqE(entJAH)zqAJOux*vwQ2bld-E^Epy~zEqwGD47%M0M^LZ@cV7^}~ zsoBH&$JMIYBL~=3D*?GYVC%Q*9xjTkBJ(miJa2e1)*jPUM~+)C%7+PLS(h_1~&PKjjK zGTggSmKU~Gc5a2~YfhK~34?xR*O1AQgSw7#pSPB7(T}cC_coAs;c4!Ep?j=3DQE_J-J zE@rB|sfIqZMm27567NO*BD2qA4oFh7+f`4wi)v`KR<$zs*U<56RnLI>BK+A{J$>i)b&o6_55rRy09e$FD&m<-8*Xg>o3--(OvsX;FPX*@6At^ zkezIoR4-=3DO$T#?7HMd=3Do?r;hFN>5m)qKB2ruE#zJa}@!~9uoVW5}6mgU&>`~Q}tv( z_M{{gNNUtdJNq%Y`mu@qm|C@uWraHQ;dLt3eBeiYd7X-Pwfa#ye)b!wUFOr><9flOH`QZL;UrVE6TW*;}zji9-pIYf7J1|8-w1Z|1ed{Zqv4 z$1sZG9Fev4HS6GKy5C#s?g1kXvWYIuX=3D{ta>Sq#aoGX|u4B9b5r52Uo-T58#)WMf@vd=3DFl z(f1hR&?nzjjq4f|!6!mvpT`(e*LqLI#*`q6b6ZJyI6C|v)CA)jTtW~U?*Q5qs)xO& zT;Y+OeY0xznaoyp5o&bS?)Oytq|>#OkyDtFN~y+)8u~OKN_w+wq-WbN$;u|nj+khV zZy=3Di@wbZ<^zWg5VW2e>9EjO!H!xoBTA@l3I}+g*TU+^@yfVuB$ZXHKRmNjc z(!Jt)M)tuitICgu&@qbg%XfINqTVjk!_bhP)RCOd~vSf zb3X8ePX16uX12qONJ?xy(T}%mwpP*O#eq>#95z@>svIIEuga=3DI*X_Z93D?a#W$dDzK6GM zKl_MN-JQ~Mmd8mI7Tal6N?MC}Gf0nbNmn|E7q=3D0)r_$5CXXLfXB?-}jDQ)?~R!z1W z%1eBrZTd&F2T8hL`Eq8ioYBMT*r{c7E~WscuWS{eRtukNOtHVz-(+g!vK8iYlNaF& zMZCF@dhbW7WruP5eF{boib2;$$PoUvEWd0!JHBijCG$iS%95>*T35JJH~3iH*Kmy_ zaYXiyPUbgF6)h91Jictwex3EPs^2R7Do3hQUA3;3P$DC}ZS{2hk=3D8SoV2#g{j4(f%+Q6IJ8ZKW zQ&vfaRj-wCZpG=3D$ys5$N6G#`z%x&Bom6eP8)un3Vom(e_>4L55YG%(>WPuS(5A}t! z`r=3DSFhV86;snD!>u5g2MB!dboE6e?@QC!&DP8SJskRbPpGp8r((%YF9@p|RXOs}lu zgi1dK2WCb6Wg;2r=3D^yS1b=3DPxW%06Veb^Cl3VXj=3DM`{k><%-~IWZocXrH-{#5@5h!$ z?m6e+BJYc&^)W%zgY$!Vu1L(=3D{k!$qd=3D=3D{~sGypw3rSK93e+mI_3JvnKn~+<)a3>0 zo=3DiDtV7<9h(v|(%JwMiPAHrzG6(l2>eGI`W6yIXTr%2}qB{W35^_jSo~dI@IV>`S`P=3DCYNhvhp7k;@88)hKZ1DuU&B>umg8a-@m00^7mj6=3Dq{1u-JGQ_1f%uC)YE?3WOW5D3F}EnZ*Pr5e>AQa~Ou38@mbR7AZeL^s}z zwxyrf!*;7KaZ(84G-`{b+rZFKKAIxhsa5$TicelGy=3DAv*R=3Ddh=3Dw78A0rO)i9OQ?_a z)!iyNsLC(Btxhgfk!|1jh}=3Dsp&4p6LSWCG{_^nLTGy9C6yTrL|MqpKU&t9Q(3suXg zjXqgcO6u864!l&4)JCZFd%iwUs8S=3DULL86~%?W`@fBT_sx<}n@9&e#1@1bXwysuy0 zqq+ywY)6>1ApPwg-Z%_;Ux)2g_nOB0di-A1BA}IceiEqNdsTD4z)C}Zuvc|x+KwG6 z+W?P{mdzq_Ybo0lSA}0U9ahvia6cScKNm=3DMXG@cSRx5e zjnx(VRJ7UYZSCBzB3vsvFk&|%&Dz$zZ_5Ci@jYfQ)JT^XRqx|z)r-{w_A8fbIp^Q; zj>-4nnsX}MKR=3DrrnpOt>gA($K7JB)9CWXh|((mk7Jz7QjV#G2`AHt3o6Yi{po5Z3n z|40Dk-@b`c!Cg%qQp~}jEsyK=3D#j3tv`oh**QU5C91jE zd$|rdpc)3R;KSMciP8j#4t>`F^>kf{5ETCTdM@@*m-nyBdip_?R43*Zxuv^;X~rnY zv0s9ocvv;O=3DiUUWUYY<)z&^3{3wvak#R+HVp#v2CHPrn(b4kk@go`}pO$kuNDGrr4 z(BCVq@7pNed{Z|)q#_&r=3DcZlz?9tUw?lLd6Qx)LfH}!}^oG0yeQ@?bGB0TY<_8wBv z>c6`5kaDRb`sN|kp!-&Gr*&$uLs$m^28P=3D+1z#4g-S!JV5|B5rp10mVsXuo^5B-d~ zedvas@);*-2HemKK2uMq)B56Ps*x(xA%|Hlt^QlL<60+^jh{Q~VwkTk28{Thx=3D6il z*Tv57{BpDh5W7e99B&mohLSBp(^SiZC$S%ul0qXu!mKjj^nDb zlUTf@kVARazyBi3QfuN`F6`ydS^-uRrwPiNX7{XMx9@Y5qxCMmFI2BKZ^_f?O5zul51?g(xA?LN++LNPy%OboW|M1r%NHsbBY|>mxVSx9-2TP@&fAGW0w1dOO^gtP?uYhg71b6R6a8BJ~cyzSMk zzgA7U`LkZONAEE2AX$%YqFJoMYb;?qQ$t%G53#MeDkl3t-pR?EkSIia{}28A*O=3Dp{ zj_564tNIZGC^_MWN@YGIs#+q=3Da{6o4vdM#Z+4}aN^u}@aal7COT2e|fp`)$Faj#sg zl507$2~SAW?S?u;UAr&(RvJg%*5i+>Mqx8Z(t7$e4!y{MQpw4ET(wJjSY{&Z8#;4t zP>TEkBFxZrRpkr!S~A=3D=3DW5Q$I&4Q||lrRMnhS{3uYyIbOwKQ;nBs}%MhIW6Wn%9oI zi>DNphN$_~mD>A_S`zrVgm~w&p$C7f`t+(TAtv(T*ljttUdT)OK&HkGDSz3|()%i` zw_oLQGXGO=3D2yYA4P_$W&?B5+_dok=3DH_LtwPc4qW8UHPqwXmMaQVP$VR%zHs5mU70) z`Y(x>PpaOS?t4skD^+c}$vG`LW%c&UXc1!`s~ZF@l^O1({4Q^hW3c2n){$NADC>?; zlH;mU)h<)LE(=3DH5UgMo1HDIr7tiRvSQ26segiwJU9$5_T1p-@tJns{lRQK9x5qO`<6d^4R@W#T$GG@&qWn1iGD zhu~8F+Lw{M4Rui^dCMxvpF5%2b(+fQXM1aSMt-;?9CKUdRFRqW9|yOniSl7p#~rOz zNA!;;Fk~-_gjX-x5)RiS-!HTzIh@3OcfoQ;_Fuh1_A}r7C;Oo|`(A9tzMy-YR8h?W zU%+L;*L3xDN60R%#Qzu(ieiY!cPf=3DO;kG??@ z_eA*}@__}Nrh?ckv~5KkU+SB~$#)faO&2dGUiKUnyVeu`@mno8 z6Qe%%>47un6I^}u9J>lP-z5Jrd2f;<-6-Lr{^OL2Xg%pm_9s$!HC!kIfhR@YvjxhS zK?$}>t$)dTT@r5dl5Tfe-JSW{tE+^}%{J z|AGWcsS4!GX^r^4k0`wP6P(6Q9*y#Dw4|+5q7t8_&7T|YADB@mYi>O?I~etNP*Q!7 zRDFG^{6ydEn?cSTUH^O4I?8^Duox>^^+GI4j1HUmEJ1$Pj?{ z!8_AvCQTlw>?Swugoge_)qMYoe)~uDL_jkt-a2$%*Z)a1O?^jZYDMhD@h`P?TyZO+p#?X^=3DwOly^; z_<9uz^_VDBXAabs4JO?J2_tV<5AZ7+ev>&tK za+la!%+?;3;$j?}Ie(xc@~uM+&nQRMPchD%?{Ub#pJG|7RuD*rhI-x=3D(%=3D(m=3DInh* z_6~NAMUzV?n*5vn)Irothr0(g@zxR%!@&TIC%%Yctk)-hWjDC=3DRUKxrzKnfMceGTW zc8@TFLxfz}s^ZnLR5GD=3D`3A0>4Y+!iJNWA!-o|RSRIjyEVuLWci^Lf#z5@r^OKWQG z;5q$=3DrJ9EPBCUFfNol;*=3DaP;tQ%MmwsYl9?;ThP?mqmqj?>RlSOhsotaXWMg(}y&+ zin^yAwRro~)RWR?&zTz5BeMCB(w_Joz4N3FI+Cw7mHin{N;m5&Wi3hRCI$7R474o! zaiBbw4W~4ofo<4)rGn(w=3D@Ke?%x&Y$eiZlqdE1zJ`0dd(&#O9S{2JZ(yqXm3lH_@V z#1CYg)r-%ogaG@apUfBZ-t(&egqS;2=3DB^7!mFjYN{H&qn+=3D|M$sD<^?V3xJi!!&gV z(^Sl>HJ=3DB2mq286Su^ZMdmxi$@`Z=3D9R$TdI5hreX#(`-{=3DD7B6|^J?hE5K6RNV>XPb8Wt?k+l8!F5 zH|oN@aU%5=3Dkvjh;q!z96mGS%n{nl@)sb9f0Lm&K2b@H3fjrv{1``yn?hu_uU`iixb zuMCfoK$>^sWHNkfy?*I;HQVp{RYN=3DfPMnC4}IZSLoxw;2T@vy1D1pN*QtyK-f(%_Iu~E72~tuXTeZqZ*)JPV{YQ7`=3Ds>eU z+d(_1teLKolsLlrwzDJiuf0u94X1OwBOOO?zuqZBk-ptL{cxb!JO0_lf&l@PY z^pj?K@_V{cVOdkOh9(}7|C^NU`VxI4(ClEYcuSi>W~aO4J5YDu_9cD0RaWl4wdNHb zJrOI#@o3PV^p3@SQ!`LM(mX!KXZh2nR-$6?x^0cVGzq?{l|Byxf>*dXEXm zyDK?l#0faEs_QK!tF-)ImGv`SyX<}G?t|p)C^ei+hi|i0kEv~T3$6GRQJvRzw`g8hyzj)JrK(J`MAvO3zB>lao5Ls zSeV(ytUFUb7iQLPJ66i~^kiSW^ckM49BH0el8|rvAVxaE97*Vr<9ctH8E>9`Lsx{E zk(ss+zY)S`qGW+QF7)NW>^X5p#)$k*VYpw-s*;C8K$6Td0+&CyD{%wLDFNIisODaY zX=3DS|e&yg!SWRs6jEeYXG6=3Df>58qKhaADkDTE8U$kzkXkJ;$gnT-w;XMUz5W#?lP3> z^oMlV6j$DTr#X8)$IhzEd%rKa&*@XQ4|t8RwtT3+u4CTSdqyD}iA9UXxyCV|kFZ{6 zhhY9bF;)M}Xy#v7FBNp_1BBo(H{(gp$D(eHyN$<%t;R|rfRG9_Ikt#JP_Voh;P@$}rcQ-4y|>=3DMwEbk^{2sjk@} zbF+l`>L_7)hKAZ}!+qki2N%A*>J*OK%+{W$ZPZpQtM2(dCf+x6VnzUu%ViN>Y7J&e z%w-Fge&t`}i|w=3D8k%M#{XU=3Dn23s3SO&rGyCT|SkwzF3Y0kb|(Do_XNoL<2TNZ8d=3DVqyeK=3D!O@frYq;!pXW_Xjq)H~5ebs?IUXm_k% zoViw%?pBWvlW%cKia>k15$HJrp@(Up)< zgk&^9jKW)7LlMGQBX->rAwPN{Erm&z(JfMf|0YXu%PPc*O7%VN(vJFOY-TI6aaUv) zM&_+>*9|O}m>=3D`*l8>hy zjVX@q(7~+l7lFas8fmt39K#U%oI-Fi8WFWz!1xUrmo@9S&ssM83YZ`Vq=3Do17+ZhaHTkO!oilVov777n$vyM{Y_AD zdN5JC^GjwNEUFIDPlB|PAVuqz599uAYzSSdThUB^pTldv@by7Y@vB75oC_N{XionQ zjM}cD_uRiYdI)!3TE)m0H|wDS+b-G8K9_qpGb1*n-I_i_KKq;518lxn{TQNIr&(x} z72h!>Zna5wiK0!0chjSz%=3DYH9?`n6H*`w3=3Dcy?A|#Da)4GY3~~bz&&8-jQ`RbAd%E ziW6axi&9KEeo<(xn5h4bGL!1cc9D@DTfM^N>&18Uz0s!2ytGkIk7l4Q*r?x$He;OG zMe@2K*{8tMZ|GCeX466TApiAK2w#$LrK|*@IWjWTxsCHDUa(x!nu8Gg%+p1{MO4m|St@b?g4)R#m+G*78Bx%L9Pl|x~&&d7DPwLA2Zl zN~QsJcjDaIO9%9f7_+50`a%7AjM=3D8iixTDWw~)9bUtXhI7Xz1U4J!pF>6 zuRm&Pwhgz_9(p@OD1c)dOG2{f(N#pqZOfeIv$J@b(tAb5J6zTAw~KU=3D8V zHm8S9D%2x+GaeCLhy}i;GHMj3_#5Reenu-MZ$ptgx&1)-MY8SY|wvzBkl3xB17p9@|Crz4d*e!*}a7E^~z0aJRndqV`to(oI{KJw=3DkQT*LUjeEzB0ZzS?O^Si4Hq(4ePR(@cYXpRW2AnjiSWIEwp4*5HtK19I|t zyu4F4i6yZa{Jux5Io5odA3TdC)AAkqP^_8MX!8y`aZ2Q`*pI0p5oIW~SVJ`B1dus> zhwdxaK|A#0EzRa;%N=3D@YOEa=3D_$UhNl`sEF*Wp7ydV*a_kI>}o21beY_RcW5su1^!U z+iqWofRdCD{HU@p--~oR*F~Vzga;>-Gg@&*y-Hwk%4DoYja5GVe+fxFS$B% za!63mk2NFf$)=3Di>=3DnFh?jre*Zkm*8eb7t_Cd^?Rvb{bE%F~WOX zoJN1&Yt3O zWo7@CRo38!Z@ywJ8E4HHO%$jchEa06}&m4W0nUK6NoRZJfq+374x8Dnw|0pjI z_?-Z!b8AWi=3DAMktG464SO+)9_eLVXyW-^Kl&7Q;8GJ%;=3DQhB7HF68E`Njr8Z?yhXh zl+R2T9Hc_+=3DW8|6gYq1?((B737N^LkQMV2_R}?ZeKu66kw41K=3DzqHhOGvL zq@0uura0BezUJ^{k8`r5R8dKF%1`X2(z14%l2&z^*#~cD-sS}gH6jyHrnnN(?00x3 zl@XGiNQhGqP6(cCq)%j=3DjL$CS3=3D10zi43oECG>vMV{`7Bb!ItFm)PACuSw!n!p~gF zDa=3DG`AAa17XpT&zKblbENNqF;jl24NX7;zn)gQ`hSBJP-%5EN83qcj>W5_y*u9ID9 z%y#kX}o zc4nP0ak(z;%&ekmcl~>3GfIutwYr!C8_roKGwcAY$wlsRSdpE=3DhH%tyw4UC@Y*Z(e zN}Yj^yD0C0VD8hF=3D~Z1!S8A$tH?G;&IK7Y~c{9(oe@`p#fpAJHu^QX4C|h#g17e42 z%X10kOwJp|;d1NNQtjW>>=3D*Ea^r9C&(D!#`;;MP)^${RZ7Sw?vBN=3DX*%A1Mx^jNsqA(EYa_G zGbc~%jb)WZ=3D&tWk@u5+k@R#g-*n8yNTXVl$uVs*D~<-mJ~nfk*d22{7?8ceRvZFl+BAr;nBi)BPO z!UlMKUSCIKk-Yq@h`k)CunxQF7h(@LiaqR&)i2<)EZRE|8fT*HPGG()W55UT_^9+{2O>PGckhwvls=3D%3n5?W-m?k9BlZW`hj0+dZT zDSKgzy?5?~?cg!t*rFrnLe8DsQh4qg?!LBKvBO*JuSPfx<(uFx+(43IU|CB$x|7*E z4E}2k0;FY!ggOkv%r|1l(2optlNn~jq_@A3uh4sTn8+rEGq(Y8v7=3DJma{4Pq)R<$L zQJjh77+ECh5zbWp8JYpp5^khN6DUan-4Vbi$wu?l?`N3v142dI(HnKzOfz}>vNveCqAiQhO+Wi|PT@0kXtU!u(Q5;& zHtSHgvs<#nZ_(Z@&)e5MTXN*e4~+ioEVSfM%aesQRq2z3N$$_YsSKxsPadqPPN+TF zFWnqDVG*AN`9$5%xSIdgEjbxP-NWqN--(qC;ydzd@hzlw{=3Dd%N1TM;|`vaf3 z&#($SpeU%rqK=3D4b;7&rKpyG~!OKPT;qo$VWj7w?*4JhM?S!uW4%(caOd&^24Bo`0` zTyiZ%tz6Q2rf~t4L{s>G&wXZ;`n_-e&;PHV;knPf=3Dbn4+x#ymH?sgue?jr_Q7G$Om z?W`PJCN`ToS{LXB&ue2(PqrtgDieCv@f{}CDsrVrm2+sT-ku&~Pj08Q?nw&7ROb9% z;&)B#iTD6HX9JQ;y~u^GR{7RSHOFl}Y!u76OOcXwUuz1=3Dy3gdCwJ6v*myb5HC_kUK zsbD#`oLlhP<^qObpnZYbLm3W|!Kz8n$^A6ubUacu<_tXg^Al!Rw(q~iv&<~gvPfhy z`@o2jYM;%4$zFXhivku(Skzn$O%cEM8syVv#iWQ@(p1 z(_2a~&QdjL#DHKzf(4QEfNI8sIC-n2tfL{kCP~gQ5rb$K7W;6~d%8lR+$*7YPu!D? z_pfxfKazKN3WhvK6UWq||AwD*2%j*Y`N_Qm5%7*u`Y!M<+@v|bD7;isUz z(lIV2QI7dC?1#QeGTzbB79ZDWx_tOFKsq7HS|iI#Q!ujRPph&%^p=3D;-h}i8xneVG$kYx&xLeAAg9-X(<=3D2Qs>@<&7f$6B+0qI&=3DavPd++)j@g_dvZ7`m8vAa!7CQ9mQ6n5P)&L? zfqE>j7g(9Se;2=3D=3D#M)T~lF*l0%Y(rQ)xF?-ke))ZmDcixe~Img*aCl)sCZ%42Tz5x z>4@G!27(r8){AhZBAJ?Cph*G%RfQJkls7(r+Bms0?lJVK*99jV+4wt8u^`J4ycTGd z0Q5u92Bj9gGx{;`I;7glw&a<5qZOi+a{vKH+ZU!0|4tMCp4HUl!2lKUiV1 zr6h{$eR_L844hkdRx-pe5*d{Hbm&rH`*@wj#ZqrM*^`I{$ zj&8d7x=3DuW`sBx0pNvLLn zc0{x|($QX-gwY)A3kL6S7?BW&LumQPM63i_Wz)xht4Mbdk!&qt7=3DIqu&%BXNlV|VG z1gpe$Qk~a>3|t>C7z3Xu&bf>D-o7kMwl4-Faj+Q-3s5E>;aB^z?#(YBrfQhWp)8{{ z=3DHkMMiQ*V^3ng$d@1DZiw_U3OypCLH9va210#$P=3D?|lRsOO&T$`0^B%pifJBO#Wbz zgnI9S(%cxnn_oy_jhTKZ|04x!P$`RebSl;~=3D8fk4Q&~$tGZZ{zc<^ZcN-A4q`3<^y zt3M>ha6|1tlVQWij-N3ymWz>b!A#KH3Rm}48SV~vTbZ@gd+S!)tsBbM^jaafk7E*j zY`3l@ZZ)+8{;5cSAfGLKfzA=3DmAvTw-g`7s_kMiES;RbL{j5deZ_>6umfU$LaVLzr1 zpFfhczMP8-sG9uM!tWALeKwT;ryuLyaWv|TuMl|cNk;(IrXfE^fGDG5sJ-18z`!2L zmINN$pSA8ap&pygZUU6&m|7MRl%@ZIOaTv&CgGfmykl^zyd&KQE?kunoA~VhtT|i$ z0nhKx`uF%4w1cv|7eU$1Yp9L8G}xoKjH)!tR0$va7s7`Q;r;{I%Fu5yYx*mF0X_NW z16ZdnIrZr43hDYQeV3pN{zlif4LmT7H4VJ^K7hqpOl8hM-X)Fov*c$W3R9$NB4t68 zxT~*>!VoLgJt7Lbl18Chsmdf$aEjIKKl>K)?F>Pc&}DAm*n*;*>4`)* z!cg{7R7wZMA)ax{mw47YkgMreXMrxLe0qu;-qL1 zE3~3=3D5brqlBx0-wLkKRM)M6{iL@*eP_JBNl#> zwo!U%@eL{A=3DlKoug)<^j?Et_G-8B|6b%_+$ZC4f~6fUqr`z*aBJ5Jh)`Jq8mp`^p1rsw=3D59l&&T6DKakkWv&6k%47J`r`G@b#)dzN8!1b;&AS=3D8BH9)0y=3Dl8SXZMI z()oKa!jat=3D;PJz`8s`YGl;$Z#`xHt!{^-nOg%S&t@z=3D4+0rg9YbZ1u}5Z8o)mF>_& zxXuq3Ryb+;Tq-8Oa7PAKB?6d^srNL3cgbXV^@UNfXEM%G(?!t0hv37$yC;k9N3}Sv zJurYgk6_(*UG8-=3DW|K-CDu&03UXV%@s#p=3DQ?oZ{v4P~vv4JZ;NOoOSq@bTV4&>U_U z#=3D0|L>@^g=3D%on8N^pJip|2my5Xqh8EeZR~1j9|^%jYJa6&L@T08DDh!GkFIt-s^Isu~Tb=3D96SYs=3DSd8xYjU~tH0!LN zmrF8d3czt!#E!?CD^49PFLdQ2o<`qVwvbPMnnmE#H_M)8J^ilbsN=3DzSUj8&|sZHRn zr&(0+l?7;J63hNXOpXt4mciOjH@aa@d#k!*n34bia-X-_O4nE(qUEvN1-^a_7&>t} zjHv8sy9YWu3z=3D&nkYFdfMmdVgIc)%3J|HMRy#~{~dA{(fmphGrk-<6z9zL^nG^jhwP_8}D{y2}vd)C~SyCd|bxyZDk!)~Dt5*99B)I)@P;Ei;JERSZ!U zyAgEf7c*JoxCC@T2-gtBJ5h9rnIM*W_7M_-cQC1dQ`^OcnHsFV-mP$6)bZ9MSvQ|5 zN*%a@Pa4TW`zAC2l_i*p!PKI)mbQ4$EdriUIj1v(ixxoW3WV((67OUaFmV>b9ty_=3D zmCB`T?ik7Xuy3;Y{gJG7>$fpI7OE_ya4i`mP%r2*AjLIXnC>`jbYnVC9mTq|nL+1M ziwk3WLqu`GcSw0{*5qUNO+?o{ooD8AQ4MDuox=3D4ppNAMJ- z;pd)VZT((GAtaS2_~>U?htwzCuQ0^aRu4tQW=3DFUQPKEumq0!9Ch28K4kpnQV$6&L!bISBn}KLRTH3nHo9&o@vP|+eD+w@E-bODharWlNc>8H zP8pELzZwe*ebE$tek|(|ac4PziVL3t1(2|7XruU(pvoUFV>|ID#we({>d_s667`ONsbgJ# zVUQ@e`l;viGMhObyeN8tbhpGQVb-Xg_LLOMa3H#TnosdQMj#G-eEH6^KsNiXTU5e zT$})(w^V52aFPiaJpp0|16nz!9+N6a{;+HWC8}l$5dtYRL4~sOMqQm=3D_do=3DW z{zbgkBsRq7GUZ6l;wvYyC&HRSRNZ2-i+FpEcxwPU^cJ7-6Ch|(4u5kTe6vo$0QL`E z=3D3YH66)gkO`l6)NfVXa;+2o>%qGq9}*`qGwgO~r)WyW}})p)n5dje$24$)=3DKf<~yB zB?chEt`FJr@XFf|jH9mO(+Ab7eT^TVj8nX0cJtcFtWD#YSm3=3DGfBtbVidFQ_@+Y5X z(GAW`6g>wskl*-}=3Dh+h$a#U7kJ6%9Vv0{K^yZQ4u+4u7(GT8#zgE(OxgLQzH=3D=3DvlT zZXebG!sKh8XK)+TX!E(_iG{+LhFitC2DF8*Z7^-m>M$3CH`_R)ZBb|2?`~Pdx4b$j zb1_!K%_$rLXT*{Cbb&DirPmP^1IBaCdP*;?H7UKumS_*B-cANA4)@DB@a9Nd+S^ia z$#c6jfw+@~mA0~e>Z&t@85N=3D3CtAg;Mpujf1JuzMDMAZq#ZEDh^s1UfL-S*JUV+bA z%*~vb4XNGF3%0@HaeVL;*52|uhHK0Yf(fhWMzqg`>W)Uq9-VpxrWh4~4JF#%jiOh& zY!iz5l_?@E97KdF-O$E}4<`=3D;NQ=3DR1e`{^BoC^aE`ZZcCF~t|z19IcA25JwK@F25o8m0Ra_uCN9jQ8FLIj;-U0FLE=3Dn=3DfcY^J#-{!N66h0; zkD&|1x&LjzkU!YhZc+0VUzBV*gTSWV6<9+hP`QPgEK$M{gq73i33~-K=3DkvD-N93|2 z$3RI5B}<+cHYtcXPN2&HYAs`Au|W`g-$FG>AhM8#)l?Dt z9>WVB6YUWH?hrquSVTR6N@)+mJfLuPXHdv)*cANa2%~swm{lbT!s0o1wjR0kyy@& z6_#cW{3c>943-G3f#Ruc+^1>pRwW=3D_w%+AmPG>#Z6jHuk3s4f>fwU)yvvAj;twW); z!*NP|zJD+DaUS?0(+`hEoFM`6^ZU>7$NEon0^sI8sV(13*DW{8=3DYxe0Hl_nR$v@RvX+KA@6>vDC}lnFCyu%3C+DrZ zM6c19(!o0FKXc~_$3I|*VApIwp{k)&cL)Q5#3wLN-0gwHWdDq1>s4aIb(nB(pkD`K|llu_U+oDqyCbAeXtVC6)YdDmbOs$dmfmF|>I z<3&he8o^+&(I{1*$CcV|CqZDa=3D#vRb+@FFg6vZy9t*t8)pN!N2q|A!RkmkUAI8*rs zGtj?$9&Y_iw$d+jN~Nr^Lwp?FXR%l<8}Kxr_!5pO8lL9Xmso6*8&G)#aXT-5i7n|be5E7_Co|o`Nnj#^@waf|@1$A_`csv6U@pD+3byIsRp1$lSV+TY z3BC>RV8{fN<_<@i$6;RVlqDDAg$+gEN~ADy1z8YcQg3eOoyNB%t$I zv~-ylLDD}b*8WMLmJ-@!uYgpzj;Ea3T3h7*Cbh|OCTbCF^686O6uICzJ@=3D%=3D=3DDlZWe1-2{$%3@({-qe%XAdPa+2p0Xw@?heTc|MoYz!CF+K`E2itq{r~m>^dZc+MJ1aS2DzDT&k?YR>~~Ca1rj4e)baob`fi4 zX-AVGTIjv#o`$bL^_0w6G#b}GVPp@W0lSg7778;Zr4x*1^`3pf7Ro`(AvjI2{$4FU z0^33KCU`=3D?Sq}wmPmL{1GokjXf~mI}$zT_LW7G*CN&HuY>Fi8CZ83`;5t@Av87mXY zO`Y)R0_qtw<^bvlLA^Ha__PPwQ#}5Y`VM^8kV|;*r|qXBT5U z`Vc_*8PZniMt%m{s=3Dc9fegWNK`atRqW`E@^SY}FW2=3D$OxVEei|gD_JypxbYsoYS}k zI!KX{1+d)e?aq-*QAcG&S@KCW^~T{tuX zS>b*^(es|BtgF?mMaT-HgiO7HDHNYhrQl#H_A8=3D^;+CFN6Qy=3D`rxI_MHxWxF(OR)s zue!iV+iihq|6`cIk^Ywi#P3(*J3t!f3q9!?3}@fd^k*T8SGs_mu9w{|Z(y#Z(|i%A}LDA~P7 z^~>mEYJ~>0Qf=3DOSQ8ZvI;fTLZO-UiAr7>(++Ax=3DMuh9q`I~vqw678z{06{Vbq>?=3DY z;Jc$>w_yLqR+DVYO}0Q9Z8cfF>*QP;60AiGk%-H(XfdIghp56LWW~Jjs#f%Be>hJ9 zmT5@I-%gN_{{JA!F0$pPYi(;NR;a?Po>;1U3Xp)Y0mhaa4chRsSiBhU64F4#31<^q zWUO&U@vK`~Lqk_20Dt$?F#!wKe8(+q2d$p}a!cDHc`1_7B>LX+vPBf!7l2bIulbA5 zOE_Ob3~ato*Rn!d%K+_%g`SafFT(;v@#{4_^|rQkgBSqj_sfL*#B$SZ?GrJfwxh+h zy5aI0GcdNmf2;h)WCZNH(ZlF)i9Y^dFD#_+gSWMPw4uDg9jzW8D#}d*j7#q0dds{? z+<|arM)0IN+D;7(5m=3DJ$E$8a-%sD9MhDPuuceGQJ(rYmGZBGtFL*(uPYPiG5&+)3E zLT)KtDDi`2aM_+)@z=3Dz2N|Tye-lAH&fHl(d_p7x{Ez{6Zh<=3DE^Dx6zCQr?-020HU6 z2v>WG^?o;b<&EYL4H}=3DQ?Ty*J`wo?JFCcEKlrWmfx!)sbAKTs#XAZIlg zITtF(^B#)niQc?Kq~csLbk?lAeb&o&v+f6*bcxYs%kz|!wV;KU=3D^4_>Ifk|F%=3DR&{ zwzUQt)NCcolbhzH8m7uSD)HHxVEIen1mwF&Q~nLrO6()mr7D*)iat$reT3G>XIDSL z;pI@~+y>bd-CQMg48F>=3DKIlm_D*8NaN$3;SQ16m+Uxnyw)g|nv?uG3~yg|d%=3DuqMY zK*CeG2!F_bzpHI&frs!?u^RB+-Fu)TEumtG4$YAUDM_=3D{;LC2QhKa?$>1?|UTc{YC zxh*!#hPjJ`Omxp_h}Goh`cl8fUKXZ6A0h&iz-e;+A`G6~(_VvaAV4DfZm~RF(^fqWR$(ZM4@A z<=3D?fnys}2yk%a~FsC(MPNWDE-$RXwzz%#~r-_O#>b`P`+QCb4F>YldgbH|AaNQymY zRSpRaWYgY#OO~92IRKoGST9?&hit{g_k69FWZMcc$t|u4)>aB3_O?l?l^SOsZx|y! zs8zp^&mO9Ui1mzmg%J9!|AZa`RW1ntB$enx`|ZTveEl~C$#}Mx8K(qf<+EX9^8@Vp&**GgwAyj5|5N*fg(v`P$^OvjbnrTYZ(`z#zzyiGHOW3C61296 z?9?H#B>EUoIjaI;Vg?{+BmmJ|`maFSR3KOY0D^=3DANX)d|m@J}9KkRp8HEsMg>P-wSEFe?;Z=3DkEpy$AxA((^cMf>4cIZ- zgZV>(eDk~J3xer_PuDm2YY(+ecu=3Dj@yZ8SfdC)(SJcyO{1<63hGitT1EdL9M7uXw@ z9}xN9D?Z4(w66~t9jVrRI9A~c+awjX&%K8*BhX^e*0N-@-bAh1ka%RF3cYrTCYN(} z5g0DbWZCiU#Z079qvIi@N)?jqGU_VGLEt0__N_3m_f@=3D@v!GDJM zvm{D8pyIHHvdxf%IJebO)T(hnim@h7c+*2wGj z4a&Z(sR8KG_CTLMLCXG9g;_~3=3DdHC5s2|No_n0vre zGT8b{l;1gO1WR7%(&GERd6`SK(DF3)+Q&!fkdm4o&?SF_)z_bSJkWY6%I^>rpVvQgDO1arFoY44;J3~# zfVNxOTltwGzWMq!h}Xbe6n!^=3Dute)&39UjBOHkh5St5C8 z+N8qV6KwOaWXxYUB1#+rj<}2T@)S9nA4icE6v;eAj&&FL@c$O+=3D2(0*$WYb zsk?@keD`9=3D$p^J!@<#15TzpWY8>*nR9*Gs07U)**Qt8+_1}|vBrHsWod70Obv`kGY zSRPWg0R;k~%D*32L?~U^q(*g6-a`P!>s#u3tYV`;j-iN94W_g*YZ4*Tm}C_z5-@Wc z0&n@d#A245`!&o$tbs)Un%2Nz6%QZ^KQaN(jx|8_i^F3o&?aSmz2v+6788 zA)EAoFa>T!!>NN_<7iDo@q|O8JjFr$pDCs9l^C%Mpukk2Hks2-EQ{ zQn83jr?~l)t}aPLL%V2jT8wsrrcl~=3DHH{`rPasRyFTSRxNLxZ_$!Z$SlW70f6^4Y( zl+fmJLKG6d#W=3D2UJ&DvZO7(k;5=3D&j0Z!t!}9|Tf=3DqEy#dY^J!WX-LVyPOECs8dEr6 zstBfBfUKqIUMHlcl;wypf>bB(fdKgkAg)e$n@(>WZ_b9^JT#lNZhi{Vf-C2yD%VMC zO+!5=3D&;4Q51Y8=3D+xaPViN5l(g;1e5SAmb)Ut5a> zS0W7F42zU;=3Dm*aC@Fv!k)p#Fujk!pX2V))1;*q^Cgjk!$Ly&$Xa)m#-Jdo%N19Fj7 zkpo1(GH2iebz0^4Anx}%i?D9{+P7DMHnZ;?bD*gbW; zO&my=3D4GwHVg4!3~!c{)O1Ny{x?nO}I*_6#4#r)2HV?%RP%;M%l48s5a*?`RTt4|#HZ}r}d z6*O9O!46xUo5&1&kREbNuYyuJhZ3Dv5e0r703wK3DIUtv3s@vrE26-rBw|PMOE`Z* zh3yq3*0fYX`LG<8Y>CDhrp~mR59^r}{mYc&`&po@CZ|Fukp&d94>3p;`gaGyCw{|$ zCqMUwr_Nv{n01K9x1&h$d`<5w@vh3-H5_xW)_7Z*Lf)1%Pcu6`sAgCIPHa)~VDp zH#XcNb}yDa>QvP|RN;yT6Jb!CrmEIarJU0m0eR0VvKX zRbF`trcnwpS5p|UJIF%2G0PFBRNlm&&EcRzHyLEkdYvu^6N|<9Iv_esVzy_{;~i>e zm!I4_f-W!dnJxEzWEBCf0U(+&mI`v-zkvFS^=3DP}g1B5n?KTpZvCDO-SaVuoE0i+)c z44J^-+>4x~i9iQ+iT;$(ixRq4t6w~~UhAry@4?NhSXXa(nF28W?^P_`BIkaEurd4L zon~_G#|Xj!0}k|QjoJ5lG&BX{QPkEgK<;`rlzLwG5}Sls+&&;k44H63qK)e85|*9dq60bKhbkM$x${aF;9&I)+4y zMhM-U&T_&`qcnyHy|-o`1MQB^#No?WW=3D z#JAbNh%}U?jIBmZ&YR}s+X){$iKJ6(YBeu?n?=3D zU=3Dg26E<8R6Cq(bR`*fgYZUei&)~VGFfhpp;ZY#NazL27`?-xvbl-N|H6;e$0{rwal zh)mgpgi>6EAH4u7?-Twx{@M3~_wb)rv*^}shJt{f`avLRQ!(cyFnmrV!Y~L{BWzD$ z%GndV)f(2W5mml`nC0@{P29opR6cPHYa6@~QlPBGAIz;3Wxr}2G5=3Dyu`GkFE z4%95o(rCyZE1I9ycr@+j1-_|m>{zvtrGF+fOhE&mor_yjK4{PZl_9Y_%Fe{Tl(2m1Rr zXz(Bgmv+E>8*jUfWi)yd!8Q2(3%_;vZ5}GWsqM&jZDXs$`Wy_@FckDAREa zcAnvbg0L;DQ+~Qna~^uf;De3JD&-Z#h(o_9MK>QlbOLbuo&c~Jj|@*ES=3D492e0^4; zg(|cZxK)r~0TPG}bl1x&QGF79&C}~AZa{uqxE}_@k4jZ)?|G9v-y{RzyS9mPy4;y;;;MH6U1OWGm0Q z$4srV?&(a8DE2Z{1J}4KZ#d6*f;XKCti_wHD<2H)7$&mpM04 zptIQ7H{$s=3DUhTcKXa3IeS&u5KvizQ+6)}J1^Yt2-FQTL#C@G@0+}xl11DDsU{J3!w zMm^_@dW24J#8&kj>hJs#*=3D5Jkde9RndJm$g2bU-MO(uM--Z_k{~A8+HjDOeh>_E}-xs*~ zXM0)Vkcl|rm3!SZ2yQ4-n+4<#@zS&p9D}%CftmO_zjOW|U)xPMrHRTPt+So6!@u3x z+aKB+Q#M=3DU7w}hmd^5e&d5z!h=3Dv;(5HSFFU$HaZCBV&hd@i+D}ecyDAU&{K1I4dDtu$*7hVKl!foMCndPQU~!O)ju8W+$wiw*H$P21u<#|J%x^uk0JHGQ^ZREF)e?5F^iU6kS0 zmS9_j*?(vAV|-Q_Yj4a%q%o<{EB0<#I4y0SQaFZ0q(W&%z-6D}1%t5z583g@PFR?l zLad#TbzFKAHgR9@J^L5|;c9|AX9g0C8|mzIetPV6e8uIaGK1HavH19Dl;sNSZ@7;r zZ(+NCvv339s!%>e0{raAj&e`TFSswJ`0PW}RX8CLi5Q#G-9 z{a_#jD64qRK{i_3i~o3#-PWe^i{hy=3DP^W|W@8p)kPetN&f3n09c6E@obCL=3DQTW5o+3qkLW1nh+Kaa+t&pnNDPT~$G z4rN~DKOJYs*qkf;ixaSC(ys7|6D(z7B&HjMnDHAZSskFJPr3b1~z8-TOVLiI$v9`RZ=3D zzOc1g@U6?d(>DsaIf?U7kc8Y?uUKW=3DG%6`t+K3rQ7}MCzrfX{_BEfcd4dE*W2@1xcyD@`O8Z z*r5Qai#+qt_fZjliMrEbgAY8L-aT%;2u~$(LjLmUq8{3&U<Uh%%78xIlfwwSc7^ZMZkYZ;c za$xbNr8Oy>q}k*z&YC(IL751uF`rh!y0a}m@eLL5co8~`|4_kNvsYU12NiGz`e6$m zb{4+la;kavv+RlSC(%REb

D8xv~G^nt3T=3D+IceYgo8#IM7+poT#L89?Dgog_3Zc z!Yd6m_A%l1Z?ceFkk<%vC>tRvOAs-@Q=3D^=3D?!;8AF)Ay7KinXNR1>{f$ic;+o zPFKN~U>HhWb%(Qa%+T~8xaTTY_Tk}9Hq*WMj61ydIo2iWz-^RLVm;tv`~8~jR*QYM zdp!@Cy~s?6K|5*qo9Ey^p>GZU@*I1Uy?&ebJ=3D!ND<#&?EDujPo3vYe}a$I5mmg;PZ&YpuI3Yd z!U|K#IW+LaT7nJtAm59)$8Q_)_Q(D#d>gwD81MR3Tq_ksEJF%q6smzPh%cp#!5%cz z+{uq3rc!dWCwU;=3Dw#a#=3DRPlu`fw0Fp9{e*4O^rvAx@_%-F-v)c2ChWIW4I7P^oZQs zXKAR>{-p{x&+=3D(M;VY2tZC(ydv{UzpylI5N~&d#WY-xF%V@WsCkYT`VQlhudp<>_5}a@3Y*PLP9Axc zHE+5DM7WN{7u_w^Xy$3)ibXvP_EQV~^i?)F?5*Q8YpZ$#uGSpBnZ3y0#rPPr0;1feFl`bw|w&9*i6l5xX1!#l7PwC|3B~AwS2}c}}zq46d_W5O=3D z?_$lE^D_U`#o!pJCBNfhZQ03RdDJy{L|NC8_qfLL)8;}Y(|zd-mUX|*+zKTW3MFj{ zDU78KO%|-u4ApWOl)9^Ue4ll{qbUL-L{qV#tR7w4(~<{VXI;a7CaM;KpPoI}R6~$b zRnA9WXFXede8D3}*D%`d{7)8Lal*JCq#Q&=3Dl|@(i*6S>~#jG>XO~fI{MjLchXgYjJ z>e1SDTq|C6o%IOYLbp)f#D(PgMfsKU-Zxl8NZY>^;LT^U(0~!8K5vGVL{MK+!L`?JTuO@>>%0Y z{Ixsq#+T6!S)Wn(=3DXY4sh+7zSU@&!Vt;vE0Z)&tp=3Dq&D%qOCrymO|DcL+5$6m_o6iX?%fy;6WGG)hY;R>OWcm0EP zZPDikG{=3DDNks9$XMjuy0@{Hix2oden9&|1KmD~PcZS|C&7H>2rA8g$>W#;C97)=3Dm8 ze&t91U|Bx4av2oMz7*k~^i*k;?%0Io!w)_0h z0WTY_@F_KHC_8kHZ>wRgqaHxfppilgFH$pHVQ7Z&5J|Nep1QzmYFN+CX41fPCVVE& zlf$-m*Wc-+q2Ry7AFk$;@3BEF=3DN$jy9IJ9KS*D1?RYYpC$NIbp%B_ zF7x5{S?e}o#gIGFDf#r3#tNnJDIkYcyHH-9;%nXCl|;e$;23}ZK8t33_wn8L+1EZV zb^?YsF7bJPvi92F`KCWv%dj6#AS13zAY*@I>>x7kI?B)g$)X!uk-^n-XG@e*h&36q z)Rye!!4Ft#pMMdqgBN+?1ALC+Y$rbH0VYLTJMmQySexeik?35A5jfvu@UNF0eVd*fJEm0L`D^!ymHn(6}c6TL5JC2ucPGLw?|k z92+xB_^W(*9qXjO^qtzE zavt-isaeg=3DWRxvDgcR`a>tHc0ytF1jnquhynF_|4d$4-w&MqoUrK0;5@s>PX=3D0Hb|$TwW%eMcGGpww*8*JAJJOlk}CPZ4rNpNtvwM8OLfS`Dp`Uhk^ea zXgpnamVYWqaqR3_eqNF~hCBBH?*IdOvLQdcOMZ?a3-wldUFFd_X#+c3&iCo0j%@7? zUZs<|Hu(j8SgadQl;Mbv%-B#R@<-mwOKQd5KgTC}No`rr^W5$wjbOXW_|INaIP-Bh zYP=3D+~mW@5hU-prDv6~0@=3DRVRW+Ru2Vuk;T4=3D{UdUD@C*X{XED|YR$%c&Aa(YQ&@9_ zul17*;b%*T`wJT`@8_Gn{~D+hy=3D-q0ukb^u*$4SUKWP=3D4{WX8XUmD0Bmh*G|QmYW* zx8s`tS9n2Zs?fJbc~Aq%)crp6H>lRdQ}1d9zj6Lxs!mCSs)KH#9f8Z>tCJSQgaio1 z`aLgbAU(<6`;y;jAocROPnh*&i;EFAxU^}k~l=3DMBy(dTfZyOg>fmAdu|ED%ea{mm**ZpcoTu+Fuc5J_jW!=3DmX@+TiTtE2#j}qS zxmU0hHRdeU^-owQP)oxfh!*fT%B!NJi%1f#LY7BRQAT?=3Ds;67S$c|c5AHh0Rv7Cca zFKA7^7BBI|!BTh#h3hF6shEEhEE(E#A&^nPEY!ig%jjQT$}@Pcukb$jj8_IrO}d0* zR96QCb-gXwRss>3)(0pqAI7r8pS8sA+;ga|`oX~YpYwzeDax{tKt2YD^CRkYcc2B7 z7Ygy`sW0%SF~+@(tJ29Y)&eXc7Aa%V;2T%hi}0g}74;%EQAA$7h!RA2l4Od+^?id_KBM!H?9+_}JC zZYag19Xgn7RHQm$l>p+Pg{pO9dmCtGjGuD!|}*qM(x)=3DVkd0w{J&QMV`H(IvK2xOn9m8O65LgyKH<$8Nl`wf6m#GpPi`c24iYPN1rud;#g1n+ zl4kfkAb>^(@wG>3KnuqwAo4q<6-ZJ$_&3mFTWf!PL4EsZFCQB!MfbNNmb_8Z=3DV3!{ zsA(@F?g&U|hC8H+H@cDaTI^2EDqoBb1)AAttRFwFUp1y2;YFcRm^|PB$wF)i2FMOd z=3DW_mQsMLbB+rs@COVOP_!CoPZ;V2~mnPH?2Q5J5;I$xPr2i&Q3VlX4UqgqPaXj}2K zGCr=3Dc)Xe8Ry|mfK7dMt-2M1zjMHvf77jFF0zB4tBG6IdI1T7&t#WI6_xL8t1AmEMw zMpaTN+ydc^)6hYZH&5HnZ#I^~n+lk_Xg?2(i^5(=3Dj&35wu=3DMRbt%($?#p$aiQg?q^ z+_k0nZhT=3Do|Eh_U-TVsd23jSY4O7in=3DA*}-0SMX~kKfLRhDk%%>HqNe!=3D#s4+E+Xv zT*cQlTw2JcJNTF3QWyhVdAO9q8p4@HQ)x-SiXDPCegeZgO{H0EUm^EuhB1Q|^0;Qw zT()T+|EQUCmhp8wtGTp{1+C+Lda1YeJ3de^wKB}u3@$=3DnqdG&V%FBwtnofwU^I8FO zlonTvjyLqulUm2Q2W z>hHLeBE7EVQ~CjSL>K8Y-_TF$<~Y?)8m{Bl21zlzu8XvU#|@TDjzfc`-?dM&y+NAW z*u%bp-w*he;^)9`3w|@2!IKbv&o-AeZS=3DC{N&F7t7ZM?Bx<>FDL#3x3V}?l^w3bi7 ztp*wv{RN%@8eQCWJOeep$-D4us0ofP!BfWGD&$T4(;p1d__%^Jl}Dj(PXuW~eh<=3Dg zy%wbT48JW1*CA~>!k&KwKMirG%dn>l__KI^kN5A62WhHL1o>&4h`5T3e8e`U=3DWEj? zU+=3Demh69Py{Ihf^vs1ig&Xk!Q<2%K7=3D@i#7uH#f=3D=3DlIFpCUu=3DOWpZ5Sju8|bd#iAzLuJYD=3Dw}q ziP?PX;R=3DPGcOFhP%Gy)|TUjy{gFcJd{NN#iKxrGT<>Ffwh|LSS{&3|!qpdP#)3t|2xOjpX8pj!V z?-!+JOsVGMUX-r4w^bYQEem7YVvzxF@h6Q5hn6&5SsF8S`C7K3TBD(0-oI8nnKz=3D08*9Ngy!aCLGDY0RTMt(fYd79`xRO|F+*tF_NXy9+O~G>X zK4Ufp)w=3DaY-12X^kFZ{U$U|pKE7|U9{^4wCUcl~ZEI>r8EQ;B%r`i$oiWH=3D6KD*j@ z_qee|vC;2@vG5l3US9bPWX%hjUCoEjk?uXJi`HG2(Q~DdP1jY!yLcn8ba~J^wXP%T zV)B}-tL6vh!X+q{JtIxhQ}mo*f_}=3DWb}ThXmwefo2tIv@)KS`xHSYJ8NWV+0{Ej0x zTl&?TeOT?7l_$Nc4c$=3DPvs})(tTB!@jxuJTj7=3DM=3DdDG?69p4YCsZwjJd1Jd2#KP`yA<7e9rBs{jI{M+YUt7v=3Dz26&RnKzs@0cOcJLp?(ms&Ie%_Tx^)>pfp zQvvxNyA(DOILioZ>XSOdT)k0zIl-tHVIryVE6b?Fb=3D9s46&=3DBub5#uZwo~px$nRF4 zm`!V`0BY+Gs*PiK{HIbVe`-Ax&Uws~yS;>5Lbf zS?wr(3#?#^A;hbtBs?AeS}pAs5zo9Ml|?PCHd-(JWK5#X8MC+1dXTwv_!|vM@`3=3D} zn@cwvFf?J@W~mFFjwzcZ7ASqsWd7n-DJ{GJ!i@!+;Hk?;`cB2XDHJkc+*nlYIJ8xo z<%34y2?dzl;Q4F;3{*T97htA<=3Dehz^1C6$;Kx(3k*oE%1;@ryfw?ABYZfe#7y~gZM z6+a1CfXv<8B}E28=3DFXd*T1ou_Lf34!6sAL4^Df1hacrvQV~eFF^gLTEO$yssy|PrW z4ed}$e5St}svRTtNiQ%z@tPNj_TIB!8XCQ+8hebsQ_E8HFp7hxW-UVLe(wAmiR~fV zq(=3DOy1JXJlQ#ES0pql@3K)M=3DeqK=3DJj1=3DWM7A4;V>qUX6XDSo7_I_thX|5sE&-qFNX z4YlyPP!JFun_JqTK?bTBZJ1c=3DLl)7_=3DBCME~ies99a0( zGU+M3ji_Da{6K@0)!&r^3Z?Xe4$56o&3l(iQK5vx>|?~)(jxN&${PfgG^boztks@$ z+&qY}mH9Syv_CA}kVr6^AH&QDO+EUU^p=3D(l9LinCp@fGH=3DfNk?V#-7Q#0jY#WA8i0 zogh)#Sk0?XN}U)KSL;)f-5XlWs>JcOr=3D&Rk>nUkV7Vu{vR0w81euB diff --git a/pc-bios/bios-microvm.bin b/pc-bios/bios-microvm.bin index 45eabc516692e2d134bbb630d133c7c2dcc9a9b6..e0ad759c3625b06d43443e3b303= aceb7bed85984 100644 GIT binary patch literal 131072 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

d3tK9)DiB-zl2-hgEyNdWP34E^86CY4$ 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 diff --git a/pc-bios/bios.bin b/pc-bios/bios.bin index 67874c31b8b0284eb292deb2c9ebc191fa2d73b6..c421c0566101486cb80bddca6d1= 644d623d6b104 100644 GIT binary patch delta 46560 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 delta 45540 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 (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 158460520246317.365286980363067; Thu, 19 Mar 2020 01:06:42 -0700 (PDT) Received: from localhost ([::1]:34562 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEqCP-0001FQ-5S for importer@patchew.org; Thu, 19 Mar 2020 04:06:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39710) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEq7Y-0001gv-Ip for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEq7X-0005QB-Ei for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:40 -0400 Received: from us-smtp-delivery-74.mimecast.com ([63.128.21.74]:51337) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jEq7X-0005Nl-AE for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:39 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-288-urE79ladNLuwxfbR1uXmUw-1; Thu, 19 Mar 2020 04:01:36 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 83E6713EA; Thu, 19 Mar 2020 08:01:35 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-49.ams2.redhat.com [10.36.112.49]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8B2AB196AE; Thu, 19 Mar 2020 08:01:28 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 1167B3EC02; Thu, 19 Mar 2020 09:01:18 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584604899; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hSzTUuBVSD20JGOao/BrW7RhITmYyNs/OHVV6V5t7OQ=; b=c50jPleCtEDhXN1/dqtFHcy7L7yISMY2XLJvtKDqDUffyCDZg11qZx2QvNFYLD0rrHodmc zsw6VWR/HZuSz5n8n8/v7UWeuSeMHf8ZIM5P2gL3gbWHaWPj+eW+Sd6D729i/D9N2tarCD vs2ZIXjWmQAWKGQXWmnBOpaUVhbjUJ0= X-MC-Unique: urE79ladNLuwxfbR1uXmUw-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH 10/13] microvm/acpi: add rtc Date: Thu, 19 Mar 2020 09:01:14 +0100 Message-Id: <20200319080117.7725-11-kraxel@redhat.com> In-Reply-To: <20200319080117.7725-1-kraxel@redhat.com> References: <20200319080117.7725-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 63.128.21.74 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Gerd Hoffmann , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Gerd Hoffmann --- include/hw/i386/microvm.h | 3 +++ hw/i386/acpi-build.c | 3 +++ hw/i386/microvm.c | 5 ++--- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/include/hw/i386/microvm.h b/include/hw/i386/microvm.h index da2852a70195..53b2457db752 100644 --- a/include/hw/i386/microvm.h +++ b/include/hw/i386/microvm.h @@ -57,6 +57,9 @@ typedef struct { bool option_roms; bool auto_kernel_cmdline; =20 + /* built-in devices */ + ISADevice *rtc_state; + /* Machine state */ bool kernel_cmdline_fixed; Notifier machine_done; diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 80844db24d6b..928e0ee2deeb 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -2815,6 +2815,9 @@ build_dsdt_microvm(GArray *table_data, BIOSLinker *li= nker, build_dbg_aml(dsdt); =20 sb_scope =3D aml_scope("_SB"); + if (mms->rtc_state) { + aml_append(sb_scope, build_rtc_device_aml()); + } acpi_dsdt_add_fw_cfg(sb_scope, OBJECT(x86ms->fw_cfg)); acpi_dsdt_add_virtio(sb_scope); aml_append(dsdt, sb_scope); diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index fd753764fc10..748f9826fb0e 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -101,7 +101,6 @@ static void microvm_devices_init(MicrovmMachineState *m= ms) { X86MachineState *x86ms =3D X86_MACHINE(mms); ISABus *isa_bus; - ISADevice *rtc_state; GSIState *gsi_state; int i; =20 @@ -155,8 +154,8 @@ static void microvm_devices_init(MicrovmMachineState *m= ms) =20 if (mms->rtc =3D=3D ON_OFF_AUTO_ON || (mms->rtc =3D=3D ON_OFF_AUTO_AUTO && !kvm_enabled())) { - rtc_state =3D mc146818_rtc_init(isa_bus, 2000, NULL); - microvm_set_rtc(mms, rtc_state); + mms->rtc_state =3D mc146818_rtc_init(isa_bus, 2000, NULL); + microvm_set_rtc(mms, mms->rtc_state); } =20 if (mms->isa_serial) { --=20 2.18.2 From nobody Thu May 2 11:57:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584605096; cv=none; d=zohomail.com; s=zohoarc; b=Q9/nu9yXzvk6waojNhn+EhQE/bKhgKHTiWuDavUBIoxDgKRh502ZC9GCQmmtsWpekOKGMJrAAXECiIszBnwGR6EVqNqdM33ia56a0eK88v4ccln8Ied6KatGYXQaoj63NjI1U+bFF8A7aIW1WXK/OjhLrpu9xB2kMEMR+KlYfbE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584605096; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=OFA+B2NRdiftPIIZGM8KNaGgqaNO6iGHD6YJngzvo54=; b=J9ddEJiuuVY40z6iI9lt18hCs9I82ySgDK9nh2wBuRaj2UzyFwqZH8igV6lYhKkrc3aMXn2yknqm0cYOs5wDaMDfdBt5PJPEhhVU65g06fy8CeVaiB9oo7SEPcKMsoeTZSIvmFdA8lvrRYnGl/EDzfKE/PkJwc8Ls08QTYohn28= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584605096873423.00252736650907; Thu, 19 Mar 2020 01:04:56 -0700 (PDT) Received: from localhost ([::1]:34524 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEqAh-0006aL-Jf for importer@patchew.org; Thu, 19 Mar 2020 04:04:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39759) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEq7e-0001kV-BL for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEq7Y-0005Xk-Rc for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:42 -0400 Received: from us-smtp-delivery-74.mimecast.com ([63.128.21.74]:38905) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jEq7Y-0005Ug-Mf for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:40 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-126-ZebcUN-8PfSkJJch1HQUJA-1; Thu, 19 Mar 2020 04:01:38 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2E4CD107ACC9; Thu, 19 Mar 2020 08:01:37 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-49.ams2.redhat.com [10.36.112.49]) by smtp.corp.redhat.com (Postfix) with ESMTP id EF81160BF1; Thu, 19 Mar 2020 08:01:28 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 1A23F3EC09; Thu, 19 Mar 2020 09:01:18 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584604900; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OFA+B2NRdiftPIIZGM8KNaGgqaNO6iGHD6YJngzvo54=; b=KktBBEvNG+P6XYmCzZFu6OtpIDp/E8z1NzVVXo+APYyAt9EBbJAUtvoTLKLuis7JyGFiS/ IlVTjNHUGTUgV2MUsFScTCgW2A1BK5Da11Gsj7QWSQIooy7l+FZ1sitMMcgxzZMoOVB7XJ 9wsrJfWN1UIeRapHMbR9Vi3YcdeAfsk= X-MC-Unique: ZebcUN-8PfSkJJch1HQUJA-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH 11/13] microvm/acpi: add serial Date: Thu, 19 Mar 2020 09:01:15 +0100 Message-Id: <20200319080117.7725-12-kraxel@redhat.com> In-Reply-To: <20200319080117.7725-1-kraxel@redhat.com> References: <20200319080117.7725-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 63.128.21.74 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Gerd Hoffmann , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Gerd Hoffmann --- hw/i386/acpi-build.c | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 928e0ee2deeb..b765c31c80b0 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -1226,7 +1226,7 @@ static Aml *build_lpt_device_aml(void) return dev; } =20 -static Aml *build_com_device_aml(uint8_t uid) +static Aml *build_com_device_aml(uint8_t uid, bool sta) { Aml *dev; Aml *crs; @@ -1250,19 +1250,22 @@ static Aml *build_com_device_aml(uint8_t uid) aml_append(dev, aml_name_decl("_HID", aml_eisaid("PNP0501"))); aml_append(dev, aml_name_decl("_UID", aml_int(uid))); =20 - method =3D aml_method("_STA", 0, AML_NOTSERIALIZED); - aml_append(method, aml_store(aml_name("%s", enabled_field), is_present= )); - if_ctx =3D aml_if(aml_equal(is_present, zero)); - { - aml_append(if_ctx, aml_return(aml_int(0x00))); + if (sta) { + method =3D aml_method("_STA", 0, AML_NOTSERIALIZED); + aml_append(method, aml_store(aml_name("%s", enabled_field), + is_present)); + if_ctx =3D aml_if(aml_equal(is_present, zero)); + { + aml_append(if_ctx, aml_return(aml_int(0x00))); + } + aml_append(method, if_ctx); + else_ctx =3D aml_else(); + { + aml_append(else_ctx, aml_return(aml_int(0x0f))); + } + aml_append(method, else_ctx); + aml_append(dev, method); } - aml_append(method, if_ctx); - else_ctx =3D aml_else(); - { - aml_append(else_ctx, aml_return(aml_int(0x0f))); - } - aml_append(method, else_ctx); - aml_append(dev, method); =20 crs =3D aml_resource_template(); aml_append(crs, aml_io(AML_DECODE16, io_port, io_port, 0x00, 0x08)); @@ -1287,8 +1290,8 @@ static void build_isa_devices_aml(Aml *table) aml_append(scope, build_fdc_device_aml(fdc)); } aml_append(scope, build_lpt_device_aml()); - aml_append(scope, build_com_device_aml(1)); - aml_append(scope, build_com_device_aml(2)); + aml_append(scope, build_com_device_aml(1, true)); + aml_append(scope, build_com_device_aml(2, true)); =20 if (ambiguous) { error_report("Multiple ISA busses, unable to define IPMI ACPI data= "); @@ -2818,6 +2821,9 @@ build_dsdt_microvm(GArray *table_data, BIOSLinker *li= nker, if (mms->rtc_state) { aml_append(sb_scope, build_rtc_device_aml()); } + if (mms->isa_serial) { + aml_append(sb_scope, build_com_device_aml(1, false)); + } acpi_dsdt_add_fw_cfg(sb_scope, OBJECT(x86ms->fw_cfg)); acpi_dsdt_add_virtio(sb_scope); aml_append(dsdt, sb_scope); --=20 2.18.2 From nobody Thu May 2 11:57:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584605096; cv=none; d=zohomail.com; s=zohoarc; b=Aun3jP+XO/CqTWcauspx+YnDzOX4IhaccdCXxEB/E9pZdu/C6l841T7A83fiUelCIbCOeKJkJPdlUx2SjczyYEcSUUmZtdz7tDxIXPTOCtJV2cLRfoT2/mUZetgzZDvGHeOFiuHoIlgKHpnpIAalNG46+gVnqPmRAdE/GIFTJJQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584605096; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=ERu4o6ZtMX3qssJlFkElPsXEJtkE7CGsEmZCw3MKIR4=; b=SVhyCx3VNwtK80n1HBeK2DPzhikFlM9tkhyXmiztwWnbSv+zjU0sA0CEgzCPjWBaBme1hyPEnN44pNPpjEatbmV/Gvt2wMsy6v4MQsSxGFCZXua2+qaJfXTTJ7xscmWOq57AzOAFxBRhXze3YtErSG9W9HXQkaZ2Fs+Nu/DPijU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584605096154921.4656366891303; Thu, 19 Mar 2020 01:04:56 -0700 (PDT) Received: from localhost ([::1]:34522 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEqAg-0006ZI-SM for importer@patchew.org; Thu, 19 Mar 2020 04:04:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39666) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEq7U-0001Vy-43 for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEq7S-00050n-R2 for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:36 -0400 Received: from us-smtp-delivery-74.mimecast.com ([216.205.24.74]:21029) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jEq7S-00050g-Mo for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:34 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-233-t0URfHqHMJeOEFEvVNv_YA-1; Thu, 19 Mar 2020 04:01:32 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 53136107B765; Thu, 19 Mar 2020 08:01:31 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-49.ams2.redhat.com [10.36.112.49]) by smtp.corp.redhat.com (Postfix) with ESMTP id B8B701001938; Thu, 19 Mar 2020 08:01:30 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 265AA3EC0A; Thu, 19 Mar 2020 09:01:18 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584604894; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ERu4o6ZtMX3qssJlFkElPsXEJtkE7CGsEmZCw3MKIR4=; b=L+VxWOUkUOeuw8R8HiWyd94qX9zcqnz6rbFV9k88PJ59c5Q1bZc4tTwwjMy93Uc3q4vY6J HZI59+3j9+sricSZAVtN4A+gWDDVmLZ04dYU5I8iQP1gXxcLFFGHHdAyl4LJZm8OKH0xZF vetcvnV1dsddKZehr2U67SKRkkQGnZ4= X-MC-Unique: t0URfHqHMJeOEFEvVNv_YA-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH 12/13] microvm: make virtio irq base runtime configurable Date: Thu, 19 Mar 2020 09:01:16 +0100 Message-Id: <20200319080117.7725-13-kraxel@redhat.com> In-Reply-To: <20200319080117.7725-1-kraxel@redhat.com> References: <20200319080117.7725-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 216.205.24.74 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Gerd Hoffmann , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Gerd Hoffmann --- include/hw/i386/microvm.h | 2 +- hw/i386/acpi-build.c | 6 +++--- hw/i386/microvm.c | 11 +++++++---- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/include/hw/i386/microvm.h b/include/hw/i386/microvm.h index 53b2457db752..87828325ec32 100644 --- a/include/hw/i386/microvm.h +++ b/include/hw/i386/microvm.h @@ -28,7 +28,6 @@ =20 /* Platform virtio definitions */ #define VIRTIO_MMIO_BASE 0xc0000000 -#define VIRTIO_IRQ_BASE 5 #define VIRTIO_NUM_TRANSPORTS 8 #define VIRTIO_CMDLINE_MAXLEN 64 =20 @@ -61,6 +60,7 @@ typedef struct { ISADevice *rtc_state; =20 /* Machine state */ + uint32_t virtio_irq_base; bool kernel_cmdline_fixed; Notifier machine_done; AcpiDeviceIf *acpi_dev; diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index b765c31c80b0..9bddeb77704d 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -2755,7 +2755,7 @@ static bool acpi_get_mcfg(AcpiMcfgInfo *mcfg) return true; } =20 -static void acpi_dsdt_add_virtio(Aml *scope) +static void acpi_dsdt_add_virtio(Aml *scope, MicrovmMachineState *mms) { gchar *separator; long int index; @@ -2783,7 +2783,7 @@ static void acpi_dsdt_add_virtio(Aml *scope) continue; } =20 - uint32_t irq =3D VIRTIO_IRQ_BASE + index; + uint32_t irq =3D mms->virtio_irq_base + index; hwaddr base =3D VIRTIO_MMIO_BASE + index * 512; hwaddr size =3D 512; =20 @@ -2825,7 +2825,7 @@ build_dsdt_microvm(GArray *table_data, BIOSLinker *li= nker, aml_append(sb_scope, build_com_device_aml(1, false)); } acpi_dsdt_add_fw_cfg(sb_scope, OBJECT(x86ms->fw_cfg)); - acpi_dsdt_add_virtio(sb_scope); + acpi_dsdt_add_virtio(sb_scope, mms); aml_append(dsdt, sb_scope); =20 scope =3D aml_scope("\\"); diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index 748f9826fb0e..834b10aee0a2 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -122,10 +122,11 @@ static void microvm_devices_init(MicrovmMachineState = *mms) =20 kvmclock_create(); =20 + mms->virtio_irq_base =3D 8; for (i =3D 0; i < VIRTIO_NUM_TRANSPORTS; i++) { sysbus_create_simple("virtio-mmio", VIRTIO_MMIO_BASE + i * 512, - x86ms->gsi[VIRTIO_IRQ_BASE + i]); + x86ms->gsi[mms->virtio_irq_base + i]); } =20 /* Optional and legacy devices */ @@ -265,7 +266,7 @@ static void microvm_memory_init(MicrovmMachineState *mm= s) x86ms->ioapic_as =3D &address_space_memory; } =20 -static gchar *microvm_get_mmio_cmdline(gchar *name) +static gchar *microvm_get_mmio_cmdline(gchar *name, uint32_t virtio_irq_ba= se) { gchar *cmdline; gchar *separator; @@ -285,7 +286,7 @@ static gchar *microvm_get_mmio_cmdline(gchar *name) ret =3D g_snprintf(cmdline, VIRTIO_CMDLINE_MAXLEN, " virtio_mmio.device=3D512@0x%lx:%ld", VIRTIO_MMIO_BASE + index * 512, - VIRTIO_IRQ_BASE + index); + virtio_irq_base + index); if (ret < 0 || ret >=3D VIRTIO_CMDLINE_MAXLEN) { g_free(cmdline); return NULL; @@ -297,6 +298,7 @@ static gchar *microvm_get_mmio_cmdline(gchar *name) static void microvm_fix_kernel_cmdline(MachineState *machine) { X86MachineState *x86ms =3D X86_MACHINE(machine); + MicrovmMachineState *mms =3D MICROVM_MACHINE(machine); BusState *bus; BusChild *kid; char *cmdline; @@ -320,7 +322,8 @@ static void microvm_fix_kernel_cmdline(MachineState *ma= chine) BusState *mmio_bus =3D &mmio_virtio_bus->parent_obj; =20 if (!QTAILQ_EMPTY(&mmio_bus->children)) { - gchar *mmio_cmdline =3D microvm_get_mmio_cmdline(mmio_bus-= >name); + gchar *mmio_cmdline =3D microvm_get_mmio_cmdline + (mmio_bus->name, mms->virtio_irq_base); if (mmio_cmdline) { char *newcmd =3D g_strjoin(NULL, cmdline, mmio_cmdline= , NULL); g_free(mmio_cmdline); --=20 2.18.2 From nobody Thu May 2 11:57:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1584605249; cv=none; d=zohomail.com; s=zohoarc; b=Dh4LQO/jkH7AIK2GHJnxLJAu3uBtjZnBUlHfh2013HOa54YrGVQpM6GEdPHb9jPQd2CKycwukYANF31C9qRv7Qw56Oik76T3kgpqby8My6zaiaFrKSmAKYDIXmlZsCZYwB+W/jF+SI1PsQo/hpeZ5EURXITUs5HoBuTbVYad7oY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584605249; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=vsnWX1gIlwcFz9XB8Dcx8GS4744XFdzTMJ5wUPOnbtw=; b=ATqVhjpFTPNuhplHILzlJ3QiD/ilOxCZfopSj9ENKJfFDaTz/Jz/VODe37lwpXL8kkSXsOYXeKKxqr2a5HofopA5JM2+UU2kaEAReCIUA+gkSKeeYv7U3n2C37Ws0T/0uQAC4iHizDUt91iX6X6HXwhIiXk5qPjniWZINllzSz0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584605249369764.0263854671203; Thu, 19 Mar 2020 01:07:29 -0700 (PDT) Received: from localhost ([::1]:34568 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEqDA-0002gn-3w for importer@patchew.org; Thu, 19 Mar 2020 04:07:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39644) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEq7R-0001TR-NC for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEq7Q-0004tK-Js for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:33 -0400 Received: from us-smtp-delivery-74.mimecast.com ([216.205.24.74]:36257) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jEq7Q-0004sb-Gf for qemu-devel@nongnu.org; Thu, 19 Mar 2020 04:01:32 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-59-0IyYCKUKP_2TRYyg05ZVzw-1; Thu, 19 Mar 2020 04:01:29 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 7BA3E18B9FC1; Thu, 19 Mar 2020 08:01:28 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-49.ams2.redhat.com [10.36.112.49]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2282817B91; Thu, 19 Mar 2020 08:01:28 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 378DC3EC0C; Thu, 19 Mar 2020 09:01:18 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584604892; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vsnWX1gIlwcFz9XB8Dcx8GS4744XFdzTMJ5wUPOnbtw=; b=ikTpvKwUwS09/C7t4XvLuCPDqO0vw8xlCFXmON4xqQPHeMr9Qng14tfDEdUaQds7vcXON+ yuXp6cQsgsJPEY6AKsSsRyBwVFSIQdYCGz4IkJwI0yyu9lNRnJZJNGo0pl6RBjPOS1jmM4 2EXfOgf4m7TZ7EFqV72z0b7SbP3E1XY= X-MC-Unique: 0IyYCKUKP_2TRYyg05ZVzw-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH 13/13] microvm/acpi: use GSI 16-23 for virtio Date: Thu, 19 Mar 2020 09:01:17 +0100 Message-Id: <20200319080117.7725-14-kraxel@redhat.com> In-Reply-To: <20200319080117.7725-1-kraxel@redhat.com> References: <20200319080117.7725-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 216.205.24.74 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Gerd Hoffmann , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" With ACPI enabled and IO-APIC being properly declared in the ACPI tables we can use interrupt lines 16-23 for virtio and avoid shared interrupts. With acpi disabled we continue to use lines 8-15. Signed-off-by: Gerd Hoffmann --- hw/i386/microvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index 834b10aee0a2..139181daed06 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -122,7 +122,7 @@ static void microvm_devices_init(MicrovmMachineState *m= ms) =20 kvmclock_create(); =20 - mms->virtio_irq_base =3D 8; + mms->virtio_irq_base =3D acpi_enabled ? 16 : 8; for (i =3D 0; i < VIRTIO_NUM_TRANSPORTS; i++) { sysbus_create_simple("virtio-mmio", VIRTIO_MMIO_BASE + i * 512, --=20 2.18.2