AArch64 EL2 hypervisor for QEMU virt that boots at EL2
1#ifndef HV_FDT_H
2#define HV_FDT_H
3
4#include "hv/types.h"
5
6#define FDT_BOOTARGS_MAX 256u
7
8struct fdt_platform_info {
9 bool valid;
10 uint64_t fdt_pa;
11 uint64_t size;
12 uint64_t memory_base;
13 uint64_t memory_size;
14 uint64_t initrd_start;
15 uint64_t initrd_end;
16 const char *bootargs;
17};
18
19bool fdt_probe(uint64_t fdt_pa, struct fdt_platform_info *info);
20bool fdt_patch_memory(uint64_t fdt_pa, uint64_t base, uint64_t size);
21bool fdt_bootargs_valid(const char *bootargs);
22bool fdt_patch_linux_guest(uint64_t fdt_pa, uint64_t max_size, const char *bootargs,
23 uint64_t initrd_start, uint64_t initrd_end);
24void fdt_dump(const struct fdt_platform_info *info);
25
26#endif