]> git.proxmox.com Git - mirror_edk2.git/blob - OvmfPkg/CloudHv/README
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / OvmfPkg / CloudHv / README
1
2 CloudHv is a port of OVMF for the Cloud Hypervisor project.
3
4 The Cloud Hypervisor project
5 ----------------------------
6
7 Cloud Hypervisor is a Virtual Machine Monitor that runs on top of KVM. The
8 project focuses on exclusively running modern, cloud workloads, on top of a
9 limited set of hardware architectures and platforms. Cloud workloads refers to
10 those that are usually run by customers inside a cloud provider. This means
11 modern operating systems with most I/O handled by paravirtualised devices
12 (i.e. virtio), no requirement for legacy devices, and 64-bit CPUs.
13
14 https://github.com/cloud-hypervisor/cloud-hypervisor
15
16 Design
17 ------
18
19 Based on Cloud Hypervisor's motto to reduce the emulation as much as possible,
20 the project logically decided to support the PVH boot specification as the only
21 way of booting virtual machines. That includes both direct kernel boot and OVMF
22 firmware which must be generated as PVH ELF binaries.
23 PVH allows information like location of ACPI tables and location of guest RAM
24 ranges to be shared without the need of an extra emulated device like a CMOS.
25
26 Features
27 --------
28
29 * Serial console
30 * EFI shell
31 * virtio-pci
32
33 Build
34 -----
35
36 The way to build the CloudHv target is as follows:
37
38 OvmfPkg/build.sh -p OvmfPkg/CloudHv/CloudHvX64.dsc -a X64 -b DEBUG
39
40 Usage
41 -----
42
43 Assuming Cloud Hypervisor is already built, one can start a virtual machine as
44 follows:
45
46 ./cloud-hypervisor \
47 --cpus boot=1 \
48 --memory size=1G \
49 --kernel Build/CloudHvX64/DEBUG_GCC5/FV/CLOUDHV.fd \
50 --disk path=/path/to/disk.raw
51
52 Releases
53 --------
54
55 In edk2-stable202202, CloudHv is generated as data-only binary.
56 Starting with edk2-stable202205, CloudHv is generated as a PVH ELF binary to
57 reduce the amount of emulation needed from Cloud Hypervisor.
58 For TDX, things are handled differently and PVH is not used, which is why the
59 firmware is always generated as a data-only binary.
60
61 +-------------------+----------------+
62 | | CloudHv |
63 +-------------------+----------------+
64 | edk2-stable202202 | Data binary |
65 +-------------------+----------------+
66 | edk2-stable202205 | PVH ELF binary |
67 +-------------------+----------------+