From nobody Sun May 19 00:47:44 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=1598439266; cv=none; d=zohomail.com; s=zohoarc; b=K2tyUjyY+xAOetcdA0ImLfEW7NAV1T9PyNeG7QMpoSMJQU2Iq5eInyZQMwLUEpWmq6VtLIxudopA7AEJJW2Yo8WkkoAWH4ruEPkf2lHbk0HEyhNoDddgYnq7DVmfGUxZz28Yw/KBbvKbRtkj7rGEImlqFenn5SiZLfoJqWPYec4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598439266; 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=UkYL9KVk7MaTpe38CYuaqLGodBOYtyIMV7ea93Hbp6A=; b=lrPa/za5oXSoUAcR0bYb6ZlLkQe+wVhcGWeJzg8dgy1QzDUrosYU+40tTDVPljztOCKwlY+/5nSrIeUT3eQ5U/Y/S2sJ+XCxfsDlGfN9nFnuUnwgi8wR4i8wfY1jcmVC+LfXU3HyZ2Y3lO8QM3Iu3XJR/3w0HkY6BlsicKtW/p8= 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 1598439266810201.83327815149926; Wed, 26 Aug 2020 03:54:26 -0700 (PDT) Received: from localhost ([::1]:59472 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAt4T-0007qk-Ei for importer@patchew.org; Wed, 26 Aug 2020 06:54:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44008) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAt3H-0005fb-3l for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:11 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:35442 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 1kAt3D-0001V9-QU for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:10 -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-36-v25E9bTgPgmREZLlbmaSvg-1; Wed, 26 Aug 2020 06:53:05 -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 D3AE010066FE; Wed, 26 Aug 2020 10:53:03 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1556B1992F; Wed, 26 Aug 2020 10:52:55 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 22C1F9D78; Wed, 26 Aug 2020 12:52:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598439186; 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=UkYL9KVk7MaTpe38CYuaqLGodBOYtyIMV7ea93Hbp6A=; b=Pnam+vw1wn8DOcvdHWSbEooyb4/8Is4rhGt7Qlau4X3q0gPOtV6aD8NbIiNEtURXicL04M Frx16Qcvm1o0zgVyKMFXlDNF2d6AJWc7GN7tTmKSSuuQti2JVhuwjShfB2usWzrPpzpjVh i/1w/6+H95NcG+gkSiW55xQhU4AFlPo= X-MC-Unique: v25E9bTgPgmREZLlbmaSvg-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v6 01/20] microvm: name qboot binary qboot.rom Date: Wed, 26 Aug 2020 12:52:35 +0200 Message-Id: <20200826105254.28496-2-kraxel@redhat.com> In-Reply-To: <20200826105254.28496-1-kraxel@redhat.com> References: <20200826105254.28496-1-kraxel@redhat.com> MIME-Version: 1.0 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.001 X-Mimecast-Originator: redhat.com 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.120; envelope-from=kraxel@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/26 01:10:45 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=-0.958, 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_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no 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 , Igor Mammedov , Paolo Bonzini , 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-Type: text/plain; charset="utf-8" qboot isn't a bios and shouldnt be named that way. Signed-off-by: Gerd Hoffmann Reviewed-by: Sergio Lopez --- 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 81d0888930d1..b1dc7e49c159 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 5d9f15b6777f..2673a39f9dc2 100644 --- a/roms/Makefile +++ b/roms/Makefile @@ -66,7 +66,7 @@ default help: @echo " efi -- update UEFI (edk2) platform firmware" @echo " opensbi32-generic -- update OpenSBI for 32-bit generic machine" @echo " opensbi64-generic -- update OpenSBI for 64-bit generic 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 @@ -182,9 +182,9 @@ opensbi64-generic: cp opensbi/build/platform/generic/firmware/fw_dynamic.bin ../pc-bios/open= sbi-riscv64-generic-fw_dynamic.bin cp opensbi/build/platform/generic/firmware/fw_dynamic.elf ../pc-bios/open= sbi-riscv64-generic-fw_dynamic.elf =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.27.0 From nobody Sun May 19 00:47:44 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=1598439255; cv=none; d=zohomail.com; s=zohoarc; b=Z1glbn3ehBKp4wC8QSsHGqFyXMJWwHidpDS5gICvsuG89IgezfAOpSo0AUwMubAKO4YY+Zdcp61CyNUPWAMOB6wOoiGGtNaYecDPkiY6fhAtQwOLypjFAPn219+PpTSk62leMve2T58zlV5hSohdVgj5qu/qh5b1hNaf4aqx+k8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598439255; 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=lhw8FdRsCo8/Q3iUVLr0spC3/H0VtfVEyVbdPoYCY8M=; b=e7x5qMdrGUhlH//aouDPCJPqIkT/C5O0AvrPDs0zgNFcT5O1WFZlpDoCVg8pX0sx4JKcVMrL4GBIF78YW1mZR7RJJGmsvOvxqmSYoCXYdbQZ7MB22vNzqoWM7SemmvlJlrHRD7O0qiEZSBdGf/piNv5DlxDF2mZECeVllZQn6vc= 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 1598439255818710.8200300412718; Wed, 26 Aug 2020 03:54:15 -0700 (PDT) Received: from localhost ([::1]:58622 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAt4H-0007W9-GR for importer@patchew.org; Wed, 26 Aug 2020 06:54:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43998) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAt3G-0005fD-MP for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:10 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:20256) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kAt3E-0001VT-Sb for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:10 -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-343-8Do7R5RsPzevwY8jk9b_4g-1; Wed, 26 Aug 2020 06:53:04 -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 8256E1074646; Wed, 26 Aug 2020 10:53:03 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0B2735D9E4; Wed, 26 Aug 2020 10:52:55 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 2D27E9C87; Wed, 26 Aug 2020 12:52:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598439188; 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=lhw8FdRsCo8/Q3iUVLr0spC3/H0VtfVEyVbdPoYCY8M=; b=KQ0IDuwrIKpHe/W8EjSl671Z+67SyA5d7tO9ZpDt244hm2IT3J0ZnJkSHqtCWczCjbRtAI 2gR3eKi96QpiPy3LC7up2tj7jigt3d4jSYamX8D6CPG8I13s5NDzwHXPPcZlQ0epLzANC6 Sj4GBa4bEgS8X7FtnQa1Q5BiEulvgw8= X-MC-Unique: 8Do7R5RsPzevwY8jk9b_4g-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v6 02/20] seabios: add microvm config, update build rules Date: Wed, 26 Aug 2020 12:52:36 +0200 Message-Id: <20200826105254.28496-3-kraxel@redhat.com> In-Reply-To: <20200826105254.28496-1-kraxel@redhat.com> References: <20200826105254.28496-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.001 X-Mimecast-Originator: redhat.com 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=216.205.24.124; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/25 23:30:47 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=-0.958, 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no 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 , Igor Mammedov , Paolo Bonzini , 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-Type: text/plain; charset="utf-8" Signed-off-by: Gerd Hoffmann Reviewed-by: Sergio Lopez --- 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 2673a39f9dc2..f8890c7e39de 100644 --- a/roms/Makefile +++ b/roms/Makefile @@ -70,9 +70,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.27.0 From nobody Sun May 19 00:47:44 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=1598439364; cv=none; d=zohomail.com; s=zohoarc; b=Vxmkcy63gEOF2Dl3yJYR+9Tkeb6E5CFnOYuqKGoK9bqr+lqTJB0wwexFIxFlO7ThZQVV+XDsYw0ZhWLRvB2M1UqooYxABngNI9mnzGFgcZ/i1ushIX98QKoe3euBxczso6huhaEfGP85UANGHu9jXoRPt73jh9f4DNtRkBhjpD8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598439364; 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=DI/cdSdAHjeX/qDMMqqxRGYOf8wFk5wZaBG6UlYRn0g=; b=LI1zTF2YSbwfzdc2d/YBRFrtKhS8T+SavzBgI5yJQQugC2GkA8UIUUGfLPmOSqMvJGvRIKnkDFPkXE9PMnEhm+UB8uPA+skvUKrkzGToB892RooC0BYrF4zVb/LO6+z9mQ8nYv7btX2DIMObpSgkl5yRGm0lDg4WljW+mrNwQg4= 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 159843936448429.679904001538148; Wed, 26 Aug 2020 03:56:04 -0700 (PDT) Received: from localhost ([::1]:40286 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAt63-00035P-32 for importer@patchew.org; Wed, 26 Aug 2020 06:56:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44224) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAt3P-000613-FO for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:19 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:46842 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 1kAt3H-0001WL-4F for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53: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-448-GPthLof7PQWdx6LhGZz28A-1; Wed, 26 Aug 2020 06:53:06 -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 A2FC810066FB; Wed, 26 Aug 2020 10:53:05 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1A2E3747D7; Wed, 26 Aug 2020 10:52:55 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 37D949CBA; Wed, 26 Aug 2020 12:52:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598439190; 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=DI/cdSdAHjeX/qDMMqqxRGYOf8wFk5wZaBG6UlYRn0g=; b=ZHFOujmZUsNEEP66CchPjOncOzeqTLMX8awhziyalaofmZPjhnaOncLG8IpDC7mu3gsJ0u XhDYQwIn6uhp2nTuFUiKaQy251gl0PKKHkril6TJ7QdxiFMxERIkYBhPndIfocqm3ZYt+/ SeNL9OhuwIOkSQFSnt0Nfjwlhs6PJtk= X-MC-Unique: GPthLof7PQWdx6LhGZz28A-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v6 03/20] seabios: add bios-microvm.bin binary Date: Wed, 26 Aug 2020 12:52:37 +0200 Message-Id: <20200826105254.28496-4-kraxel@redhat.com> In-Reply-To: <20200826105254.28496-1-kraxel@redhat.com> References: <20200826105254.28496-1-kraxel@redhat.com> MIME-Version: 1.0 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.101 X-Mimecast-Originator: redhat.com 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/08/26 06:53:09 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=-0.958, 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.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no 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 , Igor Mammedov , Paolo Bonzini , 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-Type: text/plain; charset="utf-8" Signed-off-by: Gerd Hoffmann Reviewed-by: Sergio Lopez --- 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..eefd32197e8d637be0266e34105= 51f711728c6d0 GIT binary patch literal 131072 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

!qQ5oyYLc0&_R@xX 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 (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 159843925262048.22629895295859; Wed, 26 Aug 2020 03:54:12 -0700 (PDT) Received: from localhost ([::1]:58516 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAt4E-0007TX-JU for importer@patchew.org; Wed, 26 Aug 2020 06:54:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43996) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAt3G-0005fC-Lt for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:10 -0400 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:57925 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 1kAt3D-0001VD-Nx for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:10 -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-paR00jWUNMaxW9qr2Wugtw-1; Wed, 26 Aug 2020 06:53:05 -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 E724D807335; Wed, 26 Aug 2020 10:53:03 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1FAB17C667; Wed, 26 Aug 2020 10:52:55 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 42AAA942; Wed, 26 Aug 2020 12:52:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598439186; 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=NXXcWWbzMCzc0xaSFv2vWi3xTnGSIlRAL4OHuWAqac8=; b=XZ2mmHZi3UhYTgML446HY4BQLX+r8hrrOqb3d1qMY0nqXpsgxm21uTIVmrCUJAT2IbLs4z 2Nq6sMqiPCvogysUhtxkFGcDTXtmgLVeKPYtQRSwj0ZLaizsjSmy3q2Km0IaT0LNBE9QC+ RI68M+Y2FTy8JQyI4txntF2Zq+hLna8= X-MC-Unique: paR00jWUNMaxW9qr2Wugtw-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v6 04/20] acpi: ged: add control regs Date: Wed, 26 Aug 2020 12:52:38 +0200 Message-Id: <20200826105254.28496-5-kraxel@redhat.com> In-Reply-To: <20200826105254.28496-1-kraxel@redhat.com> References: <20200826105254.28496-1-kraxel@redhat.com> MIME-Version: 1.0 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.001 X-Mimecast-Originator: redhat.com 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=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/08/26 03:16:15 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=-0.958, 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.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no 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 , Igor Mammedov , Paolo Bonzini , 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-Type: text/plain; charset="utf-8" Add control regs (sleep, reset) for hw-reduced acpi. Signed-off-by: Gerd Hoffmann Reviewed-by: Igor Mammedov --- include/hw/acpi/generic_event_device.h | 12 +++++++ hw/acpi/generic_event_device.c | 44 ++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/include/hw/acpi/generic_event_device.h b/include/hw/acpi/gener= ic_event_device.h index 90a9180db572..4533cddb486c 100644 --- a/include/hw/acpi/generic_event_device.h +++ b/include/hw/acpi/generic_event_device.h @@ -72,6 +72,17 @@ #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_REG_COUNT 0x03 + +/* ACPI_GED_REG_RESET value for reset*/ +#define ACPI_GED_RESET_VALUE 0x42 + +/* ACPI_GED_REG_SLEEP_CTL.SLP_TYP value for S5 (aka poweroff) */ +#define ACPI_GED_SLP_TYP_S5 0x05 + #define GED_DEVICE "GED" #define AML_GED_EVT_REG "EREG" #define AML_GED_EVT_SEL "ESEL" @@ -87,6 +98,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.27.0 From nobody Sun May 19 00:47:44 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=1598439256; cv=none; d=zohomail.com; s=zohoarc; b=Jfo9KVMOUbcqgZL2XmRLs2uD/UdsfLv+GNyYNv2TkbydvROP2KUaGMwPDzj+yr13BkWuVrTU8FPowfdO88Jg7+G7j4Z0eFpEZhpSzvNn8B15UHJGJbdeRkx/NBt2TWyb7KrBdlWYODXXmzouKJNRomC7Kj8gBXTahs8DfDKwIvw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598439256; 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=weYslzUVJLl87DZKqYmD4AiiQEzxi3Q5a5q5Zh55/vU=; b=l9GIXldKLiLfkOaV92mf/xXk55AoJ+pvXQn+IEKP8EesUNKBwfVRFvce1g+fjjqniy50e5EVH+WQk9x7KNUkJ63Qbr2BRbivKbFUMr+cmyl7J/MKJ5JpWdnMicn8qhIuFIrnkR0gd6HVC2yVhAP1N/VTLmgDOpw75IkZTGj73EE= 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 1598439256137955.2511948260355; Wed, 26 Aug 2020 03:54:16 -0700 (PDT) Received: from localhost ([::1]:58716 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAt4I-0007YB-95 for importer@patchew.org; Wed, 26 Aug 2020 06:54:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44078) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAt3I-0005h2-Bg for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:12 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:57867 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 1kAt3F-0001Vl-Lc for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:12 -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-263-lh-a5QAPMDeu_qIzoySBfw-1; Wed, 26 Aug 2020 06:53:07 -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 ED911186A577; Wed, 26 Aug 2020 10:53:05 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id 94BCF1972A; Wed, 26 Aug 2020 10:53:05 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 4F010991; Wed, 26 Aug 2020 12:52:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598439189; 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=weYslzUVJLl87DZKqYmD4AiiQEzxi3Q5a5q5Zh55/vU=; b=WjpSPTk8fV7YOSCv05XmYriUkN1TtRLMSZEpyfe/PqUcJ33o458dq7byxo7cLDF5QTNKEJ xjNFh9HghPXIz30JAB+DJyCNsmapP1GxTlqxeVTy8uoY7sZtpiidsriifrWJDCBen1KBTb /huY0mn+7C6zShNDeSwf+TcYxapmaLo= X-MC-Unique: lh-a5QAPMDeu_qIzoySBfw-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v6 05/20] acpi: ged: add x86 device variant. Date: Wed, 26 Aug 2020 12:52:39 +0200 Message-Id: <20200826105254.28496-6-kraxel@redhat.com> In-Reply-To: <20200826105254.28496-1-kraxel@redhat.com> References: <20200826105254.28496-1-kraxel@redhat.com> MIME-Version: 1.0 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.001 X-Mimecast-Originator: redhat.com 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=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/08/26 03:16:15 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=-0.958, 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.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no 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 , Igor Mammedov , Paolo Bonzini , 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-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/meson.build | 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 4533cddb486c..bd79cfff2b6a 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/meson.build b/hw/i386/meson.build index 63918fbe22f9..1a7d1a685d77 100644 --- a/hw/i386/meson.build +++ b/hw/i386/meson.build @@ -18,6 +18,7 @@ i386_ss.add(when: 'CONFIG_VMPORT', if_true: files('vmport= .c')) i386_ss.add(when: 'CONFIG_VTD', if_true: files('intel_iommu.c')) =20 i386_ss.add(when: 'CONFIG_ACPI', if_true: files('acpi-common.c')) +i386_ss.add(when: 'CONFIG_ACPI_HW_REDUCED', if_true: files('generic_event_= device_x86.c')) i386_ss.add(when: 'CONFIG_PC', if_true: files( 'pc.c', 'pc_sysfw.c', --=20 2.27.0 From nobody Sun May 19 00:47:44 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=1598439858; cv=none; d=zohomail.com; s=zohoarc; b=YdVCxCEFq5f9OZKj9igfORWs81vul+eusEnbQ43GeA500IfNvsBqy1TsLux/b8wiiCKn3yD45PFd0iGwa8VjIT75+j7f5bydS+94o4c2lxdazbvn0RK7Ai/TtL9k5ZPf9foPMOTm0PVZeTjlrJ4K2W4MGdi009uPYIx+0XG8M18= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598439858; 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=5vPeJxiTdr3LjitG0FXvdMbUGUsc0ozTUcVQZcUeJyY=; b=ig9hWe6dNf7qgzCg3WYKoKJBjn0nFrvrTBAtWwPdSKuWJG8VAItmpYKq7iiZCfQnYBm8A/lqlcqyT36XRlrdzAp64rU4RvsDhJU4r7csRAHGJ+isfu6uGDqSD6ZC19L1k+P+inPRVysBGZ/eKVLJNbg+TUOZ3Z9R3dEvbUaAOdE= 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 1598439858170553.2323083184618; Wed, 26 Aug 2020 04:04:18 -0700 (PDT) Received: from localhost ([::1]:50746 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAtE0-0001vt-VG for importer@patchew.org; Wed, 26 Aug 2020 07:04:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44474) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAt3Z-0006Sq-HL for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:29 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:59101 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 1kAt3P-0001ZH-9p for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53: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-430-oU3gmxRlOxul4dwCrgm_BQ-1; Wed, 26 Aug 2020 06:53:16 -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 8D37280733C; Wed, 26 Aug 2020 10:53:15 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8FA2474E0B; Wed, 26 Aug 2020 10:53:05 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 5B600B17; Wed, 26 Aug 2020 12:52:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598439198; 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=5vPeJxiTdr3LjitG0FXvdMbUGUsc0ozTUcVQZcUeJyY=; b=OD3KX3blP6WDgq8vxJFEGLmExLsUBkfIryPZGhXK4MyUbzZ9uP7i+Tp0xtPugTcd8+Fk7j bY4dYC4JBqTfnQZnOSx9SnLe4JzJRHaMK/LqU93JKHNmEYASJP5q39qnc4kEGnpw6HAAvI n8dG2WLQyffFtZcGgcwwCTO88sNYOZ4= X-MC-Unique: oU3gmxRlOxul4dwCrgm_BQ-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v6 06/20] acpi: move acpi_dsdt_add_power_button() to ged Date: Wed, 26 Aug 2020 12:52:40 +0200 Message-Id: <20200826105254.28496-7-kraxel@redhat.com> In-Reply-To: <20200826105254.28496-1-kraxel@redhat.com> References: <20200826105254.28496-1-kraxel@redhat.com> MIME-Version: 1.0 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.002 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/08/26 06:53:09 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=-0.958, 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.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no 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 , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , 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 bd79cfff2b6a..af6fa36ae7e4 100644 --- a/include/hw/acpi/generic_event_device.h +++ b/include/hw/acpi/generic_event_device.h @@ -118,5 +118,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 91f0df7b13a3..775b2acd28c9 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.27.0 From nobody Sun May 19 00:47:44 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=1598439593; cv=none; d=zohomail.com; s=zohoarc; b=BEATH/w6bqYfWCL19M/g6EmJPM8CoF8U9fSkKjUuSRZBr70MwH5rZfLctbafqI5TSV5h9OlA9AdGXeWIfdkzzOcNzez6qBeur5jBcGZ6BERryGxALYZmS8PSHX1KR7UYsUuh8lEMA7SmMJFPnvgigTpoDUoNMGwUXPjqI7NZ/Ck= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598439593; 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=D0CLt/3qbQGa3OLGHSm59bu9R9OdOsddLi5YJZ1paKU=; b=A1FxxrxGRryTIp70D1RdiR27EapuygPVz8Oo7D0qs/FqjPCV2r71vFmPIHsxOJXuytoitgJCGBDEac8N2CvrbtLoyJ25YWctbUQalT+z37BLmKbCeofy68XAPQJcMeITCG7qnRIgYwlvWzQgsAxIk13fizo+xoQRfjbmsn0N2fI= 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 1598439593407270.01868338971485; Wed, 26 Aug 2020 03:59:53 -0700 (PDT) Received: from localhost ([::1]:58702 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAt9j-00023G-Pp for importer@patchew.org; Wed, 26 Aug 2020 06:59:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44302) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAt3R-00067F-Tc for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:21 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:45796 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 1kAt3I-0001XK-1x for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:21 -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-445-J7aNMXXANnqeUbtGONTs7g-1; Wed, 26 Aug 2020 06:53:07 -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 6B61F81F025; Wed, 26 Aug 2020 10:53:06 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id BEBD35D9EF; Wed, 26 Aug 2020 10:53:05 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 664701FCF6; Wed, 26 Aug 2020 12:52:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598439191; 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=D0CLt/3qbQGa3OLGHSm59bu9R9OdOsddLi5YJZ1paKU=; b=ZpHSXqlS+TjtyLenrqXG8+Am3WNj9dpjZrt1iYpMvdRTJxGkkZBgD2G1wZwnquyeSyBOJa QTMMquj+FkkwuhGtDJ/WdyLKuBLPQ4ob0836EzD3XMNKuvtgHut/SlPNBNn/hSLSWT/1uj WQcnp+7Faq2QxnlZe+5zGVvLoXWSCH8= X-MC-Unique: J7aNMXXANnqeUbtGONTs7g-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v6 07/20] microvm: make virtio irq base runtime configurable Date: Wed, 26 Aug 2020 12:52:41 +0200 Message-Id: <20200826105254.28496-8-kraxel@redhat.com> In-Reply-To: <20200826105254.28496-1-kraxel@redhat.com> References: <20200826105254.28496-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.002 X-Mimecast-Originator: redhat.com 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=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/08/26 03:16:15 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=-0.958, 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.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no 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 , Igor Mammedov , Paolo Bonzini , 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-Type: text/plain; charset="utf-8" Signed-off-by: Gerd Hoffmann Reviewed-by: Sergio Lopez Reviewed-by: Igor Mammedov --- 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 b1dc7e49c159..e4501f2cdfbd 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.27.0 From nobody Sun May 19 00:47:44 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=1598439714; cv=none; d=zohomail.com; s=zohoarc; b=InmI7Qo20bV+7rHoQLJB/uYSrg4oRiCL0j46K0BZ23qotcwoL23qf9USw7sz6ByiQ7ql/Io8lnnAS+nt8yUuL2OomdRwZHNn7aLFRLSmuJeVlb4FkMwoxW0irYsN7CMaAU+AWweAgkeafNRPVPKugRvb+fJqzN6gmSZ2RQqkjHk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598439714; 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=Q87ecpsNNNutlO4IVI6Piu8gKwSdRRSLA3FAoxrDPjM=; b=PIkHMbImN6jkKK0una7wXm/rRo2Vx/Bs/3S7xavz6j/45nL1LJjwr20bZhFnnPgVg6G3/GB3SrlBRcMAM4TyLqwbHpvBkTr80huougvknJzRGiCae3FxX1Fd9SgBfIVneOq/R2u3/dx5SnqHp/L+xUgK4qgf/ywydWFFBHwmQnw= 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 1598439714013500.4884439713377; Wed, 26 Aug 2020 04:01:54 -0700 (PDT) Received: from localhost ([::1]:35338 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAtBg-00048u-IO for importer@patchew.org; Wed, 26 Aug 2020 07:01:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44362) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAt3U-0006E7-Gk for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:24 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:30967) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kAt3I-0001XA-21 for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:24 -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-148-gfOKycizNGWYNI5zf9zAPA-1; Wed, 26 Aug 2020 06:53:07 -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 792AD186A585; Wed, 26 Aug 2020 10:53:06 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9FE3739A55; Wed, 26 Aug 2020 10:53:05 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 787BB204A1; Wed, 26 Aug 2020 12:52:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598439191; 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=Q87ecpsNNNutlO4IVI6Piu8gKwSdRRSLA3FAoxrDPjM=; b=S1nQo6yMET7rxOc5z16US5u0Z2hjsYET4iui9tYINZpUAkavKaZB0/hXbaNqxQ6kljuaIf BaC+vs0Qc04x4ZwBMTCJ0d6Rpt92jZuQ2F8bApHqNRWPvT1aEfAYhrJl6KdTUy6JbhPjUG ZOaToEAV0Du/Mj8mcw8bjwW0IVnVlxI= X-MC-Unique: gfOKycizNGWYNI5zf9zAPA-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v6 08/20] microvm/acpi: add minimal acpi support Date: Wed, 26 Aug 2020 12:52:42 +0200 Message-Id: <20200826105254.28496-9-kraxel@redhat.com> In-Reply-To: <20200826105254.28496-1-kraxel@redhat.com> References: <20200826105254.28496-1-kraxel@redhat.com> MIME-Version: 1.0 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.002 X-Mimecast-Originator: redhat.com 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=63.128.21.124; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/26 06:53:10 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=-0.958, 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no 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 , Igor Mammedov , Paolo Bonzini , 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-Type: text/plain; charset="utf-8" $subject says all. Can be controlled using -M microvm,acpi=3Don/off. Signed-off-by: Gerd Hoffmann Reviewed-by: Igor Mammedov --- hw/i386/acpi-microvm.h | 8 ++ include/hw/i386/microvm.h | 9 ++ hw/i386/acpi-microvm.c | 187 ++++++++++++++++++++++++++++++++++++++ hw/i386/microvm.c | 40 ++++++++ hw/i386/Kconfig | 1 + hw/i386/meson.build | 2 +- 6 files changed, 246 insertions(+), 1 deletion(-) 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..06ef33949f5f --- /dev/null +++ b/hw/i386/acpi-microvm.c @@ -0,0 +1,187 @@ +/* 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); + + /* ACPI 5.0: Table 7-209 System State Package */ + scope =3D aml_scope("\\"); + pkg =3D aml_package(4); + aml_append(pkg, aml_int(ACPI_GED_SLP_TYP_S5)); + 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, 2, 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 { + /* ACPI 5.0: 4.1 Hardware-Reduced ACPI */ + .rev =3D 5, + .flags =3D ((1 << ACPI_FADT_F_HW_REDUCED_ACPI) | + (1 << ACPI_FADT_F_RESET_REG_SUP)), + + /* ACPI 5.0: 4.8.3.7 Sleep Control and Status Registers */ + .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, + }, + + /* ACPI 5.0: 4.8.3.6 Reset Register */ + .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 { + /* ACPI 2.0: 5.2.4.3 RSDP Structure */ + .revision =3D 2, /* xsdt needs v2 */ + .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 e4501f2cdfbd..e1b86da8a92e 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 03e347b2078f..d0bd8b537d55 100644 --- a/hw/i386/Kconfig +++ b/hw/i386/Kconfig @@ -103,6 +103,7 @@ config MICROVM select I8259 select MC146818RTC select VIRTIO_MMIO + select ACPI_HW_REDUCED =20 config X86_IOMMU bool diff --git a/hw/i386/meson.build b/hw/i386/meson.build index 1a7d1a685d77..e5d109f5c64d 100644 --- a/hw/i386/meson.build +++ b/hw/i386/meson.build @@ -11,7 +11,7 @@ i386_ss.add(when: 'CONFIG_X86_IOMMU', if_true: files('x86= -iommu.c'), if_false: files('x86-iommu-stub.c')) i386_ss.add(when: 'CONFIG_AMD_IOMMU', if_true: files('amd_iommu.c')) i386_ss.add(when: 'CONFIG_I440FX', if_true: files('pc_piix.c')) -i386_ss.add(when: 'CONFIG_MICROVM', if_true: files('microvm.c')) +i386_ss.add(when: 'CONFIG_MICROVM', if_true: files('microvm.c', 'acpi-micr= ovm.c')) i386_ss.add(when: 'CONFIG_Q35', if_true: files('pc_q35.c')) i386_ss.add(when: 'CONFIG_VMMOUSE', if_true: files('vmmouse.c')) i386_ss.add(when: 'CONFIG_VMPORT', if_true: files('vmport.c')) --=20 2.27.0 From nobody Sun May 19 00:47:44 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=1598439817; cv=none; d=zohomail.com; s=zohoarc; b=ZVHGSQskwK2oGch5RtFg0gcIn3TPL7uZrxaXqoUvRReb4NSwhdD/lix59kbBE0KAOX7ej2EBQUBMb64Ndyj9znZ++qW4orOcA3vBKBmOTojCoXu/t9taSS0qSw1wrV3hYA9y0gs/dChmRAvPp+e7vlPHYFHydPkDdfHkczJIlPs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598439817; 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=q4xqrjBt9+K0AYOcFO9PWCCV/shKCcI1emzHoZPL8Jc=; b=U4WSeJYTHK80yMCjeF9q3UsYwg1T+8jaIO4mPuiqQuGos1HbwZPwRQp+SBkLaB3lDG8QeNurakx+Ori5PERbKrSmQyN6CUPJDetzGup7q74mrkOrlykFop029ii9Ny7uQy8F1YptkR+x9wPYMgy5ao++8ttAYY9xmbpzphVN+dI= 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 1598439817945374.02511034535166; Wed, 26 Aug 2020 04:03:37 -0700 (PDT) Received: from localhost ([::1]:46202 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAtDM-00006r-Mr for importer@patchew.org; Wed, 26 Aug 2020 07:03:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44510) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAt3a-0006Wj-UE for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:30 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:42495 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 1kAt3Q-0001Zs-6I for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53: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-546-ua8EHp59N3yQDupojUcfxg-1; Wed, 26 Aug 2020 06:53:15 -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 33428807337; Wed, 26 Aug 2020 10:53:14 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id A54965C1A3; Wed, 26 Aug 2020 10:53:05 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 81DFB204AD; Wed, 26 Aug 2020 12:52:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598439199; 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=q4xqrjBt9+K0AYOcFO9PWCCV/shKCcI1emzHoZPL8Jc=; b=YJxFHTdslZ0SKNjjnWbJ3IV7Fn1Y+quHpUwFE5UPD7j8LzgVxW6hjBNNjXiOcglB8Q1MNS Xm678BsK8+Y+36+8kfOjIA7gJJPOEDjcZZvnj6nfUdvYha37fRWwBqdlOuBB9m4d5y7jXi fxpw6pzeGAaAwZANtVr5EWB0kpejpLc= X-MC-Unique: ua8EHp59N3yQDupojUcfxg-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v6 09/20] microvm/acpi: add acpi_dsdt_add_virtio() for x86 Date: Wed, 26 Aug 2020 12:52:43 +0200 Message-Id: <20200826105254.28496-10-kraxel@redhat.com> In-Reply-To: <20200826105254.28496-1-kraxel@redhat.com> References: <20200826105254.28496-1-kraxel@redhat.com> MIME-Version: 1.0 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.002 X-Mimecast-Originator: redhat.com 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/08/26 06:53:09 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=-0.958, 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.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no 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 , Igor Mammedov , Paolo Bonzini , 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-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 06ef33949f5f..b9ce3768b263 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 /* ACPI 5.0: Table 7-209 System State Package */ --=20 2.27.0 From nobody Sun May 19 00:47:44 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=1598439470; cv=none; d=zohomail.com; s=zohoarc; b=GqMdJgNFDTZlKi38auKiA499JEtJy1XB0hKbT5bJ5b+kxZJOpdtp0zI/4F3KE4jKjR8za8Jy5heiL3EjKUdAAcwaqkVxIWSbf/19KSFzX99GY6YySOie4jdU7arkleHdIyE7O1TxOBySmre9JIx3Ak/EKONX4sj/sMN3+A64lkQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598439470; 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=f7gcGwGKvQs66zPNjI3Utr4hWVSraR8+eNzLSiL1B7A=; b=ndZlR6xx5srp81ueKdC61qnVhy4QbYsfzBkC4oTjcFwd9Up8fy7rK+BpbAWVffFKE5Ho3RjuzHIhKgdf9s73I1GP7uB8EaazxRoCnkz8fWq0c5nvnVlRSY+DUIiaPPuv3Yg3IqB5WZoHr2yFoAlOTV+rfVCSqoSJjwnA6XrLB9s= 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 1598439470803865.6023457591195; Wed, 26 Aug 2020 03:57:50 -0700 (PDT) Received: from localhost ([::1]:48892 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAt7l-0006XQ-I6 for importer@patchew.org; Wed, 26 Aug 2020 06:57:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44226) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAt3P-00061E-Iq for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:19 -0400 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:23310 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 1kAt3H-0001Wz-Io for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53: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-441-TWpG742bPhmfJSsmIrYQKA-1; Wed, 26 Aug 2020 06:53:07 -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 1A113807330; Wed, 26 Aug 2020 10:53:06 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id AA44E5D9E4; Wed, 26 Aug 2020 10:53:05 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 8B18531F38; Wed, 26 Aug 2020 12:52:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598439190; 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=f7gcGwGKvQs66zPNjI3Utr4hWVSraR8+eNzLSiL1B7A=; b=VhOEWAm/9vU4+kWou2Rtz7wEnB5fQG7QeJmqqj4KNu4sxX3MmIk1Wu9HeMPBd5EYNdOdyo rtnd5AMZ4qqJfzPxNY3WMnIGMnt3odzI+D4fRyDpBd6aG5gyUh7Fxh3c5+kbxkZauyHVSm wP/5v+CiWAVGwQfmxCD0n1OuGu93xEs= X-MC-Unique: TWpG742bPhmfJSsmIrYQKA-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v6 10/20] microvm/acpi: use GSI 16-23 for virtio Date: Wed, 26 Aug 2020 12:52:44 +0200 Message-Id: <20200826105254.28496-11-kraxel@redhat.com> In-Reply-To: <20200826105254.28496-1-kraxel@redhat.com> References: <20200826105254.28496-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.001 X-Mimecast-Originator: redhat.com 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=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/08/26 03:16:15 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=-0.958, 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.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no 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 , Igor Mammedov , Paolo Bonzini , 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-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 e1b86da8a92e..ca0c9983f137 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.27.0 From nobody Sun May 19 00:47:44 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=1598439597; cv=none; d=zohomail.com; s=zohoarc; b=apXsY99kFwMroVmRLum5AeiSxwrx2jF4rj0q676xrZ7W0QoT43datkkJgov7OR6OKIFNikX0KisZ1CkSyKVjqWnVLi2WIh8HF1Z4QHeyB3vUBHr2CulFVfIHGNMCpeL8LReWMk7HqU3nFQIcwzFxNeBoWNxKqa/C/l6bjeS26Ns= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598439597; 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=3oE6jZipdDk0METVeCLVyc8aV6ZhNb6/y6HHqyX62vU=; b=Az/Ek70ugZYIstTEbIqqIehLfhZPpIwE9g18p/r2n7LOhUu/KgrAfMt1lIXwN9Tj3mQyxvlc374RminqEScOPXDooqTryEnwUv3zJvCA7xJkand9ARQvEwKJPSQeEzlBpw9CSn2HFkvij61xaefgRJhvogUftVYp1dYz+PAOoaU= 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 1598439597095214.71504581266743; Wed, 26 Aug 2020 03:59:57 -0700 (PDT) Received: from localhost ([::1]:59038 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAt9m-0002BR-I6 for importer@patchew.org; Wed, 26 Aug 2020 06:59:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44506) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAt3a-0006Wb-Uw for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:30 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:54613) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kAt3P-0001ZO-M4 for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53: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-169-7Po-9udqMVq_4d8KxviIEg-1; Wed, 26 Aug 2020 06:53:15 -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 DA4F0807330; Wed, 26 Aug 2020 10:53:13 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id AF5E65C1BB; Wed, 26 Aug 2020 10:53:05 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 9443031F50; Wed, 26 Aug 2020 12:52:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598439198; 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=3oE6jZipdDk0METVeCLVyc8aV6ZhNb6/y6HHqyX62vU=; b=X3hGVU4FMxj8Oabm6akeZUGapk7n8lbSnLzxyWQJ5S4vLxBes+DJDQStjk3w6YPX/dtau3 SSwxuPYIMzSTrbB4qwIeiPSeRhiu4sdBk2PlMTLsMA+o0dJsoXno4QCPDXopyvuA2b6HZd YJuJDoxqbWwqy7lQ9xMacnTZ9X9o9LE= X-MC-Unique: 7Po-9udqMVq_4d8KxviIEg-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v6 11/20] microvm/acpi: use seabios with acpi=on Date: Wed, 26 Aug 2020 12:52:45 +0200 Message-Id: <20200826105254.28496-12-kraxel@redhat.com> In-Reply-To: <20200826105254.28496-1-kraxel@redhat.com> References: <20200826105254.28496-1-kraxel@redhat.com> MIME-Version: 1.0 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.001 X-Mimecast-Originator: redhat.com 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=216.205.24.124; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/25 23:30:47 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=-0.958, 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no 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 , Igor Mammedov , Paolo Bonzini , 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-Type: text/plain; charset="utf-8" With acpi=3Doff continue to use qboot. Signed-off-by: Gerd Hoffmann Reviewed-by: Igor Mammedov Reviewed-by: Sergio Lopez --- 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 ca0c9983f137..54510a03f754 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.27.0 From nobody Sun May 19 00:47:44 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=1598439348; cv=none; d=zohomail.com; s=zohoarc; b=Bu6ePBuOLAEjhq6SmU3txu7aOQVUOqVSqFnO2+VY5nuJvsyiukGDbzUKRC3fnU6JB7nv2O8ly4ogfYth4XlPacHXkGyR6qsvqdx1P9VZHXBnIJIokkgQiYa9BkX3UbYMagAO71HENw4W0ynaJmqTBqPgLsqrWTysZAaLADTAzlo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598439348; 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=xJwqIXJgtPya3h9FnX+F/kZQIPaPKuTAvRRxWNyjYgU=; b=DKSUG7u3RqIyFzuQblkgIe210w6520gjJQ3dP4R+KPWaJxRNjeqAPc6nKgxffofg7HUHtcBI2SswV5BXvoEOh4ycJkv163YSDOFqYFte1HpIzloAtaTGuH0X/QffzDLcU0RfnPiQ1hipY6CJZGoA61eqe2pG6p3yL2BQ4/jPbwg= 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 1598439348828987.5485433565552; Wed, 26 Aug 2020 03:55:48 -0700 (PDT) Received: from localhost ([::1]:38792 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAt5n-0002UO-DE for importer@patchew.org; Wed, 26 Aug 2020 06:55:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44098) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAt3I-0005hj-Nm for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:12 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:35230 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 1kAt3F-0001Vv-TN for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:12 -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-230-Z0zdAWZhNF2pAAUacGa_5w-1; Wed, 26 Aug 2020 06:53:07 -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 22E97807334; Wed, 26 Aug 2020 10:53:06 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id B586E5D9E8; Wed, 26 Aug 2020 10:53:05 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 9D6F931F73; Wed, 26 Aug 2020 12:52:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598439189; 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=xJwqIXJgtPya3h9FnX+F/kZQIPaPKuTAvRRxWNyjYgU=; b=TgUiBCbQaZdnhGdGR39T61eMUV1hpbB6pSc5EAve50Z7VokHTowGT/LgSFED4FxN5HaHUU i/w8PfpJ3uWfEk5/isgct2fdltTbbSt51A9q2qXAzIiRSXtvLMoHLbV4Lx76G7ZdwUCNnG g9TZnDYzBVaO1PNGzytBcA/MnQzyQCw= X-MC-Unique: Z0zdAWZhNF2pAAUacGa_5w-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v6 12/20] microvm/acpi: disable virtio-mmio cmdline hack Date: Wed, 26 Aug 2020 12:52:46 +0200 Message-Id: <20200826105254.28496-13-kraxel@redhat.com> In-Reply-To: <20200826105254.28496-1-kraxel@redhat.com> References: <20200826105254.28496-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.001 X-Mimecast-Originator: redhat.com 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/08/26 06:53:09 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=-0.958, 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.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no 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 , Igor Mammedov , Paolo Bonzini , 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-Type: text/plain; charset="utf-8" ... in case we are using ACPI. Signed-off-by: Gerd Hoffmann Reviewed-by: Igor Mammedov Reviewed-by: Sergio Lopez --- 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 54510a03f754..04209eb38fbe 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.27.0 From nobody Sun May 19 00:47:44 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=1598439833; cv=none; d=zohomail.com; s=zohoarc; b=Q6a+DtWNEHRw3KwNGV1SqHpeBOzDmTRbtZ8MWi+7jD6w7kf90gFeDkiYkhrfWpvP70SJk42ZIcUh6O49Hl68SK5VnWaR0vkwJwDaBOzJKxtzx05SOhWX5uL4AkL1A6gQUlXBrCQNGfwukGFBf3gzQHV1k2XMbvQJJkzMRhnB/dc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598439833; 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=5T0S3K7DR+N412mzxYocEzhcrc4zt/n0JW3uWBy062s=; b=B2nSoaNBIzmfRfgg671T2OOIbWKHvfDMP65n4uTkuyq+dja81/W+zlQ6xbNOsVltwo9H7ylaY/XfbG/Fu/P6HB/kX6LUZGirKOtOskIRNlXNZGjHUQFNFn6k7TcyJwoLIgNgSfEgGJd8icoZu/oY9T5UuDih8dF+IGVMEB6RjHw= 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 1598439833721140.5697177080217; Wed, 26 Aug 2020 04:03:53 -0700 (PDT) Received: from localhost ([::1]:48088 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAtDc-0000s5-D2 for importer@patchew.org; Wed, 26 Aug 2020 07:03:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44492) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAt3a-0006VY-F6 for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:30 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:46576) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kAt3P-0001ZR-M7 for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53: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-317-d-5vkJTbMo2HMu8L-Zk28w-1; Wed, 26 Aug 2020 06:53:17 -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 3EA3118686D0; Wed, 26 Aug 2020 10:53:16 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9C0811002D47; Wed, 26 Aug 2020 10:53:06 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id A825A31F93; Wed, 26 Aug 2020 12:52:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598439198; 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=5T0S3K7DR+N412mzxYocEzhcrc4zt/n0JW3uWBy062s=; b=ifB4kExhQDAdyVfKAmH6zvq6SDIrnM+/LaLJwvFWU+5z4ZZkdufQQDUnFLIHnbcwGDbTj/ lnHFf72LqtuDT+2rEl0fYKwBzyk5bxZfg2ovj8WCo6bHmK73r8qfMFXKOs6vOsHwGWePRS 0svdBEkgoTj0wB69M4bTV1Dj9JFAkK4= X-MC-Unique: d-5vkJTbMo2HMu8L-Zk28w-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v6 13/20] x86: constify x86_machine_is_*_enabled Date: Wed, 26 Aug 2020 12:52:47 +0200 Message-Id: <20200826105254.28496-14-kraxel@redhat.com> In-Reply-To: <20200826105254.28496-1-kraxel@redhat.com> References: <20200826105254.28496-1-kraxel@redhat.com> MIME-Version: 1.0 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.001 X-Mimecast-Originator: redhat.com 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=216.205.24.124; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/25 23:30:47 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=-0.958, 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no 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 , Igor Mammedov , Paolo Bonzini , 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-Type: text/plain; charset="utf-8" Signed-off-by: Gerd Hoffmann Reviewed-by: Igor Mammedov Reviewed-by: Sergio Lopez --- 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 cf384b974318..31a82885d735 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -845,7 +845,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 @@ -887,7 +887,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.27.0 From nobody Sun May 19 00:47:44 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=1598439511; cv=none; d=zohomail.com; s=zohoarc; b=k85sMLN2EYO5qZ6ECsbIjuVGKLG32OzRVJ5QwtAgsf21Rq0zv2Ewi8SCp3/F3WbQe6YaxtFXIW3uWilrQcV7SEQWgXt1dnJZgylSOfqIHuHKLIyYA9Fjejaw9pFHIbqIFq5dHTsuG7KosfKIi10kMZEY/tgL4K5oGuK4qDVABVw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598439511; 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=4tS9qhxCExgezZ9Z2GzOK3A1IJhZXLekU12+f/xBP4I=; b=ZuCs6za/CY2JJlhkl5BaO6VBsnVSqwU0NzTi23BNaUfUAurkDWiQNWoPUb1RvBn/r1pgME2yjDMn/xjqdokHB/veCEQomFzH2P1ejl1aM+5RW6AAX+Nlbw/xxDJzGBQ4IK/hJgHS0f/0txt+gS8MU5RYBTuVaizezVQ6vx0H6j4= 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 15984395115611022.0923035259342; Wed, 26 Aug 2020 03:58:31 -0700 (PDT) Received: from localhost ([::1]:53118 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAt8Q-0008EH-5E for importer@patchew.org; Wed, 26 Aug 2020 06:58:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44188) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAt3N-0005uW-9K for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:17 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:57610 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 1kAt3H-0001Wf-6m for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:16 -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-393-Jt6HLmL6OMa3IGl7DHCs9g-1; Wed, 26 Aug 2020 06:53:09 -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 C1F3410066FC; Wed, 26 Aug 2020 10:53:07 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id A0FBB5D9EF; Wed, 26 Aug 2020 10:53:06 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id BEBB931F96; Wed, 26 Aug 2020 12:52:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598439190; 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=4tS9qhxCExgezZ9Z2GzOK3A1IJhZXLekU12+f/xBP4I=; b=IMaG805pZJ6WSSbAVUV13xQjeuNmfSmRemD4P8EmLWjpF8Bmfwwte9rIzu/qjcb2IdmxfA qUj2CBIIuvQWx0Z6CJY8tVaicf8isE/2X2vY2rxjevmrD+Uw8lnPUmV/hj1/att1p2T/k9 9K4wev+peeBziY04bMyTus9R5z3C1+Y= X-MC-Unique: Jt6HLmL6OMa3IGl7DHCs9g-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v6 14/20] x86: move acpi_dev from pc/microvm Date: Wed, 26 Aug 2020 12:52:48 +0200 Message-Id: <20200826105254.28496-15-kraxel@redhat.com> In-Reply-To: <20200826105254.28496-1-kraxel@redhat.com> References: <20200826105254.28496-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.001 X-Mimecast-Originator: redhat.com 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=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/08/26 03:56:58 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=-0.958, 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_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no 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 , Igor Mammedov , Paolo Bonzini , 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-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 Reviewed-by: Igor Mammedov Reviewed-by: Sergio Lopez --- 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 fe52e165b27c..0f7da2329b0f 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 b9ce3768b263..df39c5d3bd90 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); @@ -136,6 +136,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; @@ -183,7 +184,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 04209eb38fbe..9df15354ce0f 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 5d8d5ef8b373..0bd6dbbd7bf6 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1274,6 +1274,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); @@ -1285,7 +1286,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; @@ -1296,7 +1297,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; @@ -1311,6 +1312,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 @@ -1323,7 +1325,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); } @@ -1331,14 +1333,14 @@ out: static void pc_memory_unplug_request(HotplugHandler *hotplug_dev, DeviceState *dev, Error **errp) { - 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(errp, "memory hotplug is not enabled: missing acpi device or = acpi disabled"); return; @@ -1349,7 +1351,7 @@ static void pc_memory_unplug_request(HotplugHandler *= hotplug_dev, return; } =20 - hotplug_handler_unplug_request(HOTPLUG_HANDLER(pcms->acpi_dev), dev, + hotplug_handler_unplug_request(x86ms->acpi_dev, dev, errp); } =20 @@ -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; } @@ -1432,8 +1435,9 @@ static void pc_cpu_unplug_request_cb(HotplugHandler *= hotplug_dev, int idx =3D -1; 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(errp, "CPU hot unplug not supported without ACPI"); return; } @@ -1445,7 +1449,7 @@ static void pc_cpu_unplug_request_cb(HotplugHandler *= hotplug_dev, return; } =20 - hotplug_handler_unplug_request(HOTPLUG_HANDLER(pcms->acpi_dev), dev, + hotplug_handler_unplug_request(x86ms->acpi_dev, dev, errp); } =20 @@ -1456,9 +1460,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; } @@ -1487,7 +1491,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 32b1453e6a82..759b4a97facb 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -293,7 +293,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), PC_MACHINE_ACPI_DEVICE_P= ROP, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 0cb9c18cd44d..622d0397172a 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), PC_MACHINE_ACPI_DEVICE_PROP, --=20 2.27.0 From nobody Sun May 19 00:47:44 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=1598439419; cv=none; d=zohomail.com; s=zohoarc; b=OBa8CrbtOIgldF9lDRecO8fZ7oFOvT0m7wiJy/Vabfq0JJIuug+7sbvVk/aT9gsisFu2nZI+atIpwKha5BEy1hVc5fBgTGIgIbsuYWLsRX71HiCUUSmnbdd8CqIlnmBmEIwgXeYjtNNO/5xxJUEFAwpkg0kRqhg0yd5DpNm60TE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598439419; 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=TRhmyKJMPAOBpUG0/lBH2KQz02eq5dHZwgmIwTIlzns=; b=fulPBN+xeT+u9Pfm7oNJEz6t6GAJWcsr3nzmqlbsSyQ1om9roieidKICgL4ZdN+oJ+c0hDa5BEgsDRgrT0J3lir1FZrC1RET0zz0BIqrHMW8BPeRuYeb8lGaZ255clfqH6d7bFr81eRitojoQv3keq2Xt+svsLUaAmvE0jIVq7A= 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 1598439419803261.75323471721674; Wed, 26 Aug 2020 03:56:59 -0700 (PDT) Received: from localhost ([::1]:44696 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAt6w-0004q8-En for importer@patchew.org; Wed, 26 Aug 2020 06:56:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44166) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAt3M-0005sz-Nl for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:16 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:50324) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kAt3H-0001WV-4u for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:16 -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-353-x3Sia3D3O56VOfpTT3T3DQ-1; Wed, 26 Aug 2020 06:53:08 -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 793541DE02; Wed, 26 Aug 2020 10:53:07 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id 777071992F; Wed, 26 Aug 2020 10:53:06 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id CCB4431F97; Wed, 26 Aug 2020 12:52:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598439190; 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=TRhmyKJMPAOBpUG0/lBH2KQz02eq5dHZwgmIwTIlzns=; b=VR1gGsN9B5UPTZdLh1VmTlgqXF/qbpmmkPfy8Y62a49cQuS7xgBIACT78R5VSNoN0zwRff NpYeKZA4p5/RmhN7GfpMoOELQBCZLAWcDNC+vD/0c8SUJvLLkMMUWsKrxcMMcMbyLinCod tunRlX1waz90jvePEF+ZoG+v3SHRrBc= X-MC-Unique: x3Sia3D3O56VOfpTT3T3DQ-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v6 15/20] x86: move cpu hotplug from pc to x86 Date: Wed, 26 Aug 2020 12:52:49 +0200 Message-Id: <20200826105254.28496-16-kraxel@redhat.com> In-Reply-To: <20200826105254.28496-1-kraxel@redhat.com> References: <20200826105254.28496-1-kraxel@redhat.com> MIME-Version: 1.0 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.001 X-Mimecast-Originator: redhat.com 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=216.205.24.124; envelope-from=kraxel@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/25 23:30:47 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=-0.958, 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_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no 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 , Igor Mammedov , Paolo Bonzini , 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-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. Move both plug and unplug to keep everything in one place, even though microvm needs plug only. Signed-off-by: Gerd Hoffmann Reviewed-by: Sergio Lopez --- include/hw/i386/x86.h | 10 ++ hw/i386/pc.c | 283 +----------------------------------------- hw/i386/x86.c | 268 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 283 insertions(+), 278 deletions(-) diff --git a/include/hw/i386/x86.h b/include/hw/i386/x86.h index de74c831c3ab..5c3803e74e31 100644 --- a/include/hw/i386/x86.h +++ b/include/hw/i386/x86.h @@ -102,6 +102,16 @@ 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); +void x86_cpu_unplug_request_cb(HotplugHandler *hotplug_dev, + DeviceState *dev, Error **errp); +void x86_cpu_unplug_cb(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 0bd6dbbd7bf6..b55369357e5d 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -803,19 +803,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) { @@ -825,7 +812,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,266 +1360,6 @@ static void pc_memory_unplug(HotplugHandler *hotplu= g_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) -{ - int idx =3D -1; - X86CPU *cpu =3D X86_CPU(dev); - PCMachineState *pcms =3D PC_MACHINE(hotplug_dev); - X86MachineState *x86ms =3D X86_MACHINE(hotplug_dev); - - if (!x86ms->acpi_dev) { - error_setg(errp, "CPU hot unplug not supported without ACPI"); - return; - } - - pc_find_cpu_slot(MACHINE(pcms), cpu->apic_id, &idx); - assert(idx !=3D -1); - if (idx =3D=3D 0) { - error_setg(errp, "Boot CPU is unpluggable"); - return; - } - - hotplug_handler_unplug_request(x86ms->acpi_dev, dev, - errp); -} - -static void pc_cpu_unplug_cb(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); - - hotplug_handler_unplug(x86ms->acpi_dev, dev, &local_err); - if (local_err) { - goto out; - } - - found_cpu =3D pc_find_cpu_slot(MACHINE(pcms), cpu->apic_id, NULL); - found_cpu->cpu =3D NULL; - qdev_unrealize(dev); - - /* decrement the number of CPUs */ - x86ms->boot_cpus--; - /* Update the number of CPUs in CMOS */ - 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); -} - -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_md_pci_pre_plug(HotplugHandler *hotplug_dev, DeviceState *dev, Error **errp) { @@ -1701,7 +1428,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) || object_dynamic_cast(OBJECT(dev), TYPE_VIRTIO_MEM_PCI)) { pc_virtio_md_pci_pre_plug(hotplug_dev, dev, errp); @@ -1714,7 +1441,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) || object_dynamic_cast(OBJECT(dev), TYPE_VIRTIO_MEM_PCI)) { pc_virtio_md_pci_plug(hotplug_dev, dev, errp); @@ -1727,7 +1454,7 @@ static void pc_machine_device_unplug_request_cb(Hotpl= ugHandler *hotplug_dev, if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) { pc_memory_unplug_request(hotplug_dev, dev, errp); } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) { - pc_cpu_unplug_request_cb(hotplug_dev, dev, errp); + x86_cpu_unplug_request_cb(hotplug_dev, dev, errp); } else if (object_dynamic_cast(OBJECT(dev), TYPE_VIRTIO_PMEM_PCI) || object_dynamic_cast(OBJECT(dev), TYPE_VIRTIO_MEM_PCI)) { pc_virtio_md_pci_unplug_request(hotplug_dev, dev, errp); @@ -1743,7 +1470,7 @@ static void pc_machine_device_unplug_cb(HotplugHandle= r *hotplug_dev, if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) { pc_memory_unplug(hotplug_dev, dev, errp); } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) { - pc_cpu_unplug_cb(hotplug_dev, dev, errp); + x86_cpu_unplug_cb(hotplug_dev, dev, errp); } else if (object_dynamic_cast(OBJECT(dev), TYPE_VIRTIO_PMEM_PCI) || object_dynamic_cast(OBJECT(dev), TYPE_VIRTIO_MEM_PCI)) { pc_virtio_md_pci_unplug(hotplug_dev, dev, errp); diff --git a/hw/i386/x86.c b/hw/i386/x86.c index 31a82885d735..f1eeca01cd79 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" @@ -165,6 +166,273 @@ 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; + X86CPU *cpu =3D X86_CPU(dev); + X86MachineState *x86ms =3D X86_MACHINE(hotplug_dev); + + if (x86ms->acpi_dev) { + hotplug_handler_plug(x86ms->acpi_dev, dev, errp); + if (*errp) { + return; + } + } + + /* 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); +} + +void x86_cpu_unplug_request_cb(HotplugHandler *hotplug_dev, + DeviceState *dev, Error **errp) +{ + int idx =3D -1; + X86CPU *cpu =3D X86_CPU(dev); + X86MachineState *x86ms =3D X86_MACHINE(hotplug_dev); + + if (!x86ms->acpi_dev) { + error_setg(errp, "CPU hot unplug not supported without ACPI"); + return; + } + + x86_find_cpu_slot(MACHINE(x86ms), cpu->apic_id, &idx); + assert(idx !=3D -1); + if (idx =3D=3D 0) { + error_setg(errp, "Boot CPU is unpluggable"); + return; + } + + hotplug_handler_unplug_request(x86ms->acpi_dev, dev, + errp); +} + +void x86_cpu_unplug_cb(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); + + hotplug_handler_unplug(x86ms->acpi_dev, dev, &local_err); + if (local_err) { + goto out; + } + + found_cpu =3D x86_find_cpu_slot(MACHINE(x86ms), cpu->apic_id, NULL); + found_cpu->cpu =3D NULL; + qdev_unrealize(dev); + + /* decrement the number of CPUs */ + x86ms->boot_cpus--; + /* Update the number of CPUs in CMOS */ + 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); +} + CpuInstanceProperties x86_cpu_index_to_props(MachineState *ms, unsigned cpu_index) { --=20 2.27.0 From nobody Sun May 19 00:47:44 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=1598439751; cv=none; d=zohomail.com; s=zohoarc; b=Yx/0m28CTpUTVv4O3qZdeTtwhGxGy2AeQGrq2TE+OEvuyuRZYrisbRSLpmZVbdV7Y4PRsKjFFwaOnFme5Fhn4GjxDzs0ofWlkhkuCoTz7F3cbOIkVn0uADjT4ZyO5fMlajrl+8fZJz2e3MuOuMaXFkZj62oa32JligF8JU0huTs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598439751; 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=hWHIrwQ2KJxjc+vy7CxaNZwn0frGTiRl+iRykRWWpsA=; b=Nphzu0CAiyGgg70UBITvbh/1tHtJ7wEjoBhIJ0mjw0ujdbPsaktl0DZ5u484OgrNy6c9drPeeW45l+SXbWE+fBl/9ZWBMDw0ax8/EZm7KRLw5kR72M3bQR4uEAfDv1ia2oZ0gGL7ylO6Y6CsBrMC5WB/tOyRqTtjK1W9KpsnpUw= 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 1598439751261511.5743377157361; Wed, 26 Aug 2020 04:02:31 -0700 (PDT) Received: from localhost ([::1]:39000 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAtCH-0005fo-Ta for importer@patchew.org; Wed, 26 Aug 2020 07:02:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44534) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAt3b-0006Z3-O9 for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:31 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:22620 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 1kAt3R-0001a8-2G for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:31 -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-398-NC0FL6m-N72XM7uHholE3A-1; Wed, 26 Aug 2020 06:53:16 -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 5399081F022; Wed, 26 Aug 2020 10:53:15 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1172F60C0F; Wed, 26 Aug 2020 10:53:07 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id D617831FBC; Wed, 26 Aug 2020 12:52:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598439200; 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=hWHIrwQ2KJxjc+vy7CxaNZwn0frGTiRl+iRykRWWpsA=; b=D4jobPCjSbmOskpIsBikRXyxgCCmZC5TR8pfdKsfBzx0CF8hgUUAi3RAgnXT1CqbKg1WKJ 8L3xk8CGFGk0fyk9WilTz0VnnjQBDGnzCm7LRkdTyOLVlugE/mJTVJrx4UMOm1IeV8u3Zn tvW+ABK4arIE+NzD4B7Y6iosmp6u1L8= X-MC-Unique: NC0FL6m-N72XM7uHholE3A-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v6 16/20] microvm: wire up hotplug Date: Wed, 26 Aug 2020 12:52:50 +0200 Message-Id: <20200826105254.28496-17-kraxel@redhat.com> In-Reply-To: <20200826105254.28496-1-kraxel@redhat.com> References: <20200826105254.28496-1-kraxel@redhat.com> MIME-Version: 1.0 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.001 X-Mimecast-Originator: redhat.com 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.120; envelope-from=kraxel@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/26 01:10:45 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=-0.958, 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_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no 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 , Igor Mammedov , Paolo Bonzini , 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-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 Reviewed-by: Igor Mammedov Reviewed-by: Sergio Lopez --- hw/i386/microvm.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index 9df15354ce0f..8de8ca864963 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 @@ -524,6 +558,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, @@ -573,6 +614,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.27.0 From nobody Sun May 19 00:47:44 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=1598439748; cv=none; d=zohomail.com; s=zohoarc; b=YPbIulJRAFDWXT2pQWWWymgakQ+eJmaK+2AtPoh1m8ot04p5623g07PRwc4D+ifIc0w8PdUyRv945Uv8fpuyTREV2q+dp4bC9Utuvmorvrx1VNsTF56KK7baqS7cW/jcOnxM1SGp86SJcvmdNs1cbTxraVtpXW4SNvMD/3WAQfA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598439748; 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=1v/PAt3CshJX/VrDKv2rrFSFurASfaywl/Okvrdx+NQ=; b=OCMFxR0+qWtTn5A0rhQs9oBpL/Ymskhyrsz8bWUaknOgegc5cd3xV24eS++157eLCotPKQ4S5v3F77lYq8+ucTYidryGxENX3+x7qakBB7oy+i6LhIG/gWYuNN25vDBDZWSs19s5lwmy7r3tWgnmtIYJjLaG2rQIYlen87vEMvY= 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 1598439748921646.2211728533605; Wed, 26 Aug 2020 04:02:28 -0700 (PDT) Received: from localhost ([::1]:38638 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAtCE-0005Wm-Gb for importer@patchew.org; Wed, 26 Aug 2020 07:02:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44350) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAt3T-0006CQ-Sn for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:23 -0400 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:38750 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 1kAt3I-0001Xl-GJ for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53: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-481-8FVxc0hcNvCp6OPrGwtFdQ-1; Wed, 26 Aug 2020 06:53:08 -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 05DFC186A58C; Wed, 26 Aug 2020 10:53:07 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9147E5D9E4; Wed, 26 Aug 2020 10:53:06 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id DF3F431FC3; Wed, 26 Aug 2020 12:52:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598439191; 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=1v/PAt3CshJX/VrDKv2rrFSFurASfaywl/Okvrdx+NQ=; b=IS/XI7VTotHE6wMPttjwTH86DEc7LtO6lNLMhcfHSui44G650zCyMTjnHQh6TygGfBGVmv w1P/oInik3YA2v89HzfqD+YS4A3ejlhi7UDQO6UOfEsafm9pqF8yMql2ol8z4B2E9TWZoX Hq58mcJvpy5ZY5b3HrTeRgNGHZ94+Iw= X-MC-Unique: 8FVxc0hcNvCp6OPrGwtFdQ-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v6 17/20] tests/acpi: allow microvm test data updates. Date: Wed, 26 Aug 2020 12:52:51 +0200 Message-Id: <20200826105254.28496-18-kraxel@redhat.com> In-Reply-To: <20200826105254.28496-1-kraxel@redhat.com> References: <20200826105254.28496-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.0 X-Mimecast-Originator: redhat.com 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=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/08/26 03:16:15 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=-0.958, 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.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no 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 , Igor Mammedov , Paolo Bonzini , 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-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.27.0 From nobody Sun May 19 00:47:44 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=1598439784; cv=none; d=zohomail.com; s=zohoarc; b=CIkf9X89+2OuQkSOd3UO9cL533ueocgtg0nwPR2JuIm6EQ4kx+Vqc8UKql4wAwX2ZBapNcIkMJrjFeFFEsV8ThAdpcwWZ4SfB72i7dwRirnT/qhWWmrwy+F4EtbR8YN5x6MQZTDa16/891C7CzkMgYgLVHsVdZWKLzlmYbwjfNU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598439784; 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=VccdRDt/OOUh+VjMdeFNXfU+oG7X7hdWfyAsRzdc3xc=; b=TA2VPELNWW/Q+Xnha48qYzq69+qf5MssIPdJKiaHJ6oDcpPIFCQ6JojM93R29M6KNQawmnWMKs0OngdD0QH9RcUEa3NIYVvNsokYFtadq8IdLlZf626g1h8H9acl6wUQqUYgmICNCvigw4f36cSrJLnlFBp5RQ7vx4HfsXowSAo= 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 1598439784107923.9995960711965; Wed, 26 Aug 2020 04:03:04 -0700 (PDT) Received: from localhost ([::1]:42402 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAtCo-000734-Pp for importer@patchew.org; Wed, 26 Aug 2020 07:03:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44446) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAt3Y-0006Os-8R for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:28 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:35584 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 1kAt3O-0001Z8-Le for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53: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-414-HSNbF3iePhuDkSULxQIrZQ-1; Wed, 26 Aug 2020 06:53:16 -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 329261074648; Wed, 26 Aug 2020 10:53:15 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7A7816111F; Wed, 26 Aug 2020 10:53:07 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id E86C531FC5; Wed, 26 Aug 2020 12:52:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598439197; 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=VccdRDt/OOUh+VjMdeFNXfU+oG7X7hdWfyAsRzdc3xc=; b=Sh+Gn5UaT86Zrmbuoln7mEMuSuWtQYE9eyCw3GxCxXsS+PbzTnaxER28dKbvDYyNg1I/nH xKHYm4x5HN3FTZI/wLdauvZ5H69UAizuLqBy/jTskG9UQd+5x3iLHApm0IR496lF3fvkbw gL0zd1rajYhe4OigZzanIJGSlVc/b/c= X-MC-Unique: HSNbF3iePhuDkSULxQIrZQ-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v6 18/20] tests/acpi: allow override blkdev Date: Wed, 26 Aug 2020 12:52:52 +0200 Message-Id: <20200826105254.28496-19-kraxel@redhat.com> In-Reply-To: <20200826105254.28496-1-kraxel@redhat.com> References: <20200826105254.28496-1-kraxel@redhat.com> MIME-Version: 1.0 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.0 X-Mimecast-Originator: redhat.com 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.120; envelope-from=kraxel@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/26 01:10:45 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=-0.958, 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_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no 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 , Igor Mammedov , Paolo Bonzini , 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-Type: text/plain; charset="utf-8" microvm needs virtio-blk instead of ide. Signed-off-by: Gerd Hoffmann Reviewed-by: Igor Mammedov Reviewed-by: Sergio Lopez --- 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 d25ff354921f..058ba3886659 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.27.0 From nobody Sun May 19 00:47:44 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=1598439446; cv=none; d=zohomail.com; s=zohoarc; b=l7TNwhqJDMYUX2waPVUbX0k9gng1SCQFTIFSq/AY0kv5jUfPQV/GB82iXC7yvwZCRSd2t6RRxJJ6gyuiZRIn9atKqj8CxIc5zzPkWjxJpYGtBCU1HXDemjFoX7ftI4eSn/czN5kVEqfStT7iPrTurrzCyD3dIsAUWFzoYcfmdXI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598439446; 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=Uoydvu/WiscURmbyLAIS8dr6OH/NaKKwnnUgO3Jj0Y4=; b=c8QdkRlimxXwEj3e8dFK07pCjGUQdM1cc09LCMotQCk9K/2Qljuv09Am7F0reNXX6DdJBf6MnIxuvvh5iAhpyH+8TSXAN/4qmQiVJbqZnN/We7eCkwAt0MRB9Rw7FrbxdrWrZ0Q1NA+3CdPdmLK9R9lh3vh8ASYxdE2Yjye48uU= 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 1598439446696495.29018517029283; Wed, 26 Aug 2020 03:57:26 -0700 (PDT) Received: from localhost ([::1]:46736 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAt7N-0005fD-AJ for importer@patchew.org; Wed, 26 Aug 2020 06:57:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44140) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAt3L-0005nw-6P for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:15 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:23298 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 1kAt3G-0001WF-PU for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:14 -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-501-5NryP7DqOOyFFIGNFF-mkA-1; Wed, 26 Aug 2020 06:53:08 -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 11EC01885D83; Wed, 26 Aug 2020 10:53:07 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id 95C705D9E8; Wed, 26 Aug 2020 10:53:06 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id F17A131FC6; Wed, 26 Aug 2020 12:52:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598439189; 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=Uoydvu/WiscURmbyLAIS8dr6OH/NaKKwnnUgO3Jj0Y4=; b=fB2IOW4zyiQqGV+AK9uF2nZOrqCmt/fbuiMZwZu0PI2ZXW5gkkegarniReGbsM/jmjUfzt qwqND8jCcyyDxyPLf9BV7e0soTqIWy+OE6fQ5crrqWey54P+GYnkYDpwqm8FH7jpPUtEX/ 1UvOD+MJDvVtA0IITDR28QCnp3GGnNs= X-MC-Unique: 5NryP7DqOOyFFIGNFF-mkA-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v6 19/20] tests/acpi: add microvm test Date: Wed, 26 Aug 2020 12:52:53 +0200 Message-Id: <20200826105254.28496-20-kraxel@redhat.com> In-Reply-To: <20200826105254.28496-1-kraxel@redhat.com> References: <20200826105254.28496-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.001 X-Mimecast-Originator: redhat.com 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=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/08/26 03:56:58 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=-0.958, 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_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no 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 , Igor Mammedov , Paolo Bonzini , 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-Type: text/plain; charset="utf-8" Signed-off-by: Gerd Hoffmann Reviewed-by: Igor Mammedov --- 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 058ba3886659..883532e531d6 100644 --- a/tests/qtest/bios-tables-test.c +++ b/tests/qtest/bios-tables-test.c @@ -1008,6 +1008,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 NULL; /* no smbios */ + data.required_struct_types_len =3D 0; + 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 { @@ -1119,6 +1133,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.27.0 From nobody Sun May 19 00:47:44 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=1598439502; cv=none; d=zohomail.com; s=zohoarc; b=RhSJkPfY87zyR8yOFLnU5IeH8mW3SszaFebVbOLAkJOVb1V/2AxMl/2vRVky2gpZRzqFikzr0szh35agKZQMa2v3TFGTpaCIggsrdKKw/XeoFjaoFo2fm+klRq5XzLs3A6qbGg1sOAm+qIn1z0r7LuxBtM4uBOWaHxM1ZgjmSro= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598439502; 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=+RoT3UHwL3C3aiK+dtyg81KyFCt1RZ6yhy/ND3g2/ps=; b=DKCvPnx/DP6p8Cy/WmwXRrfabiAdetX68EPB3KH+0Ollidfl7Ano6l/p5LmgkOVVDjClsc/Hq+iwfnFwRow9PX7hWMca0XoFparSiqRx+lfynEoJzOmGBewbXybNeSrfpWBjlkVApoHZ9AG4DbNaaksYCZCtxIPrA4G7vw1Ie1I= 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 1598439502641688.9887483259943; Wed, 26 Aug 2020 03:58:22 -0700 (PDT) Received: from localhost ([::1]:52142 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAt8H-0007qg-Bt for importer@patchew.org; Wed, 26 Aug 2020 06:58:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44240) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAt3Q-00062Y-1e for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53:20 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:38410 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 1kAt3H-0001Wo-GG for qemu-devel@nongnu.org; Wed, 26 Aug 2020 06:53: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-206-RRdoey3WNem19gyBUqYnLQ-1; Wed, 26 Aug 2020 06:53:09 -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 D8C531074646; Wed, 26 Aug 2020 10:53:07 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-54.ams2.redhat.com [10.36.112.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7F6B25D9E4; Wed, 26 Aug 2020 10:53:07 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 0635031FC7; Wed, 26 Aug 2020 12:52:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598439190; 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=+RoT3UHwL3C3aiK+dtyg81KyFCt1RZ6yhy/ND3g2/ps=; b=aAjUhBV1RJS0m9G1rhihpYe8gEl+ZJ4nsqPzhjrlgizcS2Tu48mNJRf9J5qYZy3mXocd+z Nb5nC1KvmKIc083UpD5WRAUlZxb9ET6yRJ6tjZe3b/zDkkH0OD1yOpz3qfCO6Mjy59plpB ck73FTywvRPl4aUl2iDTX7A2ZdgRp58= X-MC-Unique: RRdoey3WNem19gyBUqYnLQ-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v6 20/20] tests/acpi: update expected data files for microvm Date: Wed, 26 Aug 2020 12:52:54 +0200 Message-Id: <20200826105254.28496-21-kraxel@redhat.com> In-Reply-To: <20200826105254.28496-1-kraxel@redhat.com> References: <20200826105254.28496-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.001 X-Mimecast-Originator: redhat.com 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/08/26 06:53:09 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=-0.958, 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.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no 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 , Igor Mammedov , Paolo Bonzini , 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-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|A7JkCE=3D5t zE;#2y@U)soH1M>j)Okp0N|?)B()oaTI~2uqaQfeg{#@eeMV8=3De3}=3Dmj(J&BYn|!sEgD;aBbPnKQWME*ebMklg2v%^42yk`-iUEZfKx`0ARlp*^z`()4z{IrRAIMxMsv1tD QVL