summaryrefslogtreecommitdiff
path: root/OvmfPkg/CloudHv
diff options
context:
space:
mode:
authorSebastien Boeuf <sebastien.boeuf@intel.com>2022-03-02 21:31:37 +0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2022-03-04 02:41:57 +0000
commitb83d0a6438f24ba3c6234d9b7593be6f2246ec1e (patch)
treeaae003e4fe0e61c847d5ee0a9078331e70b2f085 /OvmfPkg/CloudHv
parent82bfd2e86d895efd7a9dcb778799bafae7b3ce71 (diff)
downloadedk2-b83d0a6438f24ba3c6234d9b7593be6f2246ec1e.zip
edk2-b83d0a6438f24ba3c6234d9b7593be6f2246ec1e.tar.gz
edk2-b83d0a6438f24ba3c6234d9b7593be6f2246ec1e.tar.bz2
OvmfPkg: CloudHv: Add README
Add some documentation to the CloudHv target in order to clarify how to use it and what to expect from it. Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Diffstat (limited to 'OvmfPkg/CloudHv')
-rw-r--r--OvmfPkg/CloudHv/README67
1 files changed, 67 insertions, 0 deletions
diff --git a/OvmfPkg/CloudHv/README b/OvmfPkg/CloudHv/README
new file mode 100644
index 0000000..63e2886
--- /dev/null
+++ b/OvmfPkg/CloudHv/README
@@ -0,0 +1,67 @@
+
+CloudHv is a port of OVMF for the Cloud Hypervisor project.
+
+The Cloud Hypervisor project
+----------------------------
+
+Cloud Hypervisor is a Virtual Machine Monitor that runs on top of KVM. The
+project focuses on exclusively running modern, cloud workloads, on top of a
+limited set of hardware architectures and platforms. Cloud workloads refers to
+those that are usually run by customers inside a cloud provider. This means
+modern operating systems with most I/O handled by paravirtualised devices
+(i.e. virtio), no requirement for legacy devices, and 64-bit CPUs.
+
+https://github.com/cloud-hypervisor/cloud-hypervisor
+
+Design
+------
+
+Based on Cloud Hypervisor's motto to reduce the emulation as much as possible,
+the project logically decided to support the PVH boot specification as the only
+way of booting virtual machines. That includes both direct kernel boot and OVMF
+firmware which must be generated as PVH ELF binaries.
+PVH allows information like location of ACPI tables and location of guest RAM
+ranges to be shared without the need of an extra emulated device like a CMOS.
+
+Features
+--------
+
+* Serial console
+* EFI shell
+* virtio-pci
+
+Build
+-----
+
+The way to build the CloudHv target is as follows:
+
+OvmfPkg/build.sh -p OvmfPkg/CloudHv/CloudHvX64.dsc -a X64 -b DEBUG
+
+Usage
+-----
+
+Assuming Cloud Hypervisor is already built, one can start a virtual machine as
+follows:
+
+./cloud-hypervisor \
+ --cpus boot=1 \
+ --memory size=1G \
+ --kernel Build/CloudHvX64/DEBUG_GCC5/FV/CLOUDHV.fd \
+ --disk path=/path/to/disk.raw
+
+Releases
+--------
+
+In edk2-stable202202, CloudHv is generated as data-only binary.
+Starting with edk2-stable202205, CloudHv is generated as a PVH ELF binary to
+reduce the amount of emulation needed from Cloud Hypervisor.
+For TDX, things are handled differently and PVH is not used, which is why the
+firmware is always generated as a data-only binary.
+
++-------------------+----------------+
+| | CloudHv |
++-------------------+----------------+
+| edk2-stable202202 | Data binary |
++-------------------+----------------+
+| edk2-stable202205 | PVH ELF binary |
++-------------------+----------------+