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