From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.groups.io with SMTP id smtpd.web11.4637.1630481108614867750 for ; Wed, 01 Sep 2021 00:25:09 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=OhyiAbKD; spf=pass (domain: redhat.com, ip: 216.205.24.124, mailfrom: kraxel@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1630481107; 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: in-reply-to:in-reply-to:references:references; bh=wfavB80DaKh0azoL0lGLXw3Ej6uTIO8RCw1VS25eUuo=; b=OhyiAbKD2fgoDJGq6AUxfPzwltmnoC7XzTClidGdZ2AmOHwEK5PA8qnro98x3Dxmn3qm7t mC8rPfy6PrIlnuimsiNffLCBMY31iUt8+vopp+veWFiHvs4BUmpJTM7cWmzL3/E7ptTSLT AWEzHllEJnu9KDb+7OoL4hPy9YCBbKI= 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-215-HBzg9aILPaqBoqpH5pfzuQ-1; Wed, 01 Sep 2021 03:25:04 -0400 X-MC-Unique: HBzg9aILPaqBoqpH5pfzuQ-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D18A9801B3D; Wed, 1 Sep 2021 07:25:02 +0000 (UTC) Received: from sirius.home.kraxel.org (unknown [10.39.192.91]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 648441981C; Wed, 1 Sep 2021 07:24:59 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id DFEA718000A7; Wed, 1 Sep 2021 09:24:57 +0200 (CEST) Date: Wed, 1 Sep 2021 09:24:57 +0200 From: "Gerd Hoffmann" To: "Yao, Jiewen" Cc: "devel@edk2.groups.io" , =?utf-8?Q?Marc-Andr=C3=A9?= Lureau , Anthony Perard , Ard Biesheuvel , "Justen, Jordan L" , Julien Grall , Stefan Berger Subject: Re: [PATCH 00/17] [RFC] OvmfPkg: Add support for microvm machine type Message-ID: <20210901072457.l57jgufle2y47tne@sirius.home.kraxel.org> References: <20210831095714.2834550-1-kraxel@redhat.com> <20210831112631.zeewfvaq7nwpyad7@sirius.home.kraxel.org> MIME-Version: 1.0 In-Reply-To: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kraxel@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Tue, Aug 31, 2021 at 02:32:45PM +0000, Yao, Jiewen wrote: > Thank you. That confirms my guess. > > If you can add all those info in readme, that would be great, especially the URL https://qemu.readthedocs.io/en/latest/system/i386/microvm.html, as well as the scope. Current README below (also covering the not-yet submitted virtio-mmio and pcie patches). take care, Gerd -------------------- cut here ----------------------- This is an *experimental* port of OVMF for the qemu microvm machine type. microvm background info ----------------------- microvm is designed for modern, virtio-based workloads. Most legacy lpc/isa devices like pit and pic can be turned off. virtio-mmio (i.e. '-device virtio-{blk,net,scsi,...}-device') is used for storage/network/etc. Optional pcie support is available and any pcie device supported by qemu can be plugged in (including virtio-pci if you prefer that over virtio-mmio). https://qemu.readthedocs.io/en/latest/system/i386/microvm.html https://www.kraxel.org/blog/2020/10/qemu-microvm-acpi/ design issues ------------- Not fully clear yet how to do hardware detection best. Right now using device tree to find virtio-mmio devices and pcie host bridge, can reuse existing ArmVirtPkg code that way. Needs patched qemu. features -------- [working] serial console [working] direct kernel boot [in progress] virtio-mmio support [in progress] pcie support known limitations ----------------- * rtc=on is required for now. * can't use separate code/vars (actually an microvm limitation, there is no pflash support). * transitional virtio-pci devices do not work. microvm doesn't support ioports on pcie, and ovmf doesn't initialize pcie devices with ioports if there is no address space for them (even though pcie devices are required to be functional without ioports). known bugs ---------- * timer has wrong frequency (running fast on my hardware). usage ----- qemu-system-x86_64 \ -nographic \ -machine microvm,acpi=on,pit=off,pic=off,rtc=on \ -bios /path/to/MICROVM.fd \ [ ... more args here ... ]