aboutsummaryrefslogtreecommitdiffstats
path: root/classes/qemuboot-xen-defaults.bbclass
blob: 62bbf8fd9d8e8535f97d6f799b12d4838d031dd4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# Set defaults for booting Xen images with qemuboot

# Xen and Dom0 command line options
QB_XEN_CMDLINE_EXTRA ??= "dom0_mem=192M"
QB_XEN_DOM0_BOOTARGS ??= \
    "console=hvc0 earlyprintk clk_ignore_unused root=/dev/vda"

# Launch with one initial domain, dom0, with one boot module, the kernel
DOM0_KERNEL ??= "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}"
DOM0_KERNEL_LOAD_ADDR ??= "0x45000000"
QB_XEN_DOMAIN_MODULES ??= "${DOM0_KERNEL}:${DOM0_KERNEL_LOAD_ADDR}:multiboot,kernel"

# Qemuboot for 32-bit Arm loads Xen via device loader parameter rather than
# kernel and boots using u-boot as bios
XEN_BINARY ??= "${DEPLOY_DIR_IMAGE}/xen-${MACHINE}"
QB_XEN_LOAD_ADDR ??= "0x46000000"
QB_OPT_APPEND:append:qemuarm = " \
    -device loader,file=${XEN_BINARY},addr=${QB_XEN_LOAD_ADDR},force-raw=on \
    -device loader,file=${DOM0_KERNEL},addr=${DOM0_KERNEL_LOAD_ADDR} \
    -bios ${DEPLOY_DIR_IMAGE}/u-boot.bin \
    "
QB_DEFAULT_KERNEL:qemuarm = "none"

# Qemuboot for 64-bit Arm uses the QB_DEFAULT_KERNEL method to load Xen
# and the device loader option for the dom0 kernel:
QB_OPT_APPEND:append:qemuarm64 = " \
    -device loader,file=${DOM0_KERNEL},addr=${DOM0_KERNEL_LOAD_ADDR} \
    "
QB_DEFAULT_KERNEL:qemuarm64 = "xen-${MACHINE}"

# 32-bit Arm: gic version 2
QB_MACHINE:qemuarm = "-machine virt -machine virtualization=true"
# 64-bit Arm: gic version 3
QB_MACHINE:qemuarm64 = "-machine virt,gic-version=3 -machine virtualization=true"

# Increase the default qemu memory allocation to allow for the hypervisor.
# Use a weak assignment to allow for change of default and override elsewhere.
QB_MEM_VALUE ??= "512"
QB_MEM = "-m ${QB_MEM_VALUE}"

# 32-bit Arm: qemuboot with a u-boot script image
QB_XEN_U_BOOT_SCR:qemuarm = "boot.scr.uimg"

# 64-bit Arm: qemuboot with a device tree binary
QB_DTB:qemuarm64 = "${IMAGE_NAME}.qemuboot.dtb"
QB_DTB_LINK:qemuarm64 = "${IMAGE_LINK_NAME}.qemuboot.dtb"