From nobody Mon Apr 29 13:43:09 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=1600172024; cv=none; d=zohomail.com; s=zohoarc; b=L+d4E3ybRQANJNfv4utGQ/Co5bFPcMEDfE8dpL2sStKtEVjYLE60Nv0ABkeOJzeXfD+saxHC2pRk2fGLNb9MkDYdEKGIcaxZMmB/Sfhkr3W8XhX5+iV3vF6LrzLe7LSmk5zcH0v+3czt1GdFxAIrPB575M+gzWfgiOsAiOP/amg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600172024; 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=BG9U3acW9wS4T1HTtBLVqFAocjBatkXSMuRFGxe6fo0=; b=d3BfIcOJUK+z7thcFdIYT5Xnd18gqHQV591YZ7g7bRn2qJ0Oh8fPHhS9c2oPL+D/ey1wlTdWImkJQC1YuzYZ5Gl9NOkcgwG2qCOOh1kkED/68rsqxvDHXr7ExgVx8RVjuSNKHl6JRlyODDK6Tl8R+V+gLgq+P/s1cWv9nqbxnXg= 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 1600172024674606.3252163162603; Tue, 15 Sep 2020 05:13:44 -0700 (PDT) Received: from localhost ([::1]:40408 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kI9qA-0008A8-Jo for importer@patchew.org; Tue, 15 Sep 2020 08:13:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45748) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9m8-0003qK-Kq for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:09:32 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:52175) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kI9m6-0007QO-PQ for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:09:32 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-43-n87yKXXnNZ6JHYoc6QDDXA-1; Tue, 15 Sep 2020 08:09:24 -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 13DCE801AE0; Tue, 15 Sep 2020 12:09:23 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6167C81C5F; Tue, 15 Sep 2020 12:09:10 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 7DF7231FC3; Tue, 15 Sep 2020 14:09:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171768; 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=BG9U3acW9wS4T1HTtBLVqFAocjBatkXSMuRFGxe6fo0=; b=ABxXGNTpA01ZLJp+mpbrbD/32Y6q9sWZMqMckQzRkYiXhP1lhoGYmb/ObrPT7kZxc8uK4z Hx27lJGIBFnTVCy7m5gIcfQLlMW3C1eiTf50OCyA/mAfAMiptlvwdrZ7koODoB4AK680q3 0QMMIFZxOBHiF31jW+iuOllraxYVkjU= X-MC-Unique: n87yKXXnNZ6JHYoc6QDDXA-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 01/21] microvm: name qboot binary qboot.rom Date: Tue, 15 Sep 2020 14:08:49 +0200 Message-Id: <20200915120909.20838-2-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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 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=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/09/15 02:10:32 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , =?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) qboot isn't a bios and shouldnt be named that way. Signed-off-by: Gerd Hoffmann Reviewed-by: Sergio Lopez Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/i386/microvm.c | 4 ++-- pc-bios/meson.build | 2 +- pc-bios/{bios-microvm.bin =3D> qboot.rom} | Bin roms/Makefile | 6 +++--- 4 files changed, 6 insertions(+), 6 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/meson.build b/pc-bios/meson.build index 182d5ebb35de..9759dba09714 100644 --- a/pc-bios/meson.build +++ b/pc-bios/meson.build @@ -27,7 +27,7 @@ endif blobs =3D files( 'bios.bin', 'bios-256k.bin', - 'bios-microvm.bin', + 'qboot.rom', 'sgabios.bin', 'vgabios.bin', 'vgabios-cirrus.bin', 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 3726f06fe7eb..1395a46695be 100644 --- a/roms/Makefile +++ b/roms/Makefile @@ -68,7 +68,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 @@ -183,9 +183,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 npcm7xx_bootrom: $(MAKE) -C vbootrom CROSS_COMPILE=3D$(arm_cross_prefix) --=20 2.27.0 From nobody Mon Apr 29 13:43:09 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=1600172456; cv=none; d=zohomail.com; s=zohoarc; b=cohL5sKsSxDiGs9VCl5/tIdH6E89CpFwWpH5NH0YdONoiDQbcSfWjjp2+yeX4ZnTq85OV7AICciX34Po5HzpQO1oAfbPRNCCIOW9SnHI3zwORiJ/aP7SYx1thIkNB7/+p4WMIF19OcRjHiQ6dn2S9hhwg6bmKPsdPA6qtZ7vi6Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600172456; 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=Ez8X20yMKZ1Cq2GL11ZvFDsENdgPKR1yxt/3fZFNv4A=; b=dqGDv4+jLqwVZNgV98kcOf6xIyRzywSW/rss9Q+1qAlEfBIHU4cJOtzj0ExzsvqLMleYV/Aywq34e+FHEWDtADJ/LgVyXNNZG7CIGhoUvIxzNIW1OBJ09DUlgH7gB5zrgGItRNr+R6QieIcb+hWuePaayI8YxWq6NHrswa7rtLk= 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 1600172456442599.1249161599573; Tue, 15 Sep 2020 05:20:56 -0700 (PDT) Received: from localhost ([::1]:56764 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kI9x9-0006vF-6m for importer@patchew.org; Tue, 15 Sep 2020 08:20:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46448) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9nC-0004nU-ON for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:10:39 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:20186) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kI9nB-0007gJ-1X for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:10:38 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-557-7hCm5GiPOii8dTzFI33siA-1; Tue, 15 Sep 2020 08:09:23 -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 8B977640A0; Tue, 15 Sep 2020 12:09:22 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 60A555DE4A; Tue, 15 Sep 2020 12:09:10 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 889DF31FC8; Tue, 15 Sep 2020 14:09:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171831; 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=Ez8X20yMKZ1Cq2GL11ZvFDsENdgPKR1yxt/3fZFNv4A=; b=D2MRCXAmNll6MI0cwBypGRt2csjU8C8bJzGHFPbXVK6/Ic7KJfGqYVlGrRcPxLIH6K/p/Q QKlcGOq1FLKLb6TOr29J4fEkWEOd80NuandAmCSGGFDDAprw2StoWKXDSSaVgLHw+Q0RIv GDj7frClr9ma2kV742aUjsOQpoBb+gM= X-MC-Unique: 7hCm5GiPOii8dTzFI33siA-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 02/21] seabios: add microvm config, update build rules Date: Tue, 15 Sep 2020 14:08:50 +0200 Message-Id: <20200915120909.20838-3-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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/09/15 02:10:32 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-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 1395a46695be..1489d47350f2 100644 --- a/roms/Makefile +++ b/roms/Makefile @@ -72,9 +72,12 @@ default help: @echo " clean -- delete the files generated by the previous= " \ "build targets" =20 -bios: build-seabios-config-seabios-128k build-seabios-config-seabios-256k +bios: build-seabios-config-seabios-128k \ + build-seabios-config-seabios-256k \ + build-seabios-config-seabios-microvm cp seabios/builds/seabios-128k/bios.bin ../pc-bios/bios.bin cp seabios/builds/seabios-256k/bios.bin ../pc-bios/bios-256k.bin + cp seabios/builds/seabios-microvm/bios.bin ../pc-bios/bios-microvm.bin =20 vgabios seavgabios: $(patsubst %,seavgabios-%,$(vgabios_variants)) =20 diff --git a/roms/config.seabios-microvm b/roms/config.seabios-microvm new file mode 100644 index 000000000000..a253e2edc6ec --- /dev/null +++ b/roms/config.seabios-microvm @@ -0,0 +1,26 @@ +CONFIG_QEMU=3Dy +CONFIG_QEMU_HARDWARE=3Dy +CONFIG_PERMIT_UNALIGNED_PCIROM=3Dy +CONFIG_ROM_SIZE=3D128 +CONFIG_XEN=3Dn +CONFIG_BOOTSPLASH=3Dn +CONFIG_ATA=3Dn +CONFIG_AHCI=3Dn +CONFIG_SDCARD=3Dn +CONFIG_PVSCSI=3Dn +CONFIG_ESP_SCSI=3Dn +CONFIG_LSI_SCSI=3Dn +CONFIG_MEGASAS=3Dn +CONFIG_MPT_SCSI=3Dn +CONFIG_FLOPPY=3Dn +CONFIG_FLASH_FLOPPY=3Dn +CONFIG_NVME=3Dn +CONFIG_PS2PORT=3Dn +CONFIG_USB=3Dn +CONFIG_LPT=3Dn +CONFIG_RTC_TIMER=3Dn +CONFIG_USE_SMM=3Dn +CONFIG_PMTIMER=3Dn +CONFIG_TCGBIOS=3Dn +CONFIG_HARDWARE_IRQ=3Dn +CONFIG_ACPI_PARSE=3Dy --=20 2.27.0 From nobody Mon Apr 29 13:43:09 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=1600172524; cv=none; d=zohomail.com; s=zohoarc; b=DLYUYsNVGBoDveNb99Lwod3QwAK97dggz5LehPd77jFtQO5n0lNQIjFpMShPLwrSL7FNVPr+do7n0w+DR4xMxsRF/wYhpYvb0dL+i/HrC63Io5WCUeVu8/nsCcVh5OMRIU8tcp2dKxtwEzEeyl74qEENkc5Oyo68UDGDKEKbRaY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600172524; 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=m8QDa0+7t+aF6wyj1cdiYZJT+ogqh2vDVYGlgffBoeg=; b=dZUv+1HBgHCtSPd9DbQO4oIv473AQueEdDQRgkzyiMnMtU4dLmzD+JFtlokopZfxmOQQEVzOwFRyZhms0hUrMB20nj3UNb/zyK9Ctb8n9TxNR9bZGpN1ws/GUx6BYqvOEIn9GTmWcc8z01qgVnpIIJ+SIIcytEdfRVBKbdkY4a8= 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 1600172524520642.0516312830679; Tue, 15 Sep 2020 05:22:04 -0700 (PDT) Received: from localhost ([::1]:58870 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kI9yF-0007tS-79 for importer@patchew.org; Tue, 15 Sep 2020 08:22:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46632) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9nL-0004rG-9L for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:10:47 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:40652 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 1kI9nB-0007gB-6e for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:10:46 -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-254-YregiqQ9N0uw4u7xTLK-Eg-1; Tue, 15 Sep 2020 08:09:23 -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 337771009440; Tue, 15 Sep 2020 12:09:21 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6ACB075143; Tue, 15 Sep 2020 12:09:10 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 950213F123; Tue, 15 Sep 2020 14:09:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171831; 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=m8QDa0+7t+aF6wyj1cdiYZJT+ogqh2vDVYGlgffBoeg=; b=Hwg+165h4XTEKe5hcw16ZT3cx1jSzK/SqMvL+3nYQy3ySe4sLBqZ7farlo2BBTiI/6k6ql A6d3Z3A5cWksG3iBgKEP/TORNuFKVX5T/47qjInYCjViqGsiKidhmCBSqETh8ILJs7SwDz sVPf4cKZku8D+RcQ/cYdBbrljv/4PE4= X-MC-Unique: YregiqQ9N0uw4u7xTLK-Eg-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 03/21] seabios: add bios-microvm.bin binary Date: Tue, 15 Sep 2020 14:08:51 +0200 Message-Id: <20200915120909.20838-4-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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.120; envelope-from=kraxel@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/15 02:11:06 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Gerd Hoffmann Reviewed-by: Sergio Lopez --- pc-bios/bios-microvm.bin | Bin 0 -> 131072 bytes pc-bios/meson.build | 1 + 2 files changed, 1 insertion(+) 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 160017336435734.64670860419767; Tue, 15 Sep 2020 05:36:04 -0700 (PDT) Received: from localhost ([::1]:48546 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kIABn-0002Pi-4k for importer@patchew.org; Tue, 15 Sep 2020 08:36:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46968) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9nt-0005KG-0x for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:11:21 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:43254) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kI9nb-0007pd-U5 for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:11: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-314-KvvHHLl5N5ykSXpYiMLgiA-1; Tue, 15 Sep 2020 08:09:21 -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 D15941091065; Tue, 15 Sep 2020 12:09:19 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 65A1A75141; Tue, 15 Sep 2020 12:09:10 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 9FE6540572; Tue, 15 Sep 2020 14:09:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171861; 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=lbM5HC7vDFtpclGRH/mtYPvRkxQ5baIQ5dW5dKDWBGo=; b=C7hEcTLbFWxh4OLkNnYjsA/QNHHbViizkyxGRaOk/H/q2QBLlhGcAFTFaTM/Ver0hIP8oJ QTBJ9qlHuUZ5ax5XwFZDHK0Tn2fEojSIKKm/s6u+LRhCZDF68/WnmlBW8AYs6XpFo+653N xghFtoTIVKYop4UkjwZp/5LEInPk2Mo= X-MC-Unique: KvvHHLl5N5ykSXpYiMLgiA-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 04/21] acpi: ged: add control regs Date: Tue, 15 Sep 2020 14:08:52 +0200 Message-Id: <20200915120909.20838-5-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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.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/09/15 02:10:32 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-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 1be05a3c0f8c..38aec526f944 100644 --- a/include/hw/acpi/generic_event_device.h +++ b/include/hw/acpi/generic_event_device.h @@ -74,6 +74,17 @@ DECLARE_INSTANCE_CHECKER(AcpiGedState, ACPI_GED, #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" @@ -89,6 +100,7 @@ DECLARE_INSTANCE_CHECKER(AcpiGedState, ACPI_GED, =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 Mon Apr 29 13:43:09 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=1600172678; cv=none; d=zohomail.com; s=zohoarc; b=Vu//hGfqVk4y4MD0b9TsmhBfhfzhU21YhNJrar0pRef+NnjStKUeW+Oayg279sWcO4r7+ry/0e3V1qOi0dQeHszL1FMo/PkX1HA9Bqjhya7jImiHkJXGGTB/alhnDJFlnbzxFPsWzHcf3dreP0pxpIGjgGz0lwq23zurusjEDHk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600172678; 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=S7l+P3buoZt7VTrit7Bgi07Dv5+mwhkNmD/cqJKlVcc=; b=fIt1gteFzJQr3eE9/wO4J+cJDqmtttRQ2EPIlg+dEpjON16WI//0Sf2K/TJgJt6/lNhTNWFs2svhAfnRE5mlBv9zM1ElOMLE72x7ADILCQmjFzTsJdO59/LowwbCwgJsD7mxQ4gXaoZZvmQNoXYBFw9R9uly3v+GOyqepv+r4MA= 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 1600172678647650.8217633958815; Tue, 15 Sep 2020 05:24:38 -0700 (PDT) Received: from localhost ([::1]:39268 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kIA0j-00033X-Gs for importer@patchew.org; Tue, 15 Sep 2020 08:24:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46686) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9nN-0004tA-Dl for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:10:49 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:37989) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kI9nI-0007ib-Lh for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:10:48 -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-247-5BU4jkNcMPK9Ob8JkhdGdw-1; Tue, 15 Sep 2020 08:09:33 -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 9390C64086; Tue, 15 Sep 2020 12:09:31 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id BCFBA19D7D; Tue, 15 Sep 2020 12:09:21 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id AC6B240820; Tue, 15 Sep 2020 14:09:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171843; 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=S7l+P3buoZt7VTrit7Bgi07Dv5+mwhkNmD/cqJKlVcc=; b=fIKLYnL8tUdA/xSoq2l9Ue6Bb5/MgkuhovKsyVNPgXwDAoT38pcWKMsPgyD9xWxTKMaKVh SdXWOKafdCksjPC4DV22hz7JxpVWijFJXNB/xXcw0vuZg6oKlzbnLXMCevqzOULQz78fLd 88gp18T76zeUHJOzScj3BClfYycdOMw= X-MC-Unique: 5BU4jkNcMPK9Ob8JkhdGdw-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 05/21] acpi: ged: add x86 device variant. Date: Tue, 15 Sep 2020 14:08:53 +0200 Message-Id: <20200915120909.20838-6-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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=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/09/15 02:23:19 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-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 38aec526f944..241151662b45 100644 --- a/include/hw/acpi/generic_event_device.h +++ b/include/hw/acpi/generic_event_device.h @@ -71,6 +71,10 @@ typedef struct AcpiGedState AcpiGedState; DECLARE_INSTANCE_CHECKER(AcpiGedState, ACPI_GED, 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 Mon Apr 29 13:43:09 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=1600173007; cv=none; d=zohomail.com; s=zohoarc; b=Y/N+HtNpU9glbH8RfLris3fXBB/cvUI/LBkOTTI3Isji/hVa/b/ozLK/GDpTwaaJAYFN/pdY+vohX+EOfbzTe66otAr36e59rRjZtbJ8vxC+M9MwIbjYgJ7r7GzYmS6XQHLGoNuGNEsgmztLgbV+hWDLeTur+1R9KCRSSIpaZBk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600173007; 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=6zPbSNcJtRXY8twa1v/B2HE19uEcnfCCpHwI1hrN/7Q=; b=K9xgcWmHDyen4X7m5BxPw09I90ydMSW2wRqp5kO1XPPGGaM4zq0fcmt/7Q93RM8P310XLOXw2T1VxvCsvZAKEEd9qXPIvqITMo5o+0tV8hvl6TZcw7MHHuiQRjqYgthdnd3wJYJo4aSNQri5vZ1grBEJ7yyRIUF415G60rDe1eE= 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 1600173007681180.7425337579059; Tue, 15 Sep 2020 05:30:07 -0700 (PDT) Received: from localhost ([::1]:57710 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kIA61-0002gn-VV for importer@patchew.org; Tue, 15 Sep 2020 08:30:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46888) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9nh-0005EH-PT for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:11:09 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:58185 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 1kI9na-0007pC-Lp for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:11:09 -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-335-kFEzQ0UJMpG_PEOyUlSOuA-1; Tue, 15 Sep 2020 08:09:34 -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 919BF64090; Tue, 15 Sep 2020 12:09:32 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id B7F14610F3; Tue, 15 Sep 2020 12:09:21 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id B907D40825; Tue, 15 Sep 2020 14:09:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171861; 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=6zPbSNcJtRXY8twa1v/B2HE19uEcnfCCpHwI1hrN/7Q=; b=NM76TCWJ/BctPL/8Wq1ALxQScx8D/hFifZH5/+3lG90PFawJTqyTX6PF5ScELo/9YEm0Tn YKX1+4sok+0oLNj69U2fB6zxoATTdcIvFl0MoqJuvfAJFqHl+uwjM1TeavKIljFW/YiQlC Z2fGYhNDrBf13my0n80fTJXm44wzulk= X-MC-Unique: kFEzQ0UJMpG_PEOyUlSOuA-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 06/21] acpi: move acpi_dsdt_add_power_button() to ged Date: Tue, 15 Sep 2020 14:08:54 +0200 Message-Id: <20200915120909.20838-7-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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.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=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/09/15 05:35:09 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , =?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 241151662b45..ac921e9f0c15 100644 --- a/include/hw/acpi/generic_event_device.h +++ b/include/hw/acpi/generic_event_device.h @@ -120,5 +120,6 @@ 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 9efd7a388150..6bff5e373872 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 Mon Apr 29 13:43:09 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=1600173342; cv=none; d=zohomail.com; s=zohoarc; b=iaY6gK5ExGO6GSeOZktJJz4PA04IcNmj5S7R4NevzFf3I2adm7kENnvuq/e4ykqL07cVg+kp+dXNG422kS1FBU3ckfD3tvqM8GF9Cuqsv7G65Xz7mCR4MvslNslpyea1mkRHUivFJtk+AZKgvzVAJGapknZSjff9FfLA9HXNwsA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600173342; 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=Ljgelz4nfPtCK9Lq32rxnBmCpcSItGZ0/DWWw/AHwB0=; b=Qmji5zpVfn6GwZfjdDEc6qHnY0O6d3Z3D0O4X9IuLcmt/llyVj4bs3os3OaLCw8yp8oLuWTCohlTCFEWG/QSCudtZLnKfLipWJwsxRjzzDr+7VbnWkbpEnYShfeZEKUuwCrPNc06JV8Lj73vM0AUZo5jFMYQr0MTbpmN5Dmij4U= 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 1600173342483826.3254555437156; Tue, 15 Sep 2020 05:35:42 -0700 (PDT) Received: from localhost ([::1]:46914 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kIABR-0001jw-Aw for importer@patchew.org; Tue, 15 Sep 2020 08:35:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46984) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9nt-0005LA-Ln for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:11:22 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:42126 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 1kI9nb-0007pX-Tx for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:11:20 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-505-xpIuH8ANPqGP7afmbdUp6Q-1; Tue, 15 Sep 2020 08:09:32 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 1407A64087; Tue, 15 Sep 2020 12:09:31 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0B4701014160; Tue, 15 Sep 2020 12:09:22 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id C404F40827; Tue, 15 Sep 2020 14:09:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171861; 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=Ljgelz4nfPtCK9Lq32rxnBmCpcSItGZ0/DWWw/AHwB0=; b=CmGwGu+s9B/8j8O427LtxZZkxGhKelrvawN9ahxyPjsS2OuhkhYsqS4BgWLlGZTF8tyxdJ zk9z9JfX/RHoR5eBgX1W1ldrS2vAEIPUJVlU+tgU5tPRPl5WuMxGGuoViCsSA27uxItorM RDGPc7/NDfyGcEsGGM241ySkyGrQp6k= X-MC-Unique: xpIuH8ANPqGP7afmbdUp6Q-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 07/21] microvm: make virtio irq base runtime configurable Date: Tue, 15 Sep 2020 14:08:55 +0200 Message-Id: <20200915120909.20838-8-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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.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.120; envelope-from=kraxel@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/15 02:11:06 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-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 36dbcdd12351..87593694eb0e 100644 --- a/include/hw/i386/microvm.h +++ b/include/hw/i386/microvm.h @@ -28,7 +28,6 @@ =20 /* Platform virtio definitions */ #define VIRTIO_MMIO_BASE 0xfeb00000 -#define VIRTIO_IRQ_BASE 5 #define VIRTIO_NUM_TRANSPORTS 8 #define VIRTIO_CMDLINE_MAXLEN 64 =20 @@ -59,6 +58,7 @@ struct MicrovmMachineState { bool auto_kernel_cmdline; =20 /* Machine state */ + uint32_t virtio_irq_base; bool kernel_cmdline_fixed; }; typedef struct MicrovmMachineState MicrovmMachineState; 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 Mon Apr 29 13:43:09 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=1600172832; cv=none; d=zohomail.com; s=zohoarc; b=nD7TOGDtigNo0xJooPYF7RR/6fBJs6H3ZpMvGDS7q4PizPaxwJCNQ/iYvzMBMLyQh+p9/6LR14Ly6HwhsDjvNWTfmgREgQkT54ue1OaZcYjq4KqUK3zg2/ezXQgKbGl9HNXHArygwGUbqdYik7gNn5j+y24YAqFfYgcZlIkCPIw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600172832; 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=FEtGRunTp6onzuQkVQ4O8ZMQ2CdwbYPjfyJj+wLqDJU=; b=V9oKKSo6F+XbhynpC/48/7NfBuUgv7/Fv6wgiMwAvpu7tdnGf+ybPdrTgYLDaRNh6k1CneUSN+itME/ydCEaPcu3rAvDVHV4XJ6dIpR9+4+fthPOT/YeUysl3Bd4pWBAnBEpwznbCGAqBtEA7EGYVQWgP9zf18yr5X2kzc1EpwY= 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 160017283249457.12948492411397; Tue, 15 Sep 2020 05:27:12 -0700 (PDT) Received: from localhost ([::1]:47310 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kIA3D-0006bb-0e for importer@patchew.org; Tue, 15 Sep 2020 08:27:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46678) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9nM-0004sq-TD for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:10:49 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:55414) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kI9nG-0007hl-Tc for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:10:48 -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-224-3U3nVXjHMy29y9Y8noHSXQ-1; Tue, 15 Sep 2020 08:09:32 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5706D802B48; Tue, 15 Sep 2020 12:09:31 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0F8DF1014161; Tue, 15 Sep 2020 12:09:22 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id D635040830; Tue, 15 Sep 2020 14:09:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171840; 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=FEtGRunTp6onzuQkVQ4O8ZMQ2CdwbYPjfyJj+wLqDJU=; b=hLI5j3kvHuZF3VqFmREc5/ASFHJbrmrD8K/ENCvlRSD9ZJztRdErZVVpKNt+9b2msbqFJS YLk/YTfsz4asPMkiIE18akhp4YCBm/fnTPRFtwoZhuVQEuyfvWvSYh7kVhFzp3jxs4vqUW 6SjzAkKRu4IkRVZMPm9hahtTxf5X8RU= X-MC-Unique: 3U3nVXjHMy29y9Y8noHSXQ-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 08/21] microvm/acpi: add minimal acpi support Date: Tue, 15 Sep 2020 14:08:56 +0200 Message-Id: <20200915120909.20838-9-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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.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=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/09/15 02:10:32 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-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 87593694eb0e..d75dcf8203b7 100644 --- a/include/hw/i386/microvm.h +++ b/include/hw/i386/microvm.h @@ -24,6 +24,7 @@ =20 #include "hw/boards.h" #include "hw/i386/x86.h" +#include "hw/acpi/acpi_dev_interface.h" #include "qom/object.h" =20 /* Platform virtio definitions */ @@ -31,6 +32,11 @@ #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" @@ -60,6 +66,9 @@ struct MicrovmMachineState { /* Machine state */ uint32_t virtio_irq_base; bool kernel_cmdline_fixed; + Notifier machine_done; + Notifier powerdown_req; + AcpiDeviceIf *acpi_dev; }; typedef struct MicrovmMachineState MicrovmMachineState; =20 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 Mon Apr 29 13:43:09 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=1600173210; cv=none; d=zohomail.com; s=zohoarc; b=I5mmEXUvoccz5QO/cBKYjlFcSP1ccKGMdn3VMznhKbNLDqZSJO3l6WHKoPOg5d1rXcHDYW8W9kvzyxzWIhhSpU8WatKnaFSgksECCeiqdfPCVsGC9TpLHyvLNBq1URGt44FDJv49RIoJx0aZ6V9BaVpuXC1YkatDtKrKtxGfxgA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600173210; 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=iR5379GqKX4z/URLkoo16wQl8XWq41aTTpXI5+Qn4oxFypUTDTYg+NxG6Dpx6Sd45Y+o/JP6J5r91YCS9syvn2MAmSo3xkpjSCDFmyrzj0EWqEIqU8kDdLlaFEWF6Bkz0RDGtouuNDqSrQXtCkV1bUn2HJmowtjausyI9HxyYDo= 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 1600173210788537.5782295087733; Tue, 15 Sep 2020 05:33:30 -0700 (PDT) Received: from localhost ([::1]:38934 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kIA9J-0006kj-Eh for importer@patchew.org; Tue, 15 Sep 2020 08:33:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46952) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9nr-0005Iy-AN for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:11:19 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:49581) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kI9na-0007p2-Qz for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:11:15 -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-140-FO519XIRON223aaivj0XvA-1; Tue, 15 Sep 2020 08:09:24 -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 9F37F1009454; Tue, 15 Sep 2020 12:09:23 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1E1FB75138; Tue, 15 Sep 2020 12:09:23 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id DF93B40839; Tue, 15 Sep 2020 14:09:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171861; 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=AfaWx+prRkTp3bjUy/cf91tnmf7xnBWgptmdk9toHhsJtmLBvra1Qw2a0K2EtPrwUOWuNH 2LNqCHHX6Hdrbt0Owk2GNrcW6bJti1lCExw8b4KPJdoBL6Ou7F/Ss88n+ErF9ZqvG4dDm/ gZ+oS5wd2GOTQmI0vpWCav9lCvRXI1w= X-MC-Unique: FO519XIRON223aaivj0XvA-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 09/21] microvm/acpi: add acpi_dsdt_add_virtio() for x86 Date: Tue, 15 Sep 2020 14:08:57 +0200 Message-Id: <20200915120909.20838-10-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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.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/09/15 02:23:19 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-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 Mon Apr 29 13:43:09 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=1600172239; cv=none; d=zohomail.com; s=zohoarc; b=LtlqWD0P+BIHo/KO8oid7CT+amZXyRaVJCiwPDnQLWOWiU6cPb7Cf9xCc3U75TUqscKN61DqWH9I2g8vkYuo/G4RhBWqRT//pSjOKICSrbVcQXzcz/5f+FNTetbpCBnyy1YXxhY3SPVMXd0qnhSUR9K+9Rb2m4JSkllEtz1mNKk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600172239; 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=HFgmLYi6GkXyz5dimDsj4cAOL8+a8rK3PbfU3CfRzzUPwrF5Ae7cWcXEBroYwzwpRSY2FmKuj0U155UUSejFTY+90EnLw/XMk45GqEx/X3n0801A2E0LJRaISqXu7SAkXtwZVADv55FXEN61TGrDEqt5qco9pDhMYCGgi7jphrg= 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 1600172239394454.45584138838694; Tue, 15 Sep 2020 05:17:19 -0700 (PDT) Received: from localhost ([::1]:48828 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kI9ta-0003YX-3H for importer@patchew.org; Tue, 15 Sep 2020 08:17:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46574) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9nH-0004pK-8B for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:10:46 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:49097) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kI9nB-0007gj-7Q for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:10:42 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-472-1lSCAGw_M7CRskbdED_EdQ-1; Tue, 15 Sep 2020 08:09:24 -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 7974918BA284; Tue, 15 Sep 2020 12:09:23 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 231B75DE47; Tue, 15 Sep 2020 12:09:23 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id E8E504083F; Tue, 15 Sep 2020 14:09:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171834; 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=ElLj/4CYAPTKyPtwEKzUXBAkV0HYWSnKM+bNTS/CPZQ3d5aTqKaq9NLTst4BqdfRelwEGS DwEAwN+osWbs4B6WcVM3XkgmAObSXlD0sSgN3C7zTxla7emUzgZXVdYQjtSKhVumDUTxcU ph/1LoOlql8IpDaw/xkClcVRErpimeU= X-MC-Unique: 1lSCAGw_M7CRskbdED_EdQ-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 10/21] microvm/acpi: use GSI 16-23 for virtio Date: Tue, 15 Sep 2020 14:08:58 +0200 Message-Id: <20200915120909.20838-11-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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/09/15 02:10:32 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-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 Mon Apr 29 13:43:09 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=1600172291; cv=none; d=zohomail.com; s=zohoarc; b=NORqIEEeK6mLnm75or5yo4JJchxNJnX4s5fvyNTDYbWKjPDFk16qyQjlvvqUTE9fpCkE6Cq6XyBstKxib5+zMZCV1SXOl17cGgkQBCtPkEHhmrUyWbhPrbamIac3OJCxonF2yXVKI3lyglwuBPWLKe2+ju8OvTEQ2A1zU1I4XPM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600172291; 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=Mhl8v2yFjMFLKxDLyHc4g/0SExd3T3HmoDrjUE1tIHQ=; b=VPjP9ku4MxomMm72DM06doftff+l5Pou5hYjATfWzHiJsYnaAU0T9DtsNxO2swM0AL9w5LvbfJLfsPB/lYEl7e/9PO0B0gYasqo3gJnnR9MZdfTG8jjnHZwtjpvVd2YH/hXPmuvnIF4EkT1eWD7Da5cKS3DVdKF8pqfKryRlHaw= 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 1600172291591507.15224863307185; Tue, 15 Sep 2020 05:18:11 -0700 (PDT) Received: from localhost ([::1]:50018 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kI9uS-00043g-ST for importer@patchew.org; Tue, 15 Sep 2020 08:18:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46956) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9nr-0005JP-Hq for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:11:19 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:42659 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 1kI9nb-0007pY-BA for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:11:17 -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-149-eGao69AbP5WOkOtnTjg_Aw-1; Tue, 15 Sep 2020 08:09:25 -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 C49171091068; Tue, 15 Sep 2020 12:09:23 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 79C9C5DE1D; Tue, 15 Sep 2020 12:09:23 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id F306140840; Tue, 15 Sep 2020 14:09:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171861; 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=Mhl8v2yFjMFLKxDLyHc4g/0SExd3T3HmoDrjUE1tIHQ=; b=JNov6DtqqPPcEo3gqu+kbr8TcP4fOfaAgy1sgdR+jI5B06UEFROgPzj5MZCzJF6kUn1NNH LJ//S1SxvehG5St6PPigiz0oizS0dmwHKvdTFY+hKi55z16AUJBbk1wf7x5rnuIDy8+mYv Ee+Bs2KKRedbA6peTJg4lFOe0jK2SLg= X-MC-Unique: eGao69AbP5WOkOtnTjg_Aw-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 11/21] microvm/acpi: use seabios with acpi=on Date: Tue, 15 Sep 2020 14:08:59 +0200 Message-Id: <20200915120909.20838-12-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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.120; envelope-from=kraxel@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/15 02:11:06 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-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 Mon Apr 29 13:43:09 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=1600171957; cv=none; d=zohomail.com; s=zohoarc; b=NeAu2f7r2bAKOneFNCnkZvUyzwWVaWgbsRvrQDSOyAaEpz3tCKGezvsvjjRZwqHpbmIN4Aajfw0WeCEt3WUWBwHLbAl3MPQdOiD/FvojfaJMVi4UKyCBmTDyj+aOlpaYLSHgN99FSm9bI5V/vjvSpLZD28TYJfsymUc60RVcPyI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600171957; 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=PRyKGHLsJskIKUHli+58EMbYUqU6UsfTTA6h02HEG90=; b=FFj5U77qrsknXHe8PduG4o5zsaSD8ZluNVO2lrevQTww4boE4xCvz3ROdTvVN9yAf/Du2o3FoX2xj0RandWW5dN+1o3gn4wvkbbKJm+qmsbo6YszGl7b6vynQAAVjprCGGnDH6fMBLtyveTFwiyfXlxQoPe6hE06KRbJYeOwlqk= 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 1600171957444316.3578453566065; Tue, 15 Sep 2020 05:12:37 -0700 (PDT) Received: from localhost ([::1]:35906 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kI9p6-0006J3-9L for importer@patchew.org; Tue, 15 Sep 2020 08:12:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46032) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9mF-0003uL-Bn for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:09:39 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:32380) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kI9mD-0007SX-Nt for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:09:39 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-315-YWWPk67dNImDxVM-L_znBQ-1; Tue, 15 Sep 2020 08:09:33 -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 4FC3018BA28F; Tue, 15 Sep 2020 12:09:32 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 808CD5F704; Tue, 15 Sep 2020 12:09:23 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 0740040844; Tue, 15 Sep 2020 14:09:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171775; 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=PRyKGHLsJskIKUHli+58EMbYUqU6UsfTTA6h02HEG90=; b=PjKDvk7+b0fxXduhB2rf503YaHSpVXcKb7+T0woV0iGoPoZlM7XcijB/qdaYv5T0qHabUY m5MGivliv6G9416kpptD/rIasH3lQKynXhpdKJVID/npA8don+uvrFL7ug7dnE5IGVx/v9 woWYsZtayjPyzmOKHwWndbdrxWhMrv8= X-MC-Unique: YWWPk67dNImDxVM-L_znBQ-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 12/21] microvm/acpi: disable virtio-mmio cmdline hack Date: Tue, 15 Sep 2020 14:09:00 +0200 Message-Id: <20200915120909.20838-13-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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/09/15 02:10:32 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-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 Mon Apr 29 13:43:09 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=1600172712; cv=none; d=zohomail.com; s=zohoarc; b=DlCusv4msAmbYqW6WhtWsjgzYZwsjWA+mYbAaCNn2WmzakstcKS0IYOn5IH9T9rj5CnU3SMoFKr5mp3tmbEXNrWcRV08eTONtrxncj11hz1qa/VQOtRdZYETuhClu2z0reO2XgNz4MewFS7+s665eEuxn7+zhIp7Koj4hBUZ7UU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600172712; 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=l8Ud8iozTU5Im+G80wvGvhC9Rn5W0PW1auciivrLPfY=; b=e/y9bSoTPc9UKJMntsBRpb5w1IvWhFKccGx3UXagqTdh5ZNOC8eekNOiFabe0BZSrhX1IUPPr2Mop7KwEhuU9Bx1bkjyGJvWnRw6EGn4fHLJ+AE9sUi26nH/yxBhmR/aKVx8O6pE/GhOsZEzdgfF3CuepHhs6KxfkiaHmcZiqAE= 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 1600172712245682.755308087212; Tue, 15 Sep 2020 05:25:12 -0700 (PDT) Received: from localhost ([::1]:41504 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kIA1H-00041Z-3b for importer@patchew.org; Tue, 15 Sep 2020 08:25:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46682) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9nN-0004t3-2G for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:10:49 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:57867) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kI9nI-0007iQ-Ko for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:10:48 -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-152-BvPwM7fgPxW897GTd-PIWQ-1; Tue, 15 Sep 2020 08:09:33 -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 3F4031009459; Tue, 15 Sep 2020 12:09:32 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0D4065FC16; Tue, 15 Sep 2020 12:09:24 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 123C040845; Tue, 15 Sep 2020 14:09:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171843; 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=l8Ud8iozTU5Im+G80wvGvhC9Rn5W0PW1auciivrLPfY=; b=Zx6gZFJBLALHJ/f5NZBPPl+bBIywFvRlieduOFvLOCKZlP6KKsGoW4TDh5xXEnsPP1m8kg CZUGHfTeP3rkuSKFUx/97r+0iPC6xDUKlMXQXXPr9HLFvvMgPD1oG/58FV/aC9y+pVYAwO 0O1InTU3Z73W/d6Kj4x2A6tkcsvVy7k= X-MC-Unique: BvPwM7fgPxW897GTd-PIWQ-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 13/21] x86: constify x86_machine_is_*_enabled Date: Tue, 15 Sep 2020 14:09:01 +0200 Message-Id: <20200915120909.20838-14-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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-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=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/09/15 02:10:32 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , =?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) Signed-off-by: Gerd Hoffmann Reviewed-by: Sergio Lopez Reviewed-by: Igor Mammedov Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- 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 1a188a7deabb..25c904638c11 100644 --- a/include/hw/i386/x86.h +++ b/include/hw/i386/x86.h @@ -100,8 +100,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 c1954db152eb..e2a5005f389c 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -821,7 +821,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 @@ -863,7 +863,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 Mon Apr 29 13:43:09 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=1600172876; cv=none; d=zohomail.com; s=zohoarc; b=bSdCki604B37fZFGdQnawtvSn619vfDALPlTTysCYPzyXRNZslcxx46bfJjX5JALMwQG9/LlNY6wTr8/C+V3bKTt0GIAHme2ZtDfmSElaIv2zvi4nykl8JDmPLyDHEfJPt3vfQjWcAlT0LgRicV7+T8zb6QzgS4EAOIJ3lgabT8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600172876; 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=ean5dyTL40NciaUt48ZrGJXBcWkfvUa3rFymcAJOm50=; b=QN4B0L7DftGUNK7HW6+jw3B3052m1yVEGp08+SKPzdgS/lEd9N6VzcCoFItfICKwEqKtfS+BXgZU0ExiUlW89k3sx6L6O3O5IBAK24T+MH40j66ZvTlGLuRoEjWVZCDpIJpUfS6VCI8RVDrHPKQsMuBjIpxey/1zKnh+Aq2ytT4= 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 1600172876649561.4981784328252; Tue, 15 Sep 2020 05:27:56 -0700 (PDT) Received: from localhost ([::1]:49666 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kIA3v-0007io-C1 for importer@patchew.org; Tue, 15 Sep 2020 08:27:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46826) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9ne-0005CT-Nr for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:11:07 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:32162) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kI9na-0007ow-De for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:11:06 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-142-VnvXTgokM7STeoJayhstKg-1; Tue, 15 Sep 2020 08:09:33 -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 D1BF71091069; Tue, 15 Sep 2020 12:09:31 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1266E19C59; Tue, 15 Sep 2020 12:09:24 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 29C0C40846; Tue, 15 Sep 2020 14:09:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171861; 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=ean5dyTL40NciaUt48ZrGJXBcWkfvUa3rFymcAJOm50=; b=QuHP4+4gL7XrZDlq3vu9WAW0ZlUjnudTmuGWAM1KFJmzTDNSdsYVmWvNl8sHu9dGEuGF+W ls6zcVp8cWQPFNVKnkQ5r/MQaE4qzz02jUI4/warhE8SZYXJGCnYyvbgGZQNhOEgP4Jpm/ XuULVN+oNnqnhOi/bUngKTqgtBuEdA4= X-MC-Unique: VnvXTgokM7STeoJayhstKg-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 14/21] x86: move acpi_dev from pc/microvm Date: Tue, 15 Sep 2020 14:09:02 +0200 Message-Id: <20200915120909.20838-15-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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=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/09/15 02:23:19 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-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: Sergio Lopez Reviewed-by: Igor Mammedov --- 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 d75dcf8203b7..be2d95af4d74 100644 --- a/include/hw/i386/microvm.h +++ b/include/hw/i386/microvm.h @@ -68,7 +68,6 @@ struct MicrovmMachineState { bool kernel_cmdline_fixed; Notifier machine_done; Notifier powerdown_req; - AcpiDeviceIf *acpi_dev; }; typedef struct MicrovmMachineState MicrovmMachineState; =20 diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 421a77acc223..c14e14dfe0c7 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -30,7 +30,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 25c904638c11..f540e801a837 100644 --- a/include/hw/i386/x86.h +++ b/include/hw/i386/x86.h @@ -52,6 +52,7 @@ struct X86MachineState { 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 7a5a8b3521b0..0e0535d2e30c 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 d11daacc23cf..a18140421e92 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 33fa035fb7fe..6f3e78bb6053 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 Mon Apr 29 13:43:09 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=1600173237; cv=none; d=zohomail.com; s=zohoarc; b=EFf060c2SZJ/K0w0Zot6LVQWNtTzNf+kIiFX8btTYiuPsb8FO7pbgvXIRYVY53GEQA3HvaqiRPH5ZFqFKeVmj3auk940N1rB6Ljsnb+d4dOgK+WzIjJUPgzkaBDMy7b0imLX/lRKuX/ZDiql6aHAGOAcp7mvTl1r/et9oypruSo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600173237; 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=1PVZpNApBt9v6K9olQ6LV/ySWu0eEH5pWby9owAjagY=; b=dBUHk8D1aFxFixTwlOV7Q1zS9nVN2/LVTpzpOgqSqZhHhe3RwCPIFYRscK5Swt/FyqHkncxt6CwlcMlY6FktzjpO23VMUKXKw6UVKVLj5aWeGGqLEVtkDwMFOIphFZbELZuRCrKDNIQ1qFSWwbMZd2Mc99vUuQdcfCqUqcleC3Y= 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 1600173237427904.0950845915386; Tue, 15 Sep 2020 05:33:57 -0700 (PDT) Received: from localhost ([::1]:40294 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kIA9j-0007L1-7g for importer@patchew.org; Tue, 15 Sep 2020 08:33:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46954) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9nr-0005JO-H3 for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:11:19 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:21478) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kI9nb-0007pT-CX for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:11:17 -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-229-QG2CAq8VMfW9i1hO3tRbAg-1; Tue, 15 Sep 2020 08:09:26 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id EC6311009441; Tue, 15 Sep 2020 12:09:24 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id F2D2E5DE47; Tue, 15 Sep 2020 12:09:23 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 37C7140856; Tue, 15 Sep 2020 14:09:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171861; 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=1PVZpNApBt9v6K9olQ6LV/ySWu0eEH5pWby9owAjagY=; b=OsfcziBhFeKJW96EN83vEzT/Kug3C3zromVNNCVL9eZNtDX13P6Jv1K2StC+nWbO1fQt8B bA4Oobt7xky3Mk32c8LxFl2RTpr8vsQp6s4YSfLKZAhPch5B1DRysjHVkzQu7KXiwFHNqL Wxfl2ZlGTnbv2rAf+WUuw7EJ97MKEpU= X-MC-Unique: QG2CAq8VMfW9i1hO3tRbAg-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 15/21] x86: move cpu hotplug from pc to x86 Date: Tue, 15 Sep 2020 14:09:03 +0200 Message-Id: <20200915120909.20838-16-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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=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/09/15 02:23:19 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-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 | 281 +----------------------------------------- hw/i386/x86.c | 271 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 286 insertions(+), 276 deletions(-) diff --git a/include/hw/i386/x86.h b/include/hw/i386/x86.h index f540e801a837..0eef9fb0c0d7 100644 --- a/include/hw/i386/x86.h +++ b/include/hw/i386/x86.h @@ -92,6 +92,16 @@ CpuInstanceProperties x86_cpu_index_to_props(MachineStat= e *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 a18140421e92..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,264 +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; - - /* - * 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 x86_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); - - x86_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 */ - x86_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) { @@ -1699,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); @@ -1712,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); @@ -1725,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); @@ -1741,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 e2a5005f389c..c2ea989579c9 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" @@ -137,6 +138,276 @@ void x86_cpus_init(X86MachineState *x86ms, int defaul= t_cpu_version) } } =20 +void x86_rtc_set_cpus_count(ISADevice *rtc, uint16_t cpus_count) +{ + if (cpus_count > 0xff) { + /* + * If the number of CPUs can't be represented in 8 bits, the + * BIOS must use "FW_CFG_NB_CPUS". Set RTC field to 0 just + * to make old BIOSes fail more predictably. + */ + rtc_set_memory(rtc, 0x5f, 0); + } else { + rtc_set_memory(rtc, 0x5f, cpus_count - 1); + } +} + +static int x86_apic_cmp(const void *a, const void *b) +{ + CPUArchId *apic_a =3D (CPUArchId *)a; + CPUArchId *apic_b =3D (CPUArchId *)b; + + return apic_a->arch_id - apic_b->arch_id; +} + +/* + * returns pointer to CPUArchId descriptor that matches CPU's apic_id + * in ms->possible_cpus->cpus, if ms->possible_cpus->cpus has no + * entry corresponding to CPU's apic_id returns NULL. + */ +CPUArchId *x86_find_cpu_slot(MachineState *ms, uint32_t id, int *idx) +{ + CPUArchId apic_id, *found_cpu; + + apic_id.arch_id =3D id; + found_cpu =3D bsearch(&apic_id, ms->possible_cpus->cpus, + ms->possible_cpus->len, sizeof(*ms->possible_cpus->cpus), + x86_apic_cmp); + if (found_cpu && idx) { + *idx =3D found_cpu - ms->possible_cpus->cpus; + } + return found_cpu; +} + +void x86_cpu_plug(HotplugHandler *hotplug_dev, + DeviceState *dev, Error **errp) +{ + CPUArchId *found_cpu; + Error *local_err =3D NULL; + X86CPU *cpu =3D X86_CPU(dev); + X86MachineState *x86ms =3D X86_MACHINE(hotplug_dev); + + if (x86ms->acpi_dev) { + hotplug_handler_plug(x86ms->acpi_dev, dev, &local_err); + if (local_err) { + goto out; + } + } + + /* increment the number of CPUs */ + x86ms->boot_cpus++; + if (x86ms->rtc) { + x86_rtc_set_cpus_count(x86ms->rtc, x86ms->boot_cpus); + } + if (x86ms->fw_cfg) { + fw_cfg_modify_i16(x86ms->fw_cfg, FW_CFG_NB_CPUS, x86ms->boot_cpus); + } + + found_cpu =3D x86_find_cpu_slot(MACHINE(x86ms), cpu->apic_id, NULL); + found_cpu->cpu =3D OBJECT(dev); +out: + error_propagate(errp, local_err); +} + +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); +} + +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; + + /* + * 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 x86_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); + + x86_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 */ + x86_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); +} + CpuInstanceProperties x86_cpu_index_to_props(MachineState *ms, unsigned cpu_index) { --=20 2.27.0 From nobody Mon Apr 29 13:43:09 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=1600173082; cv=none; d=zohomail.com; s=zohoarc; b=d+rVuJEGZ9sbo9lyfXpv6bjLcsLZTdjP3REf0cmEK30SAMdkvodS7YuoCp/UGgDhsNelQXdiofZZ6iWAK+IAYW9A3SAeC4RFtbUYyEqtCHpmcS2CMTeBXHE7HBgJ/bs1zx7l9XaOJauCMmWBBAqhtakcv02YqsTQ3kZjTHT3J30= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600173082; 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=7WupihrubTyVUDCyRuf11xOUpe+0jDZC5WwdAXgUf0U=; b=j7egsnWbJOh6tgqS0gwcgkuGiilOQmk5zXxeBaHgWRU5nO/JZVfYDs8kMeUV+gZj+mu9Ov2sqIXRW7EWKE7tDMGKmQ3cGP5p3sEfPBMLT23DvZxRBnMPLEPReFpiH9eW76rGTVpwasPa7fw8mUQ/Ea7001Lc/Y60w7ei/J3INw4= 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 1600173082082938.1124714396641; Tue, 15 Sep 2020 05:31:22 -0700 (PDT) Received: from localhost ([::1]:60182 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kIA7E-0003jX-Py for importer@patchew.org; Tue, 15 Sep 2020 08:31:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46898) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9nm-0005GO-5C for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:11:14 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:51541) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kI9na-0007p6-Uo for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:11:09 -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-D5BgoJ_gOT-qmaCj06bs5w-1; Tue, 15 Sep 2020 08:09:33 -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 B781F1091066; Tue, 15 Sep 2020 12:09:31 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 63BC11975F; Tue, 15 Sep 2020 12:09:24 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 411F540BFB; Tue, 15 Sep 2020 14:09:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171861; 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=7WupihrubTyVUDCyRuf11xOUpe+0jDZC5WwdAXgUf0U=; b=boZbm/GslBfSQLvLC39r08jA0jTiCCUvtyIII2ye66uqSYj4qDArICjShpI8TnXc1GgWGv giz7TESaHWXrYkRwixpT0pfEpdhyxG5dEpsKTAJPwX9eUYKtZWuGXc6X6sTDq8srh7PN0O AZ2ZkGj83sP0djD+7Syef2DncaO5u+g= X-MC-Unique: D5BgoJ_gOT-qmaCj06bs5w-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 16/21] microvm: wire up hotplug Date: Tue, 15 Sep 2020 14:09:04 +0200 Message-Id: <20200915120909.20838-17-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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=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/09/15 02:23:19 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-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 Mon Apr 29 13:43:09 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=1600172122; cv=none; d=zohomail.com; s=zohoarc; b=JAQO6jrthpxBT/N7miggoiWc4lZXX7UFyQAY/RWGnpukA4yzhPNQ1/c6ZF/3V4mKWB0dJSfTGkiuTuqEXP80qDBG73x+GjoKbcJyTz8llUOOQqI65SfBt+kprEOpaKRC0wja0BoRTWyAP+82oD5jZZ7G4Nf18JfBLNbrXlvo1x8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600172122; 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=By6si0Z1Rs77CyAkPpTAvIkSeHU/0uK7kmHPOnZ4I+5mIhbIAnPFvgz1Ab0k3HG0FKU2wT0EpTcgCN/IiIbNAtf7uEDGfI2zTTedfoX0dNCP7WN9rGRqaD+pZWwh/wUYtw76Z76L786Dig7zft4l3pvPRXlEnLZ7pMzZmbOPOwI= 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 1600172122058494.4739110874684; Tue, 15 Sep 2020 05:15:22 -0700 (PDT) Received: from localhost ([::1]:44274 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kI9rk-0001TL-KV for importer@patchew.org; Tue, 15 Sep 2020 08:15:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46478) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9nD-0004no-Tb for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:10:40 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:38908) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kI9nB-0007gG-3S for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:10:39 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-214-V9BPZ5hfNo6jDbGDMAyNYw-1; Tue, 15 Sep 2020 08:09:25 -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 76AA064087; Tue, 15 Sep 2020 12:09:24 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1AA1C75138; Tue, 15 Sep 2020 12:09:24 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 4A18640BFC; Tue, 15 Sep 2020 14:09:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171831; 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=Vmy76l+XquC0ETlELTvd/NlTIDCmxrQiALkhtJ0qSqwhTAV+4FM6FdqRrPbzAo2nF59BTm 650Fr9Ozqkgn84+hOSCU9DAPqT8fyAKVWVkMw2Cxord+86WBtuU+KdLAbv8ITfVHrbl0In P4V/Oy7Wm1w7AMQ2Gt0CFECYXLxVmkM= X-MC-Unique: V9BPZ5hfNo6jDbGDMAyNYw-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 17/21] tests/acpi: allow microvm test data updates. Date: Tue, 15 Sep 2020 14:09:05 +0200 Message-Id: <20200915120909.20838-18-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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.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=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/09/15 02:10:32 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-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 Mon Apr 29 13:43:09 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=1600172583; cv=none; d=zohomail.com; s=zohoarc; b=kVEoGVhzEpBETvFVdnF6JBWWcubI0NJHd8cq2QZOoloP0ZrCqseXDPyh9tH3q+t4bs+6z5nZFRuQA58olMVFAZcUglNsjbXT64AYjsfpNx4LLPeEA/AvFv9m86Xzt4eaocrxFpbo3mGG3BQY1oixVIMkv+Bs/1RJRRfbhLySqbQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600172583; 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=CjMaQq5b7d6xZab6r1I8iIsLu0kAb+RnTVO4UWJ1lpA=; b=CgMftSEFQXc+vxSMqll8ZiTCZ6YhcazkuwX8LIMgBBnlSrEUTcX7jAWVHxwESbAejsmv1jdGfMZNlbnrVNPqU/wtQrBDgqSkJiHHrsmhjESCL0d1e4FcdwN6g438CODO3GKL0kOegqnPkfWYGl7j+3TLjNYq1pEbUaQ+HI+/ycA= 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 1600172583002821.1920683079803; Tue, 15 Sep 2020 05:23:03 -0700 (PDT) Received: from localhost ([::1]:33580 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kI9zB-0000fr-Jz for importer@patchew.org; Tue, 15 Sep 2020 08:23:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46668) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9nM-0004rT-8g for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:10:48 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:59895) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kI9nI-0007iW-KF for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:10:47 -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-313-_npvyFLdPbKjl14jxEqXnQ-1; Tue, 15 Sep 2020 08:09:33 -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 545C31009440; Tue, 15 Sep 2020 12:09:32 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id AA09A51574; Tue, 15 Sep 2020 12:09:24 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 533A340BFD; Tue, 15 Sep 2020 14:09:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171843; 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=CjMaQq5b7d6xZab6r1I8iIsLu0kAb+RnTVO4UWJ1lpA=; b=BLh9UdSqlc/PW3+kZdXmoFiJS9mQ7LHQ35kVxT+MlQBqw/hpuEnU3jGzyujfUTjpEjn1yp uAijXJyNqJ2Xti37UCo2X8/V4VyvzL+EhrJwX+4TwhcVk3JvUc352bfbMIFc3lW6lDq1Tx JTt8s/4O1uR6rDc5dKjuLRj8Hd7cQ30= X-MC-Unique: _npvyFLdPbKjl14jxEqXnQ-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 18/21] tests/acpi: allow override blkdev Date: Tue, 15 Sep 2020 14:09:06 +0200 Message-Id: <20200915120909.20838-19-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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.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=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/09/15 02:10:32 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-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 504b810af583..1779af1cc889 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; @@ -666,9 +667,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 Mon Apr 29 13:43:09 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=1600172365; cv=none; d=zohomail.com; s=zohoarc; b=IwvlSnEQRNSgK0sODTg4htgICubOTmbZztYXuPi7wpvjDlJYDpZzNOiqyUz7RcBbs9KguG2fHDn3y3gxtxF+z0GTFwLBVqTwvm03uluvg5gMx/65feF/RwLKyGSCOaN99KlWQKd6AgTczjdr+nZmJyxVSifgYpHUsMvkgxgQ6Xw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600172365; 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=f0j/2GpDmP1B6JzBQEJ4sMlLnicgwb2jxZZq7qWpABA=; b=mHy0hz6DIaRM5Kzfue+swtz1mFh7aJAiUBpZm0sr7eWInuVSLxKo10BW3f056Q+N4hOGdi4fuDWCCCJHjz1nnvpiatll1aau2OVlr6Ue2e9uD1TzEGtAQ/M0OSPYu/0yaxVOUEmaXMDPW90AgjxP0jDIGqwOXjpg49XqbsMBSbQ= 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 1600172365555365.6319354948124; Tue, 15 Sep 2020 05:19:25 -0700 (PDT) Received: from localhost ([::1]:53730 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kI9vg-0005eX-5z for importer@patchew.org; Tue, 15 Sep 2020 08:19:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46570) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9nH-0004pI-7T for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:10:46 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:23103 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 1kI9nB-0007go-71 for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:10:41 -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-216-XpK5ZRWPOmuQPMOQPwAFGA-1; Tue, 15 Sep 2020 08:09:26 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C3AB564089; Tue, 15 Sep 2020 12:09:24 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5D5D15DE4A; Tue, 15 Sep 2020 12:09:24 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 5C3F140BFE; Tue, 15 Sep 2020 14:09:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171834; 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=f0j/2GpDmP1B6JzBQEJ4sMlLnicgwb2jxZZq7qWpABA=; b=U1TKiD+mlqedbZ0wqHGZY9e5qFwdgxHz8BHpbq97HKdhNpbt4v/OlLof3oMdi6/2yPQBC5 wkQiCqAdsNZmScoiXjFkIzqjIE6QOyYu0TFJjTvjusQMWFrNKaeSvC/oD5I/vcEGYihnYw wZJYTSuxfR1Ah04RzQ6ZMd5JtEjjo88= X-MC-Unique: XpK5ZRWPOmuQPMOQPwAFGA-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 19/21] tests/acpi: add microvm test Date: Tue, 15 Sep 2020 14:09:07 +0200 Message-Id: <20200915120909.20838-20-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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.120; envelope-from=kraxel@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/15 02:11:06 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-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 1779af1cc889..a9c8d478aee3 100644 --- a/tests/qtest/bios-tables-test.c +++ b/tests/qtest/bios-tables-test.c @@ -1044,6 +1044,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 { @@ -1161,6 +1175,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 Mon Apr 29 13:43:09 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=1600171937; cv=none; d=zohomail.com; s=zohoarc; b=giS/dgeIQ88PlYeoJqrye9vMFRQrWJNszbTatNr6JCRoZDyeIK1yhKB/u6J7RuMXjcw9ZnlHvKnub+4Q/kqwGrvtN17BrmXJihKXMQst8OoI124MuSqL6vFM/pcEbiKS0ZEKE5qTz6CmcBV2ZAbBcaXBbIipmSGLVD9/l19I3xU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600171937; 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=jP/dJ1tvDR9BNoWspv91TEBf7Q3ITu/vyMHqGO6pwCDL3BmwBAqDxFyxkdNmwij5XJiz1tE92MEd/PXU6udJ/criwDvW3IW6+v1b5DFOeI+SQijcSCCa/sJfOm6I640YQZWyBsDSgvmlnmLF7m8vFotG3Y3xsPmJ+R2QW0dhfGM= 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 1600171937488645.9343347470038; Tue, 15 Sep 2020 05:12:17 -0700 (PDT) Received: from localhost ([::1]:35170 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kI9ol-00060w-J8 for importer@patchew.org; Tue, 15 Sep 2020 08:12:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46080) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9mG-0003ux-BF for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:09:40 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:52654) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kI9mD-0007S2-Nl for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:09:40 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-253-P6HYTBTkPheSm9LcE4SqbQ-1; Tue, 15 Sep 2020 08:09:32 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0ACD918BA280; Tue, 15 Sep 2020 12:09:31 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id E9F6B1002393; Tue, 15 Sep 2020 12:09:24 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 656F040C06; Tue, 15 Sep 2020 14:09:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171774; 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=NUVz5kBbCRSPxRKAPpC9Lmoy8xWTSaGoU168QbnaK6e079SifBt9wYbkwkQMKEf4uZ9fxE LzM/oFrmdFPJsXMkyovurLPE3X41r+Jd4hluDQZiJfqPuhxx+CTKJp6Fdj6WViryr5Sgz5 CUEk2ki3yRGNsOtlunrNmi5B3GOP5LY= X-MC-Unique: P6HYTBTkPheSm9LcE4SqbQ-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 20/21] tests/acpi: update expected data files for microvm Date: Tue, 15 Sep 2020 14:09:08 +0200 Message-Id: <20200915120909.20838-21-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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/09/15 02:10:32 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-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 (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 1600171969238913.3606109651062; Tue, 15 Sep 2020 05:12:49 -0700 (PDT) Received: from localhost ([::1]:37336 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kI9pI-0006to-4t for importer@patchew.org; Tue, 15 Sep 2020 08:12:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46484) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9nE-0004np-3w for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:10:40 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:30553 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 1kI9nB-0007gt-4o for qemu-devel@nongnu.org; Tue, 15 Sep 2020 08:10:39 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-70-zwa08wHdMRuRVpWJ_eAiKg-1; Tue, 15 Sep 2020 08:09:27 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 76D1A64086; Tue, 15 Sep 2020 12:09:25 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-112-85.ams2.redhat.com [10.36.112.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2E9F87512A; Tue, 15 Sep 2020 12:09:25 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 6EBD940C07; Tue, 15 Sep 2020 14:09:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600171834; 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=TGos9Q6BbkzS4hgAU4ify92YUlJ0vxyK/3DZMvE0+9Q=; b=aJx1tXGIeqJO1otJcwCmgkoQkHQ0Nq6tRHA/Sid1HGsUxDfnVASo8Yx2bWdjR4/7zJZYY8 6J1hlSHeN3O2+7sSAxc7skOD4ruZkOxFT1nqd3O0fYIEJqB4UpsIc18NZr3K+KOx9A0ZKz 92KImgBbe8Sden7VjBS8/bKA/bZb08s= X-MC-Unique: zwa08wHdMRuRVpWJ_eAiKg-1 From: Gerd Hoffmann To: qemu-devel@nongnu.org Subject: [PATCH v8 21/21] microvm: enable ramfb Date: Tue, 15 Sep 2020 14:09:09 +0200 Message-Id: <20200915120909.20838-22-kraxel@redhat.com> In-Reply-To: <20200915120909.20838-1-kraxel@redhat.com> References: <20200915120909.20838-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.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/09/15 02:11:06 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, 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 , Paolo Bonzini , Igor Mammedov , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Gerd Hoffmann --- hw/i386/microvm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index 8de8ca864963..60d32722301f 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -39,6 +39,7 @@ #include "hw/timer/i8254.h" #include "hw/rtc/mc146818rtc.h" #include "hw/char/serial.h" +#include "hw/display/ramfb.h" #include "hw/i386/topology.h" #include "hw/i386/e820_memory_layout.h" #include "hw/i386/fw_cfg.h" @@ -604,6 +605,8 @@ static void microvm_class_init(ObjectClass *oc, void *d= ata) object_class_property_set_description(oc, MICROVM_MACHINE_AUTO_KERNEL_CMDLINE, "Set off to disable adding virtio-mmio devices to the kernel cmdli= ne"); + + machine_class_allow_dynamic_sysbus_dev(mc, TYPE_RAMFB_DEVICE); } =20 static const TypeInfo microvm_machine_info =3D { --=20 2.27.0