From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=209.132.183.28; helo=mx1.redhat.com; envelope-from=lersek@redhat.com; receiver=edk2-devel@lists.01.org Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 2244A21167470 for ; Sat, 13 Oct 2018 14:42:03 -0700 (PDT) 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 mx1.redhat.com (Postfix) with ESMTPS id 7976CC057F81; Sat, 13 Oct 2018 21:42:03 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-120-6.rdu2.redhat.com [10.10.120.6]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1D93318101; Sat, 13 Oct 2018 21:42:00 +0000 (UTC) To: Sami Mujawar , edk2-devel@lists.01.org Cc: ruiyu.ni@intel.com, nd@arm.com, Stephanie.Hughes-Fitt@arm.com, star.zeng@intel.com, Drew Jones , Ard Biesheuvel , Eric Auger References: <20181012144009.48732-1-sami.mujawar@arm.com> From: Laszlo Ersek Message-ID: Date: Sat, 13 Oct 2018 23:42:00 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <20181012144009.48732-1-sami.mujawar@arm.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Sat, 13 Oct 2018 21:42:03 +0000 (UTC) Subject: Re: [PATCH 0/6] Add kvmtool emulated platform support for ARM X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Oct 2018 21:42:04 -0000 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit On 10/12/18 16:40, Sami Mujawar wrote: > Kvmtool is a virtual machine manager that enables hosting KVM > guests. ARM is working to enhance kvmtool support to enable > launching of KVM guest with UEFI support. Why is QEMU not good enough? (With or without KVM.) Another platform I've recently learned about (for QEMU) is the SBSA reference machine type. I'm concerned that this kind of divergence will be hard to maintain in a common firmware package. Here's my understanding: - ArmVirtQemu: supposed to run data center / cloud workloads - SBSA reference machine: supposed to emulate physical machines as closely as possible; primarily intended as a development environment for physical machines - firmware for the kvmtool platform: ? > This patch series enables UEFI support for kvmtool's emulated ARM > platform and is required to allow testing of kvmtool enhancements. > > Note: > 1. These kvmtool platform support patches currently expose > the kvmtool provided DT to the OS. Support for ACPI is > planned, using Dynamic Tables Framework and should be > available in the near future. The Dynamic ACPI Tables Framework is not useful under QEMU, because QEMU generates its own set of tables. The framework would be very useful (I think) on the SBSA reference machine, given that the framework would be shipped (presumably) on physical machines as well. Why is it useful for kvmtool? > 2. This new platform port can only be used with the updated > kvmtool that is currently under development review. > > The changes can be seen at https://github.com/samimujawar/edk2/tree/299_kvmtool_plat_support_v1 I think it's valid to develop and review both streams of patches in parallel. Usually firmware maintainers ask for the hardware emulation bits to be pushed first. Thanks Laszlo > > Sami Mujawar (6): > PcAtChipsetPkg: Add MMIO Support to SerialIo Lib > PcAtChipsetPkg: Add MMIO Support to RTC driver > MdeModulePkg: Map persistent (NV) memory > ArmVirtPkg: Save DT base address from X0 in PCD > ArmVirtPkg: Add kvmtool platform driver > ArmVirtPkg: Support for kvmtool emulated platform > > ArmVirtPkg/ArmVirtKvmTool.dsc | 390 ++++++++++++++++++++ > ArmVirtPkg/ArmVirtKvmTool.fdf | 297 +++++++++++++++ > ArmVirtPkg/ArmVirtPkg.dec | 12 +- > ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.c | 211 +++++++++++ > ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf | 60 +++ > ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S | 9 +- > MdeModulePkg/MdeModulePkg.dec | 9 + > MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariable.c | 77 +++- > MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf | 6 + > PcAtChipsetPkg/Library/SerialIoLib/SerialIoLib.inf | 4 + > PcAtChipsetPkg/Library/SerialIoLib/SerialPortLib.c | 98 ++++- > PcAtChipsetPkg/PcAtChipsetPkg.dec | 8 + > PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c | 38 +- > PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtcEntry.c | 112 +++++- > PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf | 8 + > 15 files changed, 1309 insertions(+), 30 deletions(-) > create mode 100644 ArmVirtPkg/ArmVirtKvmTool.dsc > create mode 100644 ArmVirtPkg/ArmVirtKvmTool.fdf > create mode 100644 ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.c > create mode 100644 ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf >