diff options
Diffstat (limited to 'meta-xilinx-core/conf/machine/include/machine-xilinx-qemu.inc')
-rw-r--r-- | meta-xilinx-core/conf/machine/include/machine-xilinx-qemu.inc | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/meta-xilinx-core/conf/machine/include/machine-xilinx-qemu.inc b/meta-xilinx-core/conf/machine/include/machine-xilinx-qemu.inc new file mode 100644 index 00000000..c2093ca6 --- /dev/null +++ b/meta-xilinx-core/conf/machine/include/machine-xilinx-qemu.inc | |||
@@ -0,0 +1,55 @@ | |||
1 | # This include is used to setup default QEMU and qemuboot config for meta-xilinx | ||
2 | # machines. | ||
3 | |||
4 | # Use the xilinx specific version for these users | ||
5 | IMAGE_CLASSES += "qemuboot-xilinx" | ||
6 | |||
7 | # depend on qemu-helper-native, which will depend on QEMU | ||
8 | EXTRA_IMAGEDEPENDS += "qemu-helper-native" | ||
9 | |||
10 | PREFERRED_PROVIDER_qemu-helper-native = "qemu-xilinx-helper-native" | ||
11 | PREFERRED_PROVIDER_qemu = "qemu-xilinx" | ||
12 | PREFERRED_PROVIDER_qemu-native = "qemu-xilinx-native" | ||
13 | PREFERRED_PROVIDER_nativesdk-qemu = "nativesdk-qemu-xilinx" | ||
14 | |||
15 | def qemu_default_dtb(d): | ||
16 | if d.getVar("IMAGE_BOOT_FILES", True): | ||
17 | dtbs = d.getVar("IMAGE_BOOT_FILES", True).split(" ") | ||
18 | # IMAGE_BOOT_FILES has extra renaming info in the format '<source>;<target>' | ||
19 | # Note: Wildcard sources work here only because runqemu expands them at run time | ||
20 | dtbs = [f.split(";")[0] for f in dtbs] | ||
21 | dtbs = [f for f in dtbs if f.endswith(".dtb")] | ||
22 | if len(dtbs) != 0: | ||
23 | return dtbs[0] | ||
24 | return "" | ||
25 | |||
26 | def qemu_default_serial(d): | ||
27 | if d.getVar("SERIAL_CONSOLES", True): | ||
28 | first_console = d.getVar("SERIAL_CONSOLES", True).split(" ")[0] | ||
29 | speed, console = first_console.split(";", 1) | ||
30 | # zynqmp uses earlycon and stdout (in dtb) | ||
31 | if "zynqmp" in d.getVar("MACHINEOVERRIDES", True).split(":"): | ||
32 | return "" | ||
33 | return "console=%s,%s earlyprintk" % (console, speed) | ||
34 | return "" | ||
35 | |||
36 | def qemu_target_binary(d): | ||
37 | ta = d.getVar("TARGET_ARCH", True) | ||
38 | if ta == "microblazeeb": | ||
39 | ta = "microblaze" | ||
40 | elif ta == "arm": | ||
41 | ta = "aarch64" | ||
42 | return "qemu-system-%s" % ta | ||
43 | |||
44 | def qemu_zynqmp_unhalt(d, multiarch): | ||
45 | if multiarch: | ||
46 | return "-global xlnx,zynqmp-boot.cpu-num=0 -global xlnx,zynqmp-boot.use-pmufw=true" | ||
47 | return "-device loader,addr=0xfd1a0104,data=0x8000000e,data-len=4 -device loader,addr=0xfd1a0104,data=0x8000000e,data-len=4" | ||
48 | |||
49 | # For qemuboot, default setup across all machines in meta-xilinx | ||
50 | QB_SYSTEM_NAME:aarch64 ?= "${@qemu_target_binary(d)}-multiarch" | ||
51 | QB_SYSTEM_NAME ?= "${@qemu_target_binary(d)}" | ||
52 | QB_DEFAULT_FSTYPE ?= "cpio" | ||
53 | QB_DTB ?= "${@qemu_default_dtb(d)}" | ||
54 | QB_KERNEL_CMDLINE_APPEND ?= "${@qemu_default_serial(d)}" | ||
55 | |||