From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.8773.1625479612654103987 for ; Mon, 05 Jul 2021 03:06:53 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: jianyong.wu@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 34A141063; Mon, 5 Jul 2021 03:06:51 -0700 (PDT) Received: from entos-thunderx2-desktop.shanghai.arm.com (entos-thunderx2-desktop.shanghai.arm.com [10.169.212.208]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 20E793F5A1; Mon, 5 Jul 2021 03:06:48 -0700 (PDT) From: "Jianyong Wu" To: devel@edk2.groups.io Cc: lersek@redhat.com, sami.mujawar@arm.com, ardb+tianocore@kernel.org, justin.he@arm.com, jianyong.wu@arm.com Subject: [PATCH v4 0/3] Enable Cloud Hypervisor support in edk2 Date: Mon, 5 Jul 2021 18:06:38 +0800 Message-Id: <20210705100641.97166-1-jianyong.wu@arm.com> X-Mailer: git-send-email 2.17.1 Cloud Hypervisor is an open source Virtual Machine Monitor (VMM) that runs on top of KVM. Cloud Hypervisor is implemented in Rust and is based on the rust-vmm crates. See [1] to find more. To support UEFI, Cloud Hypervisor is introduced here. There are 2 parts to be considered to do this enablement, that is: 1. specific ACPI service implementation compared with qemu, there is no device like Fw-cfg, so we have no elegant way to get the RSDP address. A specific ACPI implementation is introduced here. 2. build configuration file for Cloud Hypervisor Change log: v3 to v4: (1) remove Tpm support in dsc file (2) refine Acpi table install code base on Sami's comments in v3 v2 to v3: (1) reuse qemu's memory initialization lib as they are in nearly the same memory laout. (2) split Acpi implemetation into PlatformHasAcpi and InstallAcpiTable. (3) remove lots of dependencies from qemu like "*Fwcfg*" lib. (4) lots of code cleanup work to let it more approach to edk2 code style. [1] https://github.com/cloud-hypervisor/cloud-hypervisor Jianyong Wu (3): Acpi: reimplement PlatformHasAcpi for Cloud Hypervisor Acpi: Install Acpi tables for Cloud hypervisor ArmVirtCloudHv: support Cloud Hypervisor in edk2 ArmVirtPkg/ArmVirtPkg.dec | 6 + ArmVirtPkg/ArmVirtCloudHv.dsc | 364 ++++++++++++++++++ ArmVirtPkg/ArmVirtCloudHv.fdf | 258 +++++++++++++ .../CloudHvAcpiPlatformDxe.inf | 47 +++ .../CloudHvHasAcpiDtDxe.inf | 43 +++ .../CloudHvAcpiPlatformDxe/CloudHvAcpi.c | 155 ++++++++ .../CloudHvHasAcpiDtDxe.c | 69 ++++ 7 files changed, 942 insertions(+) create mode 100644 ArmVirtPkg/ArmVirtCloudHv.dsc create mode 100644 ArmVirtPkg/ArmVirtCloudHv.fdf create mode 100644 ArmVirtPkg/CloudHvAcpiPlatformDxe/CloudHvAcpiPlatformDxe.inf create mode 100644 ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.inf create mode 100644 ArmVirtPkg/CloudHvAcpiPlatformDxe/CloudHvAcpi.c create mode 100644 ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.c -- 2.17.1