From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593723165; cv=none; d=zohomail.com; s=zohoarc; b=IcbRjinUjDK8M0BJ3iSbN29SqvKMk6bjg7mA55MJQXpC2tSD2I0cRm3w5Yqan2xbnuSNxdDvozM3IQa0MatTUAme2itdV/CvL+SRvi3te0Av8/1MTALldqhvx1Vvy8xApcsAVOa7vHmDiImstXThsmMbEYWBbTiiLudToJNmMXI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593723165; h=Content-Type: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=d/4SzrO51wLCoiHfnRNqtnLD968Kuwi1FHNsO/et+5g=; b=cJ3hc2ddEgM33yuOEnN4T5uFCkBf4qth9WMtHYuF2mrLxxaI8bXf2rPr+19GCkxz14OraULY9UVt+jt7tLvdeMWzciR81l+ExRQr5yw/XbruLpUeNzGYv+tPgQlDL06t0VhL4cMtVFWKgBhVCRo3HNGdjTC2Bt7bfe3bX6FPSz4= 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 1593723165040757.9095986102965; Thu, 2 Jul 2020 13:52:45 -0700 (PDT) Received: from localhost ([::1]:42454 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6CJ-0001TU-NO for importer@patchew.org; Thu, 02 Jul 2020 16:52:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54494) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr691-0004Al-SK for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:19 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:27450 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr68z-0003X2-W4 for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:19 -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-291-wwrqCUHTP7Wol-GABUN_bg-1; Thu, 02 Jul 2020 16:49:13 -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 5395A800402; Thu, 2 Jul 2020 20:49:12 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id B33DB5C1D0; Thu, 2 Jul 2020 20:49:05 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id C8E83204AE; Thu, 2 Jul 2020 22:48:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722957; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=d/4SzrO51wLCoiHfnRNqtnLD968Kuwi1FHNsO/et+5g=; b=ApG6gQjj/EKZfgn3m7MmdnanCqhTogtwg1U63FmC/dMZqG0zGDFV14Y3V0oY15UF2gy87k hLUEZ7OKuCY6QyVk4dn7zg47LZhpV6syOeutjW8yoYS8WLcqS9Jeok1GaHKmf+ZGzp8O8Z y2+cSCiZfj/fpXTyYaAcCQZf/EJmtPY= X-MC-Unique: wwrqCUHTP7Wol-GABUN_bg-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 01/21] microvm: name qboot binary qboot.rom Date: Thu, 2 Jul 2020 22:48:39 +0200 Message-Id: <20200702204859.9876-2-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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; Received-SPF: pass client-ip=207.211.31.81; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 04:18:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" qboot isn't a bios and shouldnt be named that way. Signed-off-by: Gerd Hoffmann --- hw/i386/microvm.c | 4 ++-- pc-bios/{bios-microvm.bin =3D> qboot.rom} | Bin roms/Makefile | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) rename pc-bios/{bios-microvm.bin =3D> qboot.rom} (100%) diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index 5e931975a06d..1300c396947b 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -47,7 +47,7 @@ #include "kvm_i386.h" #include "hw/xen/start_info.h" =20 -#define MICROVM_BIOS_FILENAME "bios-microvm.bin" +#define MICROVM_QBOOT_FILENAME "qboot.rom" =20 static void microvm_set_rtc(MicrovmMachineState *mms, ISADevice *s) { @@ -158,7 +158,7 @@ static void microvm_devices_init(MicrovmMachineState *m= ms) } =20 if (bios_name =3D=3D NULL) { - bios_name =3D MICROVM_BIOS_FILENAME; + bios_name =3D MICROVM_QBOOT_FILENAME; } x86_bios_rom_init(get_system_memory(), true); } diff --git a/pc-bios/bios-microvm.bin b/pc-bios/qboot.rom similarity index 100% rename from pc-bios/bios-microvm.bin rename to pc-bios/qboot.rom diff --git a/roms/Makefile b/roms/Makefile index f9acf39954dc..b185c880541c 100644 --- a/roms/Makefile +++ b/roms/Makefile @@ -68,7 +68,7 @@ default help: @echo " opensbi64-virt -- update OpenSBI for 64-bit virt machine" @echo " opensbi32-sifive_u -- update OpenSBI for 32-bit sifive_u machine" @echo " opensbi64-sifive_u -- update OpenSBI for 64-bit sifive_u machine" - @echo " bios-microvm -- update bios-microvm.bin (qboot)" + @echo " qboot -- update qboot" @echo " clean -- delete the files generated by the previous= " \ "build targets" =20 @@ -194,9 +194,9 @@ opensbi64-sifive_u: PLATFORM=3D"sifive/fu540" cp opensbi/build/platform/sifive/fu540/firmware/fw_jump.bin ../pc-bios/op= ensbi-riscv64-sifive_u-fw_jump.bin =20 -bios-microvm: +qboot: $(MAKE) -C qboot - cp qboot/bios.bin ../pc-bios/bios-microvm.bin + cp qboot/bios.bin ../pc-bios/qboot.rom =20 clean: rm -rf seabios/.config seabios/out seabios/builds --=20 2.18.4 From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593723305; cv=none; d=zohomail.com; s=zohoarc; b=ZBlYycxpVmRzzO7MY7lhUuU1h+ubAT4wN5yKOQ3LJizho9yNglqb/jkjzHZRyS2C9lpmh6BkK6LMQEiU6JV7oKHkhnUbBon08CxXmDeQRKnd9q8ytnLfqhwlAtu9PTxEfjoLu9gC5gE62NfpI+WGClS77ExYyPWxHHJrY7y4W7Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593723305; h=Content-Type: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=Wy2GQheDSeuYedKPtPUZiomVVNMUQqvM47ukFGtvX+g=; b=mIBMpVFwH4SGklZMWklNY260l1qC/etZHdcj3/zAc9Jq5CsR6IN0UGsq9cOOU4qfm9JPKFcUPmqUAoukCfluCkxt2ZnLVB26tAkyNifnRd/T3eCzOZkn49+FhJx88q2wI/7DPXLW2bXi9tHGY2OaxuNDzYLahQyWdyADBFoTLVw= 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 1593723305298460.63013772262286; Thu, 2 Jul 2020 13:55:05 -0700 (PDT) Received: from localhost ([::1]:50648 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6EZ-00050G-UW for importer@patchew.org; Thu, 02 Jul 2020 16:55:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54492) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr691-0004AV-SE for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:19 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:33158 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr68z-0003Wq-A6 for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:19 -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-316-YZ0pdNNsO3KBqDbmDAFMtw-1; Thu, 02 Jul 2020 16:49:12 -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 F1183BFC0; Thu, 2 Jul 2020 20:49:10 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id 21537610B0; Thu, 2 Jul 2020 20:49:02 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id D36E231E58; Thu, 2 Jul 2020 22:48:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722955; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=Wy2GQheDSeuYedKPtPUZiomVVNMUQqvM47ukFGtvX+g=; b=a7gmJrXS9XlgDAFvWEvnMljDrzDROHWDD3PQ34VFuwo87vzG9iCzfZI004hTvLzA5AvgbR UF/NoXypXnCUtyJHT/BLqr7ZzB/AazzyXJcYLgZq6Et6li8m9eU+z/R7ef+XNRQCLUCg9M v8doGV7cn1Tc7/YED/8Vr2ulFjjc8yM= X-MC-Unique: YZ0pdNNsO3KBqDbmDAFMtw-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 02/21] seabios: add microvm config, update build rules Date: Thu, 2 Jul 2020 22:48:40 +0200 Message-Id: <20200702204859.9876-3-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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; Received-SPF: pass client-ip=205.139.110.61; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 03:42:59 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Gerd Hoffmann --- roms/Makefile | 5 ++++- roms/config.seabios-microvm | 26 ++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 roms/config.seabios-microvm diff --git a/roms/Makefile b/roms/Makefile index b185c880541c..1a9d14674464 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-microvm b/roms/config.seabios-microvm new file mode 100644 index 000000000000..a253e2edc6ec --- /dev/null +++ b/roms/config.seabios-microvm @@ -0,0 +1,26 @@ +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 +CONFIG_ACPI_PARSE=3Dy --=20 2.18.4 From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593723200; cv=none; d=zohomail.com; s=zohoarc; b=jQOi7NqNMWDbpFRsZ1IdT7VRpqoQIlwIw+lAhKfvE5MHlVY/d7AHKy4ySEGcF0YXMp9TWsU4SmnuTW7UtN33YDTf02KXIsLUur7zGQZhbrM5E2BU6a6kaQ2cs4dWHC+Gqq+Se08vPtyNKyDfsPeAcfzt3WcJ2HhdqcIhBA+LVCc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593723200; h=Content-Type: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=72IhNZnwYQ6IGrXjvHSLQOh2SmAxBgwccGavr45bvFM=; b=Y0fUJopwwoExVmP44mXg1hGVjW0ZevpRMzSrSKbIZNk1YIyfeXsxaTOt1utjtU+VLLyjXXKPeS4gvAhdXZrw3WAJHEEzMZhsb5KkXZ3cPhwPJpXJXpEUO05/z1hg7ABkPUboPkB5yA6mhWeGsChombCcRhDAXe49MVwxCpN2ViM= 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 1593723200818479.99077296279836; Thu, 2 Jul 2020 13:53:20 -0700 (PDT) Received: from localhost ([::1]:44926 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6Ct-0002WO-Dx for importer@patchew.org; Thu, 02 Jul 2020 16:53:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54642) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr698-0004Mu-0w for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:26 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:44590 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr690-0003XH-Qh for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:25 -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-333-BrxLrlDoN-ehZjgXOzckZA-1; Thu, 02 Jul 2020 16:49:15 -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 DAA2C1932480; Thu, 2 Jul 2020 20:49:13 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id CCC7A1A925; Thu, 2 Jul 2020 20:49:02 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id DCF7631E60; Thu, 2 Jul 2020 22:48:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722958; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=72IhNZnwYQ6IGrXjvHSLQOh2SmAxBgwccGavr45bvFM=; b=UpIygi16oF1Gwh8jFsZy4w3VWd6b85MFzwpfQCgtvc+4Wgy1aFPAnpJLeGZUk11zySa/nf GrCIOqGWtOivWiNdlwdoJu3klliKQZTK3i9zfegegpNxO8xkUd5QhpXDaZtkkMhh+jyuQB V5S9OTXUhqnIoHEmSKsreNCs/X+1pOw= X-MC-Unique: BrxLrlDoN-ehZjgXOzckZA-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 03/21] seabios: add bios-microvm.bin binary Date: Thu, 2 Jul 2020 22:48:41 +0200 Message-Id: <20200702204859.9876-4-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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; Received-SPF: pass client-ip=207.211.31.120; envelope-from=kraxel@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 03:23:40 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Gerd Hoffmann --- pc-bios/bios-microvm.bin | Bin 0 -> 131072 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 pc-bios/bios-microvm.bin diff --git a/pc-bios/bios-microvm.bin b/pc-bios/bios-microvm.bin new file mode 100644 index 0000000000000000000000000000000000000000..352c82692e11155c3e2c70d226c= 789a7c2b055f4 GIT binary patch literal 131072 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≈ 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 literal 0 HcmV?d00001 --=20 2.18.4 From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593723076; cv=none; d=zohomail.com; s=zohoarc; b=C3Y202V8Rx+BcKNw1Lg0K7BVg7Ir9pweo8aK68+It1leaCKMLl+cYle9EU3/z167q9/CXPiX2IuZ7oI7sLVf84eOn+o/1xWc1hsgyx4XXhVoIEOIIfMuxVh+ukvfig+fR/Kg04Dl0QCRaqhOVTrh0EjweJ4WXjCCrS5VZPfzvAY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593723076; h=Content-Type: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=iZ8q6BNQD71G/ReGAtp/ZouIvCh6XyxiS1/Hett2Vw4=; b=antsx5s4AkT3v8hP1Qv1K159WxAHPAoVoWUUuUJYzKHXmw1N6/E7OkEr+EeCeFX89S07cJqQzzcEwhWmhLJcGs5opYKuMOpF4wcG5GTrAT30H0Hti3mtZxRgluH9twMQLklYuVFfm0Z6wN+tTR1Hn+ZWgg1/VarQV6q+c4/IKlI= 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 1593723076236541.3562893465162; Thu, 2 Jul 2020 13:51:16 -0700 (PDT) Received: from localhost ([::1]:36688 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6As-0007QS-Ph for importer@patchew.org; Thu, 02 Jul 2020 16:51:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54530) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr693-0004Ca-2J for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:21 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:44803 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr690-0003X7-7Y for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:20 -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-293-t2U6IrGlPBGVrhw3hxrHkg-1; Thu, 02 Jul 2020 16:49:14 -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 DAE2080183C; Thu, 2 Jul 2020 20:49:12 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9BB685C1C5; Thu, 2 Jul 2020 20:49:03 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id E7BEA31E62; Thu, 2 Jul 2020 22:48:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722957; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=iZ8q6BNQD71G/ReGAtp/ZouIvCh6XyxiS1/Hett2Vw4=; b=dBC1cvxucaRCOutwDPUTpQSysJt58hYiPPjk+zVNV/sOqvEv3iZxeidqMxyihnooZ3+YAC HTui2NS5khdlSzSJLm+lAWyq5XHfnx5WiU9E1UeE4JXN4vFOrBATH2hb/yGgwMajjqMo+0 ExSahQnL4Osvn1G90nZF4yvhq7DkMq0= X-MC-Unique: t2U6IrGlPBGVrhw3hxrHkg-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 04/21] acpi: ged: add control regs Date: Thu, 2 Jul 2020 22:48:42 +0200 Message-Id: <20200702204859.9876-5-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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; Received-SPF: pass client-ip=207.211.31.81; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 04:18:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Add control regs (sleep, reset) for hw-reduced acpi. Signed-off-by: Gerd Hoffmann --- include/hw/acpi/generic_event_device.h | 7 ++++ hw/acpi/generic_event_device.c | 44 ++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/include/hw/acpi/generic_event_device.h b/include/hw/acpi/gener= ic_event_device.h index 90a9180db572..474c92198080 100644 --- a/include/hw/acpi/generic_event_device.h +++ b/include/hw/acpi/generic_event_device.h @@ -72,6 +72,12 @@ #define ACPI_GED_EVT_SEL_OFFSET 0x0 #define ACPI_GED_EVT_SEL_LEN 0x4 =20 +#define ACPI_GED_REG_SLEEP_CTL 0x00 +#define ACPI_GED_REG_SLEEP_STS 0x01 +#define ACPI_GED_REG_RESET 0x02 +#define ACPI_GED_RESET_VALUE 0x42 +#define ACPI_GED_REG_COUNT 0x03 + #define GED_DEVICE "GED" #define AML_GED_EVT_REG "EREG" #define AML_GED_EVT_SEL "ESEL" @@ -87,6 +93,7 @@ =20 typedef struct GEDState { MemoryRegion evt; + MemoryRegion regs; uint32_t sel; } GEDState; =20 diff --git a/hw/acpi/generic_event_device.c b/hw/acpi/generic_event_device.c index b8abdefa1c77..491df80a5cc7 100644 --- a/hw/acpi/generic_event_device.c +++ b/hw/acpi/generic_event_device.c @@ -20,6 +20,7 @@ #include "hw/qdev-properties.h" #include "migration/vmstate.h" #include "qemu/error-report.h" +#include "sysemu/runstate.h" =20 static const uint32_t ged_supported_events[] =3D { ACPI_GED_MEM_HOTPLUG_EVT, @@ -176,6 +177,45 @@ static const MemoryRegionOps ged_evt_ops =3D { }, }; =20 +static uint64_t ged_regs_read(void *opaque, hwaddr addr, unsigned size) +{ + return 0; +} + +static void ged_regs_write(void *opaque, hwaddr addr, uint64_t data, + unsigned int size) +{ + bool slp_en; + int slp_typ; + + switch (addr) { + case ACPI_GED_REG_SLEEP_CTL: + slp_typ =3D (data >> 2) & 0x07; + slp_en =3D (data >> 5) & 0x01; + if (slp_en && slp_typ =3D=3D 5) { + qemu_system_shutdown_request(SHUTDOWN_CAUSE_GUEST_SHUTDOWN); + } + return; + case ACPI_GED_REG_SLEEP_STS: + return; + case ACPI_GED_REG_RESET: + if (data =3D=3D ACPI_GED_RESET_VALUE) { + qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_SHUTDOWN); + } + return; + } +} + +static const MemoryRegionOps ged_regs_ops =3D { + .read =3D ged_regs_read, + .write =3D ged_regs_write, + .endianness =3D DEVICE_LITTLE_ENDIAN, + .valid =3D { + .min_access_size =3D 1, + .max_access_size =3D 1, + }, +}; + static void acpi_ged_device_plug_cb(HotplugHandler *hotplug_dev, DeviceState *dev, Error **errp) { @@ -332,6 +372,10 @@ static void acpi_ged_initfn(Object *obj) sysbus_init_mmio(sbd, &s->container_memhp); acpi_memory_hotplug_init(&s->container_memhp, OBJECT(dev), &s->memhp_state, 0); + + memory_region_init_io(&ged_st->regs, obj, &ged_regs_ops, ged_st, + TYPE_ACPI_GED "-regs", ACPI_GED_REG_COUNT); + sysbus_init_mmio(sbd, &ged_st->regs); } =20 static void acpi_ged_class_init(ObjectClass *class, void *data) --=20 2.18.4 From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593723735; cv=none; d=zohomail.com; s=zohoarc; b=eabrlIXdS80JH8YCu3h0BsVzIkw1NSlapphRPpLP1SvOXTH0kvglCCXFiyp5rvyQy1VfctnkBNZ/G8FoXU2Mm3cshY0gtgnCxEIxthJnrwLKoE0GZ5E8DgxZ7IiFc/vyZ79rniJ3grKZ9vEOsFDRKa18hwB+4pPyAWN00/xYAJI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593723735; h=Content-Type: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=kAntFizmHpnUAmvFukwiiK0EChGO5UzOb+cqjc0mD1M=; b=CTEbgphaigQ5NSR2UGbW8TnShiZblman2gC3B2RKl9C3PbQ2r1yz351VszXNH5Jk61X0IAQHXlg+byK6bwkIyz35OJ1INeVc1MTeO49x+E844zQP4jx6Q7X7oT2C8rxD61cEdQyt+rsERJ5vRuLH0VQs+0kA39ARMXNlWKtMMbk= 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 1593723735011706.8423029540978; Thu, 2 Jul 2020 14:02:15 -0700 (PDT) Received: from localhost ([::1]:47758 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6LV-0001N0-EO for importer@patchew.org; Thu, 02 Jul 2020 17:02:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54922) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr69J-0004uM-G4 for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:37 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:59915 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr69B-0003aD-QE for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:37 -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-355-7R2kvQw1PV2IisQdiX-agQ-1; Thu, 02 Jul 2020 16:49:27 -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 42D5E80040D; Thu, 2 Jul 2020 20:49:26 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8761673FF3; Thu, 2 Jul 2020 20:49:15 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 0025031E85; Thu, 2 Jul 2020 22:48:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722969; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=kAntFizmHpnUAmvFukwiiK0EChGO5UzOb+cqjc0mD1M=; b=QMbOqIrv+iDHkRdUZXoeXuLzx3MtTYCRVFjvNCDzkBH1U7Qi1sbaaELKXq7roYWCJ70vHg m44EV1Z3C8xIMeMp/Xku7p3ILM8zmvjNjECOg4xEhweTa2UwqVl3l3XpqblLFlf4WfiREd cK5JUk8gcnFm3+Vu+I4ZFebwK1g6gYA= X-MC-Unique: 7R2kvQw1PV2IisQdiX-agQ-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 05/21] acpi: ged: add x86 device variant. Date: Thu, 2 Jul 2020 22:48:43 +0200 Message-Id: <20200702204859.9876-6-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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; Received-SPF: pass client-ip=207.211.31.120; envelope-from=kraxel@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 03:23:40 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Set AcpiDeviceIfClass->madt_cpu, otherwise identical to TYPE_ACPI_GED. Signed-off-by: Gerd Hoffmann Reviewed-by: Igor Mammedov --- include/hw/acpi/generic_event_device.h | 4 +++ hw/i386/generic_event_device_x86.c | 36 ++++++++++++++++++++++++++ hw/i386/Makefile.objs | 1 + 3 files changed, 41 insertions(+) create mode 100644 hw/i386/generic_event_device_x86.c diff --git a/include/hw/acpi/generic_event_device.h b/include/hw/acpi/gener= ic_event_device.h index 474c92198080..9687cb524258 100644 --- a/include/hw/acpi/generic_event_device.h +++ b/include/hw/acpi/generic_event_device.h @@ -69,6 +69,10 @@ #define ACPI_GED(obj) \ OBJECT_CHECK(AcpiGedState, (obj), TYPE_ACPI_GED) =20 +#define TYPE_ACPI_GED_X86 "acpi-ged-x86" +#define ACPI_GED_X86(obj) \ + OBJECT_CHECK(AcpiGedX86State, (obj), TYPE_ACPI_GED_X86) + #define ACPI_GED_EVT_SEL_OFFSET 0x0 #define ACPI_GED_EVT_SEL_LEN 0x4 =20 diff --git a/hw/i386/generic_event_device_x86.c b/hw/i386/generic_event_dev= ice_x86.c new file mode 100644 index 000000000000..e26fb02a2ef6 --- /dev/null +++ b/hw/i386/generic_event_device_x86.c @@ -0,0 +1,36 @@ +/* + * x86 variant of the generic event device for hw reduced acpi + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2 or later, as published by the Free Software Foundation. + */ + +#include "qemu/osdep.h" +#include "hw/acpi/generic_event_device.h" +#include "hw/i386/pc.h" + +static void acpi_ged_x86_class_init(ObjectClass *class, void *data) +{ + AcpiDeviceIfClass *adevc =3D ACPI_DEVICE_IF_CLASS(class); + + adevc->madt_cpu =3D pc_madt_cpu_entry; +} + +static const TypeInfo acpi_ged_x86_info =3D { + .name =3D TYPE_ACPI_GED_X86, + .parent =3D TYPE_ACPI_GED, + .class_init =3D acpi_ged_x86_class_init, + .interfaces =3D (InterfaceInfo[]) { + { TYPE_HOTPLUG_HANDLER }, + { TYPE_ACPI_DEVICE_IF }, + { } + } +}; + +static void acpi_ged_x86_register_types(void) +{ + type_register_static(&acpi_ged_x86_info); +} + +type_init(acpi_ged_x86_register_types) diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs index 6abc74551a72..622739305882 100644 --- a/hw/i386/Makefile.objs +++ b/hw/i386/Makefile.objs @@ -17,4 +17,5 @@ obj-$(CONFIG_PC) +=3D port92.o =20 obj-y +=3D kvmvapic.o obj-$(CONFIG_ACPI) +=3D acpi-common.o +obj-$(CONFIG_ACPI_HW_REDUCED) +=3D generic_event_device_x86.o obj-$(CONFIG_PC) +=3D acpi-build.o --=20 2.18.4 From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593723845; cv=none; d=zohomail.com; s=zohoarc; b=f6eHZwfM/Jk6TD21ASkQ8zftXpp2d445wRpKImYWe8IaO/CalRf0GLJ8DRdWWTAWjvrDdEPwONIXdKTx/JbJirB8TsvmwWV1T0EN0p48amVlTs7TcN/jz/nw2VTtC/X3Hff5pXqSr4D3qyI70StlZKK11guJb3S+2avYgukZDV0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593723845; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=7hw25PI/Oaktt4jt4bTRsaghMdLJdGNuxNjT6APB1vw=; b=J2rlfxlz9dE4BWe7eoDnsaGLmBhDkG4Y5IeTcQ6TI9hcHUh28LlQBQ4ESP/MmtbAvLLnBUZdtLQPBhuuNykYJQGIuuriPtWG9s8VZiXVpOdv3+KbLwov2u7u3Wi0kIpbmDgMaz3KRvkvFG35NotUNYnHB3X0hXl23o7KPQKyZcc= 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 1593723845829884.1655701707649; Thu, 2 Jul 2020 14:04:05 -0700 (PDT) Received: from localhost ([::1]:54338 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6NI-00047J-KO for importer@patchew.org; Thu, 02 Jul 2020 17:04:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54946) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr69K-0004wm-9l for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:38 -0400 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:27593 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr69D-0003as-57 for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:37 -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-180-xV_s93goMHWI71uvvIEKeA-1; Thu, 02 Jul 2020 16:49:26 -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 849E6106B245; Thu, 2 Jul 2020 20:49:25 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id 825F8779EB; Thu, 2 Jul 2020 20:49:15 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 0C98531E87; Thu, 2 Jul 2020 22:49:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722970; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7hw25PI/Oaktt4jt4bTRsaghMdLJdGNuxNjT6APB1vw=; b=VIIFUu4LKAxJal1h7A0ZkJMWwlDzdxER8IptCbfZ15Z46Ob+rcPlczjB/NywWLHNnp09qG Gca4zQ7UE8MSl5whpZWwDZMC2WFQBA5lJAM3LYzGzzG/EriU4cCp1r1n3ysWo42jimiUoa 8pAojFK1DBEEnNIdxjMr5f2mmVZLUaA= X-MC-Unique: xV_s93goMHWI71uvvIEKeA-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 06/21] acpi: move acpi_dsdt_add_power_button() to ged Date: Thu, 2 Jul 2020 22:48:44 +0200 Message-Id: <20200702204859.9876-7-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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; Received-SPF: pass client-ip=205.139.110.61; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 03:42:59 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Allow reuse for microvm. Signed-off-by: Gerd Hoffmann Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Igor Mammedov --- include/hw/acpi/generic_event_device.h | 1 + hw/acpi/generic_event_device.c | 8 ++++++++ hw/arm/virt-acpi-build.c | 8 -------- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/include/hw/acpi/generic_event_device.h b/include/hw/acpi/gener= ic_event_device.h index 9687cb524258..ebed1ffe4231 100644 --- a/include/hw/acpi/generic_event_device.h +++ b/include/hw/acpi/generic_event_device.h @@ -113,5 +113,6 @@ typedef struct AcpiGedState { =20 void build_ged_aml(Aml *table, const char* name, HotplugHandler *hotplug_d= ev, uint32_t ged_irq, AmlRegionSpace rs, hwaddr ged_base); +void acpi_dsdt_add_power_button(Aml *scope); =20 #endif diff --git a/hw/acpi/generic_event_device.c b/hw/acpi/generic_event_device.c index 491df80a5cc7..6df400e1ee16 100644 --- a/hw/acpi/generic_event_device.c +++ b/hw/acpi/generic_event_device.c @@ -142,6 +142,14 @@ void build_ged_aml(Aml *table, const char *name, Hotpl= ugHandler *hotplug_dev, aml_append(table, dev); } =20 +void acpi_dsdt_add_power_button(Aml *scope) +{ + Aml *dev =3D aml_device(ACPI_POWER_BUTTON_DEVICE); + aml_append(dev, aml_name_decl("_HID", aml_string("PNP0C0C"))); + aml_append(dev, aml_name_decl("_UID", aml_int(0))); + aml_append(scope, dev); +} + /* Memory read by the GED _EVT AML dynamic method */ static uint64_t ged_evt_read(void *opaque, hwaddr addr, unsigned size) { diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c index 1384a2cf2ab4..852eb6484b0e 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -357,14 +357,6 @@ static void acpi_dsdt_add_gpio(Aml *scope, const MemMa= pEntry *gpio_memmap, aml_append(scope, dev); } =20 -static void acpi_dsdt_add_power_button(Aml *scope) -{ - Aml *dev =3D aml_device(ACPI_POWER_BUTTON_DEVICE); - aml_append(dev, aml_name_decl("_HID", aml_string("PNP0C0C"))); - aml_append(dev, aml_name_decl("_UID", aml_int(0))); - aml_append(scope, dev); -} - static void acpi_dsdt_add_tpm(Aml *scope, VirtMachineState *vms) { PlatformBusDevice *pbus =3D PLATFORM_BUS_DEVICE(vms->platform_bus_dev); --=20 2.18.4 From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593723188; cv=none; d=zohomail.com; s=zohoarc; b=X9mqY2O8fUxr3CYecBiEanrc7SsBAEyDae5mr7ZQyMSsAo3LdOqPs/fPiCXLJuJMJBPxOQwO3hhidG+gv/eWK2C7ILpQ8nvjb/geI4qCw/hyhLI4kzX+HUvmXlKNYfgE7CaQ4MzAL4xNGPH6YnXAHbEMjfKRNmeqoMaqeIouxDc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593723188; h=Content-Type: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=3qmo/QC1Uo41VjKsHy5G+USrNARFiKstgjsHC8RmoEs=; b=cFjYd+Oyc/iYtGPAmtBw5mj4UmrjQ5v41puDdJCf6SM623S6EAWTefleDP6lzuZ+XsTbiTpvdpaXAIagwZP10DZLm0VPrbRJb7QsOJGen8kKC0J8bBEHUCPpHgpTNqzIFpP6KVdn4zfZBn5M5rPqsnnQA0MOjvEWVql5Ey5GPQo= 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 159372318803037.99393512259178; Thu, 2 Jul 2020 13:53:08 -0700 (PDT) Received: from localhost ([::1]:43996 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6Cg-00027k-Nu for importer@patchew.org; Thu, 02 Jul 2020 16:53:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54678) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr699-0004R6-J1 for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:27 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:27381 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr694-0003Y4-9k for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:27 -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-236-U2UQ2T7fP0CZmI8OqfOBmA-1; Thu, 02 Jul 2020 16:49:20 -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 BA05A1932483; Thu, 2 Jul 2020 20:49:18 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3E1755C1C5; Thu, 2 Jul 2020 20:49:14 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 175AF31E93; Thu, 2 Jul 2020 22:49:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722961; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=3qmo/QC1Uo41VjKsHy5G+USrNARFiKstgjsHC8RmoEs=; b=YzapxhKwdDkrRVPYDk6vThvhwC4mrBs8JbeCgV5Y2L4cX1BhTUvm57T9nM4j71EfRI4x3/ a/3UOBl+S7MF1MagYTj3vIj1elVPaIL6by6s5AwdyjUzxa3nznAl5EK1/FqvsOcBDiZuAq 0TikevZa/PPS2KDxSAUU5rDswQ60KEI= X-MC-Unique: U2UQ2T7fP0CZmI8OqfOBmA-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 07/21] microvm: make virtio irq base runtime configurable Date: Thu, 2 Jul 2020 22:48:45 +0200 Message-Id: <20200702204859.9876-8-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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; Received-SPF: pass client-ip=205.139.110.61; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 03:42:59 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Gerd Hoffmann Reviewed-by: Sergio Lopez --- include/hw/i386/microvm.h | 2 +- hw/i386/microvm.c | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/include/hw/i386/microvm.h b/include/hw/i386/microvm.h index fd34b78e0d2a..03e735723726 100644 --- a/include/hw/i386/microvm.h +++ b/include/hw/i386/microvm.h @@ -27,7 +27,6 @@ =20 /* Platform virtio definitions */ #define VIRTIO_MMIO_BASE 0xfeb00000 -#define VIRTIO_IRQ_BASE 5 #define VIRTIO_NUM_TRANSPORTS 8 #define VIRTIO_CMDLINE_MAXLEN 64 =20 @@ -57,6 +56,7 @@ typedef struct { bool auto_kernel_cmdline; =20 /* Machine state */ + uint32_t virtio_irq_base; bool kernel_cmdline_fixed; } MicrovmMachineState; =20 diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index 1300c396947b..ab6ee6c67b1a 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -121,10 +121,11 @@ static void microvm_devices_init(MicrovmMachineState = *mms) =20 kvmclock_create(); =20 + mms->virtio_irq_base =3D 5; 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 */ @@ -227,7 +228,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; @@ -247,7 +248,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; @@ -259,6 +260,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; @@ -282,7 +284,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.4 From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593723067; cv=none; d=zohomail.com; s=zohoarc; b=gKsI3spvh//hHeODtpiwpNqwU0/8IQJ2n3AuETmOI6+Q6JRSQxiD9OrWuUgV4MwqY3A0ARtkCjAhqAtZgYJ++b5p3QJZnavtn+6KNxiGMKFSV9SzLpg5ZPuv7Sji/D/cQBsGeQaRy1r4wNDdlGGZOmN+Q+rGmJDh3J3hwVa72WA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593723067; h=Content-Type: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=K/H4IAEQo1rATudlr05quPSnXhkmj7m8MSc68pSNBdk=; b=G1cejwn6ENx8Z4mudzwEyM0EztkWmALfxziKbhyapwSXJ4DWjmhScUfHcSHgE/EI9S3yRnnQTHQtLD94qs4Ausas1cZnS6hNxg1h3dDJqOgFwtvH0cRWJuoawd2GP5wuIO1E4Osn9U/Dycj5NRH29lDAdL0kZuN7z5W+x3tQQeM= 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 1593723067292254.50958532634263; Thu, 2 Jul 2020 13:51:07 -0700 (PDT) Received: from localhost ([::1]:35926 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6Aj-00077N-Te for importer@patchew.org; Thu, 02 Jul 2020 16:51:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54640) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr697-0004Mo-V9 for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:26 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:30594) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr693-0003Y0-Ug for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:25 -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-21-VjaNgpe5M2SMp11DwnwEpw-1; Thu, 02 Jul 2020 16:49:16 -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 221C7800C64; Thu, 2 Jul 2020 20:49:15 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id 45D5B1A92D; Thu, 2 Jul 2020 20:49:14 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 2967331EBB; Thu, 2 Jul 2020 22:49:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722961; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=K/H4IAEQo1rATudlr05quPSnXhkmj7m8MSc68pSNBdk=; b=BlALHV1O2M2VMM/QXUq65+Lz7QtVkpW1bZBqTl0pA3MnwU61PPN1tfAdSH3To9irfP1FvW oed2MYPmsk2lEG1N5qW1ishD4BtFRsP8+j4TS36NWKa6WKYhn5z5e44mAN/3LRVc2Vp/t2 MFJoE3Wb28P3hQULBOlrNuXq7Nax6tI= X-MC-Unique: VjaNgpe5M2SMp11DwnwEpw-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 08/21] microvm/acpi: add minimal acpi support Date: Thu, 2 Jul 2020 22:48:46 +0200 Message-Id: <20200702204859.9876-9-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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; Received-SPF: pass client-ip=207.211.31.81; envelope-from=kraxel@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 04:18:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" $subject says all. Can be controlled using -M microvm,acpi=3Don/off. Signed-off-by: Gerd Hoffmann --- hw/i386/acpi-microvm.h | 8 ++ include/hw/i386/microvm.h | 9 ++ hw/i386/acpi-microvm.c | 181 ++++++++++++++++++++++++++++++++++++++ hw/i386/microvm.c | 40 +++++++++ hw/i386/Kconfig | 1 + hw/i386/Makefile.objs | 1 + 6 files changed, 240 insertions(+) create mode 100644 hw/i386/acpi-microvm.h create mode 100644 hw/i386/acpi-microvm.c diff --git a/hw/i386/acpi-microvm.h b/hw/i386/acpi-microvm.h new file mode 100644 index 000000000000..dfe853690e15 --- /dev/null +++ b/hw/i386/acpi-microvm.h @@ -0,0 +1,8 @@ +#ifndef HW_I386_ACPI_MICROVM_H +#define HW_I386_ACPI_MICROVM_H + +#include "hw/i386/microvm.h" + +void acpi_setup_microvm(MicrovmMachineState *mms); + +#endif diff --git a/include/hw/i386/microvm.h b/include/hw/i386/microvm.h index 03e735723726..b6e0d4395af7 100644 --- a/include/hw/i386/microvm.h +++ b/include/hw/i386/microvm.h @@ -24,12 +24,18 @@ =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 0xfeb00000 #define VIRTIO_NUM_TRANSPORTS 8 #define VIRTIO_CMDLINE_MAXLEN 64 =20 +#define GED_MMIO_BASE 0xfea00000 +#define GED_MMIO_BASE_MEMHP (GED_MMIO_BASE + 0x100) +#define GED_MMIO_BASE_REGS (GED_MMIO_BASE + 0x200) +#define GED_MMIO_IRQ 9 + /* Machine type options */ #define MICROVM_MACHINE_PIT "pit" #define MICROVM_MACHINE_PIC "pic" @@ -58,6 +64,9 @@ typedef struct { /* Machine state */ uint32_t virtio_irq_base; bool kernel_cmdline_fixed; + Notifier machine_done; + Notifier powerdown_req; + AcpiDeviceIf *acpi_dev; } MicrovmMachineState; =20 #define TYPE_MICROVM_MACHINE MACHINE_TYPE_NAME("microvm") diff --git a/hw/i386/acpi-microvm.c b/hw/i386/acpi-microvm.c new file mode 100644 index 000000000000..7cd830e628af --- /dev/null +++ b/hw/i386/acpi-microvm.c @@ -0,0 +1,181 @@ +/* Support for generating ACPI tables and passing them to Guests + * + * Copyright (C) 2008-2010 Kevin O'Connor + * Copyright (C) 2006 Fabrice Bellard + * Copyright (C) 2013 Red Hat Inc + * + * Author: Michael S. Tsirkin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + */ + +#include "qemu/osdep.h" +#include "qapi/error.h" + +#include "exec/memory.h" +#include "hw/acpi/acpi.h" +#include "hw/acpi/aml-build.h" +#include "hw/acpi/bios-linker-loader.h" +#include "hw/acpi/generic_event_device.h" +#include "hw/acpi/utils.h" +#include "hw/boards.h" +#include "hw/i386/fw_cfg.h" +#include "hw/i386/microvm.h" + +#include "acpi-common.h" +#include "acpi-microvm.h" + +static void +build_dsdt_microvm(GArray *table_data, BIOSLinker *linker, + MicrovmMachineState *mms) +{ + X86MachineState *x86ms =3D X86_MACHINE(mms); + Aml *dsdt, *sb_scope, *scope, *pkg; + bool ambiguous; + Object *isabus; + + isabus =3D object_resolve_path_type("", TYPE_ISA_BUS, &ambiguous); + assert(isabus); + assert(!ambiguous); + + dsdt =3D init_aml_allocator(); + + /* Reserve space for header */ + acpi_data_push(dsdt->buf, sizeof(AcpiTableHeader)); + + sb_scope =3D aml_scope("_SB"); + fw_cfg_add_acpi_dsdt(sb_scope, x86ms->fw_cfg); + isa_build_aml(ISA_BUS(isabus), sb_scope); + build_ged_aml(sb_scope, GED_DEVICE, HOTPLUG_HANDLER(mms->acpi_dev), + GED_MMIO_IRQ, AML_SYSTEM_MEMORY, GED_MMIO_BASE); + acpi_dsdt_add_power_button(sb_scope); + aml_append(dsdt, sb_scope); + + scope =3D aml_scope("\\"); + pkg =3D aml_package(4); + aml_append(pkg, aml_int(5)); /* SLEEP_CONTROL_REG.SLP_TYP */ + aml_append(pkg, aml_int(0)); /* ignored */ + 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, 5, NULL, NULL); + free_aml_allocator(); +} + +static void acpi_build_microvm(AcpiBuildTables *tables, + MicrovmMachineState *mms) +{ + MachineState *machine =3D MACHINE(mms); + GArray *table_offsets; + GArray *tables_blob =3D tables->table_data; + unsigned dsdt, xsdt; + AcpiFadtData pmfadt =3D { + .rev =3D 5, + .minor_ver =3D 1, + .flags =3D ((1 << ACPI_FADT_F_HW_REDUCED_ACPI) | + (1 << ACPI_FADT_F_RESET_REG_SUP)), + .sleep_ctl =3D { + .space_id =3D AML_AS_SYSTEM_MEMORY, + .bit_width =3D 8, + .address =3D GED_MMIO_BASE_REGS + ACPI_GED_REG_SLEEP_CTL, + }, + .sleep_sts =3D { + .space_id =3D AML_AS_SYSTEM_MEMORY, + .bit_width =3D 8, + .address =3D GED_MMIO_BASE_REGS + ACPI_GED_REG_SLEEP_STS, + }, + .reset_reg =3D { + .space_id =3D AML_AS_SYSTEM_MEMORY, + .bit_width =3D 8, + .address =3D GED_MMIO_BASE_REGS + ACPI_GED_REG_RESET, + }, + .reset_val =3D ACPI_GED_RESET_VALUE, + }; + + 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 */); + + dsdt =3D tables_blob->len; + build_dsdt_microvm(tables_blob, tables->linker, mms); + + 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); + acpi_build_madt(tables_blob, tables->linker, X86_MACHINE(machine), + mms->acpi_dev, false); + + xsdt =3D tables_blob->len; + build_xsdt(tables_blob, tables->linker, table_offsets, NULL, NULL); + + /* RSDP is in FSEG memory, so allocate it separately */ + { + AcpiRsdpData rsdp_data =3D { + .revision =3D 2, + .oem_id =3D ACPI_BUILD_APPNAME6, + .xsdt_tbl_offset =3D &xsdt, + .rsdt_tbl_offset =3D NULL, + }; + build_rsdp(tables->rsdp, tables->linker, &rsdp_data); + } + + /* Cleanup memory that's no longer used. */ + g_array_free(table_offsets, true); +} + +static void acpi_build_no_update(void *build_opaque) +{ + /* nothing, microvm tables don't change at runtime */ +} + +void acpi_setup_microvm(MicrovmMachineState *mms) +{ + X86MachineState *x86ms =3D X86_MACHINE(mms); + AcpiBuildTables tables; + + assert(x86ms->fw_cfg); + + if (!x86_machine_is_acpi_enabled(x86ms)) { + return; + } + + acpi_build_tables_init(&tables); + acpi_build_microvm(&tables, mms); + + /* Now expose it all to Guest */ + acpi_add_rom_blob(acpi_build_no_update, NULL, + tables.table_data, + ACPI_BUILD_TABLE_FILE, + ACPI_BUILD_TABLE_MAX_SIZE); + acpi_add_rom_blob(acpi_build_no_update, NULL, + tables.linker->cmd_blob, + "etc/table-loader", 0); + acpi_add_rom_blob(acpi_build_no_update, NULL, + tables.rsdp, + ACPI_BUILD_RSDP_FILE, 0); + + acpi_build_tables_cleanup(&tables, false); +} diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index ab6ee6c67b1a..75eca7306b11 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -26,6 +26,8 @@ #include "sysemu/cpus.h" #include "sysemu/numa.h" #include "sysemu/reset.h" +#include "sysemu/runstate.h" +#include "acpi-microvm.h" =20 #include "hw/loader.h" #include "hw/irq.h" @@ -41,6 +43,8 @@ #include "hw/i386/e820_memory_layout.h" #include "hw/i386/fw_cfg.h" #include "hw/virtio/virtio-mmio.h" +#include "hw/acpi/acpi.h" +#include "hw/acpi/generic_event_device.h" =20 #include "cpu.h" #include "elf.h" @@ -129,6 +133,17 @@ static void microvm_devices_init(MicrovmMachineState *= mms) } =20 /* Optional and legacy devices */ + if (x86_machine_is_acpi_enabled(x86ms)) { + DeviceState *dev =3D qdev_new(TYPE_ACPI_GED_X86); + qdev_prop_set_uint32(dev, "ged-event", ACPI_GED_PWR_DOWN_EVT); + sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, GED_MMIO_BASE); + /* sysbus_mmio_map(SYS_BUS_DEVICE(dev), 1, GED_MMIO_BASE_MEMHP); */ + sysbus_mmio_map(SYS_BUS_DEVICE(dev), 2, GED_MMIO_BASE_REGS); + sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, + x86ms->gsi[GED_MMIO_IRQ]); + sysbus_realize(SYS_BUS_DEVICE(dev), &error_fatal); + mms->acpi_dev =3D ACPI_DEVICE_IF(dev); + } =20 if (mms->pic =3D=3D ON_OFF_AUTO_ON || mms->pic =3D=3D ON_OFF_AUTO_AUTO= ) { qemu_irq *i8259; @@ -438,6 +453,26 @@ 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) +{ + MicrovmMachineState *mms =3D container_of(notifier, MicrovmMachineStat= e, + machine_done); + + acpi_setup_microvm(mms); +} + +static void microvm_powerdown_req(Notifier *notifier, void *data) +{ + MicrovmMachineState *mms =3D container_of(notifier, MicrovmMachineStat= e, + powerdown_req); + + if (mms->acpi_dev) { + Object *obj =3D OBJECT(mms->acpi_dev); + AcpiDeviceIfClass *adevc =3D ACPI_DEVICE_IF_GET_CLASS(obj); + adevc->send_event(mms->acpi_dev, ACPI_POWER_DOWN_STATUS); + } +} + static void microvm_machine_initfn(Object *obj) { MicrovmMachineState *mms =3D MICROVM_MACHINE(obj); @@ -452,6 +487,11 @@ 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); + mms->powerdown_req.notify =3D microvm_powerdown_req; + qemu_register_powerdown_notifier(&mms->powerdown_req); } =20 static void microvm_class_init(ObjectClass *oc, void *data) diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig index c93f32f6579d..be746bcb49eb 100644 --- a/hw/i386/Kconfig +++ b/hw/i386/Kconfig @@ -102,6 +102,7 @@ config MICROVM select I8259 select MC146818RTC select VIRTIO_MMIO + select ACPI_HW_REDUCED =20 config X86_IOMMU bool diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs index 622739305882..bbb2fe78f3cd 100644 --- a/hw/i386/Makefile.objs +++ b/hw/i386/Makefile.objs @@ -19,3 +19,4 @@ obj-y +=3D kvmvapic.o obj-$(CONFIG_ACPI) +=3D acpi-common.o obj-$(CONFIG_ACPI_HW_REDUCED) +=3D generic_event_device_x86.o obj-$(CONFIG_PC) +=3D acpi-build.o +obj-$(CONFIG_MICROVM) +=3D acpi-microvm.o --=20 2.18.4 From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593723429; cv=none; d=zohomail.com; s=zohoarc; b=Pt+YX30VuLFucDvIbmQTD+7qiKCZJXG5Nyr7OhXRIHo1GiaEXDPP40tjzhCJ2mzd79YhMpaJtbNHx5jYXZM1IlQcLB4uf09go4lSSex5VzaIgq4ogO+CuBHUTvfu9xrB3GeNaqG3z1GspM/DE0TyeY4r5POUlvFPwZHLRP3sPLc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593723429; h=Content-Type: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=RnKM/3mzkkjb0niX455YpPSaGv2VkFAEYBel4eIfWmU=; b=gNSlyWhEO9rn045IKkNvHnLw4Lc7egFW64DtfOmLm/veH0xpVl3fe21uia2MLjR9NrTZzKUOx1udJlfhPo8IGMqW72oMVKInWWFVxVykn7LF2mZH3ryhMce7uCKpGE18WM3Esx0Hr2WVPjMpIr3RlZ/LSIP8gU2rQ+N5tbmXBdk= 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 1593723429356325.5125826390014; Thu, 2 Jul 2020 13:57:09 -0700 (PDT) Received: from localhost ([::1]:59142 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6Ga-0000UW-3H for importer@patchew.org; Thu, 02 Jul 2020 16:57:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54608) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr695-0004HR-O9 for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:23 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:56255 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr692-0003Xf-OS for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:23 -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-324-ZR_tE0g2NEi8VlCCz94RYQ-1; Thu, 02 Jul 2020 16:49:16 -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 3E2F01932488; Thu, 2 Jul 2020 20:49:15 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7CCAD2B4BC; Thu, 2 Jul 2020 20:49:14 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 32A2831EBE; Thu, 2 Jul 2020 22:49:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722960; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=RnKM/3mzkkjb0niX455YpPSaGv2VkFAEYBel4eIfWmU=; b=GXb7tn9pz4xW4JJm4FChOZ09ajiGuri1V7HlUnKaX44hGTQDVOt0xByY8c9mQxw4I5yrn6 7L3QGwhvzzNyKz9M6yXEF9c86+Ty9z477n3aBQcqng4eXSWROtz3fLvDsC/L/q5fD/AYnY 4ZmlLaY62NRivaFMlL3oNdOP45/FfN4= X-MC-Unique: ZR_tE0g2NEi8VlCCz94RYQ-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 09/21] microvm/acpi: add acpi_dsdt_add_virtio() for x86 Date: Thu, 2 Jul 2020 22:48:47 +0200 Message-Id: <20200702204859.9876-10-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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; Received-SPF: pass client-ip=205.139.110.61; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 03:42:59 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Content-Transfer-Encoding: quoted-printable 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 Reviewed-by: Sergio Lopez Reviewed-by: Igor Mammedov --- hw/i386/acpi-microvm.c | 52 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/hw/i386/acpi-microvm.c b/hw/i386/acpi-microvm.c index 7cd830e628af..20f297517457 100644 --- a/hw/i386/acpi-microvm.c +++ b/hw/i386/acpi-microvm.c @@ -21,6 +21,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/cutils.h" #include "qapi/error.h" =20 #include "exec/memory.h" @@ -32,10 +33,60 @@ #include "hw/boards.h" #include "hw/i386/fw_cfg.h" #include "hw/i386/microvm.h" +#include "hw/virtio/virtio-mmio.h" =20 #include "acpi-common.h" #include "acpi-microvm.h" =20 +static void acpi_dsdt_add_virtio(Aml *scope, + MicrovmMachineState *mms) +{ + 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; + Object *obj =3D object_dynamic_cast(OBJECT(dev), TYPE_VIRTIO_MMIO); + + if (obj) { + VirtIOMMIOProxy *mmio =3D VIRTIO_MMIO(obj); + 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 mms->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) @@ -60,6 +111,7 @@ build_dsdt_microvm(GArray *table_data, BIOSLinker *linke= r, build_ged_aml(sb_scope, GED_DEVICE, HOTPLUG_HANDLER(mms->acpi_dev), GED_MMIO_IRQ, AML_SYSTEM_MEMORY, GED_MMIO_BASE); acpi_dsdt_add_power_button(sb_scope); + acpi_dsdt_add_virtio(sb_scope, mms); aml_append(dsdt, sb_scope); =20 scope =3D aml_scope("\\"); --=20 2.18.4 From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593723889; cv=none; d=zohomail.com; s=zohoarc; b=H9wY5zlw8a2dwbVFGR1Hb+euBkUgzSJZm0IgEmonRqflK5XrEQN5V844Br7cvydIrd8osF90C/6XgjGZpczAVge11sgSOWs8vXaXUdXNlbdCmUrt6C0wz0Dw8Wq41KJ3iNjSMAwu5uF6x8UUSYGGM3JZfyTmtH7NjDwA3JZRRoM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593723889; h=Content-Type: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=jEDeQL+0eY+fxl25+8ob2qVPKP/uEkYpHD39mrbj0FQ=; b=JSEVxXA9lNdVuIwWbCmuYN8qe9ROu3OvMjc0Y9LY6kES0Xeo/4lxGjfmUuKzBCMwFsF62dPAdY5ApMqq0fNUR7BqTnlY5Dzfcv0+muyCG6/pMo7RSj1zt0M11veh6mDJH8ZtZ5RNLI/Ev5VQZlA+2qHw4/6MvXWaxgRvwgHMig0= 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 1593723889684501.3316272094552; Thu, 2 Jul 2020 14:04:49 -0700 (PDT) Received: from localhost ([::1]:55790 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6O0-0004ju-Em for importer@patchew.org; Thu, 02 Jul 2020 17:04:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54912) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr69I-0004tP-Vn for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:37 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:32609 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr69C-0003ad-TZ for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:36 -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-437-HE46nBSnM7mrH98Uv0zC3A-1; Thu, 02 Jul 2020 16:49: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 90774800401; Thu, 2 Jul 2020 20:49:25 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8A43F7613B; Thu, 2 Jul 2020 20:49:14 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 3BC8231EBF; Thu, 2 Jul 2020 22:49:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722969; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=jEDeQL+0eY+fxl25+8ob2qVPKP/uEkYpHD39mrbj0FQ=; b=Q96sQ8Xj3WYopQQ+Fr6aHMb2pL+QYHtPDcaPV3Ifj4Hrqge8n1bve7MocwLKpsG1DIZqS2 h9Jf9EGD13MUZxWc9eyIysRJU9DR70caGVPEHig6cb7Kt8QQpHeAYvoBjHD/R+/y6vcIF/ NI5nMT9zdxa/yCfDevO+UiVtU6qwIII= X-MC-Unique: HE46nBSnM7mrH98Uv0zC3A-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 10/21] microvm/acpi: use GSI 16-23 for virtio Date: Thu, 2 Jul 2020 22:48:48 +0200 Message-Id: <20200702204859.9876-11-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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; Received-SPF: pass client-ip=207.211.31.81; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 04:18:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Content-Transfer-Encoding: quoted-printable 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 5-12. Signed-off-by: Gerd Hoffmann Reviewed-by: Sergio Lopez Reviewed-by: Igor Mammedov --- 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 75eca7306b11..1bcd57a6fd80 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -125,7 +125,7 @@ static void microvm_devices_init(MicrovmMachineState *m= ms) =20 kvmclock_create(); =20 - mms->virtio_irq_base =3D 5; + mms->virtio_irq_base =3D x86_machine_is_acpi_enabled(x86ms) ? 16 : 5; for (i =3D 0; i < VIRTIO_NUM_TRANSPORTS; i++) { sysbus_create_simple("virtio-mmio", VIRTIO_MMIO_BASE + i * 512, --=20 2.18.4 From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593723778; cv=none; d=zohomail.com; s=zohoarc; b=muCnnOx5RhqJxFHbb/qPFuc4N8/Z0iae8akTtwpaaEgtKk7YdBCUOWIuhwV6OjhG62vwwJvwNmPD8CoAl8eHcbAVQFtM3WRocofQbbsXUJC/9+N3Uw0+CwPinCqGZRwubW8OI6tJVJD0uJD102dNBZVihoqJW4iqTOZXov1HNBc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593723778; h=Content-Type: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=WRQFF1Ean5S7aC9TWsKn+9OiHTseT6Iuu52pMwLAYM4=; b=S5qbCKnT9tnNReyy9OBk0ht+Njn4AHO5KrHB+q6B0MwcQWbmIW5hKCK2H34e8hZjErtU1mTHA8VtTJQiIxXWGY9sKasnUprSHSfMjjtKPvykAZznSUAjyaJvdKkIqegtiXSR7odLvEMYCDBsc4MDJXxbd1HtaD9sfW5y32IzCIA= 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 1593723778280725.0626337079516; Thu, 2 Jul 2020 14:02:58 -0700 (PDT) Received: from localhost ([::1]:50762 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6MD-0002b7-14 for importer@patchew.org; Thu, 02 Jul 2020 17:02:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54890) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr69H-0004pe-HC for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:35 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:20833 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr69C-0003aU-CO for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:35 -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-375-5_xydxvzPmyYquW_YrXV3Q-1; Thu, 02 Jul 2020 16:49: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 EAAE78014D7; Thu, 2 Jul 2020 20:49:25 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id 20B4173FE9; Thu, 2 Jul 2020 20:49:15 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 44ED131EE4; Thu, 2 Jul 2020 22:49:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722969; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=WRQFF1Ean5S7aC9TWsKn+9OiHTseT6Iuu52pMwLAYM4=; b=SB7lTprt45olPquqNeSe7i7J8wWEF36GIND0uCC8XZzG+UhH8eFimbrDk2+YjrC3I+PUnL WJwVzuInxZdRNls57rzJv4VnyOgYso5QvFJ0lKabBk/t4fTdQDJcMhnyjsj7In2Da4B7+U E+3oM0mJPlNM90z30tL17E4UV3IPb4I= X-MC-Unique: 5_xydxvzPmyYquW_YrXV3Q-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 11/21] microvm/acpi: use seabios with acpi=on Date: Thu, 2 Jul 2020 22:48:49 +0200 Message-Id: <20200702204859.9876-12-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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; Received-SPF: pass client-ip=207.211.31.81; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 04:18:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" With acpi=3Doff continue to use qboot. Signed-off-by: Gerd Hoffmann Reviewed-by: Igor Mammedov --- hw/i386/microvm.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index 1bcd57a6fd80..ac605d92b984 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -52,6 +52,7 @@ #include "hw/xen/start_info.h" =20 #define MICROVM_QBOOT_FILENAME "qboot.rom" +#define MICROVM_BIOS_FILENAME "bios-microvm.bin" =20 static void microvm_set_rtc(MicrovmMachineState *mms, ISADevice *s) { @@ -174,7 +175,9 @@ static void microvm_devices_init(MicrovmMachineState *m= ms) } =20 if (bios_name =3D=3D NULL) { - bios_name =3D MICROVM_QBOOT_FILENAME; + bios_name =3D x86_machine_is_acpi_enabled(x86ms) + ? MICROVM_BIOS_FILENAME + : MICROVM_QBOOT_FILENAME; } x86_bios_rom_init(get_system_memory(), true); } --=20 2.18.4 From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593723572; cv=none; d=zohomail.com; s=zohoarc; b=Mes4uIwmPetbetiCB/gPr20RLMqhzmxhWwios2TB818CiARZulR8mSazS1culCKmHYYlHpcBG5zM9YNlcauC+c361Tj5kVvgHj/QD+HddjQnFSpL+YJY1Z6sRdEugYOsbWCG0oS07UbHc5BhiIkhmscT+Xj2DWUojzKd45/4faQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593723572; h=Content-Type: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=sQJ0YdLK1hV5ZbuEPLWSu+ZGB5W4m1BLGPxWcQ/+h54=; b=j2uHsMLDxHHmIz8Q8dIAb6O/ZjIwkuCPxcprr9RbhqPRzuaZYVAlZ4f6AIjcuZaSgceQt1teQYCuJT2ZkG8ryns7TM32XxfMoWvP686kie8bXVP9VbSRxVfjK68uvLoi+2gznLzm1b2KftpeQ1c1sqtnk1PTf0WCBSsE3jOTg4g= 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 1593723572793353.6208685687707; Thu, 2 Jul 2020 13:59:32 -0700 (PDT) Received: from localhost ([::1]:40602 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6It-00056n-DA for importer@patchew.org; Thu, 02 Jul 2020 16:59:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54820) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr69E-0004fw-NQ for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:32 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:49823 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr697-0003ZH-Uy for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49: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-173-4RO1oTLeMEa74voM8PRBkg-1; Thu, 02 Jul 2020 16:49:22 -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 B16A7107ACCA; Thu, 2 Jul 2020 20:49:20 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id 261B67788D; Thu, 2 Jul 2020 20:49:15 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 4E1AF31EE5; Thu, 2 Jul 2020 22:49:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722965; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=sQJ0YdLK1hV5ZbuEPLWSu+ZGB5W4m1BLGPxWcQ/+h54=; b=S9NA/IKmOsaTh11U+tIPQmJjjJp+MaLSSzkZeToh7UPakk1gvIwbKYfcDihkwYSpWttKGO BKN8V0pbP0j6kUcIPocELTMy8LTZjnwd6Qt2jH/ozFUQOKKh5LwjJZjjCMQCF+G7rq961P 9seYB3JnT8Y9YYGPLFKyRwqpjiwUZIM= X-MC-Unique: 4RO1oTLeMEa74voM8PRBkg-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 12/21] microvm/acpi: disable virtio-mmio cmdline hack Date: Thu, 2 Jul 2020 22:48:50 +0200 Message-Id: <20200702204859.9876-13-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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; Received-SPF: pass client-ip=207.211.31.120; envelope-from=kraxel@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 03:23:40 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" ... in case we are using ACPI. Signed-off-by: Gerd Hoffmann Reviewed-by: Igor Mammedov --- hw/i386/microvm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index ac605d92b984..fbda323f3b2a 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -343,7 +343,8 @@ static void microvm_machine_reset(MachineState *machine) CPUState *cs; X86CPU *cpu; =20 - if (machine->kernel_filename !=3D NULL && + if (!x86_machine_is_acpi_enabled(X86_MACHINE(machine)) && + 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.4 From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593723403; cv=none; d=zohomail.com; s=zohoarc; b=VCzmPismxQgXs4aUDmvfETE+EsLPhwNXcHkTtCDX/A8ozmJWl1KHnTP4uoN+/y0S42bpTt4qIGpwm4LkdnXduRDLmBHrySgdZY7jdmjVdPagGXSdUm0yn34GkrkvVhFhvX39S66ots6tuyi6ToJUX17mPPBp6oiTnFo6cADiPrg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593723403; h=Content-Type: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=+IDREpxh7rDZ2ECllVes4dktOn88o4bfSW8hIGHPm4Y=; b=gYnZxbBRZEAMfVCZjnq2SAgPpwIjEE8sHsXXzl5MHHMaK29/8OHpVJUCqu1LyIrP1mZPIUKt2UDaL1hm2kjqrM/JevEV52sYVJJSlrPLginDa+eeVzT9FgedtriK/SpyOmCqJlbY0s7muspC5KOCl+ID0xc8Xei57LEH44ShmeU= 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 1593723403793913.8459807704016; Thu, 2 Jul 2020 13:56:43 -0700 (PDT) Received: from localhost ([::1]:57130 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6GA-0007pr-JE for importer@patchew.org; Thu, 02 Jul 2020 16:56:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54832) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr69F-0004hr-An for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:33 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:44624 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr699-0003Zo-TK for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49: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-411-YN4tf9VlMYeTMmKwfjfpvQ-1; Thu, 02 Jul 2020 16:49:25 -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 66A82800403; Thu, 2 Jul 2020 20:49:24 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2BEC67BEBF; Thu, 2 Jul 2020 20:49:15 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 58B0F31EE6; Thu, 2 Jul 2020 22:49:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722967; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=+IDREpxh7rDZ2ECllVes4dktOn88o4bfSW8hIGHPm4Y=; b=eEtXxcL5bP+blKsfk5WFoCMVtxeLfDpSTvRntCzwi5NzPELKWXHu7KzGTsVauNdsPHNghd bgYhG3emAxm0/07Mlf8WxUSjeO+aYE2V637fUu9+tkPaWoLLb8bMucSluY3sbrWiVxC7A4 ELZ3uCHVlNvJI7DACvaigATSsWawc1A= X-MC-Unique: YN4tf9VlMYeTMmKwfjfpvQ-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 13/21] x86: constify x86_machine_is_*_enabled Date: Thu, 2 Jul 2020 22:48:51 +0200 Message-Id: <20200702204859.9876-14-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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; Received-SPF: pass client-ip=207.211.31.81; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 04:18:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Gerd Hoffmann --- include/hw/i386/x86.h | 4 ++-- hw/i386/x86.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/hw/i386/x86.h b/include/hw/i386/x86.h index b79f24e28545..a350ea3609f5 100644 --- a/include/hw/i386/x86.h +++ b/include/hw/i386/x86.h @@ -110,8 +110,8 @@ void x86_load_linux(X86MachineState *x86ms, bool pvh_enabled, bool linuxboot_dma_enabled); =20 -bool x86_machine_is_smm_enabled(X86MachineState *x86ms); -bool x86_machine_is_acpi_enabled(X86MachineState *x86ms); +bool x86_machine_is_smm_enabled(const X86MachineState *x86ms); +bool x86_machine_is_acpi_enabled(const X86MachineState *x86ms); =20 /* Global System Interrupts */ =20 diff --git a/hw/i386/x86.c b/hw/i386/x86.c index 34229b45c759..614723afbd9d 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -846,7 +846,7 @@ void x86_bios_rom_init(MemoryRegion *rom_memory, bool i= sapc_ram_fw) bios); } =20 -bool x86_machine_is_smm_enabled(X86MachineState *x86ms) +bool x86_machine_is_smm_enabled(const X86MachineState *x86ms) { bool smm_available =3D false; =20 @@ -888,7 +888,7 @@ static void x86_machine_set_smm(Object *obj, Visitor *v= , const char *name, visit_type_OnOffAuto(v, name, &x86ms->smm, errp); } =20 -bool x86_machine_is_acpi_enabled(X86MachineState *x86ms) +bool x86_machine_is_acpi_enabled(const X86MachineState *x86ms) { if (x86ms->acpi =3D=3D ON_OFF_AUTO_OFF) { return false; --=20 2.18.4 From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593723297; cv=none; d=zohomail.com; s=zohoarc; b=Sn76tZGA9Vr93WAfUr7VUsGdQ08+jl55Efu2iwD2sFXaMixv2IYsP68wAfmql8y7doDtNJRxS31u+wqePnRd5dk4F0qZxPBdv/98847WPUozSw34CHM6b+yiQqSLIvVxwurDoxADthoVkPhub984US21xRt0wbUbIVHjtuDmvmo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593723297; h=Content-Type: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=XpNi9BQIh6/R6UoPCwT5bpaemfP+wPb347uCIeZgrio=; b=eBlmYbOvpghUn9/QZh11TT17w8mgyiFVWHcQaFfBxMY0Z1qNQmeGe0fdHDdkVDSBW7+HHXNbK0MIpIaD2eW7mzt7cY2WDMSDnxbA7chsOJiOMMeDt3/OS/WWfvAxXbWIX4Fg7zDWmlIi25wBbk/FW3FsLHTLB5FOVvENbBCSVz4= 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 1593723297126521.0275149756748; Thu, 2 Jul 2020 13:54:57 -0700 (PDT) Received: from localhost ([::1]:49906 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6ER-0004fs-Ns for importer@patchew.org; Thu, 02 Jul 2020 16:54:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54880) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr69G-0004nf-VD for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:35 -0400 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:25638 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr69B-0003a9-Ia for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49: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-142-DWX1WejbPxmn5QjawD5ByQ-1; Thu, 02 Jul 2020 16:49:27 -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 DA05B193248C; Thu, 2 Jul 2020 20:49:25 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id 31BAD7742D; Thu, 2 Jul 2020 20:49:15 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 6E8B331EE7; Thu, 2 Jul 2020 22:49:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722968; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=XpNi9BQIh6/R6UoPCwT5bpaemfP+wPb347uCIeZgrio=; b=Z41rElcPnKWhTcAfqlPCDFeudPKu2MIBtPDc2tvwBEjxOyEkfd21pzBoMttPL7zS085nqC clC2D639cv4Z35vFCHoY6G0jxixaL67dIVN8liyLKKzr5Yst3SHOjent6YF8TsgcQkgmvO BKKkLqGkfqigdxL1BNtfzQ4w6xmY+c4= X-MC-Unique: DWX1WejbPxmn5QjawD5ByQ-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 14/21] x86: move acpi_dev from pc/microvm Date: Thu, 2 Jul 2020 22:48:52 +0200 Message-Id: <20200702204859.9876-15-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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; Received-SPF: pass client-ip=205.139.110.61; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 03:42:59 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Both pc and microvm machine types have a acpi_dev field. Move it to the common base type. Signed-off-by: Gerd Hoffmann --- include/hw/i386/microvm.h | 1 - include/hw/i386/pc.h | 1 - include/hw/i386/x86.h | 1 + hw/i386/acpi-build.c | 2 +- hw/i386/acpi-microvm.c | 5 +++-- hw/i386/microvm.c | 10 ++++++---- hw/i386/pc.c | 34 +++++++++++++++++++--------------- hw/i386/pc_piix.c | 2 +- hw/i386/pc_q35.c | 2 +- 9 files changed, 32 insertions(+), 26 deletions(-) diff --git a/include/hw/i386/microvm.h b/include/hw/i386/microvm.h index b6e0d4395af7..b8ec99aeb051 100644 --- a/include/hw/i386/microvm.h +++ b/include/hw/i386/microvm.h @@ -66,7 +66,6 @@ typedef struct { bool kernel_cmdline_fixed; Notifier machine_done; Notifier powerdown_req; - AcpiDeviceIf *acpi_dev; } MicrovmMachineState; =20 #define TYPE_MICROVM_MACHINE MACHINE_TYPE_NAME("microvm") diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index dce1273c7dad..5e4126fe817d 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -29,7 +29,6 @@ struct PCMachineState { Notifier machine_done; =20 /* Pointers to devices and objects: */ - HotplugHandler *acpi_dev; PCIBus *bus; I2CBus *smbus; PFlashCFI01 *flash[2]; diff --git a/include/hw/i386/x86.h b/include/hw/i386/x86.h index a350ea3609f5..de74c831c3ab 100644 --- a/include/hw/i386/x86.h +++ b/include/hw/i386/x86.h @@ -50,6 +50,7 @@ typedef struct { FWCfgState *fw_cfg; qemu_irq *gsi; GMappedFile *initrd_mapped_file; + HotplugHandler *acpi_dev; =20 /* RAM information (sizes, addresses, configuration): */ ram_addr_t below_4g_mem_size, above_4g_mem_size; diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index b7bcbbbb2a35..c356cc71fe08 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -2431,7 +2431,7 @@ void acpi_build(AcpiBuildTables *tables, MachineState= *machine) =20 acpi_add_table(table_offsets, tables_blob); acpi_build_madt(tables_blob, tables->linker, x86ms, - ACPI_DEVICE_IF(pcms->acpi_dev), true); + ACPI_DEVICE_IF(x86ms->acpi_dev), true); =20 vmgenid_dev =3D find_vmgenid_dev(); if (vmgenid_dev) { diff --git a/hw/i386/acpi-microvm.c b/hw/i386/acpi-microvm.c index 20f297517457..5856b37a06db 100644 --- a/hw/i386/acpi-microvm.c +++ b/hw/i386/acpi-microvm.c @@ -108,7 +108,7 @@ build_dsdt_microvm(GArray *table_data, BIOSLinker *link= er, sb_scope =3D aml_scope("_SB"); fw_cfg_add_acpi_dsdt(sb_scope, x86ms->fw_cfg); isa_build_aml(ISA_BUS(isabus), sb_scope); - build_ged_aml(sb_scope, GED_DEVICE, HOTPLUG_HANDLER(mms->acpi_dev), + build_ged_aml(sb_scope, GED_DEVICE, x86ms->acpi_dev, GED_MMIO_IRQ, AML_SYSTEM_MEMORY, GED_MMIO_BASE); acpi_dsdt_add_power_button(sb_scope); acpi_dsdt_add_virtio(sb_scope, mms); @@ -135,6 +135,7 @@ static void acpi_build_microvm(AcpiBuildTables *tables, MicrovmMachineState *mms) { MachineState *machine =3D MACHINE(mms); + X86MachineState *x86ms =3D X86_MACHINE(mms); GArray *table_offsets; GArray *tables_blob =3D tables->table_data; unsigned dsdt, xsdt; @@ -178,7 +179,7 @@ static void acpi_build_microvm(AcpiBuildTables *tables, =20 acpi_add_table(table_offsets, tables_blob); acpi_build_madt(tables_blob, tables->linker, X86_MACHINE(machine), - mms->acpi_dev, false); + ACPI_DEVICE_IF(x86ms->acpi_dev), false); =20 xsdt =3D tables_blob->len; build_xsdt(tables_blob, tables->linker, table_offsets, NULL, NULL); diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index fbda323f3b2a..3d8a66cfc3ac 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -143,7 +143,7 @@ static void microvm_devices_init(MicrovmMachineState *m= ms) sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, x86ms->gsi[GED_MMIO_IRQ]); sysbus_realize(SYS_BUS_DEVICE(dev), &error_fatal); - mms->acpi_dev =3D ACPI_DEVICE_IF(dev); + x86ms->acpi_dev =3D HOTPLUG_HANDLER(dev); } =20 if (mms->pic =3D=3D ON_OFF_AUTO_ON || mms->pic =3D=3D ON_OFF_AUTO_AUTO= ) { @@ -469,11 +469,13 @@ static void microvm_powerdown_req(Notifier *notifier,= void *data) { MicrovmMachineState *mms =3D container_of(notifier, MicrovmMachineStat= e, powerdown_req); + X86MachineState *x86ms =3D X86_MACHINE(mms); =20 - if (mms->acpi_dev) { - Object *obj =3D OBJECT(mms->acpi_dev); + if (x86ms->acpi_dev) { + Object *obj =3D OBJECT(x86ms->acpi_dev); AcpiDeviceIfClass *adevc =3D ACPI_DEVICE_IF_GET_CLASS(obj); - adevc->send_event(mms->acpi_dev, ACPI_POWER_DOWN_STATUS); + adevc->send_event(ACPI_DEVICE_IF(x86ms->acpi_dev), + ACPI_POWER_DOWN_STATUS); } } =20 diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 4af9679d039b..98d29ead09b0 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1270,6 +1270,7 @@ static void pc_memory_pre_plug(HotplugHandler *hotplu= g_dev, DeviceState *dev, Error **errp) { const PCMachineState *pcms =3D PC_MACHINE(hotplug_dev); + const X86MachineState *x86ms =3D X86_MACHINE(hotplug_dev); const PCMachineClass *pcmc =3D PC_MACHINE_GET_CLASS(pcms); const MachineState *ms =3D MACHINE(hotplug_dev); const bool is_nvdimm =3D object_dynamic_cast(OBJECT(dev), TYPE_NVDIMM); @@ -1281,7 +1282,7 @@ static void pc_memory_pre_plug(HotplugHandler *hotplu= g_dev, DeviceState *dev, * but pcms->acpi_dev is still created. Check !acpi_enabled in * addition to cover this case. */ - if (!pcms->acpi_dev || !x86_machine_is_acpi_enabled(X86_MACHINE(pcms))= ) { + if (!x86ms->acpi_dev || !x86_machine_is_acpi_enabled(x86ms)) { error_setg(errp, "memory hotplug is not enabled: missing acpi device or = acpi disabled"); return; @@ -1292,7 +1293,7 @@ static void pc_memory_pre_plug(HotplugHandler *hotplu= g_dev, DeviceState *dev, return; } =20 - hotplug_handler_pre_plug(pcms->acpi_dev, dev, &local_err); + hotplug_handler_pre_plug(x86ms->acpi_dev, dev, &local_err); if (local_err) { error_propagate(errp, local_err); return; @@ -1307,6 +1308,7 @@ static void pc_memory_plug(HotplugHandler *hotplug_de= v, { Error *local_err =3D NULL; PCMachineState *pcms =3D PC_MACHINE(hotplug_dev); + X86MachineState *x86ms =3D X86_MACHINE(hotplug_dev); MachineState *ms =3D MACHINE(hotplug_dev); bool is_nvdimm =3D object_dynamic_cast(OBJECT(dev), TYPE_NVDIMM); =20 @@ -1319,7 +1321,7 @@ static void pc_memory_plug(HotplugHandler *hotplug_de= v, nvdimm_plug(ms->nvdimms_state); } =20 - hotplug_handler_plug(HOTPLUG_HANDLER(pcms->acpi_dev), dev, &error_abor= t); + hotplug_handler_plug(x86ms->acpi_dev, dev, &error_abort); out: error_propagate(errp, local_err); } @@ -1328,14 +1330,14 @@ static void pc_memory_unplug_request(HotplugHandler= *hotplug_dev, DeviceState *dev, Error **errp) { Error *local_err =3D NULL; - PCMachineState *pcms =3D PC_MACHINE(hotplug_dev); + X86MachineState *x86ms =3D X86_MACHINE(hotplug_dev); =20 /* * When -no-acpi is used with Q35 machine type, no ACPI is built, * but pcms->acpi_dev is still created. Check !acpi_enabled in * addition to cover this case. */ - if (!pcms->acpi_dev || !x86_machine_is_acpi_enabled(X86_MACHINE(pcms))= ) { + if (!x86ms->acpi_dev || !x86_machine_is_acpi_enabled(x86ms)) { error_setg(&local_err, "memory hotplug is not enabled: missing acpi device or = acpi disabled"); goto out; @@ -1347,7 +1349,7 @@ static void pc_memory_unplug_request(HotplugHandler *= hotplug_dev, goto out; } =20 - hotplug_handler_unplug_request(HOTPLUG_HANDLER(pcms->acpi_dev), dev, + hotplug_handler_unplug_request(x86ms->acpi_dev, dev, &local_err); out: error_propagate(errp, local_err); @@ -1357,9 +1359,10 @@ static void pc_memory_unplug(HotplugHandler *hotplug= _dev, DeviceState *dev, Error **errp) { PCMachineState *pcms =3D PC_MACHINE(hotplug_dev); + X86MachineState *x86ms =3D X86_MACHINE(hotplug_dev); Error *local_err =3D NULL; =20 - hotplug_handler_unplug(HOTPLUG_HANDLER(pcms->acpi_dev), dev, &local_er= r); + hotplug_handler_unplug(x86ms->acpi_dev, dev, &local_err); if (local_err) { goto out; } @@ -1403,10 +1406,10 @@ static void pc_cpu_plug(HotplugHandler *hotplug_dev, Error *local_err =3D NULL; X86CPU *cpu =3D X86_CPU(dev); PCMachineState *pcms =3D PC_MACHINE(hotplug_dev); - X86MachineState *x86ms =3D X86_MACHINE(pcms); + X86MachineState *x86ms =3D X86_MACHINE(hotplug_dev); =20 - if (pcms->acpi_dev) { - hotplug_handler_plug(HOTPLUG_HANDLER(pcms->acpi_dev), dev, &local_= err); + if (x86ms->acpi_dev) { + hotplug_handler_plug(x86ms->acpi_dev, dev, &local_err); if (local_err) { goto out; } @@ -1433,8 +1436,9 @@ static void pc_cpu_unplug_request_cb(HotplugHandler *= hotplug_dev, Error *local_err =3D NULL; X86CPU *cpu =3D X86_CPU(dev); PCMachineState *pcms =3D PC_MACHINE(hotplug_dev); + X86MachineState *x86ms =3D X86_MACHINE(hotplug_dev); =20 - if (!pcms->acpi_dev) { + if (!x86ms->acpi_dev) { error_setg(&local_err, "CPU hot unplug not supported without ACPI"= ); goto out; } @@ -1446,7 +1450,7 @@ static void pc_cpu_unplug_request_cb(HotplugHandler *= hotplug_dev, goto out; } =20 - hotplug_handler_unplug_request(HOTPLUG_HANDLER(pcms->acpi_dev), dev, + hotplug_handler_unplug_request(x86ms->acpi_dev, dev, &local_err); if (local_err) { goto out; @@ -1464,9 +1468,9 @@ static void pc_cpu_unplug_cb(HotplugHandler *hotplug_= dev, Error *local_err =3D NULL; X86CPU *cpu =3D X86_CPU(dev); PCMachineState *pcms =3D PC_MACHINE(hotplug_dev); - X86MachineState *x86ms =3D X86_MACHINE(pcms); + X86MachineState *x86ms =3D X86_MACHINE(hotplug_dev); =20 - hotplug_handler_unplug(HOTPLUG_HANDLER(pcms->acpi_dev), dev, &local_er= r); + hotplug_handler_unplug(x86ms->acpi_dev, dev, &local_err); if (local_err) { goto out; } @@ -1495,7 +1499,7 @@ static void pc_cpu_pre_plug(HotplugHandler *hotplug_d= ev, CPUX86State *env =3D &cpu->env; MachineState *ms =3D MACHINE(hotplug_dev); PCMachineState *pcms =3D PC_MACHINE(hotplug_dev); - X86MachineState *x86ms =3D X86_MACHINE(pcms); + X86MachineState *x86ms =3D X86_MACHINE(hotplug_dev); unsigned int smp_cores =3D ms->smp.cores; unsigned int smp_threads =3D ms->smp.threads; X86CPUTopoInfo topo_info; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 1d832b2878b1..34944bd383e3 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -291,7 +291,7 @@ static void pc_init1(MachineState *machine, =20 object_property_add_link(OBJECT(machine), PC_MACHINE_ACPI_DEVICE_P= ROP, TYPE_HOTPLUG_HANDLER, - (Object **)&pcms->acpi_dev, + (Object **)&x86ms->acpi_dev, object_property_allow_set_link, OBJ_PROP_LINK_STRONG); object_property_set_link(OBJECT(machine), OBJECT(piix4_pm), diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 047ea8db28ea..92a104059076 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -240,7 +240,7 @@ static void pc_q35_init(MachineState *machine) =20 object_property_add_link(OBJECT(machine), PC_MACHINE_ACPI_DEVICE_PROP, TYPE_HOTPLUG_HANDLER, - (Object **)&pcms->acpi_dev, + (Object **)&x86ms->acpi_dev, object_property_allow_set_link, OBJ_PROP_LINK_STRONG); object_property_set_link(OBJECT(machine), OBJECT(lpc), --=20 2.18.4 From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593723597; cv=none; d=zohomail.com; s=zohoarc; b=KHi0a1N5PB7rJXFr2zzTshNbgw9WYoQCRlX/1lff/XDAv6NZ9b+P9T/N5k47SvzH+q/3hAPltBKgblQNGjM0b9S22z40JgydhhecAlSrPz2WTxDpWpVnZpPrJ/x1JSTXAaQ2Kw72ccGQb9J2HAESHKAZYIwcszzAYs5CwuLVsQc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593723597; h=Content-Type: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=o1PSOrhzcmgctGimPmDjDVkJuvxcXhbnpfk/BeEDsrs=; b=LZXHa3XBqvH4ib22/k32HQXXXPCRmfvlSdri2gz2CyDWTaAhZfB7nPTuqPv5cKJf4rTmT0Xv2TWIXyF6QxxpWPHuIuS+qUNplmD4RkAc7EWGFwrO/VprfU/ZgvWa2SyrJh8DORMJHeKc5dANWqne8zzh2b8hytyOIH/IjnVhr0s= 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 1593723596927297.95061041897236; Thu, 2 Jul 2020 13:59:56 -0700 (PDT) Received: from localhost ([::1]:42302 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6JG-00064x-Kn for importer@patchew.org; Thu, 02 Jul 2020 16:59:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54772) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr69D-0004br-Fh for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:31 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:43677 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr695-0003YU-2L for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49: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-364-__GxxOuMP0aUpaEZojc-Bw-1; Thu, 02 Jul 2020 16:49:20 -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 C55941932482; Thu, 2 Jul 2020 20:49:16 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id CC8802B4BC; Thu, 2 Jul 2020 20:49:15 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 7BBF331EE8; Thu, 2 Jul 2020 22:49:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722962; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=o1PSOrhzcmgctGimPmDjDVkJuvxcXhbnpfk/BeEDsrs=; b=Z+9JVG6c/VrHIyfQdmv/bxjmfJ9F6jhWYQln6OTZv9ROeeSn6L3PJvAXLSd5oEyc21xAQC 2EDU63qqpMYyFlN+jTGOJRyVi4JkmwuiWD+KxrEk26wcvFFpF4T51KHE3LxohdiV/GZQGJ gvGNiAbdKpYi+szdI2c/kGOWvjRTb3c= X-MC-Unique: __GxxOuMP0aUpaEZojc-Bw-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 15/21] x86: move cpu plug from pc to x86 Date: Thu, 2 Jul 2020 22:48:53 +0200 Message-Id: <20200702204859.9876-16-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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; Received-SPF: pass client-ip=205.139.110.120; envelope-from=kraxel@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 04:00:43 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The cpu hotplug code handles the initialization of coldplugged cpus too, so it is needed even in case cpu hotplug is not supported. Move the code from pc to x86, so microvm can use it. Signed-off-by: Gerd Hoffmann --- include/hw/i386/x86.h | 6 ++ hw/i386/pc.c | 234 ++---------------------------------------- hw/i386/x86.c | 222 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 234 insertions(+), 228 deletions(-) diff --git a/include/hw/i386/x86.h b/include/hw/i386/x86.h index de74c831c3ab..23c964471802 100644 --- a/include/hw/i386/x86.h +++ b/include/hw/i386/x86.h @@ -102,6 +102,12 @@ CpuInstanceProperties x86_cpu_index_to_props(MachineSt= ate *ms, unsigned cpu_index); int64_t x86_get_default_cpu_node_id(const MachineState *ms, int idx); const CPUArchIdList *x86_possible_cpu_arch_ids(MachineState *ms); +CPUArchId *x86_find_cpu_slot(MachineState *ms, uint32_t id, int *idx); +void x86_rtc_set_cpus_count(ISADevice *rtc, uint16_t cpus_count); +void x86_cpu_pre_plug(HotplugHandler *hotplug_dev, + DeviceState *dev, Error **errp); +void x86_cpu_plug(HotplugHandler *hotplug_dev, + DeviceState *dev, Error **errp); =20 void x86_bios_rom_init(MemoryRegion *rom_memory, bool isapc_ram_fw); =20 diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 98d29ead09b0..14036fcd4e3a 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -798,19 +798,6 @@ void pc_hot_add_cpu(MachineState *ms, const int64_t id= , Error **errp) } } =20 -static void rtc_set_cpus_count(ISADevice *rtc, uint16_t cpus_count) -{ - if (cpus_count > 0xff) { - /* If the number of CPUs can't be represented in 8 bits, the - * BIOS must use "FW_CFG_NB_CPUS". Set RTC field to 0 just - * to make old BIOSes fail more predictably. - */ - rtc_set_memory(rtc, 0x5f, 0); - } else { - rtc_set_memory(rtc, 0x5f, cpus_count - 1); - } -} - static void pc_machine_done(Notifier *notifier, void *data) { @@ -820,7 +807,7 @@ void pc_machine_done(Notifier *notifier, void *data) PCIBus *bus =3D pcms->bus; =20 /* set the number of CPUs */ - rtc_set_cpus_count(x86ms->rtc, x86ms->boot_cpus); + x86_rtc_set_cpus_count(x86ms->rtc, x86ms->boot_cpus); =20 if (bus) { int extra_hosts =3D 0; @@ -1373,62 +1360,6 @@ static void pc_memory_unplug(HotplugHandler *hotplug= _dev, error_propagate(errp, local_err); } =20 -static int pc_apic_cmp(const void *a, const void *b) -{ - CPUArchId *apic_a =3D (CPUArchId *)a; - CPUArchId *apic_b =3D (CPUArchId *)b; - - return apic_a->arch_id - apic_b->arch_id; -} - -/* returns pointer to CPUArchId descriptor that matches CPU's apic_id - * in ms->possible_cpus->cpus, if ms->possible_cpus->cpus has no - * entry corresponding to CPU's apic_id returns NULL. - */ -static CPUArchId *pc_find_cpu_slot(MachineState *ms, uint32_t id, int *idx) -{ - CPUArchId apic_id, *found_cpu; - - apic_id.arch_id =3D id; - found_cpu =3D bsearch(&apic_id, ms->possible_cpus->cpus, - ms->possible_cpus->len, sizeof(*ms->possible_cpus->cpus), - pc_apic_cmp); - if (found_cpu && idx) { - *idx =3D found_cpu - ms->possible_cpus->cpus; - } - return found_cpu; -} - -static void pc_cpu_plug(HotplugHandler *hotplug_dev, - DeviceState *dev, Error **errp) -{ - CPUArchId *found_cpu; - Error *local_err =3D NULL; - X86CPU *cpu =3D X86_CPU(dev); - PCMachineState *pcms =3D PC_MACHINE(hotplug_dev); - X86MachineState *x86ms =3D X86_MACHINE(hotplug_dev); - - if (x86ms->acpi_dev) { - hotplug_handler_plug(x86ms->acpi_dev, dev, &local_err); - if (local_err) { - goto out; - } - } - - /* increment the number of CPUs */ - x86ms->boot_cpus++; - if (x86ms->rtc) { - rtc_set_cpus_count(x86ms->rtc, x86ms->boot_cpus); - } - if (x86ms->fw_cfg) { - fw_cfg_modify_i16(x86ms->fw_cfg, FW_CFG_NB_CPUS, x86ms->boot_cpus); - } - - found_cpu =3D pc_find_cpu_slot(MACHINE(pcms), cpu->apic_id, NULL); - found_cpu->cpu =3D OBJECT(dev); -out: - error_propagate(errp, local_err); -} static void pc_cpu_unplug_request_cb(HotplugHandler *hotplug_dev, DeviceState *dev, Error **errp) { @@ -1443,7 +1374,7 @@ static void pc_cpu_unplug_request_cb(HotplugHandler *= hotplug_dev, goto out; } =20 - pc_find_cpu_slot(MACHINE(pcms), cpu->apic_id, &idx); + x86_find_cpu_slot(MACHINE(pcms), cpu->apic_id, &idx); assert(idx !=3D -1); if (idx =3D=3D 0) { error_setg(&local_err, "Boot CPU is unpluggable"); @@ -1475,172 +1406,19 @@ static void pc_cpu_unplug_cb(HotplugHandler *hotpl= ug_dev, goto out; } =20 - found_cpu =3D pc_find_cpu_slot(MACHINE(pcms), cpu->apic_id, NULL); + found_cpu =3D x86_find_cpu_slot(MACHINE(pcms), cpu->apic_id, NULL); found_cpu->cpu =3D NULL; qdev_unrealize(dev); =20 /* decrement the number of CPUs */ x86ms->boot_cpus--; /* Update the number of CPUs in CMOS */ - rtc_set_cpus_count(x86ms->rtc, x86ms->boot_cpus); + x86_rtc_set_cpus_count(x86ms->rtc, x86ms->boot_cpus); fw_cfg_modify_i16(x86ms->fw_cfg, FW_CFG_NB_CPUS, x86ms->boot_cpus); out: error_propagate(errp, local_err); } =20 -static void pc_cpu_pre_plug(HotplugHandler *hotplug_dev, - DeviceState *dev, Error **errp) -{ - int idx; - CPUState *cs; - CPUArchId *cpu_slot; - X86CPUTopoIDs topo_ids; - X86CPU *cpu =3D X86_CPU(dev); - CPUX86State *env =3D &cpu->env; - MachineState *ms =3D MACHINE(hotplug_dev); - PCMachineState *pcms =3D PC_MACHINE(hotplug_dev); - X86MachineState *x86ms =3D X86_MACHINE(hotplug_dev); - unsigned int smp_cores =3D ms->smp.cores; - unsigned int smp_threads =3D ms->smp.threads; - X86CPUTopoInfo topo_info; - - if(!object_dynamic_cast(OBJECT(cpu), ms->cpu_type)) { - error_setg(errp, "Invalid CPU type, expected cpu type: '%s'", - ms->cpu_type); - return; - } - - init_topo_info(&topo_info, x86ms); - - env->nr_dies =3D x86ms->smp_dies; - env->nr_nodes =3D topo_info.nodes_per_pkg; - env->pkg_offset =3D x86ms->apicid_pkg_offset(&topo_info); - - /* - * If APIC ID is not set, - * set it based on socket/die/core/thread properties. - */ - if (cpu->apic_id =3D=3D UNASSIGNED_APIC_ID) { - int max_socket =3D (ms->smp.max_cpus - 1) / - smp_threads / smp_cores / x86ms->smp_dies; - - /* - * die-id was optional in QEMU 4.0 and older, so keep it optional - * if there's only one die per socket. - */ - if (cpu->die_id < 0 && x86ms->smp_dies =3D=3D 1) { - cpu->die_id =3D 0; - } - - if (cpu->socket_id < 0) { - error_setg(errp, "CPU socket-id is not set"); - return; - } else if (cpu->socket_id > max_socket) { - error_setg(errp, "Invalid CPU socket-id: %u must be in range 0= :%u", - cpu->socket_id, max_socket); - return; - } - if (cpu->die_id < 0) { - error_setg(errp, "CPU die-id is not set"); - return; - } else if (cpu->die_id > x86ms->smp_dies - 1) { - error_setg(errp, "Invalid CPU die-id: %u must be in range 0:%u= ", - cpu->die_id, x86ms->smp_dies - 1); - return; - } - if (cpu->core_id < 0) { - error_setg(errp, "CPU core-id is not set"); - return; - } else if (cpu->core_id > (smp_cores - 1)) { - error_setg(errp, "Invalid CPU core-id: %u must be in range 0:%= u", - cpu->core_id, smp_cores - 1); - return; - } - if (cpu->thread_id < 0) { - error_setg(errp, "CPU thread-id is not set"); - return; - } else if (cpu->thread_id > (smp_threads - 1)) { - error_setg(errp, "Invalid CPU thread-id: %u must be in range 0= :%u", - cpu->thread_id, smp_threads - 1); - return; - } - - topo_ids.pkg_id =3D cpu->socket_id; - topo_ids.die_id =3D cpu->die_id; - topo_ids.core_id =3D cpu->core_id; - topo_ids.smt_id =3D cpu->thread_id; - cpu->apic_id =3D x86ms->apicid_from_topo_ids(&topo_info, &topo_ids= ); - } - - cpu_slot =3D pc_find_cpu_slot(MACHINE(pcms), cpu->apic_id, &idx); - if (!cpu_slot) { - MachineState *ms =3D MACHINE(pcms); - - x86ms->topo_ids_from_apicid(cpu->apic_id, &topo_info, &topo_ids); - error_setg(errp, - "Invalid CPU [socket: %u, die: %u, core: %u, thread: %u] with" - " APIC ID %" PRIu32 ", valid index range 0:%d", - topo_ids.pkg_id, topo_ids.die_id, topo_ids.core_id, topo_ids.s= mt_id, - cpu->apic_id, ms->possible_cpus->len - 1); - return; - } - - if (cpu_slot->cpu) { - error_setg(errp, "CPU[%d] with APIC ID %" PRIu32 " exists", - idx, cpu->apic_id); - return; - } - - /* if 'address' properties socket-id/core-id/thread-id are not set, se= t them - * so that machine_query_hotpluggable_cpus would show correct values - */ - /* TODO: move socket_id/core_id/thread_id checks into x86_cpu_realizef= n() - * once -smp refactoring is complete and there will be CPU private - * CPUState::nr_cores and CPUState::nr_threads fields instead of globa= ls */ - x86ms->topo_ids_from_apicid(cpu->apic_id, &topo_info, &topo_ids); - if (cpu->socket_id !=3D -1 && cpu->socket_id !=3D topo_ids.pkg_id) { - error_setg(errp, "property socket-id: %u doesn't match set apic-id= :" - " 0x%x (socket-id: %u)", cpu->socket_id, cpu->apic_id, - topo_ids.pkg_id); - return; - } - cpu->socket_id =3D topo_ids.pkg_id; - - if (cpu->die_id !=3D -1 && cpu->die_id !=3D topo_ids.die_id) { - error_setg(errp, "property die-id: %u doesn't match set apic-id:" - " 0x%x (die-id: %u)", cpu->die_id, cpu->apic_id, topo_ids.die_= id); - return; - } - cpu->die_id =3D topo_ids.die_id; - - if (cpu->core_id !=3D -1 && cpu->core_id !=3D topo_ids.core_id) { - error_setg(errp, "property core-id: %u doesn't match set apic-id:" - " 0x%x (core-id: %u)", cpu->core_id, cpu->apic_id, - topo_ids.core_id); - return; - } - cpu->core_id =3D topo_ids.core_id; - - if (cpu->thread_id !=3D -1 && cpu->thread_id !=3D topo_ids.smt_id) { - error_setg(errp, "property thread-id: %u doesn't match set apic-id= :" - " 0x%x (thread-id: %u)", cpu->thread_id, cpu->apic_id, - topo_ids.smt_id); - return; - } - cpu->thread_id =3D topo_ids.smt_id; - - if (hyperv_feat_enabled(cpu, HYPERV_FEAT_VPINDEX) && - !kvm_hv_vpindex_settable()) { - error_setg(errp, "kernel doesn't allow setting HyperV VP_INDEX"); - return; - } - - cs =3D CPU(cpu); - cs->cpu_index =3D idx; - - numa_cpu_pre_plug(cpu_slot, dev, errp); -} - static void pc_virtio_pmem_pci_pre_plug(HotplugHandler *hotplug_dev, DeviceState *dev, Error **errp) { @@ -1706,7 +1484,7 @@ static void pc_machine_device_pre_plug_cb(HotplugHand= ler *hotplug_dev, if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) { pc_memory_pre_plug(hotplug_dev, dev, errp); } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) { - pc_cpu_pre_plug(hotplug_dev, dev, errp); + x86_cpu_pre_plug(hotplug_dev, dev, errp); } else if (object_dynamic_cast(OBJECT(dev), TYPE_VIRTIO_PMEM_PCI)) { pc_virtio_pmem_pci_pre_plug(hotplug_dev, dev, errp); } @@ -1718,7 +1496,7 @@ static void pc_machine_device_plug_cb(HotplugHandler = *hotplug_dev, if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) { pc_memory_plug(hotplug_dev, dev, errp); } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) { - pc_cpu_plug(hotplug_dev, dev, errp); + x86_cpu_plug(hotplug_dev, dev, errp); } else if (object_dynamic_cast(OBJECT(dev), TYPE_VIRTIO_PMEM_PCI)) { pc_virtio_pmem_pci_plug(hotplug_dev, dev, errp); } diff --git a/hw/i386/x86.c b/hw/i386/x86.c index 614723afbd9d..aadb1db10cab 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -41,6 +41,7 @@ #include "hw/i386/topology.h" #include "hw/i386/fw_cfg.h" #include "hw/intc/i8259.h" +#include "hw/rtc/mc146818rtc.h" =20 #include "hw/acpi/cpu_hotplug.h" #include "hw/irq.h" @@ -166,6 +167,227 @@ void x86_cpus_init(X86MachineState *x86ms, int defaul= t_cpu_version) } } =20 +void x86_cpu_pre_plug(HotplugHandler *hotplug_dev, + DeviceState *dev, Error **errp) +{ + int idx; + CPUState *cs; + CPUArchId *cpu_slot; + X86CPUTopoIDs topo_ids; + X86CPU *cpu =3D X86_CPU(dev); + CPUX86State *env =3D &cpu->env; + MachineState *ms =3D MACHINE(hotplug_dev); + X86MachineState *x86ms =3D X86_MACHINE(hotplug_dev); + unsigned int smp_cores =3D ms->smp.cores; + unsigned int smp_threads =3D ms->smp.threads; + X86CPUTopoInfo topo_info; + + if(!object_dynamic_cast(OBJECT(cpu), ms->cpu_type)) { + error_setg(errp, "Invalid CPU type, expected cpu type: '%s'", + ms->cpu_type); + return; + } + + init_topo_info(&topo_info, x86ms); + + env->nr_dies =3D x86ms->smp_dies; + env->nr_nodes =3D topo_info.nodes_per_pkg; + env->pkg_offset =3D x86ms->apicid_pkg_offset(&topo_info); + + /* + * If APIC ID is not set, + * set it based on socket/die/core/thread properties. + */ + if (cpu->apic_id =3D=3D UNASSIGNED_APIC_ID) { + int max_socket =3D (ms->smp.max_cpus - 1) / + smp_threads / smp_cores / x86ms->smp_dies; + + /* + * die-id was optional in QEMU 4.0 and older, so keep it optional + * if there's only one die per socket. + */ + if (cpu->die_id < 0 && x86ms->smp_dies =3D=3D 1) { + cpu->die_id =3D 0; + } + + if (cpu->socket_id < 0) { + error_setg(errp, "CPU socket-id is not set"); + return; + } else if (cpu->socket_id > max_socket) { + error_setg(errp, "Invalid CPU socket-id: %u must be in range 0= :%u", + cpu->socket_id, max_socket); + return; + } + if (cpu->die_id < 0) { + error_setg(errp, "CPU die-id is not set"); + return; + } else if (cpu->die_id > x86ms->smp_dies - 1) { + error_setg(errp, "Invalid CPU die-id: %u must be in range 0:%u= ", + cpu->die_id, x86ms->smp_dies - 1); + return; + } + if (cpu->core_id < 0) { + error_setg(errp, "CPU core-id is not set"); + return; + } else if (cpu->core_id > (smp_cores - 1)) { + error_setg(errp, "Invalid CPU core-id: %u must be in range 0:%= u", + cpu->core_id, smp_cores - 1); + return; + } + if (cpu->thread_id < 0) { + error_setg(errp, "CPU thread-id is not set"); + return; + } else if (cpu->thread_id > (smp_threads - 1)) { + error_setg(errp, "Invalid CPU thread-id: %u must be in range 0= :%u", + cpu->thread_id, smp_threads - 1); + return; + } + + topo_ids.pkg_id =3D cpu->socket_id; + topo_ids.die_id =3D cpu->die_id; + topo_ids.core_id =3D cpu->core_id; + topo_ids.smt_id =3D cpu->thread_id; + cpu->apic_id =3D x86ms->apicid_from_topo_ids(&topo_info, &topo_ids= ); + } + + cpu_slot =3D x86_find_cpu_slot(MACHINE(x86ms), cpu->apic_id, &idx); + if (!cpu_slot) { + MachineState *ms =3D MACHINE(x86ms); + + x86ms->topo_ids_from_apicid(cpu->apic_id, &topo_info, &topo_ids); + error_setg(errp, + "Invalid CPU [socket: %u, die: %u, core: %u, thread: %u] with" + " APIC ID %" PRIu32 ", valid index range 0:%d", + topo_ids.pkg_id, topo_ids.die_id, topo_ids.core_id, topo_ids.s= mt_id, + cpu->apic_id, ms->possible_cpus->len - 1); + return; + } + + if (cpu_slot->cpu) { + error_setg(errp, "CPU[%d] with APIC ID %" PRIu32 " exists", + idx, cpu->apic_id); + return; + } + + /* if 'address' properties socket-id/core-id/thread-id are not set, se= t them + * so that machine_query_hotpluggable_cpus would show correct values + */ + /* TODO: move socket_id/core_id/thread_id checks into x86_cpu_realizef= n() + * once -smp refactoring is complete and there will be CPU private + * CPUState::nr_cores and CPUState::nr_threads fields instead of globa= ls */ + x86ms->topo_ids_from_apicid(cpu->apic_id, &topo_info, &topo_ids); + if (cpu->socket_id !=3D -1 && cpu->socket_id !=3D topo_ids.pkg_id) { + error_setg(errp, "property socket-id: %u doesn't match set apic-id= :" + " 0x%x (socket-id: %u)", cpu->socket_id, cpu->apic_id, + topo_ids.pkg_id); + return; + } + cpu->socket_id =3D topo_ids.pkg_id; + + if (cpu->die_id !=3D -1 && cpu->die_id !=3D topo_ids.die_id) { + error_setg(errp, "property die-id: %u doesn't match set apic-id:" + " 0x%x (die-id: %u)", cpu->die_id, cpu->apic_id, topo_ids.die_= id); + return; + } + cpu->die_id =3D topo_ids.die_id; + + if (cpu->core_id !=3D -1 && cpu->core_id !=3D topo_ids.core_id) { + error_setg(errp, "property core-id: %u doesn't match set apic-id:" + " 0x%x (core-id: %u)", cpu->core_id, cpu->apic_id, + topo_ids.core_id); + return; + } + cpu->core_id =3D topo_ids.core_id; + + if (cpu->thread_id !=3D -1 && cpu->thread_id !=3D topo_ids.smt_id) { + error_setg(errp, "property thread-id: %u doesn't match set apic-id= :" + " 0x%x (thread-id: %u)", cpu->thread_id, cpu->apic_id, + topo_ids.smt_id); + return; + } + cpu->thread_id =3D topo_ids.smt_id; + + if (hyperv_feat_enabled(cpu, HYPERV_FEAT_VPINDEX) && + !kvm_hv_vpindex_settable()) { + error_setg(errp, "kernel doesn't allow setting HyperV VP_INDEX"); + return; + } + + cs =3D CPU(cpu); + cs->cpu_index =3D idx; + + numa_cpu_pre_plug(cpu_slot, dev, errp); +} + +void x86_rtc_set_cpus_count(ISADevice *rtc, uint16_t cpus_count) +{ + if (cpus_count > 0xff) { + /* If the number of CPUs can't be represented in 8 bits, the + * BIOS must use "FW_CFG_NB_CPUS". Set RTC field to 0 just + * to make old BIOSes fail more predictably. + */ + rtc_set_memory(rtc, 0x5f, 0); + } else { + rtc_set_memory(rtc, 0x5f, cpus_count - 1); + } +} + +static int x86_apic_cmp(const void *a, const void *b) +{ + CPUArchId *apic_a =3D (CPUArchId *)a; + CPUArchId *apic_b =3D (CPUArchId *)b; + + return apic_a->arch_id - apic_b->arch_id; +} + +/* returns pointer to CPUArchId descriptor that matches CPU's apic_id + * in ms->possible_cpus->cpus, if ms->possible_cpus->cpus has no + * entry corresponding to CPU's apic_id returns NULL. + */ +CPUArchId *x86_find_cpu_slot(MachineState *ms, uint32_t id, int *idx) +{ + CPUArchId apic_id, *found_cpu; + + apic_id.arch_id =3D id; + found_cpu =3D bsearch(&apic_id, ms->possible_cpus->cpus, + ms->possible_cpus->len, sizeof(*ms->possible_cpus->cpus), + x86_apic_cmp); + if (found_cpu && idx) { + *idx =3D found_cpu - ms->possible_cpus->cpus; + } + return found_cpu; +} + +void x86_cpu_plug(HotplugHandler *hotplug_dev, + DeviceState *dev, Error **errp) +{ + CPUArchId *found_cpu; + Error *local_err =3D NULL; + X86CPU *cpu =3D X86_CPU(dev); + X86MachineState *x86ms =3D X86_MACHINE(hotplug_dev); + + if (x86ms->acpi_dev) { + hotplug_handler_plug(x86ms->acpi_dev, dev, &local_err); + if (local_err) { + goto out; + } + } + + /* increment the number of CPUs */ + x86ms->boot_cpus++; + if (x86ms->rtc) { + x86_rtc_set_cpus_count(x86ms->rtc, x86ms->boot_cpus); + } + if (x86ms->fw_cfg) { + fw_cfg_modify_i16(x86ms->fw_cfg, FW_CFG_NB_CPUS, x86ms->boot_cpus); + } + + found_cpu =3D x86_find_cpu_slot(MACHINE(x86ms), cpu->apic_id, NULL); + found_cpu->cpu =3D OBJECT(dev); +out: + error_propagate(errp, local_err); +} + CpuInstanceProperties x86_cpu_index_to_props(MachineState *ms, unsigned cpu_index) { --=20 2.18.4 From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593723352; cv=none; d=zohomail.com; s=zohoarc; b=lAu2TopaObq2oDkxxsjZxICFi60eGyxM1MThB1To4/Wm0wG821HdMD+GD9r9nUI6D1jsD80SWVKPZdTwdthfZmpDyPbAVicASEkt/RWLEbMW0vRJXAAeo8Vo9aqgtzInoutaGtN68KJ/1v5sV4U2Y87hCrqQDuawHelQrxeMZeE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593723352; h=Content-Type: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=Z16Tgq/lHTtNURBIfdG7/VdPyWMNzUE7lIxlb0vcRX8=; b=FIT6k0fYz6HP0dQ93dUd0BraAVMExBSIjIMQiL3ICRxEiB0q56KD9yDWeYfhiDF/Uf2i0ucSjoXLlS05LKW/uI1IalWu+nz8F5Q8zZbsdnxdgc2Y0O+EnrcgJduGiXZP+YjLNYrr0E9nlReUeX4HzORPQSq8FGUICrWnecX/e0I= 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 1593723352228752.5454175977651; Thu, 2 Jul 2020 13:55:52 -0700 (PDT) Received: from localhost ([::1]:53292 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6FK-000648-Ub for importer@patchew.org; Thu, 02 Jul 2020 16:55:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54718) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr69B-0004Xd-Vq for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:29 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:54199 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr694-0003YJ-I9 for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:29 -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-179-zN2EekpyNi-bPY3scVeqnQ-1; Thu, 02 Jul 2020 16:49:18 -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 DCBB3107ACF4; Thu, 2 Jul 2020 20:49:16 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id 76EE31A925; Thu, 2 Jul 2020 20:49:16 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 84F6531EE9; Thu, 2 Jul 2020 22:49:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722961; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=Z16Tgq/lHTtNURBIfdG7/VdPyWMNzUE7lIxlb0vcRX8=; b=hOGZIN/yb7KAHGcAg531qSRseuzG2pEAJLnMTZkstrO3JxAlqytLi/zIPLrC4A2tw6T07C fIO/AFnt5kXWlgTo/YYxfDPw1TE/PjO070iDBPi47LF17RyNWWO/Pg7XloYwwvXKHiA3+8 ZSSchdmQa6KtFrTE+N6U8DeE5igeN/w= X-MC-Unique: zN2EekpyNi-bPY3scVeqnQ-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 16/21] microvm: wire up hotplug Date: Thu, 2 Jul 2020 22:48:54 +0200 Message-Id: <20200702204859.9876-17-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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; Received-SPF: pass client-ip=207.211.31.81; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 04:18:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The cpu hotplug code handles the initialization of coldplugged cpus too, so it is needed even in case cpu hotplug is not supported. Wire cpu hotplug up for microvm. Without this we get a broken MADT table. Signed-off-by: Gerd Hoffmann --- hw/i386/microvm.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index 3d8a66cfc3ac..a5b16b728f9f 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -320,6 +320,39 @@ static void microvm_fix_kernel_cmdline(MachineState *m= achine) g_free(cmdline); } =20 +static void microvm_device_pre_plug_cb(HotplugHandler *hotplug_dev, + DeviceState *dev, Error **errp) +{ + x86_cpu_pre_plug(hotplug_dev, dev, errp); +} + +static void microvm_device_plug_cb(HotplugHandler *hotplug_dev, + DeviceState *dev, Error **errp) +{ + x86_cpu_plug(hotplug_dev, dev, errp); +} + +static void microvm_device_unplug_request_cb(HotplugHandler *hotplug_dev, + DeviceState *dev, Error **err= p) +{ + error_setg(errp, "unplug not supported by microvm"); +} + +static void microvm_device_unplug_cb(HotplugHandler *hotplug_dev, + DeviceState *dev, Error **errp) +{ + error_setg(errp, "unplug not supported by microvm"); +} + +static HotplugHandler *microvm_get_hotplug_handler(MachineState *machine, + DeviceState *dev) +{ + if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) { + return HOTPLUG_HANDLER(machine); + } + return NULL; +} + static void microvm_machine_state_init(MachineState *machine) { MicrovmMachineState *mms =3D MICROVM_MACHINE(machine); @@ -503,6 +536,7 @@ static void microvm_machine_initfn(Object *obj) static void microvm_class_init(ObjectClass *oc, void *data) { MachineClass *mc =3D MACHINE_CLASS(oc); + HotplugHandlerClass *hc =3D HOTPLUG_HANDLER_CLASS(oc); =20 mc->init =3D microvm_machine_state_init; =20 @@ -523,6 +557,13 @@ static void microvm_class_init(ObjectClass *oc, void *= data) /* Machine class handlers */ mc->reset =3D microvm_machine_reset; =20 + /* hotplug (for cpu coldplug) */ + mc->get_hotplug_handler =3D microvm_get_hotplug_handler; + hc->pre_plug =3D microvm_device_pre_plug_cb; + hc->plug =3D microvm_device_plug_cb; + hc->unplug_request =3D microvm_device_unplug_request_cb; + hc->unplug =3D microvm_device_unplug_cb; + object_class_property_add(oc, MICROVM_MACHINE_PIC, "OnOffAuto", microvm_machine_get_pic, microvm_machine_set_pic, @@ -572,6 +613,7 @@ static const TypeInfo microvm_machine_info =3D { .class_size =3D sizeof(MicrovmMachineClass), .class_init =3D microvm_class_init, .interfaces =3D (InterfaceInfo[]) { + { TYPE_HOTPLUG_HANDLER }, { } }, }; --=20 2.18.4 From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593724077; cv=none; d=zohomail.com; s=zohoarc; b=m19Nz4HrJJyqP/HIb2MNEzMNus4D2z7pxicEdTVWxv3LMF4cCoWOKX6hxx87BBAWZF+XEQ1HfBJy8fUS42TqeuLdKR7iJgJN6ECUuPEeULK4ETWZa7VEyyw4E5Z0iGpaDLHXoP9aHeSsrnfgwAlqP6PHXnqEWIOXioi6BL3stn0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593724077; h=Content-Type: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=K/9W2PZSeIS82Eh5NLCJQJCCPYbFC6ZhNnw1M1jPilY=; b=Mp77Vmuu5hpdYF0XY+Qc9rNevHnMhmfQJJFvmMq5t4i4BBZasWhKOvr82mtafhMISGl7+NGcK7uLRX0g2yiMxMZqBmaPuVgsmB44hpQBom81HFWAmMMMTJgrULj5IUu9PTIzGrOTI/Zv7xYDdZsfvmzEtCWMh7OpQz+9NERuFDU= 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 159372407705436.91572712554819; Thu, 2 Jul 2020 14:07:57 -0700 (PDT) Received: from localhost ([::1]:34630 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6R0-0008Mv-Ur for importer@patchew.org; Thu, 02 Jul 2020 17:07:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55012) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr69M-000526-9r for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:40 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:54171 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr69J-0003dT-41 for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49: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-109-KY7YVoi2MsSdy9BKe8o29g-1; Thu, 02 Jul 2020 16:49:32 -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 EC80F1005513; Thu, 2 Jul 2020 20:49:30 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5973960C81; Thu, 2 Jul 2020 20:49:22 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 8E23F31EFE; Thu, 2 Jul 2020 22:49:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722976; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=K/9W2PZSeIS82Eh5NLCJQJCCPYbFC6ZhNnw1M1jPilY=; b=UAHhqIaeLgIAqqT2ybKoOo4pi50sYfDjdCtjssms/7GTkzZakvZrc3/f7/dDzR6vzR04wy UQkXD/wQLwAB+2DNPwxwaNrPhNRz/Az+ylNOF1e8lu5X4MCArJLqIIZsa8ApECwEr9a2tj Iaix18T7iyeDhq3eQM9yMP0twPr1s/4= X-MC-Unique: KY7YVoi2MsSdy9BKe8o29g-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 17/21] tests/acpi: clear bios-tables-test-allowed-diff.h Date: Thu, 2 Jul 2020 22:48:55 +0200 Message-Id: <20200702204859.9876-18-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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; Received-SPF: pass client-ip=207.211.31.120; envelope-from=kraxel@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 03:23:40 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Leftover from acpi cleanup series. Signed-off-by: Gerd Hoffmann --- tests/qtest/bios-tables-test-allowed-diff.h | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios= -tables-test-allowed-diff.h index 8992f1f12b77..dfb8523c8bf4 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1,19 +1 @@ /* List of comma-separated changed AML files to ignore */ -"tests/data/acpi/pc/DSDT", -"tests/data/acpi/pc/DSDT.acpihmat", -"tests/data/acpi/pc/DSDT.bridge", -"tests/data/acpi/pc/DSDT.cphp", -"tests/data/acpi/pc/DSDT.dimmpxm", -"tests/data/acpi/pc/DSDT.ipmikcs", -"tests/data/acpi/pc/DSDT.memhp", -"tests/data/acpi/pc/DSDT.numamem", -"tests/data/acpi/q35/DSDT", -"tests/data/acpi/q35/DSDT.acpihmat", -"tests/data/acpi/q35/DSDT.bridge", -"tests/data/acpi/q35/DSDT.cphp", -"tests/data/acpi/q35/DSDT.dimmpxm", -"tests/data/acpi/q35/DSDT.ipmibt", -"tests/data/acpi/q35/DSDT.memhp", -"tests/data/acpi/q35/DSDT.mmio64", -"tests/data/acpi/q35/DSDT.numamem", -"tests/data/acpi/q35/DSDT.tis", --=20 2.18.4 From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593723417; cv=none; d=zohomail.com; s=zohoarc; b=XVrkasNvIpWOWe0KfOILL1GNXgM4wTLIwobJfmYuw9Xt2OFgAkAgCdRyiFpAScEhVrDHWbpVCll6PwSoKIctPWKhH3upuUYR4cl6PiSLJkyk9/nI9enL/snpvIBdQB2gfcP24CFiyN//IcjQySTJoMBbPzrLnj/kX+wdJih9Gns= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593723417; h=Content-Type: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=yIBA7QMbjRBBosF8Z/aCMKZ6+Ye92UgyjrSu7U7xbDM=; b=N4wr/BVhtTzSFNN/JzEMj4odHFtghu1fB1PT/91FB6OeCFmo9mlvM/sao2Z0jaZVv4uOP8GNgcAQi5mDhFEtaI3fdr+fLwNjB6dFViEQ0Upc/MLdDxJR8L9v9ow1C92h807jhDkGcPcqZlcifDo/jSYLlgtiOg8xyKqj8t1FWRc= 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 1593723417723846.2688107634091; Thu, 2 Jul 2020 13:56:57 -0700 (PDT) Received: from localhost ([::1]:58372 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6GO-0008WG-BP for importer@patchew.org; Thu, 02 Jul 2020 16:56:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54928) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr69J-0004uu-NR for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:37 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:41159 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr69C-0003aJ-11 for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:37 -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-24-apRVKeCVNgu9xUPp8zXcJg-1; Thu, 02 Jul 2020 16:49: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 A0BB8107ACCA; Thu, 2 Jul 2020 20:49:26 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2C3E81025EB0; Thu, 2 Jul 2020 20:49:18 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 974FB31F08; Thu, 2 Jul 2020 22:49:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722969; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=yIBA7QMbjRBBosF8Z/aCMKZ6+Ye92UgyjrSu7U7xbDM=; b=EsIn3H1AhOGCB7jDMbBm929TpadP/ueBlZ23L0ZTfCmHCFrWdBloVBeweCVIfi0/K/Nr70 CejgAX2f+hPoctSHTuSH+tNyftKv3jrWkj7ThGmA6tEI/6wdvmFMOiAut7AGi2+nI82/QE 43cRBuv+vRmuEKebaJCxI/UwgbfCZoY= X-MC-Unique: apRVKeCVNgu9xUPp8zXcJg-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 18/21] tests/acpi: allow microvm test data updates. Date: Thu, 2 Jul 2020 22:48:56 +0200 Message-Id: <20200702204859.9876-19-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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; Received-SPF: pass client-ip=205.139.110.120; envelope-from=kraxel@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 04:00:43 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Also add empty test data files. Signed-off-by: Gerd Hoffmann --- tests/qtest/bios-tables-test-allowed-diff.h | 3 +++ tests/data/acpi/microvm/APIC | 0 tests/data/acpi/microvm/DSDT | 0 tests/data/acpi/microvm/FACP | 0 4 files changed, 3 insertions(+) create mode 100644 tests/data/acpi/microvm/APIC create mode 100644 tests/data/acpi/microvm/DSDT create mode 100644 tests/data/acpi/microvm/FACP diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios= -tables-test-allowed-diff.h index dfb8523c8bf4..97c3fa621b7f 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1 +1,4 @@ /* List of comma-separated changed AML files to ignore */ +"tests/data/acpi/microvm/APIC", +"tests/data/acpi/microvm/DSDT", +"tests/data/acpi/microvm/FACP", diff --git a/tests/data/acpi/microvm/APIC b/tests/data/acpi/microvm/APIC new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tests/data/acpi/microvm/DSDT b/tests/data/acpi/microvm/DSDT new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tests/data/acpi/microvm/FACP b/tests/data/acpi/microvm/FACP new file mode 100644 index 000000000000..e69de29bb2d1 --=20 2.18.4 From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593723477; cv=none; d=zohomail.com; s=zohoarc; b=KnS1q3QTHH1u7S8HyiRDVt1QKMPmNCCLtO0Nr8k4nMzcqn+2ClJERZEuxgUzjpFoATsFyDt1N8pDOq/YD+6pF0r4EbrTapyyJc8xIgPE9hiJJI1su9sSLJG/lcTHwYOTERUS7ixmxPvxEOuNwHubX39vDNJuAG6/qnb5T0xigYA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593723477; h=Content-Type: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=xZdFqrgR1JarvVVCRgTMEg19qCkFtkK1L1XpMKaNaII=; b=ZW/TPKKDtEdWK/Chdgtx/j1QHiI3ePXBiWR37OeVFjefk0UY85BO23KZdOnFwdzu+gnVBclOTzLg7jcWmEY12NOs8n/J1HSzzB0ylREyY/Swjh4r2xgdDOWiT7DjQl9rSneX2UfPOkFSife8jGGLvVXNehcoEspcELmj4l8EjcI= 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 1593723477118942.7278706250071; Thu, 2 Jul 2020 13:57:57 -0700 (PDT) Received: from localhost ([::1]:33444 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6HJ-0001lU-RC for importer@patchew.org; Thu, 02 Jul 2020 16:57:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54736) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr69C-0004Yf-9D for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:30 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:60614 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr695-0003Yk-Ij for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:29 -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-141-pX-5G8-8OBKPnYjH9Yr78A-1; Thu, 02 Jul 2020 16:49:19 -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 0DCAE800C64; Thu, 2 Jul 2020 20:49:18 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id A2E211A925; Thu, 2 Jul 2020 20:49:17 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id A0C2931F09; Thu, 2 Jul 2020 22:49:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722962; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=xZdFqrgR1JarvVVCRgTMEg19qCkFtkK1L1XpMKaNaII=; b=gVFdHAW/nFqVMWlChAhpvUawnR7COWREC9KcjPsjxDhIr79rN3uy6GDxLVmMEV7GNaE5Qw rlnDfvrvHtdmVnoT7oia5sEoVip5IFeIlkKvhF+5uVzDV+PLiLpgQvsG3BGZyg3QyeM3a+ D3nrqmAKkPIai0epm6tbcrV25s/6Mh0= X-MC-Unique: pX-5G8-8OBKPnYjH9Yr78A-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 19/21] tests/acpi: allow override blkdev Date: Thu, 2 Jul 2020 22:48:57 +0200 Message-Id: <20200702204859.9876-20-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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; Received-SPF: pass client-ip=207.211.31.81; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 04:18:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" microvm needs virtio-blk instead of ide. Signed-off-by: Gerd Hoffmann --- tests/qtest/bios-tables-test.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c index c315156858f4..24b715dce780 100644 --- a/tests/qtest/bios-tables-test.c +++ b/tests/qtest/bios-tables-test.c @@ -72,6 +72,7 @@ typedef struct { const char *variant; const char *uefi_fl1; const char *uefi_fl2; + const char *blkdev; const char *cd; const uint64_t ram_start; const uint64_t scan_len; @@ -635,9 +636,10 @@ static void test_acpi_one(const char *params, test_dat= a *data) args =3D g_strdup_printf("-machine %s,kernel-irqchip=3Doff %s -acc= el tcg " "-net none -display none %s " "-drive id=3Dhd0,if=3Dnone,file=3D%s,format=3Draw " - "-device ide-hd,drive=3Dhd0 ", + "-device %s,drive=3Dhd0 ", data->machine, data->tcg_only ? "" : "-accel kvm", - params ? params : "", disk); + params ? params : "", disk, + data->blkdev ?: "ide-hd"); } =20 data->qts =3D qtest_init(args); --=20 2.18.4 From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593723526; cv=none; d=zohomail.com; s=zohoarc; b=kH1EPpzBOIksfUGBct6aVaa7AlElV+963GJqMrKugydP1soNKhfwbPYyCb1BERkkjmLHgDuO+xtSFiOe2iZ+inppfVPWHxWX0ScHtxyfvaIgc/iNcXRXev8Q3V0qdb+uh4dkmC4BL27dX+nf4lBjzcsAQBarN+/5Mnc9QC6/BQE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593723526; h=Content-Type: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=Jc3CkjMTS6eJgOpPYjcQtTYta9twaD8HtlqKoRcWa3g=; b=V+1UcAcpM2q1+cPVuBKlczVqISeddvKODXzQMz/8GW/UAZM0WKm4gx6YXkhvWhd8v1d+kNz6lU5gTp6DQBwh0nHmhsr61wNIfaYyd0zSxop1KpyWPSaSYwoVuU68CRLsaIcCmWmZ6iWNQ1blEHk8ZE6enE4XDbTfxy9cwyFo/10= 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 1593723526741332.1967259622912; Thu, 2 Jul 2020 13:58:46 -0700 (PDT) Received: from localhost ([::1]:37140 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6I9-0003W2-IE for importer@patchew.org; Thu, 02 Jul 2020 16:58:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54830) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr69F-0004hm-Ae for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:33 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:42949 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr695-0003Yn-Lk for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49: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-141-uJKbw7bFPWmuxLNoM8rbQA-1; Thu, 02 Jul 2020 16:49:19 -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 1C693107ACF2; Thu, 2 Jul 2020 20:49:18 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id A81361A928; Thu, 2 Jul 2020 20:49:17 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id A9D4131F0A; Thu, 2 Jul 2020 22:49:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722963; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=Jc3CkjMTS6eJgOpPYjcQtTYta9twaD8HtlqKoRcWa3g=; b=JvIugqFGHXbxpRAoq0asALCIX2XNUcCBgfzZMy/F+HnxZkr5rxBCdS61efGZteatfZ+sL4 Si/aGKFViNtD2i/TBOxSv4GVi2DhqY3Pmf0z7JYnKLCQI7lwH7296YoU+MW1ur6U40Bn04 I2INYePjgYeqlessSJThwrCe7ZafVxI= X-MC-Unique: uJKbw7bFPWmuxLNoM8rbQA-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 20/21] tests/acpi: add microvm test Date: Thu, 2 Jul 2020 22:48:58 +0200 Message-Id: <20200702204859.9876-21-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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; Received-SPF: pass client-ip=207.211.31.81; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 04:18:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Gerd Hoffmann --- tests/qtest/bios-tables-test.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c index 24b715dce780..b5b98d5c0742 100644 --- a/tests/qtest/bios-tables-test.c +++ b/tests/qtest/bios-tables-test.c @@ -1007,6 +1007,20 @@ static void test_acpi_virt_tcg_memhp(void) =20 } =20 +static void test_acpi_microvm_tcg(void) +{ + test_data data; + + memset(&data, 0, sizeof(data)); + data.machine =3D "microvm"; + data.required_struct_types =3D base_required_struct_types; + data.required_struct_types_len =3D ARRAY_SIZE(base_required_struct_typ= es); + data.blkdev =3D "virtio-blk-device"; + test_acpi_one(" -machine microvm,acpi=3Don,rtc=3Doff", + &data); + free_test_data(&data); +} + static void test_acpi_virt_tcg_numamem(void) { test_data data =3D { @@ -1118,6 +1132,7 @@ int main(int argc, char *argv[]) qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm); qtest_add_func("acpi/piix4/acpihmat", test_acpi_piix4_tcg_acpi_hma= t); qtest_add_func("acpi/q35/acpihmat", test_acpi_q35_tcg_acpi_hmat); + qtest_add_func("acpi/microvm", test_acpi_microvm_tcg); } else if (strcmp(arch, "aarch64") =3D=3D 0) { qtest_add_func("acpi/virt", test_acpi_virt_tcg); qtest_add_func("acpi/virt/numamem", test_acpi_virt_tcg_numamem); --=20 2.18.4 From nobody Sat May 4 02:10:01 2024 Delivered-To: importer@patchew.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=1593723065; cv=none; d=zohomail.com; s=zohoarc; b=Y0x+iBKCV4KXrb7EiFkd6dGFO6Zmbf6+jlEFQN9jdOpjRK4avOk4hzFtV1owwZR5AYRjIb35cgXH/ixp9Wsx93bzn08r+u0ApfWL8ehhC+xI3vKP/y6kHkpOrsKOWFxilZP83tG+WDD7vNH1nJQ08C0IbFmpqzoimmVi070DuIM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593723065; h=Content-Type: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=MNTlxHdwoZD1i7fR0/VxIsjSfZdUtlBEEDJL/FTCXj8=; b=IQ6zE19Arjv6oGmH2ZU1DM2kx8UcXBxirPH1u1tM2Xe9InjSnv4n3ELI6p718YHckvEPExW+/LAfT44YJwSyNU2DrnXqO+5GB1Z0jk3nuK/r5mX9yxjUVZsXUy8O67LvZp4jaK6GYs2Z+wB+2lZNFmPnZ4DqxJIgYKuqKlYf3a8= 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 1593723065456515.3517044445042; Thu, 2 Jul 2020 13:51:05 -0700 (PDT) Received: from localhost ([::1]:35746 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr6Ai-00072x-6E for importer@patchew.org; Thu, 02 Jul 2020 16:51:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54666) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr698-0004P2-Ti for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:26 -0400 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:34686 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jr694-0003Y6-8n for qemu-devel@nongnu.org; Thu, 02 Jul 2020 16:49:26 -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-476-GxZjK5W8P_SgcZHHIHy8qQ-1; Thu, 02 Jul 2020 16:49:20 -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 B3EC88018A4; Thu, 2 Jul 2020 20:49:18 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id 50A981A928; Thu, 2 Jul 2020 20:49:18 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id B2D3231F14; Thu, 2 Jul 2020 22:49:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593722961; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=MNTlxHdwoZD1i7fR0/VxIsjSfZdUtlBEEDJL/FTCXj8=; b=NtCiRz1HmWgycH9bfp1YO3tbsgb5spIME+RUQa90ew2RiVsH+yYqhssIzqrOqpDzlPvA1S sRt2cwbPQjptBDlsHF957zzBVVtX1aR6yWRdBVYYLNIUu3p/HejrtpDCX8XC7cZWgPJC82 a2JZhJcXut6Gi8WSL16e7eai5g4IR3k= X-MC-Unique: GxZjK5W8P_SgcZHHIHy8qQ-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v4 21/21] tests/acpi: update expected data files for microvm Date: Thu, 2 Jul 2020 22:48:59 +0200 Message-Id: <20200702204859.9876-22-kraxel@redhat.com> In-Reply-To: <20200702204859.9876-1-kraxel@redhat.com> References: <20200702204859.9876-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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; Received-SPF: pass client-ip=205.139.110.61; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 03:42:59 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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: Laurent Vivier , Peter Maydell , Thomas Huth , Eduardo Habkost , Sergio Lopez , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, 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) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Also clear tests/qtest/bios-tables-test-allowed-diff.h Signed-off-by: Gerd Hoffmann --- tests/qtest/bios-tables-test-allowed-diff.h | 3 --- tests/data/acpi/microvm/APIC | Bin 0 -> 70 bytes tests/data/acpi/microvm/DSDT | Bin 0 -> 365 bytes tests/data/acpi/microvm/FACP | Bin 0 -> 268 bytes 4 files changed, 3 deletions(-) diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios= -tables-test-allowed-diff.h index 97c3fa621b7f..dfb8523c8bf4 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1,4 +1 @@ /* List of comma-separated changed AML files to ignore */ -"tests/data/acpi/microvm/APIC", -"tests/data/acpi/microvm/DSDT", -"tests/data/acpi/microvm/FACP", diff --git a/tests/data/acpi/microvm/APIC b/tests/data/acpi/microvm/APIC index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..7472c7e830b6c7139720e93dd54= 4d4441556661d 100644 GIT binary patch literal 70 zcmZ<^@N{-#U|?Xp?&R<65v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CcCj H|A7JkC_j6YE5wz#n_gs%GoenLN` zpW{k;$86@Fd(Irrxsi_M?+m~-VJ0WKAHL=3D?B917q*iIf_8y%W*_c&h3v1cYpDFd20*z#XX{ze8pGFMFpU84R0aBbPnKQWME*eb@F%i2v%^42yk`-iUEZfKx`0ARlp*^z`()4z{IrRAIMxM1_r8I SLD0QG`x&72gWSRhWdi`;u?ztK literal 0 HcmV?d00001 --=20 2.18.4