AArch64 EL2 hypervisor for QEMU virt that boots at EL2
1#ifndef HV_GUEST_LOADER_H
2#define HV_GUEST_LOADER_H
3
4#include "hv/types.h"
5
6enum guest_payload_kind {
7 GUEST_PAYLOAD_DIAGNOSTIC = 0,
8 GUEST_PAYLOAD_LINUX_IMAGE = 1,
9};
10
11struct guest_image_info {
12 enum guest_payload_kind kind;
13 uint64_t ipa_entry;
14 uint64_t ipa_load;
15 uint64_t size;
16 uint64_t dtb_ipa;
17 uint64_t initrd_ipa;
18 uint64_t initrd_size;
19};
20
21bool guest_load_diagnostic(struct guest_image_info *info);
22bool guest_load_external_linux(struct guest_image_info *info, paddr_t image_pa,
23 uint64_t image_max_size, paddr_t dtb_pa,
24 uint64_t dtb_max_size, paddr_t initrd_pa,
25 uint64_t initrd_size);
26bool guest_validate_linux_image_header(const void *image, uint64_t size,
27 struct guest_image_info *info);
28
29#endif